11 min readRevGuard

How to Write Dunning Emails That Actually Recover Payments

Learn how to structure dunning emails, sequence timing, and CTAs so more failed subscription payments turn into recovered revenue.

Dunning emails do not exist to "notify." They exist to recover payments.

That sounds obvious, but many failed-payment sequences are still written like compliance notices. They explain what happened, but they do not make the next action easy. Stripe's docs are clear that failed-payment notifications are meant to encourage customers to resolve the reason for failure, and that those emails can send users to a Stripe-hosted or custom page to update payment details (Stripe Customer Emails).

That should shape how you write every message in the sequence.

This article is deliberately focused on writing the emails themselves — subject lines, body copy, CTAs, and templates. For the program-level decisions (sequence timing, segmentation, A/B testing, multi-channel strategy, and metrics), see the companion guide: Dunning Email Best Practices: Program Strategy That Maximizes Recovery.

If you want editable examples first, go straight to the dunning email templates. This article explains why those templates work.

What a dunning email needs to do

A dunning email has one job: move the customer from a failed payment to a resolved billing state with as little friction as possible.

That means the email must answer four questions immediately:

  • what happened
  • what should I do
  • by when
  • where do I click

Anything that distracts from those answers weakens recovery.

Start with the structure, not the prose

The best dunning emails are structurally simple:

  1. plain-language problem statement
  2. brief explanation of likely causes
  3. one primary CTA
  4. clear timeline or consequence
  5. support line if help is needed

Stripe's own failed-payment and expiring-card email configuration reflects this logic: the whole purpose is to get the customer to fix billing before recovery fails or service is impacted (Stripe Customer Emails).

The best subject lines are specific and calm

The subject line should increase opens without creating distrust. Good patterns include:

  • action needed: update your payment method
  • we could not process your subscription payment
  • payment issue for your account
  • final reminder: update payment by March 28, 2026

Bad patterns include:

  • vague lines like "important update"
  • fake urgency like "account deleted now"
  • marketing language trying to "sell" the click

Billing messages are operational. Treat them that way.

Why one CTA usually wins

When the customer opens a failed-payment email, the primary action should be obvious. If you offer three equal choices, such as "view invoice," "manage plan," and "update payment method," you create decision friction.

The default CTA should almost always be "Update payment method." Stripe's recovery emails are designed around exactly that action path (Stripe Customer Emails).

Secondary links are fine in the footer, but not in the hero section.

Include a real date, not a fuzzy deadline

Stripe's subscription lifecycle docs show that failed-payment handling depends on your grace period and retry schedule (Stripe Subscription Lifecycle). Customers should not have to guess when access may be interrupted.

Say:

  • update by March 28, 2026 to avoid interruption

Not:

  • please update soon

Exact dates reduce cognitive load and increase urgency without sounding aggressive.

Sequence design matters as much as copy

The most effective dunning emails sit inside a clear sequence, not as one isolated notification.

A practical structure for many SaaS teams:

  • email 1: immediately after failure, informative tone
  • email 2: 24 to 48 hours later, reminder plus simple consequence
  • email 3: 3 to 5 days later, deadline-based notice
  • email 4: final reminder before pause or cancellation

Stripe supports failed-payment notifications, invoice reminders, and automations for custom logic because recovery usually works better as a sequence than a single message (Stripe Customer Emails, Stripe Automations).

Match tone to the stage

Early-stage dunning should sound helpful. Later-stage dunning should sound clear and firm. Neither should sound hostile.

Stage-by-stage guidance:

  • first email: informative and reassuring
  • second email: practical reminder
  • third email: direct deadline notice
  • final email: concise consequence-based warning

Teams often make the first email too harsh or the last email too vague. Both errors reduce conversion.

Mention likely causes only if they reduce confusion

Stripe lists common failure reasons such as expired cards, insufficient funds, incorrect card data, and authentication issues (Stripe Card Declines, Stripe Decline Codes). Including one short sentence like "This can happen when a card expires or a bank declines the charge" can reduce anxiety because it tells customers the issue is routine.

Do not overload the email with technical detail. You are lowering uncertainty, not teaching payment operations.

The landing page is part of the email

A dunning email can have a perfect subject line and still underperform if the linked page is slow, confusing, or not mobile-friendly. Stripe allows merchants to send customers to a Stripe-hosted page or their own custom subscription management page (Stripe Customer Emails).

That means email performance depends on:

  • click quality
  • page speed
  • trust cues
  • mobile completion rate
  • whether the page immediately shows the right action

Email copy and update UX should be owned as one funnel.

Mobile changes the writing style

Many billing emails are opened on mobile, which means:

  • front-load the reason
  • keep paragraphs short
  • place the CTA early
  • avoid multi-link clutter
  • write subject lines that survive truncation

If your sequence was drafted for a desktop inbox, you are probably hiding the important part too low in the message.

A practical template formula

Here is a reliable format for most brands:

Subject: We couldn't process your subscription payment

Body:

Hi [First Name],

Your latest payment for [Product] did not go through.

This can happen when a card expires, billing details change, or a bank declines the charge.

Please update your payment method by [Date] to keep your subscription active.

[Update payment method]

If you need help, reply to this email.

That structure is intentionally plain. Plain is good in billing recovery.

What to personalize

Useful personalization:

  • first name
  • product name
  • exact deadline
  • account or plan context if helpful

Unhelpful personalization:

  • long account metadata
  • too much invoice detail
  • anything that competes with the CTA

Personalization should reduce ambiguity, not add content.

Metrics that tell you if the copy is working

Track:

  • open rate by subject line
  • click-through rate on the main CTA
  • update-page completion rate
  • recovered revenue per email step
  • support replies triggered by each message

Open rate matters, but recovered revenue matters more. A sensational subject line that increases opens but decreases trust is not a win.

Pair that reporting with the failed payment calculator to translate copy improvements into MRR.

Where pre-dunning fits

Not every recovery message should begin after failure. Stripe also supports expiring-card notifications before the card expires (Stripe Customer Emails). That makes pre-dunning one of the best ways to prevent avoidable failures before the dunning sequence even starts.

For the upstream strategy, read Pre-Dunning: How to Prevent Failed Payments Before They Happen and scan your portfolio with the card expiry scanner.

When to move beyond individual emails

If your emails are solid but recovery still plateaus, the bottleneck is usually at the program level — sequence timing, segmentation, or retry coordination. The dunning program strategy guide covers those decisions.

If the bottleneck is tooling rather than templates, review the comparison hub at /compare, including RevGuard vs Gravy and RevGuard vs Stripe Dunning.

Final takeaway

Dunning emails recover payments when they are direct, specific, and built around one obvious next step. The best messages do not sound clever. They sound clear.

Write for action, not for tone. Use exact dates. Keep the CTA singular. Treat the landing page as part of the email. Then test the sequence with recovered revenue as the outcome metric.

Sources