Skip to content

The Recovery Ledger · 2026-07-02 · 6 min

Dunning emails that get paid: 4 templates + exact timing

A dunning email has one job: get a busy, well-meaning customer to spend 40 seconds updating a card. Most fail because they read like a collections notice. These four templates read like a person.

The schedule that works

  • Hour 1: first email assume good faith, link to the invoice
  • Day 3: second email add what happens if it lapses (access, data)
  • Day 7: third email shorter, plainer, one link
  • Day 13: final email honest deadline, warm tone; cancel the sequence the moment the invoice is paid

Template 1 expired card

Subject: your card on file expired. "Hi {first name} your {product} payment didn't go through because the card on file expired. Takes about 30 seconds to fix: {invoice link}. Everything keeps running in the meantime. {founder}"

Template 2 insufficient funds

Subject: payment didn't go through (no action lost). "Hi {first name} the {amount} charge for {product} bounced this morning. It happens; banks are banks. The invoice link below retries whenever you're ready: {invoice link}."

Template 3 generic decline

Subject: quick billing hiccup. "Hi {first name} your bank declined the {amount} renewal and didn't tell us why (they rarely do). Fastest fix is re-entering the card here: {invoice link}. Reply if anything looks off a human reads this inbox."

Template 4 final notice

Subject: last one from us, promise. "Hi {first name} we've tried a few times to renew {product} and haven't been able to charge your card. We'll pause your account on {date} so you don't get surprise emails forever. One click keeps everything: {invoice link}."

Why decline reason matters

An expired-card email that says 'your bank declined the charge' reads as careless the customer knows their card expired. Matching copy to the actual decline code is the difference between 'this company is on it' and 'this company is spamming me.' Recoupe generates decline-reason-specific variants automatically (and you can edit every word).

See which decline reasons are costing you free 90-day audit →

Recoupe recovers the revenue your processor's retries leave behind $29/mo, honest attribution.

Run my free failed-payment audit →