Banks communicate the way Victorian aristocrats wrote letters: formally, with maximum possible ambiguity, and in a way that technically conveys information without actually being useful. "Do Not Honor" doesn't tell you much. Neither does "Refer to Issuer." But buried in these terse response codes is actually actionable information — if you know how to read it.

This is a complete reference guide to credit card decline codes, translated from bank-speak into what they actually mean for merchants.

Soft declines vs. hard declines

Before the code list, the most important distinction: some declines are retryable, some are not.

Where declines actually come from

Most merchants think of a decline as coming from the cardholder's bank. Often it does. But declines can come from three different places:

  1. Issuing bank — the cardholder's bank makes the call. Most declines are here.
  2. Payment processor — your payment processor applies its own risk rules (velocity limits, flagged card patterns). These are separate from the issuer's response.
  3. Payment gateway — technical issues at the gateway level (connection failures, configuration errors) can generate decline-like responses.

Understanding where a decline originates tells you who to actually contact when things go wrong.

Complete decline code reference

CodeMeaningTypeWhat to do
01Refer to card issuerSoftCustomer should call the number on the back of their card
02Refer to card issuer, special conditionsSoftSame as 01 — issuer has a specific reason they won't share
04Pick up card — restrictedHardCard reported lost or stolen. Do not attempt retransaction. In-person: request an alternate form of payment without confrontation.
05Do not honorSoft/HardGeneric decline — most common response. The issuer declined without specifying a reason. Can be retried once; if it fails again, treat as hard.
12Invalid transactionSoftTransaction type not supported for this card, or data formatting issue. Check transaction structure.
14Invalid account numberHardCard number doesn't exist or failed Luhn check. Do not retry.
15No such issuerHardThe BIN doesn't match any known issuer. Invalid card.
41Lost card, pick upHardCardholder reported card lost. Do not retry.
43Stolen card, pick upHardCardholder reported card stolen. Do not retry.
51Insufficient fundsSoftAccount doesn't have enough balance. Can retry after a few days or ask for alternative payment.
54Expired cardHardCard past its expiry date. Ask for updated card details. If subscription, trigger a card update flow.
57Transaction not permitted to cardholderHardCard restrictions prevent this transaction type. Common with prepaid cards for international or card-not-present purchases.
59Suspected fraudHardIssuer's fraud systems flagged this transaction. Do not retry without customer action — they need to clear it with their bank.
61Exceeds withdrawal limitSoftOver the cardholder's daily or transaction limit. Can retry with lower amount or ask customer to contact bank to increase limits.
62Restricted cardHardCard has restrictions (geographic, merchant category, etc.). Cannot be used for this transaction.
63Security violationHardTransaction failed security checks. Do not retry.
65Exceeds withdrawal frequency limitSoftToo many transactions in a period. Retry tomorrow.
78No account / unable to locate accountHardAccount doesn't exist. Do not retry.
91Issuer or switch inoperativeSoftTemporary network issue on the bank's side. Retry in a few minutes.
96System malfunctionSoftGeneral system error. Retry once.

The codes merchants see most often

Code 05 (Do Not Honor) is the most common decline and the most frustrating — it tells you nothing about why. It's the bank saying "no" without explanation. This can be temporary (bank's fraud system flagged something it shouldn't have) or permanent (card is actually suspended). One retry is reasonable; more than that is pointless.

Code 51 (Insufficient Funds) is the clearest: the money isn't there. For subscription businesses, this is a trigger for a dunning sequence — wait a few days and retry, preferably after sending the customer a payment reminder.

Code 54 (Expired Card) is entirely preventable. If you're collecting card details, build an update mechanism. Subscription platforms should be using tools that automatically update card details when issuers push updated numbers.

Code 59 (Suspected Fraud) is a hard stop. The issuer's fraud detection flagged this specific transaction. Retrying will likely generate the same result and may further flag your merchant account. The cardholder needs to call their bank.

The cost per $1 lost to a chargeback, once you add processing fees, operational costs, and merchandise losses, is approximately $4.61. Knowing which declines are retryable and which aren't is the fastest way to reduce this number.

The fastest way to understand a card's real status

Decline codes tell you what happened after you tried to charge. Pre-verification tells you what will happen before you do. Running a zero-dollar verification through CVV Checker gives you the bank's real-time response — including the exact decline code and message — without initiating an actual charge. That means you can identify suspended, expired, or flagged cards before they become failed transactions on your processing statement.