Quick Definition
Payment method expiration occurs when a stored credit card or other payment method reaches its expiration date and can no longer be charged.
For subscription businesses, this is a leading cause of involuntary churn—customers losing access not because they want to leave, but because their payment method stopped working.
Why Credit Cards Expire
Credit cards typically have a 3-5 year lifespan. They expire for several reasons:
- Security: Limits exposure if card data is compromised
- Wear and tear: Physical cards degrade over time
- Fraud prevention: Regular rotation reduces risk
- Account updates: Banks may issue new cards with updated terms
The Problem for Subscriptions
When a card expires:
- Next charge attempt fails — Payment processor declines
- Customer may lose access — Depending on your grace period
- Customer may not know — No automatic notification
- Recovery is harder — Post-failure has lower success rates
Scale of the Problem
| Metric | Value |
|---|---|
| Average credit card lifespan | 3-5 years |
| % of stored cards expiring yearly | 20-30% |
| Monthly expiration rate | ~2-3% of cards |
| % of these that cause failures | 70-90% (without intervention) |
For a business with 1,000 subscribers, 20-30 cards expire every month.
Impact on Revenue
Without Intervention
100 expiring cards/month
× 70% fail (card updater catches some)
= 70 payment failures
70 failures
× 30% churn (without dunning)
= 21 customers lost
21 customers × $50/month = $1,050/month lost = $12,600/year
With Prevention (Pre-Dunning)
100 expiring cards/month
× 10% fail (pre-dunning catches 90%)
= 10 payment failures
10 failures
× 30% churn
= 3 customers lost
3 customers × $50/month = $150/month lost = $1,800/year
Annual savings from pre-dunning: $10,800
Three Ways to Handle Expiring Payment Methods
1. Card Updater Services (Automatic)
Card updater automatically updates stored cards when banks issue replacements.
Coverage: 60-80% of card replacements
Limitations:
- Only works for same-bank replacements
- Some banks don't participate
- Delays of 24-72 hours
2. Pre-Dunning (Proactive)
Pre-dunning sends reminders to customers before their card expires.
Coverage: 80-90% of expiring cards (when combined with card updater)
How it works:
- Detect cards expiring in 30-60 days
- Send email/SMS reminder sequence
- Customer updates card before failure
Get templates: Card Expiration Email Templates
3. Dunning (Reactive)
Dunning recovers payments after they fail.
Coverage: 60-80% of failures
When to use:
- Pre-dunning didn't work
- Card updater didn't catch the change
- Failures from other causes (insufficient funds, etc.)
The Optimal Strategy
Use all three in combination:
Card Expiration Approaching
│
▼
┌─────────────────────────────────┐
│ CARD UPDATER │ Automatic, catches 60-80%
│ Checks for bank-issued updates │
└─────────────────────────────────┘
│
│ Not updated?
▼
┌─────────────────────────────────┐
│ PRE-DUNNING │ Proactive, catches 80-90%
│ Email/SMS reminders 30-3 days │ of remaining
└─────────────────────────────────┘
│
│ Still not updated?
▼
┌─────────────────────────────────┐
│ PAYMENT ATTEMPT │
│ May succeed or fail │
└─────────────────────────────────┘
│
│ Failed?
▼
┌─────────────────────────────────┐
│ DUNNING │ Reactive, recovers 60-80%
│ Email/SMS + smart retries │ of failures
└─────────────────────────────────┘
Combined result: 95%+ payment success rate
Detecting Expiring Payment Methods
In Stripe
// Get cards expiring in the next 30 days
const expiringCards = await stripe.paymentMethods.list({
customer: customerId,
type: 'card',
});
const thirtyDaysFromNow = new Date();
thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);
const expiringSoon = expiringCards.data.filter(pm => {
const expDate = new Date(pm.card.exp_year, pm.card.exp_month - 1);
return expDate <= thirtyDaysFromNow;
});
See full guide: How to Detect Expiring Cards in Stripe
Webhook Approach
Stripe sends customer.source.expiring ~30 days before card expiration.
Beyond Credit Cards
Other payment methods also expire or become invalid:
| Payment Method | Expiration Risk |
|---|---|
| Credit/Debit cards | 3-5 year expiry |
| Bank accounts | Account closure, routing changes |
| PayPal | Account issues, authorization expiry |
| Apple Pay/Google Pay | Underlying card expiration |
Best practice: Monitor all payment method types, not just cards.
Communicating with Customers
Do
- Start reminders early (30 days)
- Be helpful, not alarming
- Provide easy update links (no login required)
- Show what they'll lose if they don't update
Don't
- Wait until the last minute
- Send threatening messages
- Require multiple steps to update
- Over-communicate (4-5 messages max)
Key Takeaways
- 2-3% of cards expire monthly — Significant for subscription businesses
- Without intervention, 70%+ fail — Causing involuntary churn
- Card updater helps but isn't complete — 60-80% coverage
- Pre-dunning is most effective — 80-90% success rate
- Use all three approaches — Card updater + pre-dunning + dunning
- Start early — 30 days gives customers time
Related Resources
- What is Pre-Dunning? — Proactive prevention
- What is Card Updater? — Automatic updates
- What is Dunning? — Post-failure recovery
- Card Expiration Email Templates
- Prevent Failed Payments Guide
Automate Expiration Handling with Rekko
Rekko automatically detects expiring payment methods and handles the entire flow:
- Monitors Stripe for expiring cards
- Sends pre-dunning sequences automatically
- Falls back to dunning if payment fails
- Tracks everything in your dashboard