Failed Payment Recovery Playbook Builder

Tell us the payment processor, the failed amount, the decline reason, and the tone you want. Get a 3-email recovery sequence with timing, subject lines, and what to avoid.

$

0 = it just happened. We'll shift the playbook timing accordingly.

Standard 3-email failed payment playbook

Generic failed payment playbook: works for any decline reason when you don't have the decline_code on hand.

Email 1

Right now (within 1 hour of the failed charge)

The customer is still engaged with the product. The fastest email gets the highest reply rate.

Email

Subject: Your last payment for {product} didn't go through

Hi {name},

Just a heads up: your most recent payment for {product} ($49) failed.

This usually happens because of an expired card, a new card number, or a quick bank hold. It's almost never deliberate.

If you can update your card here, we'll retry the charge automatically:
https://billing.stripe.com/p/login/...

Best,
{founder}

Link to include

Card-update / billing portal link

Notes

  • -Frame the failure as routine (expired card / bank hold), not catastrophic.
  • -Plain text only. HTML invoices reduce response rates.

Email 2

Day 3 (72 hours later)

The first email gets ignored more than half the time. The day-3 nudge picks up customers who saw the first one but never acted.

Email

Subject: Quick reminder about {product}

Hi {name},

Following up on the payment that didn't go through. We've retried a couple of times but the charge is still failing.

You can update your card here:
https://billing.stripe.com/p/login/...

Your access to {product} stays active for another few days while we keep trying. After that the subscription will pause automatically. I'd rather not let that happen if it can be avoided.

Best,
{founder}

Link to include

Card-update / billing portal link

Notes

  • -Surface the consequence (subscription will pause) without making it feel like a threat.
  • -Reference the previous retry attempts so the customer knows it isn't a fluke.

Email 3

Day 7 (final notice before auto-cancel)

Most recovery happens in the first three emails. The third is the last chance before the subscription is auto-cancelled.

Email

Subject: {product} subscription is about to pause

Hi {name},

Last note from me. Your {product} subscription will pause tomorrow if the payment doesn't go through.

Updating your card takes 30 seconds:
https://billing.stripe.com/p/login/...

If you've moved on from {product}, no worries. Reply and let me know and I'll close it cleanly. But if you still want access, this is the moment.

Best,
{founder}

Link to include

Card-update / billing portal link

Notes

  • -Offer a clean exit (reply to close) so customers who genuinely left don't feel hassled.
  • -Last chance, but not melodramatic.

Do

  • +Send from the founder's actual email, not billing@.
  • +Use plain text. No HTML invoice block.
  • +Match the message to the decline_code when you have it.
  • +Stop sending the moment the payment recovers.

Don't

  • -Don't apologize for the failed charge. It's not your fault.
  • -Don't offer a discount in the recovery flow.
  • -Don't include unsubscribe footers. This is a billing email, not a newsletter.
  • -Don't blindly retry expired_card, lost_card, or fraudulent declines.

Copy this manually, or let ChurnNote run failed payment recovery automatically.

Connect Stripe or Lemon Squeezy and ChurnNote runs decline-aware dunning from your founder address, with the right template for each decline reason, sent at the right time.

Try ChurnNote

Frequently Asked Questions

How is a playbook different from the dunning swipe file?

The swipe file gives you fixed templates organized by scenario. The playbook builder generates a specific 3-email sequence customized to your processor, the failed amount, the decline reason, and the tone you want. Same underlying templates, but assembled into a tailored sequence with timing notes.

What's the right cadence for failed payment emails?

Day 1 (within an hour), day 3, day 7. That matches Stripe's smart retries and Lemon Squeezy's dunning schedule. Beyond a week, recovery rates drop sharply and continued emails feel like harassment.

Should the tone change based on the decline reason?

Slightly. Expired-card and lost-card scenarios warrant a clean, direct tone (the customer wants the path forward). Insufficient_funds benefits from a gentle, non-judgmental tone (the customer might be embarrassed). Fraud holds need neutrality. The playbook nudges this for you.

Can I run this without writing any code?

Yes. Copy each email from the playbook and paste into your email tool (Loops, Resend, Customer.io, your inbox). Or connect Stripe / Lemon Squeezy to ChurnNote and the entire flow runs from your founder address with zero code.

How much revenue does proper dunning actually recover?

On the low end: Stripe smart retries alone recover 15-25% of failed charges. With a generic dunning email layered on, 30-50%. With decline-code-specific dunning from a real founder address, 60-75%. The math compounds at scale: for a $20K MRR SaaS with a 9% failed payment rate, the difference between 25% recovery and 65% recovery is $7,200/year.

How ChurnNote helps

Decline-aware dunning is where most of the recoverable failed-payment revenue actually lives. Generic emails leave it on the table.

ChurnNote connects to Stripe or Lemon Squeezy and automatically captures cancellation reasons, recovers failed payments, and queues win-back emails. So you stop losing revenue silently.

Start recovering churn

Next step

Don't know the decline code yet?

The Decline Code Explainer covers what each Stripe decline_code means and how to recover it.

Stop guessing. Start asking.

ChurnNote automatically emails customers after they cancel and shows you their honest reply. No surveys. No forms.

Try ChurnNote. $12/mo

Cancel anytime. No contracts.