Payments library
Card decline codes: what each one means and what to do
A decline code is the short reason a card bank, payment processor or PayPal gives when a payment fails. Some codes mean try again later, such as low funds or a bank that could not be reached. Others mean stop: the card is lost, closed, expired or the details are wrong. Each page explains one code in plain words, says whether card network rules allow a retry, and shows what PlatformDTC checkout and subscription renewals do with it.
- Stripe52 pages
- Card issuer response codes (ISO 8583)42 pages
- PayPal66 pages
- Braintree111 pages
- Adyen31 pages
- Checkout.com85 pages
- Authorize.Net61 pages
Soft declines and hard declines
A soft decline is a refusal that can change: the balance was short today, the bank's system was down, or the card hit a spending limit. Trying again later, ideally after payday or after the limit resets, can work.
A hard decline will not change on its own. The card was reported lost or stolen, the account is closed, the card has expired, or the number or security code is wrong. Retrying the same card wastes attempts and can cost the store money, so the shopper needs to use another card or fix the details.
Some codes say nothing useful, such as do not honor or generic decline. The bank refused without giving a reason. One later retry is reasonable; after that, ask for a different payment method.
| Category | What it means | Examples | Retry rule |
|---|---|---|---|
| 1. Issuer will never approve | The card or account cannot be used | 04, 07, 12, 14, 15, 41, 43, 46, 57, R0, R1, R3 | Never resubmit the same card |
| 2. Issuer cannot approve at this time | Could work later | 03, 19, 51, 59, 61, 62, 65, 75, 78, 91, 93, 96 | Up to 20 attempts in 30 days |
| 3. Data quality | The payment details need to be checked | 54, 55, 82, 6P, N7 | Up to 20 attempts in 30 days |
| 4. Generic | Every other decline code | 01, 02, 05, 13, 58, 63 | Up to 20 attempts in 30 days |
Why retry rules matter to a store
Card networks limit how often a store may try a declined card again. Visa's rules say a merchant must never resubmit a card after a Category 1 decline, and allow up to 20 attempts in 30 days for the other categories. Mastercard sends Merchant Advice Codes with its declines; codes 03 (do not try again) and 21 (stop recurring payment) mean stop, and Braintree's documentation notes a Mastercard fee for each reattempt beyond 10 in 24 hours on those codes.
Stripe recommends no more than eight retries for a charge that permits retries, and warns that card banks may treat extra retries as possible fraud, which raises declines on good payments too.
What PlatformDTC does with a decline
At checkout the shopper sees a plain message with what to do next, and can try another card at once. If the store has chosen PayPal card payments as a backup, a bank refusal with no lasting reason, such as do not honor, can be tried again through PayPal; funds, expired, wrong-details and fraud declines are never moved to the backup.
For subscription renewals with Smart retry on, each decline is sorted by the processor's code and the bank's own response code. Low funds are retried on the customer's likely payday, temporary errors a few days later, unexplained refusals once after 48 to 72 hours, and dead or expired cards never: the customer gets a one-click link to update the card. Whatever the setting, PlatformDTC counts declines per card and pauses before Visa's or Mastercard's reattempt limits are reached.
Frequently asked questions
- What is the difference between a decline code and an error code?
- A decline code is the reason the card bank or processor refused a payment, such as insufficient funds or an expired card. An error code can also cover problems that never reached the bank, such as a missing field in the request. Stripe, for example, returns the error card_declined and puts the bank's reason in a separate decline code.
- Should a store retry a declined card?
- Only when the code allows it. Low funds, bank outages and limits can clear later, so a spaced-out retry can work. Lost, stolen, closed, expired or wrong-details declines will not clear, and Visa forbids resubmitting a card after a Category 1 decline. Never retry more than once a day, and stop when the bank says do not try again.
- Why does the bank not say why it declined?
- Banks often answer with a generic code such as do not honor or generic decline to protect the cardholder's privacy and their fraud checks. Stripe notes that banks discuss the details of a decline only with the cardholder, so the shopper calling the number on the back of the card is usually the fastest way to learn the real reason.
- Can a shopper fix a declined payment themselves?
- Often, yes. They can re-check the card number, expiry date, security code and billing postal code, confirm the payment in their banking app if asked, move money onto the card, or use a different card or PayPal. If the bank keeps refusing with no reason, calling the bank clears most holds.
- Do these codes mean the shopper is a fraudster?
- Rarely. Most declines are low funds, wrong details or a cautious bank. A few codes do signal fraud, such as a card reported stolen or a payment blocked by fraud screening. Stripe advises showing those to the shopper as a plain generic decline rather than the specific reason.