Stripe retries by schedule. Not by decline code.
Which means it misses the window when each failure type is most likely to clear. The right timing is different for every code. This maps it out.
Retrying too early triggers issuer blocks. Retrying too late means the customer has already churned. The optimal window is different for every failure code. Enter your decline code type — this calculator shows the exact day-by-day schedule that maximises recovery without burning retries.
60–70%
of recoverable payments are captured within the first 7 days
3–5
optimal retry attempts before switching to card-update mode
30 days
maximum effective recovery window — rates drop sharply after this
Calculator
Failure type
Payment failed
Day 0 — $240 at risk
42% of outstanding balance resolves at this step
28% of outstanding balance resolves at this step
15% of outstanding balance resolves at this step
8% of outstanding balance resolves at this step
Cumulative recovery per retry
on a $240 invoice
Retry attempts
4
Window length
21 days
Expected recovery
$162
of $240
Email timing
Send a soft payment notification on Day 1. Escalate to card update request if Day 14 fails.
Recurflux automates this entire retry schedule — connects in under 5 minutes, no code required.
How windows are derived
How windows are derived
insufficient_funds: Retry at days 3–5. Consumer paychecks typically land bi-weekly. Retrying immediately fails for the same reason; retrying at day 3–5 aligns with the highest probability of funds being available. Retrying later than day 7 sees significantly lower success rates.
do_not_honor: Retry at days 7–10. This is a bank risk system flag, not a funds issue. The issuer risk window typically resets within a week. Retrying before day 7 almost always gets the same response and accumulates block signals.
card_velocity_exceeded: Retry at days 1–3. This is a temporary transaction limit flag. It resets quickly. Contact the customer in parallel — they may need to notify their bank.
authentication_required: Do not retry blindly. Send the customer a payment link that triggers 3DS authentication. A direct retry without authentication will always fail.
Recovery windows, explained
Recovery windows, explained
A recovery window is the span of time — and the sequence of attempts inside it — during which a failed payment can still be collected before the subscription is cancelled or the customer is written off as churned. It starts the moment a charge is declined and typically closes somewhere between day 21 and day 30, depending on the failure code. Inside that window sit two separate levers: the retry calendar (when the processor or your billing system tries the card again) and the dunning calendar (when you email the customer to update their payment method). Get either one wrong — retry too soon and you waste an attempt on a card that hasn't refilled; retry too late and the customer has already moved on — and the window closes with money still on the table.
The same decline code, retried at the wrong moment, recovers at a fraction of its potential rate. An insufficient-funds decline retried within hours of the original failure succeeds less often than the same decline retried on day 3 — because the underlying cause (no funds in the account) hasn't changed yet. Retry it on day 3–5, near a typical payday cycle, and the success rate roughly doubles. The inverse is also true: a processing-error decline that would resolve itself within hours loses nothing by waiting a day or two — so retrying it instantly, while the issue is still live, captures revenue that a slower fixed schedule would let lapse. Timing isn't a minor optimization on top of the retry — for soft declines, it is the retry strategy.
Across the failure codes that can be retried at all, somewhere around 60–70% of the total recoverable amount typically clears within the first week. There are two reasons for this. First, the easiest-to-fix codes — processing errors, velocity limits, temporary issuer flags — resolve in hours or days, not weeks, so their recovery is front-loaded by nature. Second, customer attention decays: a payment-failure email opened on day 2 gets acted on far more often than the same email read (if it's read at all) on day 18, by which point the customer has often found a workaround or stopped noticing the product is still billing them. The practical implication is that the first week of the window carries disproportionate weight — a schedule that nails the early retries and the first dunning email captures most of what's recoverable; a schedule that's slow out of the gate is trying to make up ground that's already gone.
Related free tools
Stripe Failure Code Lookup
Look up any decline code to get meaning and recovery action
Failed Payment Calculator
Calculate your monthly MRR at risk from billing failures
Payment Recovery ROI Calculator
See the ROI of improving your payment recovery rate
Churn Splitter
Separate involuntary from voluntary churn in your metrics
Common questions
Common questions
Recovery depends on why the payment failed. For soft declines (insufficient funds), retry in 3–5 days and send a dunning email on day 1. For do-not-honor, retry in 7–10 days. For expired cards or hard declines, skip the retry and immediately send a card-update link — retrying a hard decline wastes the attempt and may trigger fraud flags. Never retry fraud, lost card, or stolen card codes without a new payment method.
For soft declines (insufficient funds), retry within 24 hours, then at 3 days, 7 days, and 14 days — timed around common payday cycles. For do-not-honor codes, retry at 7 days and 14 days. Cap total retries at 3–5 within a 30-day window. Beyond 30 days, recovery rates drop below 5% and repeated attempts may trigger issuer fraud flags.
Retry 3–5 times within a 30-day window. Each retry attempt should accompany a dunning email prompting the customer to update their payment method. Beyond 5 retries or 30 days, recovery rates drop below 5% and repeated attempts risk fraud flags from the issuing bank.
Retryable (soft declines): insufficient_funds, do_not_honor, generic card_declined with no sub-code. Require a new card (hard declines): lost_card, stolen_card, fraudulent, card_not_supported, expired_card. Retrying hard declines will not recover the payment — send a card update link instead.
60–70% of recoverable payments are captured within the first 7 days. By day 14, cumulative recovery reaches 80–85% of the ultimately recoverable amount. After 30 days, continued retries have diminishing returns and may not justify the operational cost.
This schedule runs automatically on every failure with Recurflux.
You've seen the timing. Recurflux classifies every failure in real time, picks the optimal retry window per decline code, and fires the sequence — no manual lookup, no generic schedule. Founder plan from $20/month.