Home / Decline codes / expired_card
What does the Stripe expired_card decline code mean?
expired_card Needs the customer to actWhat it means
Stripe's own description is blunt: "The card has expired." The card's issuer rejected the charge because the expiration date on file is in the past. This is one of the most common reasons a recurring subscription payment fails, simply because cards expire on a schedule (usually two to four years) and most customers don't think to update their payment method until something stops working.
Will Stripe's automatic retries fix it?
No. Stripe's own guidance here is direct: "The customer needs to use another card." Smart Retries is built to work around temporary, timing-related declines, like a card that's briefly over its limit. An expired card isn't temporary. The card is genuinely unusable everywhere, not just with your business, so retrying the same card number on a different day changes nothing.
What you should do
The customer needs to give you their new card details. In practice that means either an email prompting them to update their payment method in your billing portal, or, if you've enabled it, Stripe's automatic card updater, which some card networks support for proactively refreshing expiration dates on file. Card updater coverage varies by network and issuer, so it doesn't catch every expired card, which is exactly why a growing share of merchants still need direct outreach as a backstop.
Where Valkyrie helps: expired_card is exactly the kind of decline Smart Retries can't touch, since no amount of retrying changes an expired card. Once you connect Stripe, we find these in your last 90 days of charges and send a branded email asking the customer to update their card. You're billed 25% only on what actually comes back, and nothing if we don't recover anything.
Your net monthly gain
300% ROIEvery $1 you pay us puts $3 back in your pocket.
Estimates based on industry averages. Connect your Stripe to see your real number.
See my actual numberRelated decline codes
Questions, answered
Will Stripe eventually recover a payment that fails with expired_card?
Not on its own. Smart Retries varies timing and amount to work around temporary declines, but a card that's genuinely past its expiration date will keep failing every time, because the card itself no longer works anywhere, not just on Stripe.
Does the customer need to do anything special to fix this?
They just need to enter their new card's number, expiration date, and CVC wherever your checkout or billing portal collects payment details. Most card networks reissue a new number along with a new expiration date, so even a saved card has to be replaced, not just updated.
Is expired_card the same as a card being reported lost or stolen?
No. expired_card just means the card's printed expiration date has passed. lost_card and stolen_card are separate decline codes Stripe uses when the issuer has flagged the card itself as missing, which is a different situation with different wording in Stripe's docs.
Source: Stripe decline codes documentation, checked October 2026.