Expired card expired_card
What this decline means
The card on file is past the expiration date printed on it. The issuer will refuse every charge against it, forever — this failure cannot age back into working.
Why it happens on subscription renewals
- Cards expire every few years and the subscription simply outlived the plastic — the longer a subscriber stays, the more certain this becomes.
- The customer already has the replacement card in their wallet — same number, new expiry — but nothing prompted them to update the store's saved copy.
The merchant playbook
- Stop retrying. Every automatic attempt against an expired card is a guaranteed failure that costs goodwill and, in volume, looks bad to payment networks.
- Send the card-update request the day the failure happens — the customer's intent to stay is highest right then, and the fix takes them under a minute.
- Better: catch it before it fails. Expiry month and year are visible on the stored payment method in advance — a store that scans upcoming expiries can ask for the update a month early and never lose the renewal at all.
- If your subscription app pauses (rather than cancels) on exhausted retries, an expired-card subscriber remains recoverable for weeks — keep the update link alive in follow-ups.
Should you retry?
Never. No retry schedule recovers an expired card. The card-update email is the entire playbook — send it early and make it effortless.
Common questions
Can a retry ever succeed against an expired card?
No. Unlike balance-related declines, expiry is checked against the card data itself, so the answer never changes. Recovery requires the customer saving new card details.
Can expired-card failures be prevented?
Largely, yes — it's the one decline you can see coming. Stored payment methods expose their expiry month and year, so upcoming expiries can be flagged and fixed before the renewal date.
Related codes: invalid_payment_method · incorrect_number · payment_method_declined · or see the
full decline-code guide.
Where Moorly fits: Moorly reads the raw decline reason your subscription app records for each failed renewal, keeps it attached to the case instead of collapsing it to “payment failed”, and sorts failures into families, so the total you lost is broken out by the kind of failure behind it. Codes it has not yet classified are handled conservatively rather than guessed at. It starts read-only. Join the early-access list →
Moorly is an independent product by Velun Labs and is not affiliated with Shopify, Appstle Inc., or Seal Subscriptions. Code names follow Shopify's public API documentation as of August 2026; bank behavior varies by issuer — always confirm against your own admin.