Failed payment emails: how to recover subscriptions before they churn

Learn how failed payment emails and dunning sequences recover SaaS subscriptions: timeline, what each email should say, card expiry reminders and metrics.

7 min read
On this page

Some customers leave because they decided to. Others leave without deciding anything: their card expired, the bank declined a renewal, and nobody told them, or they missed the one email that did. That second kind of loss is called involuntary churn, and for a subscription business it is the easiest churn to win back.

The tool for winning it back is a dunning sequence: automatic retries of the payment, paired with a few clear emails asking the customer to update their card. This guide covers how that sequence works, an example timeline, what each email should say, and how to prevent failures before they happen.

What is involuntary churn?

Involuntary churn is when a customer stops paying without choosing to cancel. The subscription ends because a payment failed and was never fixed, not because the customer was unhappy.

The usual causes are mundane:

  • Expired cards. The card on file reached its expiry date and the customer never updated it.
  • Replaced cards. A lost or stolen card was canceled and a new one issued, with a new number.
  • Insufficient funds. The account was low on the day of the charge.
  • Bank declines. The issuing bank refused the charge, often for a fraud check or a limit, and usually without a detailed reason.

Almost none of these customers meant to leave. Most will fix the problem in a minute, as long as they hear about it clearly and in time.

What is a dunning email?

A dunning email (or failed payment email) tells a customer that a payment did not go through and asks them to update their payment method. "Dunning" is an old word for demanding payment of a debt, but a good dunning email reads nothing like a debt collector. It reads like a helpful heads-up.

Dunning emails come as a sequence, timed alongside the billing system's retries.

How a dunning sequence works

How dunning works: a card payment fails at renewal, the billing system retries over several days while emails ask for a new card, and once the card is updated the next charge goes through. Updated means the subscription is saved, ignored means it is canceled
Retries and emails work together until the card is fixed.
  1. 1
    The payment fails. A renewal charge is declined. Your billing provider marks the invoice as unpaid and notifies your system; with Stripe, through the invoice.payment_failed webhook event.
  2. 2
    The first email goes out. Right away, saying the payment failed and linking to the page where the customer can update their card.
  3. 3
    The provider retries. Over the following days, the charge is attempted again. Some failures, like insufficient funds, fix themselves.
  4. 4
    Reminders follow failed retries. Each failed attempt can trigger a shorter follow-up email.
  5. 5
    A final notice. Before the last retry, an email says clearly what happens next and when.
  6. 6
    Access is paused or canceled. If nothing works, the subscription is canceled, or access paused, depending on your policy. A successful payment at any step stops the sequence.

Example dunning email timeline

An example dunning timeline: day 0 the payment fails and email 1 goes out, day 3 a retry fails and email 2 goes out, day 7 another retry fails and a final notice goes out, day 14 the last retry fails and the subscription is canceled. If the card is updated at any step, the invoice is charged again and the emails stop
One example. The right spacing depends on your billing cycle.
DayWhat happensEmail
0First charge fails"Your payment didn't go through" with a link to update the card
3Retry failsShort reminder
7Retry failsFinal notice, with the date access ends
14Last retry failsSubscription canceled, with a way to come back

Monthly plans often run the whole sequence over one to three weeks. Annual plans involve more money, so a longer window and a more personal touch, even a message from a person, can be worth it.

What to write in a failed payment email

Every email in the sequence follows the same rules:

  • A clear subject. "Your payment for Acme didn't go through" works. "Action required!!!" looks like phishing.
  • Why it failed, in plain words. "Your card ending in 4242 was declined" or "your card has expired". Skip bank codes.
  • One button. It goes straight to the page where they can update their card, ideally without having to log in first.
  • What happens next. When you will try again, and when access ends if nothing changes.
  • No blame. Assume it is an accident, because it almost always is.
  • A way to reach a person. Some customers want to switch plans or pay another way.

A first email might read:

Subject: Your payment for Acme didn't go through

Hi Sam,

We tried to charge your card ending in 4242 for your Acme Pro
plan ($29), but the bank declined it. This happens, often
because a card expired or was replaced.

[Update your card]

We'll try again in 3 days. Your account stays fully active
in the meantime.

Questions? Just reply to this email.

And the final notice:

Subject: Last reminder: your Acme account pauses on May 14

Hi Sam,

We still couldn't charge your card for Acme Pro. If it isn't
updated by May 14, your account will be paused. Your projects
and data stay safe, and you can pick up where you left off.

[Update your card]

Pre-dunning: card expiry reminders

The best failed payment is the one that never happens. Pre-dunning emails go out before a renewal is at risk, most often when the card on file is about to expire.

A simple version: a month before the expiry date, and again a week before the next renewal, email the customer asking them to update the card. Same rules as above: one clear subject ("Your card on file expires soon"), one button, no alarm. Some billing providers can update card details automatically with the card networks for some cards, which reduces how often you need to ask, but does not remove the need.

Smart retries in your billing provider

Most billing providers retry failed payments for you, and many let you choose how. Stripe, for example, offers automatic retries that pick timing based on its own data, as well as a custom schedule, and can send its own emails to customers. Use the retries: some failures succeed on a later attempt without the customer doing anything.

Then decide who sends the emails. The provider's built-in emails are a reasonable default. Sending your own lets you match your product's voice, send from a real person, add context about what the customer would lose, and link directly to your billing page. Whichever you choose, send one set of emails, not both, or customers get two warnings for the same problem.

Failed payment emails are transactional

Marketing versus transactional email: newsletters and promos stop when someone unsubscribes, while a failed payment email is transactional and is still sent after an unsubscribe
An unsubscribe from the newsletter is not an unsubscribe from the account.

A failed payment email is about an account the customer is paying for. That makes it transactional, like a receipt or a password reset, not marketing. Two consequences:

  • Send it even to people who unsubscribed from marketing. Opting out of your newsletter does not mean opting out of hearing that their account is about to stop.
  • Keep it on your transactional stream. Send it alongside receipts, with no promotions in it. A discount offer turns it into marketing, and mixes your most important emails with your least wanted ones.

More on why the two streams stay apart in transactional vs marketing email.

Dunning metrics: measure your recovery rate

  • Recovery rate: of the subscriptions that had a failed payment, the share that ended up paid. This is the number your dunning sequence exists to raise.
  • Time to recovery: how many days between the first failure and the successful payment. Shorter means less time at risk.
  • Recovery by step: which email, or which retry, recovered the payment. It tells you whether the final notice is doing the heavy lifting or the first email already is.
  • Involuntary churn: subscriptions lost to failed payments, tracked separately from customers who chose to cancel.

Clicks on the "Update your card" button are useful too, but the payment itself is the result that matters.

Recover more, then prevent more

A good dunning setup is a short list: retries in your billing provider, three or four plain emails with one button each, card expiry reminders, and all of it on the transactional stream. Make sure those emails reach the inbox with a sound email deliverability setup, which you can check with the deliverability setup checker. And for the other end of the customer lifecycle, see how to build SaaS onboarding emails that follow what users do.

FAQ

Frequently asked questions

What is a dunning email?
An email sent to a customer after a payment fails, asking them to update their payment method. A dunning sequence is the series of these emails sent while the billing system retries the payment, ending with a final notice before access is paused or canceled.
Why do subscription payments fail?
Most often because the card expired, was replaced after being lost or stolen, had insufficient funds on the day of the charge, or was declined by the bank for a reason it does not share, such as a fraud check. Very few failures are customers trying not to pay.
How many failed payment emails should I send?
Usually three or four over one to three weeks. One when the payment first fails, one or two reminders as retries fail, and a final notice before access is paused or canceled. Stop the sequence as soon as the payment succeeds.
Should I send failed payment emails to people who unsubscribed?
Yes. A failed payment email is a transactional message about an account the customer pays for, not marketing, so it should still reach people who unsubscribed from your newsletter. Keep it free of promotions so it stays transactional.
Can my billing provider send these emails for me?
Many can. Stripe, for example, can retry failed payments automatically and send its own emails to customers. They are a good start, but your own emails let you control the tone, the sender, the timing and the link straight to your billing page.
Which Stripe event signals a failed payment?
The invoice.payment_failed webhook event fires when a payment attempt on an invoice fails. It is the usual trigger for the first email of a dunning sequence, and a later successful payment on the same invoice is the signal to stop it.
What is a pre-dunning email?
An email sent before a payment fails, typically when a card on file is about to expire, asking the customer to update it ahead of the next renewal. It prevents the failure instead of recovering from it.

Turn your signups into customers with email

Connect Supabase and Stripe, let your agent draft your first flow, and send your first 1,000 emails for free.

Start with 1,000 free emails