Failed Payment Email Template for React & Next.js
Recover 65-70% of failed payments with a production-ready 4-email dunning sequence. Built with React Email, fully typed with TypeScript, and ready for Stripe and Resend.
Why failed payment emails matter for SaaS revenue
The average SaaS business loses 9-12% of MRR to involuntary churn from failed payments
A $50k MRR business loses $60-72k per year to failed payments. Most failures are expired cards and temporary issues, not cancellations.
A 4-email dunning sequence recovers 65-70% of failed payments. Without it, only 25% recover on their own.
88% of payment failures are temporary — expired cards, insufficient funds, or processor errors. The right emails recover them.
The 4-email dunning sequence
Each email escalates urgency while keeping the tone helpful, recovering revenue at every stage
Immediate notification (Day 0)
35-40% recoverySent within 1 hour of failure. Explains what happened without blame, provides a one-click payment update link, and communicates the 7-day grace period. No scary language.
Friendly reminder (Day 3)
15-20% recoveryAdds a countdown (4 days remaining), re-emphasizes the value they'll lose, and lists specific features at risk. Catches customers who forgot or were busy.
Final notice (Day 6)
8-12% recoveryClear last-chance messaging with suspension consequences. Includes a downgrade option for price-sensitive customers and a data export link for those leaving.
Account suspended (Day 7)
2-5% recoveryConfirms suspension, explains 30-day data retention, and provides a one-click reactivation link. No re-onboarding required. Win-backs trickle in over the next month.
Total 4-email recovery rate: 65-75% when implemented correctly
That turns a $60k annual loss into $18-21k — saving your business $39-54k per year
Template features
Everything you need to recover failed payments and reduce involuntary churn
4-email dunning sequence
Complete recovery sequence from immediate notification to account suspension, optimized for maximum recovery rates.
Failure-reason aware
Dynamic messaging based on expired card, insufficient funds, or bank decline with TypeScript union types.
Grace period countdown
Built-in 7-day grace period with urgency escalation across each email in the sequence.
Stripe webhook ready
Handles invoice.payment_failed events with typed props for customer, plan, and payment details.
Recovery metrics built in
Track recovery rates per email, time-to-recovery, and revenue saved with structured data props.
Tone-calibrated copy
Helpful, not aggressive. Each email escalates urgency while preserving customer trust and brand reputation.
Revenue recovery math
See the concrete impact of dunning emails on your bottom line
Without dunning emails
100 failed payments/month (10% failure rate)
25% natural recovery (customers notice on their own)
75 lost customers = $3,750/mo lost
$45,000/year lost
With 4-email dunning sequence
100 failed payments/month (10% failure rate)
70% dunning recovery (via email sequence)
30 lost customers = $1,500/mo lost
$27,000/year saved
Common dunning mistakes to avoid
Most SaaS companies get dunning wrong in predictable ways
Sending only one email
65% of customers don't see the first email. A 4-email sequence recovers 2.2x more revenue than a single notification.
Using aggressive or scary language
Subject lines like 'URGENT: PAYMENT FAILED' increase unsubscribes and hurt brand perception. Helpful and clear tone always outperforms.
No grace period
Immediately suspending accounts after one failure frustrates customers. A 7-day grace period is the industry standard and improves recovery.
Generic failure messages
'Your card was declined' without context doesn't help. Show the last 4 digits, explain the reason, and offer specific solutions.
No downgrade option
If price is the issue, losing $9/month is better than losing $29/month entirely. Offer a cheaper plan in Email 3.
Frequently asked questions
How many dunning emails should I send?
4 emails over 7 days is optimal. Fewer emails leave recovery on the table. More than 4 creates diminishing returns and risks customer frustration. This template includes all 4 at the right intervals.
Should I offer a discount to recover failed payments?
Not in the first 3 emails. Most failures are card issues, not price objections. Email 3 includes a downgrade option for cases where price is the concern, which preserves revenue better than discounting.
What grace period should I give before suspending?
7 days is the industry standard. Shorter periods frustrate customers who are traveling or simply haven't seen the email. Longer periods delay revenue recovery unnecessarily.
Should I suspend access immediately after payment failure?
No. Immediate suspension drives churn. A 7-day grace period keeps the customer using your product (reinforcing its value) while giving them time to update payment. Recovery rates are significantly higher with a grace period.
How do I handle different failure reasons?
The template uses a TypeScript union type for failure reasons and adjusts messaging accordingly. Expired cards get 'update your card,' insufficient funds get 'retry when funds are available,' and declines get 'contact your bank or try a different card.'
What recovery rate should I expect?
A well-executed 4-email sequence recovers 65-70% of failed payments. Email 1 alone recovers 35-40%, Email 2 adds 15-20%, Email 3 adds 8-12%, and Email 4 adds 2-5% through win-backs.
Does this work with Stripe and Resend?
Yes. The template includes a complete Stripe webhook handler for invoice.payment_failed events and sends through Resend. It also works with any email provider that supports React Email.
What happens after account suspension?
Email 4 notifies the customer of suspension, provides a one-click reactivation link, and explains the 30-day data retention policy. This keeps the door open for win-backs without burning bridges.
Stop losing revenue to failed payments
Get this failed payment template plus 60+ other production-ready email templates. One purchase, lifetime updates.