What is Pre-Dunning? The Guide for SaaS Founders
The definitive resource on catching expiring cards before they cost you revenue.
The problem: cards expire silently
Every credit and debit card has an expiry date printed on the front. When that date passes, the next charge against that card fails. Simple as that.
Here is where it gets expensive. Stripe does not email your customers when their card is about to expire. Neither does any other payment processor. The card quietly becomes invalid, and the next subscription renewal bounces. By the time you notice in your Stripe dashboard, the payment has already failed and you are in recovery mode.
The numbers are not small. Research consistently shows that 20-40% of all churn is involuntary, driven by expired cards, bank declines, and insufficient funds. These are customers who want to keep paying you. They just forgot their card was expiring, and nobody told them.
What is pre-dunning?
Pre-dunning is the practice of emailing customers before their card expires, giving them a chance to update their payment method before any charge fails.
A typical pre-dunning sequence sends reminders at 30, 14, and 7 days before the card expiry date. The emails are simple: "Hey, your card ending in 4242 expires next month. Click here to update it." The customer clicks, updates their card on a branded page, and the upcoming payment goes through without a hitch.
The logic is straightforward. A payment that never fails needs no recovery. Prevention beats cure every time. Instead of spending energy chasing customers after a failed charge, you prevent the failure entirely.
Pre-dunning vs dunning
These two terms sound similar but describe different stages of the payment failure lifecycle. Here is how they compare:
| Pre-dunning | Dunning | |
|---|---|---|
| When | Before payment fails | After payment fails |
| Goal | Prevent failure | Recover after failure |
| Customer experience | Proactive, helpful | Reactive, sometimes annoying |
| Effectiveness | No failure = no churn risk | 40-60% average recovery |
| Who does this | Very few tools | Most dunning tools |
Most dunning software on the market focuses almost entirely on recovery. They wait for a payment to fail, then send a sequence of emails asking the customer to fix it. That works, but you have already lost ground. The customer has been flagged, the subscription is at risk, and you are fighting to get back to where you were.
Pre-dunning sidesteps the whole mess. If the customer updates their card before the charge, the payment succeeds on the first try. No failure event, no recovery email, no churned subscription.
Why Stripe does not do pre-dunning
This is the part that surprises most founders. Stripe is incredibly powerful, but it does not email your customers when their card is about to expire.
Stripe Smart Retries is often cited as Stripe's dunning solution. It uses machine learning to determine the best time to retry a failed charge. That is useful, but it only kicks in after a payment has already failed. It is not pre-dunning.
Stripe does provide a customer.source.expiring webhook event that fires when a card is about to expire. But that is raw data. You have to build the entire email flow yourself: the email templates, the sending logic, the card update page, and the edge cases around card network automatic updates and token migration.
Most founders assume Stripe handles this. When they discover it does not, they either build a quick script (which usually breaks) or start looking for a dunning tool. The problem is most dunning tools also skip pre-dunning and jump straight to post-failure recovery.
How pre-dunning works (step by step)
The workflow is simple, which is part of why it works so well:
- 1.Monitor card expiry dates.Pull subscription payment method data from the Stripe API. For each active subscription, check the card's expiry month and year.
- 2.30 days before expiry:Send a first gentle reminder. Something like "Your card ending in 4242 expires soon. Update it here to avoid any interruption."
- 3.14 days before: Second reminder with a bit more urgency. Mention the specific renewal date if possible.
- 4.7 days before: Final reminder. Make it clear this is the last heads-up before the charge attempt.
- 5.Customer clicks the link and updates their card on a branded page. The new card attaches to their Stripe subscription automatically.
- 6.Payment succeeds as normal. The renewal charge goes through on the first try. No failed payment, no recovery emails needed, no risk of churn.
The customer experience is genuinely good. They get a helpful heads-up, update their card in 30 seconds, and forget about it. Compare that to the dunning experience: a payment fails, they get a panicked email saying their subscription is at risk, and they have to scramble to fix it.
How to implement pre-dunning
Option 1: Build it yourself
If you like building things (and as a SaaS founder, you probably do), here is what you need:
- •Listen for the
customer.source.expiringwebhook from Stripe, or run a daily cron that checks card expiry dates via the API - •Build an email queue with templates for the 30/14/7 day reminders
- •Create a branded card update page (Stripe Billing Portal works, but it is generic)
- •Handle edge cases: card networks sometimes auto-update cards (Visa Account Updater, Mastercard ABU), tokens migrate, customers have multiple payment methods
Estimated effort: 2-4 days to build a working version, plus ongoing maintenance as Stripe updates their API. Not impossible, but it is time you could spend on your actual product.
Option 2: Use a tool
A few tools handle pre-dunning out of the box:
- •Revenudge - $19/mo. Pre-dunning (30/14/7 day emails) plus recovery emails if a payment does fail. Built specifically for indie SaaS founders on Stripe.
- •Churn Buster - $99/mo and up. Primarily recovery-focused, with some pre-dunning capability. Better suited for larger SaaS businesses.
- •MRRSaver - $49/mo. Has pre-dunning and cancel flow features. Mid-range option.
The right choice depends on your MRR and budget. If you are under $50K MRR, spending $99+/mo on dunning eats a significant chunk of what you recover. The math matters.
Frequently asked questions
Does Stripe send expiring card emails?
No. Stripe fires a customer.source.expiring webhook event, but it does not email your customers. You need to build that yourself or use a tool that handles it for you.
What is the difference between pre-dunning and dunning?
Timing. Pre-dunning happens before a payment fails. It detects expiring cards and emails customers so they update their payment method proactively. Dunning happens after a payment has already failed, trying to recover the lost charge.
How much revenue can pre-dunning save?
Pre-dunning prevents 30-50% of the payment failures that would otherwise need recovery. Since recovery tools typically recapture 40-60% of failed payments, preventing the failure entirely is significantly more effective.
Start preventing failed payments today
Pre-dunning is the simplest, highest-ROI thing you can do about involuntary churn. Instead of recovering payments after they fail, prevent them from failing in the first place.
Revenudgesets up pre-dunning for your Stripe account in 60 seconds. Connect via OAuth, and it starts monitoring your customers' card expiry dates immediately. When a card is 30 days from expiring, your customer gets a branded email with a link to update their payment method.
14-day free trial. No credit card needed. Cancel anytime.