The Recovery Ledger · 2026-07-10 · 5 min
Braintree dunning: recovering declined subscription payments
Braintree (PayPal's processor) powers a lot of subscription billing that predates the everything-on-Stripe era. Its failed-payment story: automatic retries on a configurable schedule, a past-due subscription status, and webhooks that tell you the moment a charge fails. What it doesn't do is talk to your customer.
Configure the retries first
In the Braintree control panel, set the retry schedule (attempts and spacing) for subscriptions. Like Stripe's Smart Retries, these catch soft declines and structurally can't catch expired cards, reissued numbers, or hard declines. Those need the customer to act.
The email layer
On failure webhooks, send a sequence of 3–4 human emails over two weeks linking a hosted payment page where the customer can update their card, and cancel the sequence the instant the subscription recovers. Tune the copy to the decline: an expired-card failure gets 'your card expired', not 'your bank declined the charge.'
Attribution still matters
Braintree's own retries will recover some payments while your emails are in flight. Count honestly: a recovery belongs to your emails only if one was delivered before the payment succeeded. Recoupe's Braintree support (native, July 2026) applies the same ledger it uses for Stripe retries credited to Braintree, email-driven recoveries to the sequence.
Recoupe recovers the revenue your processor's retries leave behind $29/mo, honest attribution.
Run my free failed-payment audit →