Stripe failed payment recovery: the complete playbook
Most SaaS recovers ~15% of failed payments and assumes that's normal. The levers below take it to 50-70% — and three of them are free and built into Stripe. Here's the full sequence, in priority order.
1. Smart Retries — on every plan
Stripe's adaptive retry timing recovers ~35-40% on its own. The catch: it doesn't apply to subscriptions created before you enabled it. If your recovery is stuck at 15%, this is the most likely reason. How to verify and migrate legacy plans.
2. Card Account Updater — free, underused
Auto-updates expired or reissued cards via the Visa/Mastercard networks before they even decline. Catches ~30% of expired_card failures silently, before a dunning email is needed. Most teams never turn it on.
3. Decline-code-aware retry timing
Retrying every failure the same way wastes attempts and burns sender reputation. Segment by code: soft declines (insufficient_funds, processing_error) recover ~40% on a day-3/day-7 retry; hard declines (lost_card, expired_card) recover ~3% — route those to a card-update flow instead. Full decline-code reference.
4. A failed-payment wall
Show a card-update prompt on dashboard login when a payment is failing. Industry data: +4-12% recovery, near-zero churn impact (the people who don't update were going to churn anyway).
5. Segmented dunning emails
Default platform emails get low open rates. Soft-decline emails should be short and factual ("we'll retry in 24h"); hard-decline emails should say plainly "your card needs updating" with a direct portal link. Splitting these roughly doubles open rates.
How much are you actually leaving on the table?
The free calculator estimates your recoverable amount in 60 seconds. The $19 audit maps your real decline-code distribution and tells you which of the five levers will move the needle most for you.
Run the free calculator →