Stripe expired_card Error — Causes, Fix & MRR Impact
The Stripe expired_card error occurs when the card's expiration date has passed and the issuer declines the charge, causing failed renewals and MRR loss for SaaS businesses processing subscription payments.
What this means
The card has expired. The customer needs to update their card with the new expiration date (and new number if they received a replacement card).
Why it happens
Card past expiration date
The card's exp_month and exp_year are in the past; the issuer declines any charge on that card.
Renewal after card expiry
The subscription renewed after the card expired; the customer may have a new card but has not updated it in your app.
Customer did not update before expiry
You did not collect or prompt for an updated card before the expiry date, so the next charge failed.
New card issued with new expiry
The issuer reissued the card with a new expiry (and possibly new number); the old payment method on file is no longer valid.
MRR Impact
Failed renewals from expired cards reduce MRR. Proactive expiry checks and update prompts improve recovery.
Expired card is a top cause of avoidable failed renewals; proactive reminders and update flows protect MRR.
Avg. recovery rate: High recovery potential when you prompt for update quickly; many customers will add the new card.
Urgency: within 24hHow to fix it
- 1
Detect expired_card in your flow
In your webhook or payment handler, check for decline_code === 'expired_card'. Route to your 'update payment method' flow instead of generic decline.
if (err?.decline_code === 'expired_card') { redirectToUpdatePayment(customerId); } - 2
Show clear update-card messaging
Tell the customer their card has expired and they need to update it. Link directly to the billing page or a modal where they can enter the new expiry and card details.
- 3
Warn before expiry
Use the card's exp_month and exp_year to warn customers 30–60 days before expiry. Email or in-app: 'Your card expires soon; update it to avoid interruption.'
- 4
Send dunning email with update link
After the first failed charge, send an email that the payment failed because the card expired and include a one-click link to update the payment method.
- 5
Do not retry without update
Do not retry the same PaymentMethod for expired_card; it will keep failing. Only retry after the customer has updated their card.
Detect expired_card automatically
Track expired_card volume; correlate with renewal dates. Consider proactive expiry reminders to reduce this decline type.
Monitor your Stripe health free →FAQ
What is the Stripe expired_card decline code?
Can I prevent expired_card on renewals?
Should I retry after expired_card?
How does expired_card affect MRR?
Related errors
The Stripe invalid_expiry_month error occurs when the card's expiration month is invalid, causing the request to fail and potential MRR loss for SaaS businesses processing subscription payments.
Affects MRRinvalid_expiry_yearThe Stripe invalid_expiry_year error occurs when the card's expiration year is invalid, causing the request to fail and potential MRR loss for SaaS businesses processing subscription payments.
Affects MRR