Pre-Dunning: How to Prevent Failed Payments Before They Happen


Most teams only think about recovery after a renewal fails. That is late. By the time an invoice is overdue, you are already spending support time, stressing the customer, and risking preventable churn.
Pre-dunning fixes that. It is the work you do before the charge attempt so fewer payments fail in the first place.
If normal dunning is the ambulance, pre-dunning is guardrails on the road. The better your pre-dunning system, the fewer customers ever enter your recovery flow.
For Stripe-based SaaS companies, this matters more than most founders realize. Failed payments are rarely just a billing annoyance. They distort retention numbers, create noisy MRR dips, and quietly chip away at customer trust. A customer whose card expires, whose bank declines an off-session charge, or who never notices an invoice problem is not making an active churn decision. You are just losing revenue to operational sloppiness.
This guide breaks down how to use pre-dunning to prevent failed payments before they happen. It covers what pre-dunning actually means, when to trigger it, what to send, how to segment the workflow, and how to measure whether it is doing real work instead of just creating extra email.

What pre-dunning actually is
Pre-dunning is any proactive payment-friction workflow that happens before the scheduled renewal or invoice collection attempt.
That can include:
- reminding customers that a card is about to expire
- warning customers that a payment method update is needed
- flagging upcoming renewals that may require authentication
- nudging customers to review billing details before the invoice date
- identifying high-risk payment methods or segments before the charge runs
The goal is simple: reduce preventable failure before Stripe ever has to tell you the payment failed.
This is different from classic dunning. Dunning starts after a charge has already failed. Pre-dunning starts when you have a reason to believe failure risk is elevated but not yet realized.
That distinction matters because customer behavior is totally different before the problem lands. A message that says, "Your card expires soon, update it now to avoid interruption," feels helpful. A message that says, "Your payment failed, fix this immediately," feels reactive and mildly annoying. Same customer. Same billing issue. Very different emotional context.
The companies that do this well treat failed payments as a forecasting problem, not just a recovery problem.
Why pre-dunning matters more than most SaaS teams think
Founders tend to underestimate involuntary churn because it hides inside other metrics. You see a renewal miss, a subscription go unpaid, or a churn line move up. What you often do not see quickly enough is how much of that loss was avoidable.
A failed payment does more than delay cash collection:
- it interrupts access for customers who intended to stay
- it creates support work that should not exist
- it reduces confidence in your billing experience
- it lowers recovery rates because some customers ignore post-failure emails
- it makes churn analysis messier because involuntary and voluntary churn blur together
Pre-dunning helps because it attacks the easiest class of loss: predictable operational failure.
Expired cards are the obvious example, but they are not the only one. Some customers need a heads-up because they use stricter corporate cards. Some accounts are more likely to need SCA. Some customers always pay successfully, but only after a finance person updates details at month end. If you know the pattern, waiting until the renewal actually fails is just lazy.
This is the same reason many teams review payment recovery funnels. You want to reduce the number of customers entering the funnel at all, not just improve performance once they are stuck in it.
The four most useful pre-dunning triggers
A good pre-dunning system is trigger-based. Do not blast everyone with the same generic reminder. That creates noise and trains customers to ignore you.
Here are the triggers that usually matter most.
1. Upcoming card expiry
This is the cleanest pre-dunning use case. If the payment method on file expires this month or before the next renewal window, send a proactive update request.
You are not guessing. You have a known billing risk and a clear action the customer can take.
2. High-risk renewal timing
Some businesses see more failures on annual renewals, end-of-quarter invoices, or large seat expansion renewals. If a charge is materially bigger than normal or lands in a historically noisy billing window, a short pre-renewal notice can help the buyer prepare.
This is especially useful for B2B SaaS where the person using the product is not the person approving the spend.
3. Authentication-sensitive accounts
If you sell into regions where 3D Secure impacts subscription payment success, some off-session renewals are more likely to need customer action. Pre-dunning can prime the customer so they are not surprised if authentication is required.
That does not mean you scare everyone with compliance jargon. It means you reduce surprise. Surprise is terrible for billing.
4. Payment method quality signals
Some teams see repeated trouble from certain card types, customer segments, or historic decline patterns. If an account has already updated payment details twice in six months, or if previous renewals required intervention, that account deserves more proactive handling than your low-risk baseline group.
Not everything needs machine learning. Sometimes the right answer is just basic segmentation and a little common sense.

How far in advance should you send pre-dunning messages?
This is where a lot of teams get weirdly clumsy.
Send too early and the customer forgets. Send too late and they cannot act in time. Send too often and you become background spam.
A sensible starting framework looks like this:
For expiring cards
- first notice: 21 to 30 days before renewal or card expiry risk
- second notice: 7 days before charge attempt
- final reminder: 1 to 2 days before renewal if still unresolved
For high-value or annual renewals
- heads-up: 7 to 14 days before charge
- confirmation reminder: 1 to 3 days before charge if needed
For authentication-sensitive renewals
- contextual note: 3 to 7 days before charge
- immediate follow-up only if the payment method still looks unready
The point is not to maximize touch count. The point is to give the customer enough time to act while the issue is still low-friction.
If you need a rule of thumb, here it is: fewer, sharper touches beat a spray of generic reminders every time.
What a good pre-dunning message should say
Most billing messages are either too vague or too dramatic.
Bad pre-dunning sounds like this:
- "Important account notification"
- "Your billing information may need attention"
- "Please review your payment method at your earliest convenience"
That is corporate oatmeal. Nobody cares.
Good pre-dunning is clear, specific, and low-drama. It tells the customer:
- what the issue is
- why it matters
- what action to take
- how long they have
- what happens if they ignore it
A strong example structure:
- Subject: Your card expires before your next renewal
- Body: Your subscription renews on May 1 and the card on file appears to expire before then. Update your payment method now to avoid interruption.
- CTA: Update payment details
That is enough. Do not write a novel. Do not bury the action. Do not make them log in and hunt around settings if you can generate a direct update link.
If your update flow is still indirect, fix that first. The post on Stripe payment method update links is worth stealing ideas from because billing friction compounds fast.
The best pre-dunning systems are segmented, not universal
This is the big one.
A lot of SaaS teams discover pre-dunning, then immediately overuse it. They put every customer into the same workflow and feel productive because lots of emails go out. That is how you ruin a good tactic.
Instead, segment by risk and customer effort.
Low-risk customers
Customers with healthy payment history and no obvious risk signals usually need nothing. Leave them alone.
Medium-risk customers
Customers with expiring cards, upcoming large renewals, or mild past friction deserve one or two well-timed reminders.
High-risk customers
Customers with repeated payment issues, corporate approval loops, or known authentication friction may need more proactive support. That can include multi-touch reminders, in-app alerts, and account-manager escalation for larger accounts.
Very high-value accounts
For enterprise or strategically important customers, pre-dunning may need a human layer. A well-timed note from customer success before renewal can prevent a lot of stupid churn.
The operational principle is simple: match the intervention to the risk. Anything else is noise.
Operational mistakes that make pre-dunning fail
Pre-dunning is useful, but it is easy to mess up.
Sending reminders with no direct action path
If the customer has to log in, navigate, and guess what to do next, you are burning recovery odds. Every extra click is a tax.
Warning too many people
Blanket reminders teach customers to ignore billing emails. If everyone gets urgent notices, nobody believes them.
Treating email as the whole system
Email is one channel, not the system. For some products, in-app alerts or account-owner notifications work better. For some B2B accounts, the admin contact matters more than the daily user.
Ignoring the reason the payment failed last time
If an account repeatedly hits expired_card, that is different from repeated authentication_required or insufficient_funds. The next pre-dunning step should reflect the actual failure pattern.
Measuring sends instead of prevented failures
Email volume is not success. Opens are not success either. Success is fewer avoidable payment failures and more clean renewals.
That should be obvious, yet plenty of teams still celebrate activity instead of outcome.
How to measure whether pre-dunning is actually working
If you do not measure this properly, pre-dunning becomes marketing theater for the billing team.
Track at least these metrics:
Pre-dunning coverage rate
What percentage of at-risk renewals actually entered a pre-dunning workflow?
Payment method update rate
Of customers warned before renewal, how many updated their payment method before the charge?
Prevented failure rate
Of customers who received pre-dunning, how many renewed successfully without entering post-failure dunning?
Incremental recovery lift
Compare renewal success for similar at-risk cohorts with and without pre-dunning. You want proof that the workflow changed outcomes, not just activity.
Time-to-resolution
How quickly do customers resolve known billing issues once notified? Slow resolution often points to poor UX or weak timing.
Downstream churn reduction
The real payoff is fewer customers sliding into involuntary churn. If your failed payment count stays flat after adding pre-dunning, something is off. Either the trigger quality is bad, the messaging is weak, or the update flow still sucks.
A practical pre-dunning playbook for Stripe-based SaaS
If you want a no-nonsense version, start here.
Step 1: identify your preventable failure buckets
Pull the last 60 to 90 days of failed renewals and group them into buckets like expired card, authentication required, insufficient funds, invalid account details, and customer no-response.
You are looking for the categories that could have been influenced before the charge attempt.
Step 2: map trigger to action
For each preventable bucket, define:
- what signal triggers pre-dunning
- when the customer should be contacted
- who should receive the message
- what CTA they should get
- whether the fallback is automated or human
Step 3: make the update path frictionless
If your billing email links to a generic account page, fix that. Seriously. There is no point building a smart pre-dunning flow that dumps the customer into a confusing settings maze.
Step 4: keep the messaging plain
Use direct language. No compliance theater. No fake urgency. Customers respond better to useful billing communication than to legal-sounding nonsense.
Step 5: review cohort results monthly
Look at prevented failures by segment. Some triggers will be worth expanding. Some will be dead weight. Kill the ones that are just noise.
Pre-dunning is not glamorous. It is just profitable.
This is the honest truth: pre-dunning is not a sexy growth lever. Nobody tweets about their elegant card-expiry reminder system. But it works because it removes avoidable friction from recurring revenue.
If you are running SaaS on Stripe, you should stop treating failed payments as a purely reactive workflow. A good pre-dunning system catches known risk early, gives customers a clean path to fix it, and keeps more renewals from ever becoming recovery problems.
That is the whole game. Less preventable failure. Less messy dunning. More clean revenue.
If you want to spot where failed payments and involuntary churn are leaking through your Stripe setup, run a free churn audit at https://churnbot.co/audit.
Related Posts

7 Failed Payment Segments Every Stripe Team Should Track


9 Strategies to Stop Losing Customers to Payment Failures
How healthy is your Stripe account?
Get a free churn health report. Find pending cancellations, failed payments, and expiring cards putting your MRR at risk.
Run Free Audit