Stripe · Decline codes
What does the Stripe expired_card decline code mean?
Checked
Stripe's expired_card decline code means the card has expired, and Stripe says the customer needs to use another card. It is common on subscriptions, where a card saved months ago reaches its expiry date. Retrying the same saved details will keep failing. The fix is for the customer to enter a current card or a different payment method.
- Type
- Hard decline (data)
- Who declined
- The card's bank
- Retry
- No, not with the same card details
- Shopper action
- Enter the new card or another payment method
- Merchant action
- Send the customer an update-card link
What PlatformDTC does
At checkout PlatformDTC shows "Your card has expired. Please use a different card." and never moves the payment to a backup processor. On renewals, on the fixed schedule or with Smart retry, it is not retried: the subscription is held past due, the customer gets a one-click update-card link (email reason "the card has expired"), re-sent up to 4 times per cycle at least 3 days apart.
Why it happens
The expiry date on the card has passed, or the date saved with the card is out of date after a replacement.
What the shopper can do
Use a card that is still valid, or another payment method. For subscriptions, use the update-card link in the store's email.
What the store can do
Ask the customer to update their card rather than retrying. Visa lists 54 (expired card) as a data-quality decline: a reattempt is permitted, but only new card details will make it succeed.
For developers
On Visa the raw network_decline_code is usually 54; on Mastercard 54 comes with MAC 01 (new account information may be available) or 03.
Frequently asked questions
- Can a store charge an expired card?
- No. The bank will decline it. The customer has to provide current card details.
- Why did my subscription fail with expired_card?
- The card saved for the subscription passed its expiry date. Updating it with the replacement card restarts the payments.
Sources
Related
- invalid_expiry_month — The card's expiry month is invalid.
- invalid_expiry_year — The card's expiry year is invalid.
- new_account_information_available — The card or its account is invalid; the bank may hold newer details for it.
- incorrect_number — The card number entered is wrong.
- fraudulent — Stripe's fraud checks suspected the payment was fraudulent and blocked it.
- generic_decline — Declined for an unknown reason, or blocked by Stripe Radar or Adaptive Acceptance.
- incorrect_address — The billing address entered doesn't match the bank's records.
- incorrect_cvc — The card's security code (CVC) is wrong.