Skip to content

Decline code 54: Expired Card

Jay StevensBy Jay Stevens · Principal EngineerReviewed by Jordan MederichUpdated 2 min read
Summarize with AI

Quick answer

Decline code 54 — “Expired Card” — means the card number is valid but its expiration date has passed, so the issuer won’t authorize the charge. Under ISO 8583 it’s a hard decline: retrying the same card can’t succeed. Stripe reports it as expired_card and NMI as response code 223. Recover it by pulling the new expiry through a card account updater, or by prompting the cardholder to update their card on file.

What code 54 means

Hard declineDo not retry

Retrying the same card never clears a 54 — the expiry date has passed. Recovery requires the updated card, ideally pulled automatically via a card account updater before the charge even fails.

Cross-processor equivalents

The same issuer decision surfaces under a different code on every processor. Here is how code 54 maps across the stacks Revatto recovers on.

ISO 8583
Code54
CalledExpired Card
Stripe
Codeexpired_card
CalledExpired card
Braintree
Code2004
CalledCard Expired
Authorize.net
Code8
CalledExpired cardresponseReasonCode 8
NMI
Code204
CalledExpired card
Chargebee
Codecard_expired
CalledCard expired
Recurly
Codeexpired_card
CalledExpired card
IxoPay
Code2009
CalledExpired cardadapterCode 54 also maps here
Shopify
CodeCARD_EXPIRED
CalledCard expired
Whop
Codecard_expired
CalledCard expirednormalized — no processor-specific code (free-text categorized)

Why it happens

  • The card reached its printed expiration date and the issuer reissued a new one.
  • The cardholder received a replacement card (new expiry, sometimes a new number) and didn’t update it on file.
  • A stored card-on-file that wasn’t refreshed through an account updater service.

How to recover it

  1. 1Enroll recurring cards in a Visa/Mastercard account updater so new expiry dates flow in automatically — clearing many 54s before they ever fire.
  2. 2When a 54 still fires, prompt the customer to update their card with a single, low-friction link.
  3. 3Use the existing relationship: a brief “your card on file expired” note recovers most of these.
  4. 4
    For the stragglers, a real person captures the new card directly. Revatto handles the whole sequence for you, done-for-you — AI plus a human team working email and SMS — and you only pay if the payment is recovered.See how Revatto recovers 54declines →

See what Revatto would recover for you

Failed payments recovered automatically — no engineering, no manual chasing. We do the work; you keep the revenue.

See Your Recovery Potential

Frequently asked questions