To recover failed Stripe payments, combine three things: smart card retries, a timed sequence of personalized recovery emails, and pre-dunning that warns customers before a card expires. Do all three and you can typically win back 40–60% of failed charges — most of it automatically.
Failed payments are the quietest way a subscription business loses money. A card expires, a bank declines a charge, an account is short on funds — the subscription lapses, and unless something chases it, that revenue is simply gone. This is involuntary churn, and it usually accounts for 5–10% of revenue. The good news: it is the most recoverable revenue you have, because the customer never chose to leave. Here is exactly how to recover it on Stripe, step by step.
Key takeaways
- Stripe recovers some failures on its own via Smart Retries (~30–40%) — but it misses personalized emails, SCA handling, and past failures.
- The full recovery stack is retries + personalized dunning emails + pre-dunning, and it can recover 40–60% of failed charges.
- Match the tactic to the decline reason — a lost-card decline never clears on retry, while insufficient funds usually does within days.
- Your biggest quick win is often past failures nobody ever followed up on — scan your Stripe history to find them.
Why Stripe payments fail in the first place
Before you can recover a failed payment, it helps to know why it failed — because the reason decides whether a retry will ever work. Stripe returns a decline code with every failed charge, and the mix usually looks something like this:
The distinction that matters is soft declines vs hard declines. Soft declines like insufficient_funds or a temporary do_not_honor are worth retrying — the card often works a few days later, especially around payday. Hard declines like lost_card, stolen_card, or expired_card will never succeed on retry; the only fix is getting the customer to enter a new card. Treating these two groups the same is the single most common recovery mistake.
Does Stripe recover failed payments automatically?
Partly — and it is worth turning on before anything else. Stripe Billing includes Smart Retries, which uses machine learning to re-attempt failed subscription charges at the moments they are most likely to succeed, plus optional built-in dunning emails and a customer portal for updating cards. On its own, this recovers roughly 30–40% of failed charges — real money for zero effort.
What Stripe's built-in tools do not do:
- Write personalized emails per decline reason — the built-in emails are generic templates, and generic "your payment failed" emails convert poorly.
- Send at the optimal local time or in your customer's language.
- Run pre-dunning to catch cards before they expire.
- Recover past failures — Smart Retries only acts on charges that fail after you enable it.
That gap between ~35% and ~60% is what the next five steps close.
How to recover failed Stripe payments: 5 steps
Step 1 — Turn on and tune Stripe Smart Retries
In the Stripe Dashboard, go to Settings → Billing → Subscriptions and emails and enable Smart Retries. Set the retry window to span several days so the schedule can hit a payday, and turn on the customer portal so customers have a one-click way to update their card. This is the no-code foundation everything else builds on.
Step 2 — Send a personalized dunning email sequence
Retries recover the cards that will clear on their own; emails recover the rest. Send a short sequence — typically on Day 1, 3, 7, 14 and 21 — where each message is written for the specific decline reason and sent at a human hour (around 8:30am in the customer's timezone). Lead with a warm, specific heads-up and a single, obvious "update your card" button. Always include one-click unsubscribe and stop emailing addresses that bounce, or you will wreck your sender reputation.
Step 3 — Add pre-dunning for expiring cards
The cheapest failure to recover is the one that never happens. Pre-dunning scans for cards that are about to expire and emails those customers before the next charge fails, asking them to update the card in advance. This quietly removes a big slice of the expired_card declines from the chart above.
Step 4 — Handle SCA / 3D Secure declines correctly
If you sell to customers in Europe, some charges fail because they require Strong Customer Authentication under PSD2 — the bank wants the customer to re-authenticate. These are not "out of money" failures; retrying alone will not fix them. The recovery email needs to send the customer to a Stripe-hosted authentication page to approve the payment. Getting this right recovers charges most tools silently drop.
Step 5 — Recover the failures you've already lost
Steps 1–4 fix new failures. But if you have been on Stripe for months, there is very likely a pile of old failed charges nobody ever chased. Stripe's Events API only keeps 30 days of history, so the way to find them is to scan your charge history directly, dedupe by customer, and launch a gentle win-back sequence for those old failures. This is usually the single biggest one-time recovery a business can make — and no built-in Stripe feature does it.
Should you build this yourself or use a tool?
You can absolutely do Steps 1–3 inside Stripe with no code, and that alone is worth doing today. The question is whether steps 2, 4 and 5 — personalized emails, SCA handling, and historical recovery — are worth building and maintaining yourself.
✓ Pros
- +Native Stripe retries and basic emails are free and take minutes to switch on.
- +Full control if you have engineering time to build custom email logic.
- +No extra vendor for the parts Stripe already covers.
✕ Cons
- –Personalized per-reason emails, SCA re-auth flows, and pre-dunning are real engineering to build well.
- –Stripe cannot recover your past failures at all — that money stays lost.
- –Maintaining deliverability, suppression and timezones yourself is ongoing work.
A dedicated tool exists to close exactly that gap. Revova connects to Stripe with a single key, adds AI-written per-reason emails, pre-dunning, SCA handling and the Lost Revenue Finder, and runs flat at $29–$79/month with no commission on what it recovers. If you want the full picture across tools, see our comparison of the best payment recovery tools.
Common mistakes to avoid
- Retrying hard declines. Hammering a
lost_cardorexpired_cardwith retries just burns processor goodwill. Route those straight to a "please update your card" email. - One generic email. A single "your payment failed" template underperforms a reason-specific sequence badly. Personalize.
- Bad timing. Emails at 3am local time and retries that miss payday leave money on the table. Send human-hour; retry across a multi-day window.
- Ignoring SCA. Treating a 3D Secure decline like an out-of-funds decline means it never recovers.
- Forgetting the past. Teams obsess over new failures and never scan their back-catalogue — where the biggest one-time win usually sits.
Frequently asked questions
How do I recover a failed payment in Stripe?
Combine three things: enable and tune Stripe Smart Retries so the card is re-attempted on the days it is most likely to succeed; send a short sequence of personalized dunning emails asking the customer to update their card; and add pre-dunning to warn customers before a card expires. Together these typically recover 40–60% of failed charges, most of it automatically. A dedicated recovery tool automates all three, and can also recover failures from before you set it up.
Does Stripe automatically retry failed payments?
Partly. Stripe Billing includes Smart Retries, which re-attempts failed subscription charges using machine learning to pick better times, and it can send basic built-in emails. On its own that recovers roughly 30–40% of failed charges. It does not write personalized, decline-reason-specific emails, and it only acts on failures going forward — not the ones already sitting in your history.
Why do Stripe payments fail?
The most common reasons are insufficient funds, an expired or invalid card, a generic bank decline (do_not_honor), and cards reported lost, stolen or blocked for fraud. In Europe, some charges also fail because they require Strong Customer Authentication (SCA / 3D Secure) under PSD2. Each reason needs a different recovery approach — a hard "lost card" decline will never succeed on retry, while "insufficient funds" often clears within a few days.
How much of my failed Stripe revenue can I recover?
It depends on your decline mix, but the range is meaningful. Stripe’s retries alone recover about 30–40%, and well-timed, personalized recovery emails on top of that push total recoverable revenue into the 40–60% range for many businesses. The only way to know your real number is to scan your own Stripe history.
Do I need a developer to recover failed Stripe payments?
No. You can configure Smart Retries and basic emails inside the Stripe Dashboard without code. For personalized emails, pre-dunning, SCA handling and historical recovery, a no-code tool like Revova connects with a single Stripe key in about three minutes — no webhooks or engineering required.
Will recovery emails annoy my customers?
Not if they are done right. A good recovery email is warm, specific to the failure reason, sent at a human hour in the customer’s timezone, and includes a one-click card-update link and an unsubscribe. Customers whose card genuinely failed usually appreciate the heads-up — they wanted to keep paying you.
Recover your failed Stripe payments — starting with the ones you've already lost
Connect Stripe in about 3 minutes. Revova runs smart retries, AI recovery emails, pre-dunning and SCA handling — and its free Lost Revenue Finder shows exactly what you've already lost before you pay a cent.
Start my 14-day free trial →No credit card · Free Lost Revenue scan · 30-day money-back guarantee




