Stripe Dunning: What It Actually Does (and What's Missing)
A practical breakdown of Stripe's built-in payment recovery, and where the gaps cost you money.
What Stripe does handle
Stripe is not completely hands-off when a payment fails. There are a few built-in mechanisms that help recover failed charges:
- •Smart Retries.Stripe's machine learning system automatically retries failed charges at times when they are statistically more likely to succeed. This is enabled by default for Stripe Billing users. It does recover some payments on its own, though Stripe does not publish exact success rates.
- •Basic email notification.Stripe can send a generic "your payment failed" email to your customer. The email comes from Stripe, not from your company. It uses Stripe's branding and links to Stripe's hosted payment page.
- •Automatic card updates. Card networks like Visa and Mastercard have programs (Visa Account Updater, Mastercard ABU) that automatically update card details when a bank issues a new card. Stripe participates in these programs. Some expired cards get updated behind the scenes without any action needed.
These features are real, and they do help. The issue is what they leave out.
What Stripe does NOT do
This is the list that surprises most SaaS founders. They assume Stripe is handling everything, then discover these gaps when they start tracking their involuntary churn:
- •No pre-dunning emails. Stripe does not email customers when their card is about to expire. The
customer.source.expiringwebhook fires, but Stripe takes no action. Your customer has no idea their card is expiring until the payment fails. - •No branded emails.The default "payment failed" email comes from "Stripe" as the sender, not your company name. It uses Stripe's design, not yours. Open rates on these generic emails are significantly lower than branded messages from a sender the customer recognizes.
- •No branded card update page.When a customer clicks the link in Stripe's default email, they land on a generic Stripe-hosted page. No logo, no brand colors, no connection to your product. Some customers do not even realize it is related to their subscription.
- •No recovery analytics. Stripe does not give you a dashboard showing MRR at risk, recovery rate percentages, or recovered revenue over time. You can piece this together from the Stripe dashboard, but it requires manual work.
- •No customizable email timing.You cannot set up a sequence like "email on day 1, follow up on day 3, final reminder on day 7." Stripe sends one notification and relies on Smart Retries for the rest.
The gaps that cost you money
Here is what actually happens when a payment fails on a Stripe account with only default settings enabled:
- 1.A customer's card expires. Nobody told them it was coming.
- 2.The subscription renewal charge fails. Stripe starts retrying automatically.
- 3.Stripe sends a generic "payment failed" email from "Stripe." The customer might see it, or it might land in spam or get ignored because they do not recognize the sender.
- 4.Smart Retries keep trying over the next few days or weeks. Some succeed, many do not.
- 5.After the retry window closes (usually 7-30 days depending on your settings), the subscription cancels. The customer is gone.
You find out about the churn when you check your Stripe dashboard and notice the MRR drop. By then, the customer has already been without access for days. The relationship is strained. Even if they come back, you have lost that revenue for the gap period.
The industry average is that roughly 9% of MRR is at riskfrom failed payments every month. For a $10K MRR SaaS, that is $900/mo or $10,800/year. Stripe's built-in tools recover some of that, but the gaps described above mean a significant portion slips through.
How to fill the gaps
You do not need to replace Stripe. You need to add a layer on top of it. Here is what that layer looks like:
- •Pre-dunning emails. Email customers 30, 14, and 7 days before their card expires. Most will update proactively. The payment never fails.
- •Branded recovery emails. When a payment does fail, send branded recovery emails from your company name, with your logo and design. These get higher open rates because customers recognize the sender.
- •One-click card update page. A branded page where customers update their card in seconds. Still powered by Stripe under the hood (zero PCI headaches), but it looks and feels like your product.
- •Recovery dashboard. See your MRR at risk, how much has been recovered, recovery rate percentages, and email performance. Know where you stand without digging through Stripe data.
Tools that fill these gaps
Several tools add dunning and pre-dunning capabilities on top of Stripe:
- •Revenudge - $19/mo. Pre-dunning + recovery emails + branded card update page. Built for indie SaaS founders. Connects via Stripe OAuth in 60 seconds.
- •Churn Buster - $99/mo and up. Recovery-focused with advanced analytics and A/B testing. Better suited for larger SaaS operations.
- •Baremetrics Recover - $158/mo (bundled with Baremetrics analytics). Good if you already use Baremetrics for metrics.
The right tool depends on your scale. The key thing is that Stripe alone is not enough if you care about minimizing involuntary churn. Adding even basic pre-dunning and branded recovery emails will capture revenue that Stripe's defaults miss.
Frequently asked questions
Does Stripe retry failed payments automatically?
Yes. Stripe Smart Retries uses machine learning to determine the best time to retry a failed charge. This is enabled by default for all Stripe Billing users. However, retries only happen after a payment has already failed, and the success rate varies.
Can I customize Stripe's dunning emails?
Very limited. You can toggle the default "payment failed" email on or off in your Stripe dashboard settings, and make minor text changes. But you cannot change the sender name, add your logo, customize the design, or control the timing of follow-up emails.
Should I disable Stripe's default failed payment emails?
Yes, if you are using a dedicated dunning tool. Running both Stripe's emails and your dunning tool's emails means your customer gets duplicate messages from different senders, which looks unprofessional and confuses people. Disable Stripe's emails and let your dunning tool handle the communication.
Try Revenudge free for 14 days
Stripe handles payments. Revenudge handles the gaps. Connect your Stripe account in 60 seconds and start catching expiring cards and recovering failed payments with branded emails that your customers actually open.
14-day free trial. No credit card needed. Cancel anytime.