7 dunning email examples that actually recover revenue

10 min read · Copy you can steal, and the psychology behind each message

Dunning emails recover 30-40% of failed subscription revenue when done well — and most of that comes from the copy, not the tooling. Below are seven templates covering the full lifecycle: the core three-email sequence plus the variants that catch everything the core sequence misses. Use {{first_name}}, {{amount}}, and {{update_card_url}} as your personalization variables.

The core sequence: Day 1, 4, 7

1. Day 1 — The friendly heads-up

Tone: casual, helpful, zero pressure. This single email drives 50-60% of all dunning recoveries — it catches everyone who just needs a nudge.

Subject: Quick heads-up: your payment didn't go through

Hi {{first_name}}, just a quick heads-up — we tried to charge {{amount}} and the payment didn't go through. Usually just an expired card, nothing to worry about. Update it here (30 seconds): {{update_card_url}}

Why it works: it normalizes the situation ("usually just an expired card"), minimizes the effort ("30 seconds"), and asks for exactly one thing. No guilt, no urgency — most people act on this alone.

2. Day 4 — The firmer nudge

Tone: direct, slightly urgent, still warm. Converts the procrastinators — people who meant to do it and forgot.

Subject: Your subscription is at risk — update your card

Hi {{first_name}}, we still haven't been able to process your {{amount}} payment, and your subscription will be paused soon. Update your card here: {{update_card_url}}

Reply to this email if you're having trouble — a human reads every reply.

Why it works: it names a real consequence (paused subscription) without threats, and the "human reads every reply" line surfaces edge cases — expired company cards, changed billing contacts, people who actually want to cancel and would otherwise just let it die.

3. Day 7 — The final notice

Tone: plain, factual, respectful. The last touch before cancellation. Keep it short and offer the graceful exit.

Subject: Final notice: keep your account active

Hi {{first_name}}, final notice — we've tried to collect {{amount}} three times. Your subscription cancels tomorrow unless your card is updated: {{update_card_url}}

If you meant to cancel, no hard feelings.

Why it works: the deadline is real and specific ("tomorrow"), and the graceful exit paradoxically saves accounts — some customers update precisely because you didn't guilt-trip them. This email drives the final 10-15% of recoveries.

The variants most founders skip

4. Pre-expiry warning (7 days before the card expires)

Tone: proactive, service-oriented. This is prevention, not recovery — and it's the cheapest email you'll ever send.

Subject: Your card expires soon — 1-minute fix

Hi {{first_name}}, the card on your account expires this month. Update it now and your subscription keeps running without a hiccup: {{update_card_url}}

Takes about a minute. Future-you says thanks.

Why it works: you're solving the problem before it exists, which customers experience as good service rather than billing nagging. Card-expiry data comes free from Stripe. There's no reason not to send this.

5. The "wrong person" redirect (Day 2)

Tone: helpful, assumes a handoff is needed. A surprising share of failed payments — especially in B2B — fail because the card belongs to someone who left the company.

Subject: Quick question about your billing

Hi {{first_name}}, our last charge of {{amount}} didn't go through. If someone else on your team handles billing, could you forward this to them? They can update the card here: {{update_card_url}}

Why it works: it gives the recipient an easy, face-saving action (forwarding) instead of a task they can't complete. In team accounts this variant alone can recover failures that three standard dunning emails never touch.

6. The plain-text personal note (Day 10)

Tone: genuinely personal, from the founder. Send as plain text, no branding, no HTML — it should look like you typed it.

Subject: {{first_name}}, should I cancel your account?

Hi {{first_name}} — it's [your name], founder of [product]. Your subscription is still paused over a failed {{amount}} charge, and I didn't want to just cancel it without checking. Want me to keep it open a few more days? Just reply here.

Why it works: pattern interruption. After a week of templated emails, a plain-text message from a named human gets opened and replied to at dramatically higher rates. The replies tell you exactly why payment failed — information no automation can give you. Only use this sparingly and only mean it.

7. The win-back (30 days after cancellation)

Tone: warm, no pressure, new information only. Some customers who "churned" via failed payment actually just had a bad month.

Subject: We saved your data — want back in?

Hi {{first_name}}, your [product] account was cancelled last month over a failed payment. We kept your data intact. If the timing's better now, you can reactivate in one click: {{update_card_url}}

No hard feelings either way.

Why it works: it removes every objection at once — data preserved, one click, no guilt. Win-back emails to involuntary churners convert far better than win-backs to people who actively cancelled, because these customers never decided to leave.

Rules that apply to all seven

  • One link, above the fold. Every email has exactly one job: the click to the card-update page.
  • Under 100 words. Nobody reads a 400-word billing email. Say what happened, say how to fix it, get out.
  • From a human, never "noreply." Replies to dunning emails are disproportionately from customers with real billing problems your automation can't solve.
  • Stop the sequence the moment payment succeeds. Nothing destroys trust like a "final notice" arriving after the customer already paid.

Don't want to hand-roll all seven?

Recoverly runs dunning sequences automatically — your branding, your voice, your card-update page. Set it up in an afternoon for $29/month.

Calculate what you'd recover

See Recoverly pricing →