·9 min read

Stripe Failed Payment Recovery: Dunning Guide

Failed payments are one of the most frustrating problems in SaaS. A customer is perfectly happy with your product, has no intention of leaving, but their subscription gets cancelled because a credit card expired or a bank declined a charge. This is involuntary churn, and for many subscription businesses it accounts for 20-40% of total churn.

The good news is that involuntary churn is largely preventable. With the right dunning strategy, you can recover the majority of failed payments and keep those customers subscribed. This guide covers why payments fail, how Stripe handles retries, and the dunning best practices that top SaaS companies use to minimize revenue loss.

Why Stripe Payments Fail

Before you can fix the problem, you need to understand what causes it. Here are the most common reasons a Stripe charge is declined:

  • Expired credit card: The most common cause. Cards typically expire every 3-5 years, and customers do not always update their payment method proactively.
  • Insufficient funds:The customer's account does not have enough balance to cover the charge. This is more common with debit cards.
  • Card issuer decline: The bank or card network declines the transaction for fraud prevention, velocity limits, or other risk rules.
  • Incorrect card details: The CVC, ZIP code, or other verification data does not match. This usually happens at initial signup rather than renewals.
  • Network errors: Temporary connectivity issues between Stripe and the card network. These are usually resolved on retry.
  • 3D Secure authentication required: Some cards require additional authentication steps that cannot be completed during an automatic renewal.

What Is Dunning?

Dunning is the process of communicating with customers about failed payments and attempting to recover the revenue. The term originally comes from debt collection, but in SaaS it refers to the automated sequences of payment retries, email notifications, and card update prompts that run when a subscription payment fails.

An effective dunning process has three layers: automated payment retries, customer notification emails, and graceful subscription handling. Let us walk through each one.

Stripe's Built-In Retry Logic

Stripe provides a configurable retry schedule called Smart Retries. When a payment fails, Stripe uses machine learning to determine the optimal time to retry the charge based on patterns from billions of transactions across its network.

You can configure this in your Stripe Dashboard under Settings and then Billing and then Subscriptions. The key settings are:

  • Smart Retries: Stripe automatically selects the best retry times. This is enabled by default and recovers significantly more payments than fixed-schedule retries.
  • Retry schedule: If you prefer manual control, you can set specific retry intervals (for example, 3 days, 5 days, and 7 days after the initial failure).
  • Maximum retries: How many times Stripe will attempt the charge before marking the invoice as uncollectible or cancelling the subscription.
  • Subscription status after all retries fail: You can choose to cancel the subscription, leave it unpaid, or mark it past due. Each option has different implications for your churn metrics and customer experience.

Smart Retries alone can recover a meaningful percentage of failed payments. But relying solely on retries is not enough. You also need to notify customers so they can update their payment method.

Try StripeReport Free

Get the Stripe revenue reports you’ve been missing

MRR tracking, cash flow forecasts, churn analytics, and daily email reports — all from your Stripe data. 3-day free trial.

Start Your Free Trial →

Dunning Email Best Practices

The emails you send during a dunning sequence can make the difference between recovering a payment and losing a customer. Here is what works:

Email 1: Immediate Notification (Day 0)

Send within hours of the first failure. Keep the tone friendly and informative, not alarming. Tell the customer their payment failed, give a clear reason if available (expired card, declined), and provide a direct link to update their payment method. Subject line example: "Action needed: your payment for [Product] did not go through."

Email 2: Gentle Reminder (Day 3)

If the customer has not updated their card, send a follow-up. Add urgency by mentioning when their access will be affected. Reiterate the value they are getting from the product to motivate action. Subject line example: "Your [Product] subscription needs attention."

Email 3: Urgent Notice (Day 7)

Increase urgency. Clearly state when the subscription will be cancelled if payment is not resolved. Include a one-click link to update payment details. This is also a good time to offer alternative payment methods. Subject line example: "Your [Product] account will be paused in 3 days."

Email 4: Final Warning (Day 10-14)

Last chance before cancellation. Make it clear this is the final notice. Some companies include a brief survey asking if the customer intended to cancel, which can recover customers who simply forgot. Subject line example: "Final notice: update your payment to keep [Product] active."

General Email Tips

  • Send from a real person's name, not "noreply@company.com." Customers are more likely to open and act on personal-looking emails.
  • Include a prominent, branded button linking directly to the payment update page. Every extra click you require reduces recovery rates.
  • Keep emails short. The customer needs to understand the problem and know how to fix it in under 30 seconds.
  • Test different subject lines and sending times. Recovery rates vary significantly based on when and how you communicate.

Preventing Payment Failures Proactively

The best dunning strategy is one you rarely need to use. Here are proactive measures to reduce failed payments before they happen:

Card Expiration Reminders

Stripe knows when a customer's card will expire. Send a reminder 30 days and 7 days before expiration asking them to update their payment method. This prevents the most common cause of involuntary churn entirely. Setting up cancellation and payment alerts ensures you never miss these events.

Stripe's Automatic Card Updater

Stripe participates in card network programs (Visa Account Updater, Mastercard Automatic Billing Updater) that automatically update stored card numbers and expiration dates when a new card is issued. This happens silently in the background and prevents a significant portion of expiration-related failures.

Offer Multiple Payment Methods

ACH bank transfers, SEPA Direct Debit, and other bank-based payment methods have lower failure rates than credit cards because they do not expire. Offering alternatives reduces your exposure to card-related failures.

Optimize Billing Timing

Charges on the first and fifteenth of the month tend to succeed at higher rates because these align with common payroll schedules. If you have flexibility in billing dates, consider aligning with these windows.

Measuring Recovery Performance

You cannot improve what you do not measure. Track these metrics to evaluate your dunning strategy:

  • Payment recovery rate: Percentage of initially failed payments that are eventually collected. Aim for 50-70%.
  • Involuntary churn rate: Percentage of total churn caused by payment failures rather than active cancellations. Lower is better.
  • Time to recovery: Average number of days between initial failure and successful payment. Shorter is better.
  • Email engagement: Open rates and click-through rates on dunning emails. If customers are not opening your emails, your subject lines need work.

Integrating this data with your broader churn rate tracking gives you a complete picture of where you are losing revenue and how effectively you are recovering it.

Try StripeReport Free

Get the Stripe revenue reports you’ve been missing

MRR tracking, cash flow forecasts, churn analytics, and daily email reports — all from your Stripe data. 3-day free trial.

Start Your Free Trial →

How StripeReport Helps with Payment Recovery

StripeReport connects to your Stripe account with a read-only API key and monitors every failed payment, retry attempt, and recovery outcome. You get daily reports in your email or Slack channel that flag failed payments, track involuntary churn separately from voluntary churn, and show your recovery rate over time.

Combined with subscription management best practices, StripeReport gives you the visibility to catch payment issues early and measure whether your dunning strategy is actually working. Instead of discovering revenue leaks weeks later in a spreadsheet, you see them the morning they happen.

Key Takeaways

  • Involuntary churn from failed payments can account for 20-40% of total churn and is largely preventable with a proper dunning strategy.
  • Enable Stripe's Smart Retries to automatically recover failed payments at optimal times based on network-wide data.
  • Send a sequence of 3-4 dunning emails with increasing urgency, each with a direct link to update payment details.
  • Prevent failures proactively with card expiration reminders, automatic card updater enrollment, and alternative payment methods.
  • Track recovery rate, involuntary churn rate, and time to recovery to continuously optimize your dunning process.