·6 min read

5 Failed Payment Email Templates That Actually Get Customers to Update Their Card

Copy-paste dunning email templates for SaaS — from the first payment failure notification to the final cancellation warning. Tested, proven, and ready to use.


The average SaaS dunning email reads like a legal notice. No wonder customers ignore them.

Good dunning emails are short, human, and make it embarrassingly easy to fix the problem. Here are 5 templates you can use today — one for each stage of the recovery sequence.

The Principles Behind High-Converting Dunning Emails

Before the templates: three rules that make the difference between a 15% and a 45% recovery rate.

1. Plain text beats HTML. Designed email templates feel like marketing. Plain text feels like a message from a real person. For dunning — which is fundamentally a 1:1 communication about money — plain text consistently outperforms by 20-30% open rate.

2. One CTA, nothing else. Every extra link reduces conversion. The CTA is: update your payment method. Nothing else belongs in a dunning email.

3. Never sound accusatory. Most customers don't know their payment failed. Treat it as a technical issue (because it usually is) and you'll get far more responses than if you imply they're avoiding payment.

Template 1: The First Notification (Day 0–1)

Subject: Quick heads up about your payment

Hi [First name],

Just a quick note — the payment for your [Product] subscription
didn't go through.

This usually happens with expired cards or temporary bank issues,
so it's likely an easy fix. You can update your payment details here:

[Update payment method →]

Your account is still active. Let me know if you have any questions.

[Your name]

Why it works: Normalizes the situation immediately ("usually happens"), removes embarrassment, confirms the account is still active, gives one simple action. This single email, sent within hours of failure, recovers 25-35% of recoverable payments on its own.

Template 2: The Follow-Up (Day 3–4)

Subject: Still having trouble with your payment?

Hi [First name],

Following up on the payment issue from a few days ago —
it looks like it's still pending.

To keep your [Product] access, please update your payment details:

[Update payment method →]

Your account will stay active for a few more days.
If you're running into any trouble, just reply to this email.

[Your name]

Why it works: Introduces soft urgency ("a few more days") without being threatening. The "just reply" line invites dialogue and catches customers who have a specific issue they need help with.

Template 3: The Urgency Email (Day 6–7)

Subject: Your [Product] access will end in 48 hours

Hi [First name],

I wanted to give you enough notice: your [Product] subscription
will be canceled in 48 hours if the payment issue isn't resolved.

If you'd like to keep your account active:

[Update payment method →]

If you've decided to move on, no hard feelings — thank you
for being a customer. I'd genuinely appreciate any feedback
if you have a minute.

[Your name]

Why it works: Specific deadline (48 hours, not "soon"). The graceful exit line is not weakness — it reduces defensiveness and often prompts replies from customers who actually do want to stay but feel awkward about the situation.

Template 4: The Cancellation Notice (Day 8–10)

Subject: Your [Product] subscription has been canceled

Hi [First name],

Your [Product] subscription has been canceled due to the
unresolved payment issue. Your data is safe and will be
kept for [X days/months] in case you want to reactivate.

If this was a mistake or you'd like to reactivate:

[Reactivate your account →]

Thank you for being a customer. If there's anything I could
have done better, I'd love to hear it.

[Your name]

Why it works: Reassures about data (a major anxiety). Keeps the door open for reactivation. Asking for feedback is genuine — some of your best product insights come from these responses.

Template 5: The Win-Back Email (Day 30)

Subject: We kept your [Product] data — here's how to come back

Hi [First name],

It's been about a month since your [Product] subscription ended.
Your data is still here if you want to pick up where you left off.

I'm not going to pitch you — if [Product] wasn't working for you,
that's useful for me to know. But if the timing was just bad or
the payment issue was the main thing, reactivating takes about
30 seconds:

[Reactivate with one click →]

Either way, thanks for giving [Product] a try.

[Your name]

Why it works: Low pressure. Sent after enough time has passed that it doesn't feel like harassment. "I'm not going to pitch you" is counterintuitively the most effective sales line in win-back emails — it disarms the customer and makes them more likely to engage.

Timing Summary

  • Template 1: Within 2-4 hours of payment failure
  • Template 2: Day 3-4 after failure
  • Template 3: Day 6-7 after failure
  • Template 4: Day of cancellation
  • Template 5: 30 days after cancellation

Stop the sequence the moment the payment succeeds — nothing worse than receiving a "your account will be canceled" email after you've just updated your card.

Automating This Sequence

Sending these manually is unsustainable at any meaningful scale. You need a system that: listens for Stripe invoice.payment_failed webhooks, triggers the right email at the right time, retries the charge in the background, and cancels the sequence the moment payment succeeds.

You can build this yourself with Stripe Webhooks + Resend/Postmark (plan for 30-40 hours of engineering time), or use a tool like Holdfast that handles the entire flow automatically.


Holdfast sends these sequences automatically for your Stripe subscriptions — no engineering required. Get early access →

Recover failed Stripe payments automatically

Holdfast handles smart retries + dunning sequences on autopilot. Join the early access waitlist — free, no credit card.

Get early access →