In short
Failed subscription payments are usually recoverable — expired cards, temporary declines, insufficient funds at the wrong moment. Dunning is the retry and communication process that recovers them. Let the payment provider handle retry scheduling, decide deliberately what access looks like during the window, and make updating a card take one click from the email.
Why payments fail
Most failures are not customers refusing to pay.
Expired cards are the largest single cause, and entirely predictable — you know the expiry date in advance.
Insufficient funds at that moment, which often resolves within days.
Bank declines for fraud heuristics, particularly on recurring international charges.
Authentication requirements, where the bank wants the customer to confirm and nobody is present to do so.
Cards replaced after loss or fraud, so the number changed and nobody updated it.
The common thread: the customer usually still wants the service. They just have a payment problem they may not know about.
Let the provider handle retries
Retry scheduling is more subtle than it looks — the timing that recovers most payments depends on decline codes, card type, and history, and providers have data on this that you do not.
Use their built-in dunning rather than writing your own retry loop. It will be better, it adapts, and it removes an entire category of code from your system.
What you should own is what the customer experiences during that window, which the provider cannot decide for you.
Decide what access looks like
This is the design decision teams skip, and it determines how many customers you keep.
Immediate suspension is the harshest option and usually wrong. Someone whose card expired loses access before they know there is a problem, and the experience of being locked out is what they remember afterwards.
Full access throughout the retry window is generous and appropriate for most products, particularly where the customer is mid-work.
Degraded access — read-only, or blocked on new actions while existing data remains reachable — is a reasonable middle position for products where continued full use has a real cost to you.
Whatever you choose, say so clearly in the product, not only by email. A banner explaining that a payment failed and access continues until a date is far more effective than an email that may be missed, and it prevents the confusion of a service that stops without explanation.
The emails
Dunning emails are transactional, and they should read as helpful rather than as debt collection.
Lead with the fact and the fix. "Your payment didn't go through — update your card" in the subject line, not "Important notice regarding your account."
Make updating one click. A direct link to a payment update page, ideally without requiring login — a signed link scoped to that action removes the largest source of friction. Every additional step loses people who intended to fix it.
Say what happens and when. "We'll try again on the 14th. Your access continues until the 21st." Certainty is reassuring and reduces support contact.
Do not send too many. Three or four across the window is enough. More reads as harassment and increases unsubscribes, which damages deliverability for your other transactional mail.
Check they arrive. Dunning email landing in spam is a silent revenue loss, and it is worth verifying specifically because these messages matter more than most.
Prevent what is predictable
Card expiry is known in advance. Email before it happens, ideally twice. This recovers customers who would otherwise have failed, before any failure occurs.
Use account updater services where your provider offers them, which automatically refresh card details when banks reissue. This silently removes a large share of failures.
Support multiple payment methods so a customer has a fallback.
Charge at a sensible time. Retrying immediately after a payday is more likely to succeed than the day before one.
When the window ends
Decide what cancellation means and be clear about it.
Do not delete data immediately. Keep it for a defined period and say how long. A customer who returns two weeks later and finds everything gone will not return again — and this is also a reasonable data retention position to document.
Make reactivation trivial. Updating a card should restore the subscription without contacting support or starting over.
Tell them clearly, in one final message, what has happened and how to come back.
Measuring it
Track involuntary churn separately from voluntary churn. They are different problems with different fixes, and combining them hides the one that is straightforward to improve.
Then track recovery rate — the share of failed payments eventually collected. This is the number dunning improvements move, and a low rate almost always points at friction in the update flow rather than at customers who left.
Involuntary churn is frequently a meaningful share of total churn and receives a fraction of the attention voluntary churn gets, largely because it is invisible unless you separate it.
If you are running subscriptions and have never looked at recovery rate, book a call.
Common questions
Why do subscription payments fail?
Mostly for reasons unrelated to the customer's intent: expired cards, which are the largest single cause and entirely predictable, insufficient funds at that moment, bank fraud declines on recurring international charges, authentication requirements with nobody present to confirm, and cards reissued after loss.
Should I write my own payment retry logic?
No — use your provider's built-in dunning. Effective retry timing depends on decline codes, card type and history, and providers have data on this that you do not. What you should own is what the customer experiences during the retry window, which the provider cannot decide for you.
Should access be suspended when a payment fails?
Rarely immediately. Someone whose card expired loses access before they know there is a problem, and being locked out is what they remember. Full access through the retry window suits most products; degraded read-only access is a reasonable middle position where continued use costs you.
What should a dunning email say?
The fact and the fix in the subject line — 'your payment didn't go through, update your card' — with a one-click link to update, ideally via a signed link that does not require login. State when you will retry and when access ends, and send three or four across the window rather than more.
How do you reduce failed payments in the first place?
Email before cards expire, since the date is known in advance. Use account updater services where your provider offers them, which refresh details automatically when banks reissue cards. Support multiple payment methods so customers have a fallback, and charge at times more likely to succeed.
