Recover failed payments and dunning
Smart retries, dunning emails, account-update events, and how to keep involuntary churn under 4% on subscription revenue.
Last updated 2026-05-10
Half of subscription churn is involuntary. The card expired, a transaction was flagged, the bank declined a renewal. Most of that revenue is recoverable.
What runs by default
Every failed renewal triggers a smart-retry schedule: +1 day, +3 days, +5 days, +7 days. We use historical decline-code data to time the retries (issuer banks reset velocity counters at midnight in their timezone, for example). After four failures the subscription moves to past_due and we stop retrying.
Dunning emails
Three emails fire automatically: first failure (gentle "we couldn't process. Try a different card"), third failure (firmer "your subscription is at risk"), final cancellation notice. All editable at Settings → Email → Dunning Templates. Plain text outperforms HTML by 12-18% on payment-update click-through. Keep these short.
Account Updater
Card networks (Visa, Mastercard, Amex, Discover) send updated card details when a customer's card is reissued. SellStein listens for these on Stripe, NMI, and Fiserv automatically. Settings → Payments → Account Updater shows your match rate. Industry average is 60-70% of expired cards auto-updated. No customer action needed.
Hosted update page
The dunning emails link to a hosted card-update page (no login required, signed token in the URL). Customer enters new card details, the previous failed invoice retries immediately, the subscription continues. This single feature recovers ~30% of would-be cancellations.
Decline-code analysis
Settings → Payments → Failed Charges shows the breakdown. The codes you care about:
- insufficient_funds. Try again in 2-3 days
- expired_card. Account Updater will fix this if the card was reissued
- lost_card / stolen_card. Don't retry, it'll auto-decline indefinitely
- do_not_honor. Issuer is being cagey; one retry then move on
- fraudulent. Stop retrying, contact the customer (often a misclassification)
Setting expectations
A healthy subscription business has 4-6% involuntary churn per month before recovery, 1-2% after. If your post-recovery rate is above 4%, look at the decline-code mix. Usually it's a card-acceptance issue (declined for region/MCC mismatch) and a processor change fixes it.