← All Stripe decline codes

Stripe decline code

expired_card

The card has passed its expiration date. This is a hard decline: retrying will never succeed until the card is replaced.

Type

Hard decline

Recoverable

Recoverable

Frequency

Very Common

What does expired_card mean?

expired_card is one of the most preventable dunning causes. Cards expire on predictable schedules (every 3-5 years), and Stripe emits the invoice.upcoming event before renewal. By combining the expiration date on file with Stripe Account Updater (which automatically refreshes many cards in the background), you can prevent roughly 40-60% of expired_card declines before they happen.

Recovery strategy

Retry approach

Do not retry an expired_card. Every retry will fail with the same code and wastes API quota. Instead, immediately email the customer with a card update link and follow up on days 1, 3, 7, and 10 until they update.

Customer message

Communicate urgency without being alarmist: "Your card on file has expired, please update it to keep your subscription active." Include a one-click secure link to a payment update page. Do not ask for the full card number; use Stripe Elements or a Checkout session to tokenize safely.

Best practices

  • Enable Stripe Account Updater to auto-refresh card numbers and expirations
  • Send the update request immediately, not after a retry cycle
  • Include the last 4 digits of the expired card in your email so the customer knows which one
  • Use a multi-channel approach: email, SMS, in-app banner
  • Schedule a warning email 7-14 days before the known expiration date

About hard declines

Permanent issue. The card cannot be charged. Customer must provide a new payment method.

Frequently asked questions

Can Stripe Account Updater fix an expired_card automatically?

Sometimes. Account Updater pulls new expiration dates and card numbers from participating networks (Visa, Mastercard). It works for roughly 40-60% of cards. The other 40-60% still need the customer to update manually.

How many days before expiration should I warn the customer?

A 30-day pre-expiration email is ideal for non-critical subscriptions. For annual subscriptions or high-value plans, send one at 30 days and another at 7 days.

Is expired_card a hard or soft decline?

Hard. The card cannot be charged until the customer provides a new expiration date or a new card entirely.

How Rebounce handles expired_card

Automatic hard decline handling, no code required

Rebounce classifies every failed payment by its Stripe decline code and applies the optimal recovery strategy automatically. For expired_card, that means intelligent retries at the right times. Multi-channel follow-up through email, SMS, WhatsApp, and in-app banners ensures the customer actually sees the message.

Start free trial