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.
- Soft declines are temporary. The card isn't necessarily invalid — the transaction just failed this time. Insufficient funds, temporary holds, network timeouts. These can often be retried after waiting (hours to days, depending on the reason).
- Hard declines are permanent. The card is invalid, stolen, closed, or flagged. Retrying a hard decline is pointless and can get your merchant account flagged for excessive failed attempts.
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:
- Issuing bank — the cardholder's bank makes the call. Most declines are here.
- Payment processor — your payment processor applies its own risk rules (velocity limits, flagged card patterns). These are separate from the issuer's response.
- 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
| Code | Meaning | Type | What to do |
|---|---|---|---|
01 | Refer to card issuer | Soft | Customer should call the number on the back of their card |
02 | Refer to card issuer, special conditions | Soft | Same as 01 — issuer has a specific reason they won't share |
04 | Pick up card — restricted | Hard | Card reported lost or stolen. Do not attempt retransaction. In-person: request an alternate form of payment without confrontation. |
05 | Do not honor | Soft/Hard | Generic decline — most common response. The issuer declined without specifying a reason. Can be retried once; if it fails again, treat as hard. |
12 | Invalid transaction | Soft | Transaction type not supported for this card, or data formatting issue. Check transaction structure. |
14 | Invalid account number | Hard | Card number doesn't exist or failed Luhn check. Do not retry. |
15 | No such issuer | Hard | The BIN doesn't match any known issuer. Invalid card. |
41 | Lost card, pick up | Hard | Cardholder reported card lost. Do not retry. |
43 | Stolen card, pick up | Hard | Cardholder reported card stolen. Do not retry. |
51 | Insufficient funds | Soft | Account doesn't have enough balance. Can retry after a few days or ask for alternative payment. |
54 | Expired card | Hard | Card past its expiry date. Ask for updated card details. If subscription, trigger a card update flow. |
57 | Transaction not permitted to cardholder | Hard | Card restrictions prevent this transaction type. Common with prepaid cards for international or card-not-present purchases. |
59 | Suspected fraud | Hard | Issuer's fraud systems flagged this transaction. Do not retry without customer action — they need to clear it with their bank. |
61 | Exceeds withdrawal limit | Soft | Over the cardholder's daily or transaction limit. Can retry with lower amount or ask customer to contact bank to increase limits. |
62 | Restricted card | Hard | Card has restrictions (geographic, merchant category, etc.). Cannot be used for this transaction. |
63 | Security violation | Hard | Transaction failed security checks. Do not retry. |
65 | Exceeds withdrawal frequency limit | Soft | Too many transactions in a period. Retry tomorrow. |
78 | No account / unable to locate account | Hard | Account doesn't exist. Do not retry. |
91 | Issuer or switch inoperative | Soft | Temporary network issue on the bank's side. Retry in a few minutes. |
96 | System malfunction | Soft | General 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.