Stripe Error: expired_card
The customer's card has passed its expiration date.
What This Means
An expired_card decline means the card on file has passed the expiration date printed on the front. This is a hard decline — no amount of retrying will make it succeed. The customer must provide updated card details. The tricky part is that most customers don't think to update their payment info with every SaaS tool they use when they get a new card from their bank. If you don't proactively reach out, they'll simply churn without realizing it.
Why This Happens
- The customer's bank issued a replacement card with a new expiration date and possibly a new number
- Stripe's automatic card updater didn't receive the updated details from the card network
- The customer is using a virtual card that expired and wasn't renewed
How To Fix It
- 1Email the customer immediately asking them to update their card — this is the only real fix
- 2Enable Stripe's automatic card updater (it catches many expirations before they cause failures)
- 3Send pre-dunning emails 30 days before known card expirations to get ahead of the problem
- 4Provide a simple, direct link to your billing portal where they can update payment info in seconds
The Automated Solution
Revive detects expired_card declines instantly and skips futile retries. Instead, it immediately sends a polished, branded email to the customer with a direct link to update their card. Follow-up reminders are sent on an escalating schedule until the card is updated or the recovery window closes.
Revive connects to your Stripe account in 60 seconds. It monitors every failed charge, applies the right recovery strategy for each decline code, and sends branded emails to your customers when human action is needed. No code changes. No configuration. Just recovered revenue.
Connect Stripe & Start RecoveringRelated Stripe Errors
card_declinedThe customer's card was declined by their bank with no specific reason given.
card_not_supportedThe card does not support the type of purchase being made.
incorrect_cvcThe CVC (security code) provided does not match the card on file.
lost_cardThe card has been reported as lost by the cardholder.
Frequently Asked Questions
Will retrying an expired card ever work?
No. An expired_card is a hard decline. The card is permanently invalid until the customer provides updated details. Retrying wastes API calls and can hurt your decline metrics.
Does Stripe automatically update expired cards?
Stripe has an automatic card updater that works with Visa and Mastercard. It catches about 60-70% of card replacements automatically. But it doesn't cover all cards, all banks, or all countries — so you still need a recovery strategy for the rest.
How can I prevent expired card failures proactively?
Monitor the exp_month and exp_year fields on your customers' saved cards via the Stripe API. Send reminder emails 2-4 weeks before expiration. Revive can automate this entire pre-dunning workflow.
Learn More
Stop fixing payment errors manually
Revive monitors every failed Stripe charge, applies the optimal recovery strategy, and wins back revenue while you sleep. Connect in 60 seconds, recover in hours.
Start Recovering Revenue