Stripe dunning best practices for 2026
June 10, 2026 · 8 min read
Stripe will retry a failed charge for you and send a couple of emails if you turn the setting on. That's a floor, not a strategy. Real dunning — the system of retries plus customer communication that recovers a failed payment — is where a few percentage points of churn quietly come back. Here's what good looks like in 2026.
Retries and dunning are two different things
A retry is an automated re-attempt of the charge. Dunning is the communication around it — telling the customer the payment failed and making it trivial to fix. You need both: silent retries recover the transient failures (a card that was momentarily over its limit), and dunning emails recover the ones that need the customer to act (an expired or replaced card). Run only one and you leave half the money behind.
1. Make retry timing decline-aware
A fixed schedule (“retry every 3 days”) treats an expired card the same as a temporary insufficient-funds decline. They are not the same. Insufficient-funds declines often clear on their own a few days later — sometimes around payday — so a retry is worth it. An expired-card decline will never clear on a retry; that customer needs an email with a card-update link. Aligning timing to the Stripe decline code is the single biggest upgrade over default retries. Tools like Stunningextend Stripe's retry window; the higher-leverage move is making each attempt smarter, not just running more of them.
2. Send a short, escalating sequence — not one email
A four-touch cadence covers the spread of reasons without nagging:
- Day 0 — soft heads-up.“We couldn't process your latest payment, no action needed yet, we'll try again.” Calm, with the update link present but not urgent.
- Day 3 — reminder.Slightly firmer; name what's at risk (continued access).
- Day 7 — direct ask.“Your card on file isn't working — update it in 30 seconds.” Offer to help.
- Final notice — with a date. State exactly when the subscription cancels if unpaid. Specificity recovers more than vague threats.
3. Deliverability is half the battle
A dunning email that lands in spam recovers nothing. The fundamentals:
- Send from your own domain with SPF, DKIM, and DMARC aligned — not a shared sender. Mail from a verified domain you control lands in the inbox far more often. See setting up a custom send domain.
- Include a one-click unsubscribe header (RFC 8058) — required by Gmail and Yahoo for bulk senders, and a trust signal even for transactional mail.
- Warm a new sending domain gradually. A brand-new domain with zero reputation gets filtered; volume and consistency build trust over days.
4. Make fixing the card a one-click job
Every email should link to a hosted, no-login card-update page — not your generic billing settings behind a password. The fewer steps between “my card failed” and a working card, the more you recover.
5. Measure recovery, opens, and time-to-fix
Track recovery rate (recovered ÷ failed), email open and click rates per touch, and how long recovery takes. If your day-7 email out-recovers day-0, your early copy is too soft; if nobody opens any of them, it's a deliverability problem, not a copy problem.
Where Backstop fits
Backstop ships this end to end on Stripe — decline-code-aware retries, the four-touch sequence from your own verified domain, hosted card-update pages, and pre-dunning expiry warnings — plus a cancel flow for voluntary churn. For the bigger picture, read how to reduce involuntary churn, or compare the alternatives.
Backstop recovers failed Stripe payments and saves canceling subscribers.
Smart retries, a visual cancel flow, and a hosted portal — flat $79/mo, a free tier, and 0% revenue share.