How to Set Up Failed Payment Recovery Emails (Dunning)

Failed payments are one of the biggest sources of preventable churn in SaaS. The customer didn't decide to leave. Their credit card just didn't work. And yet, if you don't handle it well, they're gone.
The typical scenario: a card expires, hits its limit, or gets flagged by fraud detection. Stripe retries automatically a few times. If all retries fail, the subscription gets cancelled. The customer might not even realize what happened until they try to log in and find their account suspended.
This is involuntary churn, and it's largely recoverable. A good dunning sequence (the industry term for failed payment recovery) can save 20-50% of these at-risk customers. Here's how to build one.
Understanding Why Payments Fail
Before building emails, understand the causes. Most failed payments fall into a few categories.
Expired cards are the most common cause. Credit cards expire, and users forget to update their billing information. This is completely recoverable. The customer wants to continue. They just need to enter new card details.
Insufficient funds or credit limit issues happen when a card is maxed out or the account is low. This is usually recoverable once the user is notified, though they may need a few days to resolve the underlying issue.
Fraud blocks happen when the card issuer flags the charge as potentially fraudulent. This is common with international customers or unusual spending patterns. The customer can usually resolve it by confirming the charge with their bank.
Card cancelled or closed means the card no longer exists. The user needs to provide a completely different payment method. This is still recoverable but requires more effort from the customer.
Technical issues (processor downtime, temporary holds) are rare but happen. Stripe's automatic retries usually handle these without customer involvement.
The key insight is that most failed payments are not the customer's fault and not a signal that they want to cancel. They're administrative issues that can be fixed with a reminder and an easy path to resolution.
The Anatomy of a Dunning Sequence
A dunning sequence is a series of emails that alert the customer to a payment problem and guide them toward resolution. Most sequences include 3-5 emails over 7-14 days.
The sequence starts when a payment fails and ends when either the payment succeeds (through retry or manual update) or the subscription is cancelled. As soon as payment succeeds, the customer should be removed from the sequence immediately.
Each email in the sequence serves a different purpose. Early emails inform and assist. Later emails create urgency. The final email warns of consequences.
The tone should be helpful throughout, even as urgency increases. This isn't the customer's fault. Getting angry or accusatory will just drive them away.
Email 1: The Immediate Alert
Send the first email immediately when a payment fails. Within minutes, not hours. The customer might still be near their computer or phone. They might be able to fix it right now.
The email should be clear about what happened without being alarming. "There was an issue processing your payment for [Product]" is better than "PAYMENT FAILED: ACTION REQUIRED." The first is informative. The second sounds like a scam.
Explain what happens next. Most payment processors (including Stripe) automatically retry failed payments. Tell the customer this is happening. "We'll automatically try again in 3 days" reduces anxiety because they know they don't need to panic.
Provide a way to fix it now. Include a direct link to update their payment method. Don't make them log in and navigate to settings. Deep link them directly to the billing page.
Offer help. Some customers don't know how to update their card, or they're confused about what happened. Include your support email and let them know you're available to help.
Here's an example structure:
Subject: Issue with your [Product] payment
Body:
Hi [Name],
We tried to process your payment for [Product], but it didn't go through. This sometimes happens when cards expire or hit their limit.
We'll automatically try again on [date]. If you want to update your payment method now, you can do that here:
[Button: Update Payment Method]
If you're not sure what happened or need help, just reply to this email and we'll figure it out together.
[Your name]
Email 2: The Follow-Up (Day 3-4)
If the automatic retry fails, send a follow-up email. By now, the customer has had a few days to potentially see the first email and take action. If they haven't, they need another nudge.
This email should reference that this is the second notification. "We tried to process your payment again, but it still didn't go through" makes clear this is ongoing.
Add some urgency, but keep it measured. "Your account is still active, but we'll need to resolve this soon" signals importance without creating panic.
Reiterate the solution. The same link to update payment, the same offer to help. Repetition is fine because some customers just need multiple reminders before they take action.
Consider suggesting specific causes. "This often happens when cards expire. If your card recently got a new expiration date, that's probably the issue." Giving people a likely explanation helps them understand what to do.
Email 3: The Urgency Email (Day 7)
By day seven, you're approaching the typical window when subscriptions get cancelled for non-payment. This email needs to communicate real urgency.
Be direct about the timeline. "If we can't process your payment by [date], your subscription will be cancelled." Clear deadlines motivate action.
Explain the consequences clearly. What happens to their data? Their account? Their saved work? Users need to understand what they'll lose. "You'll lose access to your campaigns and subscriber data" is more motivating than "your subscription will be cancelled."
Make the fix as easy as possible. This is your last best chance to recover them. If you can pre-fill anything, do it. If you have a phone number and can offer to process the update over a call, offer that. Remove every possible barrier.
Consider offering to help directly. "If something's preventing you from updating your payment, let me know. I can extend your deadline or help you figure out an alternative." This personal touch can save customers who have legitimate issues.
Email 4: The Final Warning (Day 10-12)
If you haven't recovered the customer by now, send one final email making clear that cancellation is imminent.
The subject line should be unmissable. "Your [Product] subscription will be cancelled tomorrow" is direct.
The email should be short. By this point, long explanations don't help. State the deadline, state the consequence, provide the link to fix it, and stop.
Don't be angry or guilting. Even at this stage, the tone should be "we want to keep you, here's how to make that happen." Burning bridges doesn't help anyone.
Include a way to reactivate after cancellation. "If your subscription does get cancelled, you can reactivate anytime by signing back in and updating your payment method." This reduces the finality and keeps the door open.
Email 5: Post-Cancellation (Optional)
Some companies send an email after the subscription is actually cancelled. This can recover customers who meant to update their payment but ran out of time.
Keep it simple. "Your subscription was cancelled due to payment issues. If you want to come back, you can reactivate here." Include a link to restart the subscription.
Some companies offer a discount at this stage as a final incentive. This is a judgment call. It can recover additional customers, but it can also train customers to wait for discounts. Know your economics.
If you do offer a win-back discount, limit it. "Reactivate in the next 7 days and get 20% off your first month back" creates urgency around the offer itself.
Technical Implementation
The technical setup requires tracking payment events and triggering emails appropriately.
Listen for Stripe's invoice.payment_failed webhook (or equivalent from your payment processor). When this fires, add the customer to your dunning sequence.
Build suppression logic immediately. The most important thing is removing customers from the sequence when payment succeeds. Listen for invoice.payment_succeeded and immediately stop the dunning sequence for that customer. Nothing looks worse than asking someone to fix their payment right after they successfully paid.
Handle the subscription cancelled event too. If the subscription is cancelled (either by the customer or automatically due to failed payment), stop the dunning sequence. They're no longer in a recoverable state through dunning.
Consider the timing carefully. Don't send dunning emails in the middle of the night (customer's timezone). Don't send on weekends if you can't provide support. Time the emails for when customers can actually take action.
Test the sequence end-to-end. Create a test subscription, trigger a failed payment, verify the emails fire correctly, update the payment method, and verify the sequence stops. Do this before going live.
Measuring Dunning Performance
The key metric is recovery rate: what percentage of customers who enter the dunning sequence successfully resolve their payment?
Good dunning sequences recover 25-40% of failed payments. Great ones can hit 50%+. If you're below 20%, there's significant room for improvement.
Track recovery by email. Which email is most effective at driving resolution? This tells you where users are most responsive and where to focus optimization efforts.
Track time to recovery. How quickly do customers fix their payment after entering the sequence? Faster is better. If most recoveries happen after the final warning email, you might be able to accelerate the sequence.
Monitor opt-outs and complaints. Dunning emails should have near-zero spam complaint rates. If customers are marking them as spam, your frequency is too high or your tone is too aggressive.
Common Mistakes
Waiting too long to start the sequence is the biggest mistake. If your first dunning email goes out days after the payment fails, you've lost the moment. Send immediately.
Being too aggressive hurts more than it helps. Daily emails begging for payment feel desperate and annoying. Space your emails appropriately and maintain a professional tone.
Not removing recovered customers is embarrassing. If someone updates their payment and then gets a "your payment failed" email, they'll question your competence. Build robust suppression logic.
Forgetting to explain the resolution path leaves customers stuck. Every dunning email should include a clear, direct link to fix the problem. Don't assume they know where to go.
Not offering human help misses recoverable customers. Some people have legitimate issues that need personal attention. A "reply to this email" option or a support link can save customers who can't self-serve.
The Business Impact
Dunning done well has an outsized impact on revenue. Consider the math.
If you have 1000 paying customers at $50/month, and 3% experience failed payments each month (30 customers), and your default recovery rate without dunning is 30%, you're losing 21 customers per month to involuntary churn. That's $1,050/month in lost MRR.
A good dunning sequence that improves recovery to 50% saves 6 additional customers per month. That's $300/month in recovered MRR. Over a year, that's $3,600 in revenue you would have lost without the sequence.
At larger scale, the numbers get more significant. Dunning is one of the highest-ROI email sequences you can build because every recovery is real revenue saved with no acquisition cost.
Invest the time to build it right. Test and optimize it. Track its performance. Your dunning sequence might be the most valuable email automation in your entire system.