What is Pre-Dunning? The Complete Guide for SaaS Founders
Pre-dunning catches expiring cards before they cost you revenue. This is the definitive guide: definition, 30/14/7 day cadence, code snippets, email templates, recovery uplift data, and edge cases.
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.
How much revenue does pre-dunning actually save?
The math is the most under-discussed part of the pre-dunning conversation. Let's ground it in numbers reported by Recurly, Baremetrics, and Stripe's own documentation.
- •Baseline involuntary churn:20-40% of total subscription churn is involuntary (failed payments, expired cards). Recurly's State of Subscriptions reports 9% of MRR is lost to failed payments each month at a typical SaaS business.
- •Expired cards specifically: Stripe data indicates roughly 30-50% of failed charges trace back to an expiring or recently expired card. The rest split between insufficient funds, hard declines, and fraud blocks.
- •Pre-dunning prevention rate: Customers who get a 30/14/7 day reminder sequence update their card 60-70% of the time before the renewal attempt. That converts directly to MRR you never lose in the first place.
- •Post-failure recovery rate: Industry benchmark is 40-60% recovery on failed payments via dunning emails. Stripe Smart Retries alone (no email) recovers around 38% according to their published data.
Worked example for a $10K MRR SaaS: 9% lost monthly = $900. Half is expired cards = $450. Pre-dunning prevents 65% of those = $293 saved monthly, or $3,500 annually. Tool cost at the indie tier: $19-39/mo. ROI is roughly 7-15x in the first year, and that is before counting the recovery sequences for the failures that do slip through.
The numbers compound over time. Every subscriber you keep through a card-renewal event continues paying for their full LTV instead of churning at the expiry edge. The savings are not a one-time win, they are a structural reduction in churn rate.
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. Read the longer breakdown in our Stripe Smart Retries deep dive.
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. Here is what the payload looks like:
{
"type": "customer.source.expiring",
"data": {
"object": {
"id": "card_1NXXxXxXxXxXxXxX",
"object": "card",
"customer": "cus_NaXxXxXxXxXxXx",
"exp_month": 5,
"exp_year": 2026,
"last4": "4242",
"brand": "Visa"
}
}
}Stripe fires this webhook once, about a month before the card expires. You have to build the entire email flow yourself: maintain a queue with three scheduled sends (30/14/7 days), write the templates, host a card update page, handle edge cases around card network automatic updates, support multiple payment methods per customer, retry failed email deliveries, and unsubscribe from the queue when the customer updates their card mid-sequence.
Most founders assume Stripe handles this. When they discover it does not, they either build a quick script (which usually breaks on the edge cases) or start looking for a dunning tool. The problem is most dunning tools also skip pre-dunning and jump straight to post-failure recovery.
What about Visa Account Updater and Mastercard ABU?
Card networks try to solve part of this problem with automatic updater services. Visa runs Visa Account Updater (VAU). Mastercard has Automatic Billing Updater (ABU). When a customer's bank reissues a card (new number, new expiry), the bank can optionally push the new details through these services so merchants get the refreshed token automatically.
Stripe enrolls all eligible customers in VAU and ABU by default for US Visa and Mastercard accounts. When the network has the new card data, Stripe updates the customer's payment method without any action from you or the customer. The charge on renewal day goes through on the new card silently.
The catch: coverage is partial. Industry estimates put network-level updater hit rate at 50-70% across US banks. Smaller banks and credit unions often do not participate. International cards are mostly out of scope. And if the customer wants to switch from a card that is about to expire to a different card (different bank, debit instead of credit, etc.), the network updater does nothing.
Pre-dunning emails cover everything the network updaters miss, plus they give the customer agency. Many customers actively prefer being told their card is about to expire rather than waking up to a failed charge or an unexpected new bank account being charged.
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.
3 pre-dunning email templates that work
The templates below come from sequences that have moved real cards. Tone matters more than word count. Customers respond best to a quick, helpful nudge with a single clear action. For the full library across all stages of the lifecycle, see our dunning email templates guide.
30-day reminder (soft heads-up)
Subject: Your card on file expires next month
Hey {{first_name}},
Quick heads up: the card we have on file for your
{{product_name}} subscription expires next month.
Card: {{brand}} ending in {{last4}}, exp {{exp_month}}/{{exp_year}}
Next renewal: {{next_renewal_date}}
Update your card in 30 seconds: {{update_link}}
Thanks for being a customer.
{{founder_name}}14-day reminder (specific renewal date)
Subject: 2 weeks until your subscription renews
Hey {{first_name}},
Just a reminder: your card ending in {{last4}}
expires {{exp_month}}/{{exp_year}}, and your
{{product_name}} subscription renews on
{{next_renewal_date}}.
Take 30 seconds to update it so you do not get
interrupted: {{update_link}}
Thanks,
{{founder_name}}7-day reminder (last nudge)
Subject: Last chance to update before renewal
Hey {{first_name}},
Your card ending in {{last4}} expires this month
and your {{product_name}} renewal is on
{{next_renewal_date}}.
If you do not update your card before then, the
charge will fail and your access pauses while we
sort it out.
Update now to avoid the hassle: {{update_link}}
Thanks,
{{founder_name}}A few principles that make these work: address the customer by name, name the specific product, show last 4 and expiry month so the message feels accurate not generic, link straight to a card update flow (not a login page), and sign off as a human, not a no-reply address.
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. Use Resend, Postmark, or similar for transactional deliverability
- •Create a branded card update page. Stripe Billing Portal works as a fallback but looks generic and shows the Stripe brand prominently
- •Handle edge cases: card networks sometimes auto-update cards (VAU, ABU), tokens migrate on bank reissue, customers have multiple payment methods, customer updates card mid-sequence and the remaining queued emails need to cancel
- •Track open and click rates per send to know if your templates are working, and unsubscribe handling for customers who change their mind about reminders
Realistic effort: 2-4 days to build a working version, plus ongoing maintenance as Stripe updates their API and your email tool changes deliverability rules. 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. For the deeper comparison across price tiers and feature sets, see our best dunning software 2026 roundup.
When pre-dunning is not worth it
Honest section. Pre-dunning is high-ROI for most SaaS, but not all. Cases where you can skip or defer:
- •You have fewer than 10 paying customers. The hand-management overhead is lower than setting up automation. Just watch the Stripe dashboard and email anyone whose card expires this month.
- •Annual billing with long-tenured B2B customers on company cards. Card refresh cycles are slow enough that monitoring quarterly via a spreadsheet works fine. Pre-dunning still helps but the marginal lift is small.
- •Stripe Account Updater coverage is high for your customer base. If you primarily serve US customers on big-bank Visa or Mastercard, VAU/ABU catches a higher share. Verify this against your actual decline-reason data in Stripe before relying on it.
- •Crypto, ACH, or wire transfer subscriptions. No card expiry, no pre-dunning needed. ACH has its own failure modes (insufficient funds, account closed) handled by different flows.
For everyone else - the majority of indie SaaS founders running monthly Stripe subscriptions - pre-dunning is one of the highest-impact things you can ship for retention.
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.
Do Visa Account Updater and Mastercard ABU eliminate the need for pre-dunning?
No. Network-level account updaters (Visa VAU, Mastercard ABU) only refresh card numbers when the issuing bank participates and submits the update. Coverage averages 50-70% in practice. Pre-dunning emails cover the rest, plus customers who switch banks or want to use a different card entirely.
What about customers paying with Apple Pay or Google Pay?
Apple Pay and Google Pay use device-specific tokens that get updated by the wallet automatically when the underlying card is reissued. You generally do not need pre-dunning emails for these customers, but the percentage of subscriptions on wallet pay is still small for most SaaS, usually 5-15%.
What email open rates should I expect on pre-dunning sequences?
Pre-dunning emails see higher engagement than typical marketing email because they are transactional and personally relevant. Industry benchmarks: 45-60% open rate, 12-20% click-through rate on the update link. Recovery emails sent after a failure see lower engagement, around 30-40% open and 8-12% CTR.
When is pre-dunning NOT worth setting up?
If you charge annually with mostly long-tenured B2B customers on company cards, the card-refresh cycle is slow enough that you can monitor manually. Under roughly $5K MRR, the time to integrate (or $19/mo for a tool) usually clears the threshold quickly, so most indie SaaS founders cross the worth-it line within the first dozen subscribers.
Can I send pre-dunning emails from Mailchimp or another email tool?
You can, but it is fragile. You would need to sync Stripe customer payment method data to your email tool, keep it in sync as cards change, and manage segments based on expiry dates. Most founders who try this end up wishing they had used a purpose-built tool or a simple cron job that pulls fresh data from the Stripe API each day.
Related reading
- •Stripe Dunning: What It Does and Doesn't Do - the gaps in Smart Retries and what to layer on top.
- •How to Reduce Involuntary Churn on Stripe - 6 practical steps, pre-dunning is step 3.
- •Dunning Email Templates That Actually Get Cards Updated - copy-paste templates for the post-failure recovery flow.
- •Best Dunning Software for SaaS in 2026 - honest 7-tool comparison for indie tier.
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.