← Recoupt

Guide

Dunning email best practices

An effective dunning email follows six rules: lead with what’s wrong, give one clear action, send from your custom domain, escalate tone across a 3-step sequence (not urgency in any single message), include the card brand and last 4 digits, and show the amount due in the customer’s local currency. Together these turn a failed payment into a recovered one most of the time.

The six rules

1. Lead with what’s wrong

The first sentence should state that the payment failed. Don’t bury it under pleasantries or marketing copy. The customer needs to know what happened so they can decide what to do, and they decide that in the first three seconds of skimming the email.

2. One clear action

One button. One link. One thing the customer can do. The link should go to Stripe’s hosted billing portal — not your login page, not your billing settings, not a marketing landing page. The portal is PCI-compliant, mobile-friendly, and gets the customer back to a working subscription in 30 seconds.

3. Send from your custom domain

A dunning email from your-product.com reads as a legitimate notification the customer should act on. A dunning email from a generic vendor address reads as something to delete. Set up DKIM and SPF alignment so the email passes authentication checks — otherwise it goes to spam regardless of how good the copy is. On Recoupt’s paid plan this is one-click.

4. Escalate tone, not urgency

Any single dunning email should be calm and human. The escalation lives in the sequence, not in the message: Email 1 is a friendly heads-up, Email 2 adds gentle urgency, Email 3 names a specific access-lapse date. None of them should be alarming. A customer whose card expired two weeks ago is not a problem customer — they’re a customer who needs a 30-second nudge.

5. Include the card brand and last 4

Many customers have multiple cards on file across many services. Telling them which card failed (“Visa ending in 4242”) makes it instantly actionable. Without that detail, the email reads as “something failed somewhere” and the customer’s natural response is to defer.

6. Show the amount due in their currency

Stripe stores the customer’s billing currency on the customer object. Use it. A US customer sees “$25.00”; a UK customer sees “£19.95”. Showing a foreign-currency amount or none at all triggers a small but real moment of friction where the customer questions whether the email is legitimate.

3-step sequence templates

The standard pattern is three emails over 7-10 days, each with a different tone but the same one-click action. Subject lines and opening sentences below; full templates are customizable inside the Recoupt dashboard.

Email 1 — day 0 — friendly heads-up

Subject: A quick note about your [Product] payment

“Hi [Name], your recent [Product] payment of [Amount] didn’t go through — your [Card brand ending in 1234] was declined. No action needed right now if you’ve already updated your card. If not, you can update it here in 30 seconds. [Update payment]”

Email 2 — day 3-5 — gentle urgency

Subject: Action needed: your [Product] payment

“Hi [Name], we tried your [Card brand ending in 1234] again and it’s still being declined. To keep your [Product] access active, please update your payment method when you have a moment. It takes about 30 seconds. [Update payment]”

Email 3 — day 7-10 — final notice

Subject: Final notice: [Product] access ending [Date]

“Hi [Name], your [Product] subscription will end [Date] if your payment isn’t updated. Your [Card brand ending in 1234] has been declined three times. To keep your account active and avoid losing your data, please update your card. [Update payment]”

What not to do

  • Don’t use collections-style language. “Past due” or “account delinquent” reads as a threat. The customer probably had a card expire; you’re asking them for a 30-second favor, not pursuing a debt.
  • Don’t link to your login page. Make the customer log in to update a card, and 30% of them won’t finish. Link to Stripe’s hosted billing portal — one click, no login.
  • Don’t send more than three emails. A fourth or fifth email is harassment with diminishing returns. If three messages didn’t recoup, the customer either chose not to act or never saw any of them.
  • Don’t bury the action. The update-payment link should be in the first paragraph and as a button. Customers skim; they need to find the action in two seconds.
  • Don’t send from a no-reply address. Set reply-to to your support inbox so customers can ask questions instead of giving up. Most recovered payments include at least one customer who replied first.

Frequently asked questions about dunning email best practices

What are dunning email best practices?

The six rules of effective dunning emails: (1) lead with what’s wrong — say the card failed in the first sentence; (2) one-click action — link directly to Stripe’s hosted billing portal, never to a login page; (3) send from your custom domain with DKIM/SPF alignment, not a generic vendor address; (4) escalate tone across the sequence, not urgency in any single email; (5) include the card brand and last 4 digits so the customer knows which card to update; (6) show the amount due in the customer’s local currency.

What should the first dunning email say?

The first dunning email should be a friendly heads-up with no urgency. Subject line: “A quick note about your [Product] payment” or similar neutral framing. Body: state that the card failed, identify which card (brand and last 4), give the amount due, and provide a one-click link to update payment. Do not mention cancellation or service interruption in the first email — the customer probably just needs to update an expired card and will fix it before the second email is needed.

Should dunning emails come from a custom domain?

Yes. A dunning email from your-product.com reads as a legitimate notification the customer should act on. A dunning email from a generic vendor domain reads as something to delete. The branded sending domain matters more than it looks — it changes whether the customer trusts the link enough to click. Recoupt sends dunning emails from your custom domain with DKIM and SPF alignment on paid plans.

How many dunning emails should you send before stopping?

Three emails over 7-10 days is the standard. Email 1 (day 0): friendly heads-up, no urgency. Email 2 (day 3-5): gentle urgency, clarifies stakes. Email 3 (day 7-10): final notice with a specific access-lapse date. After the third email, continued sending becomes harassment with diminishing returns — the customer has seen the message three times and either chose not to act or didn’t see any of them (deliverability issue rather than persuasion issue).

What information should a dunning email include?

Every dunning email should include five elements: the customer’s name (or company name if no first name on the Stripe customer object), the amount due in their local currency, the card brand and last 4 digits of the failed card, a one-click link to update payment via Stripe’s hosted billing portal, and a CAN-SPAM-compliant unsubscribe link in the footer. The reply-to should be your support address so customers can ask questions instead of bouncing the email.

Ship a good sequence today.

Recoupt ships these rules as defaults: branded 3-step sequence, custom domain, one-click Stripe billing portal, card last 4, local currency. Free under $1K MRR.