All recovery guides

Failed-payment guideStripe decline reason: expired_card

How to recover expired_card failed payments in Stripe

Expired cards won't fix themselves with retries. How to get customers to update their card, plus the exact recovery email template and a pre-dunning tactic.

What card expired means

The card on file passed its expiry date. Every future charge will fail identically until the customer stores a new card. Retries cannot fix this one.

Why it happens

  • The bank reissued the card and the customer never updated subscriptions.
  • Card networks' automatic updates (which Stripe uses where available) did not cover this card or issuer.
  • The customer forgot which services were attached to the old card.

What Stripe does on its own

Stripe's card-account-updater catches many reissued cards automatically, but when a charge still fails with expired_card, the updater did not have new details. Retries against an expired card are pointless. Action has to come from the customer.

The recovery playbook

  1. Email immediately. There is no retry worth waiting for. Include the Stripe-hosted invoice link, which lets the customer pay and update the card in one step.
  2. Be specific in the subject line ("your card ending 4242 has expired"). Vague billing emails get ignored; specific ones read as legitimate.
  3. Follow up once after 3-4 days if unpaid; expired-card cases decay quickly once the customer's attention moves on.
  4. Turn on expiring-card alerts (pre-dunning): MRRdue can warn you up to 30 days before a card expires with an optional read-only Payment Methods scope. The email goes out before the failure ever happens.

Very recoverable in the first week. These are engaged customers with a stale card, not churn risks. Speed matters more than copywriting here.

The email to send

This is the exact template MRRdue's recovery assistant suggests for expired_card cases. Copy it, swap the details, and send it from your own address.

Subject: A quick heads-up about your payment

Hi Alex,

I noticed your recent $49.00 payment didn't go through (card expired). No worries at all — these things happen, and it's usually a quick fix.

Here's a secure link to update your payment details — it only takes a minute:
https://invoice.stripe.com/i/…

Once that's done we'll take care of the rest automatically. If anything's unclear, just reply to this email — a real person reads every one.

Thanks so much,
Your SaaS

More variants (and retention-risk templates) in the free recovery email template gallery.

Stop working declines from a spreadsheet

MRRdue imports your failed payments with read-only access, ranks them by recoverable dollars and decline reason, and drafts this email for every case. You stay the sender.