Skip to main content

Payment decline codes

Learn how to deal with "Do not honor" and other payment refusal reasons

Alex avatar
Written by Alex
Updated this week

When a payment fails, it disrupts both sides of the transaction. The customer wonders what went wrong, and you as a merchant are left uncertain about how to proceed.

Declines can happen anywhere—at checkout, during a recurring payment attempt and even refund.

Every card payment goes through an authorization process. When that process fails, the transaction is declined. To understand why, payment processors provide decline codes—short messages that indicate what caused the issue. Knowing what these codes mean helps you decide what to do next and, in some cases, recover the sale.

Below, we’ll look at how authorization works, cover some of the most common decline types, and describe how to fix each decline code. We’ll also dig into one of the most opaque — 'Do Not Honor' — and explore what you can do about it.


How card authorization works

Card authorization is the process that verifies whether a customer has enough funds or credit to complete a purchase. In short it looks like this:

  1. The customer enters their card details at checkout.

  2. The merchant, through a payment gateway (X-Cart Pay, Stripe, PayPal), sends the authorization request to the payment processor or acquirer.

  3. The acquirer passes it through the card network (Visa, Mastercard) to the issuer — the customer’s bank.

  4. The issuer validates the card (not expired, not blocked), checks for fraud signals, and checks that there is enough funds for the purchase.

  5. If approved, the issuer sends an authorization code and places a temporary hold on the amount. If declined, the transaction is rejected.

When you later capture the payment (manually or automatically), the funds move from the issuer to the acquirer and then to your account (minus fees). If you don't capture the payment before the authorization expires, the hold is released.


What is a decline code

A decline code is a short identifier that indicates why a payment attempt failed. It’s usually returned by the card issuer or payment processor and helps pinpoint the issue so you can address it without guesswork.

The most common types of card declines include:

  • Insufficient funds: Roughly half of all card declines occur because the customer doesn’t have enough funds or credit available.

  • Incorrect card details: About one in five declines result from entering an invalid card number, CVV, or expiration date. Re-entering the correct information usually resolves this.

  • Suspected fraud: Unusually large or unfamiliar transactions may trigger fraud detection. The customer typically needs to verify their identity with their bank before retrying.

  • Inactive or expired card: Payments from expired or unactivated cards are automatically declined. Customers should activate a new card or choose a different payment method.

  • Unsupported card network: Some cards aren’t accepted by specific payment gateways or acquirers. Using a processor that supports all major networks helps avoid this issue.

Next, we’ll review the most common decline codes, including those related to the reasons above, and outline how to resolve each whenever possible.


List of card decline codes

Below is a reference list of decline codes returned when a transaction can’t be processed. Each code indicates a specific reason for the failure and helps businesses decide what to do next.

Decline code + Description

(Click to expand)

What to do

DECLINED

The card was declined for an unknown reason.

The payment was declined for an unknown or system reason (e.g. gateway/fraud filter). → Ask the customer to contact issuer or try again.

DO_NOT_HONOR

The card was declined for an unknown reason.

EXPIRED_CARD

The card has expired and cannot longer be charged, but can also mean that they mistyped card's expiration date.

Ask the customer to double check and re-enter it or use a different card.

FRAUDULENT_CARD

The payment was declined because the issuer or X-Cart Pay suspects fraud.

Do not share specific details with the customer. Present the message as a generic decline.

INCORRECT_PAYMENT_INFORMATION

The payment information (like card number) is invalid or mistyped.

Depending on the processor, can be more specific:

  1. incorrect_number

  2. incorrect_address

  3. incorrect_cvc

Ask customer to re-enter the correct card number or use a different card.

INSUFFICIENT_FUNDS

The card doesn’t have enough funds to complete the purchase.

The customer needs to use another card or add funds and try again.

INVALID_CARD_SECURITY_CODE

The card security code (CVC/CVV) is invalid.

Ask customer to check the code and try again.

INVALID_EXPIRATION_DATE

The card’s expiration date is invalid.

Ask customer to try again using the correct expiry date.

LOST_CARD

The card has been reported lost.

Do not share specific details; ask customer to contact issuer and provide a new card.

NO_CARD_NUMBER_ON_FILE_WITH_ISSUER

The card number isn’t recognized by the issuer.

Do not share specific details with the customer. Present the message as a generic decline.

NO_SUCH_CARD_ISSUER

The card issuer doesn’t exist or can’t be identified.

The customer needs to check the card details or use a different card.

OVER_LIMIT

The card’s credit or withdrawal limit has been exceeded.

The customer needs to use another payment method or wait until the limit resets.

PROCESSING_ERROR

An error occurred while processing the card.

Retry the payment. If it fails again, try later or contact the payment processor.

RETRY

The payment can be retried.

Attempt the transaction again.

RETRY_WITH_THREEDS

The payment must be retried with 3D Secure authentication.

Retry the payment with 3D Secure enabled.

RISK_DECLINE

The payment was declined due to a risk assessment.

Do not share specific details with the customer. Present the message as a generic decline.

STOLEN_CARD

The card has been reported stolen.

Same as lost card: treat as a fraud decline.

THREEDS_CHALLENGE_FAILED

The 3D Secure authentication challenge failed.

Ask the customer to complete the 3D Secure verification correctly or use another card.

UNEXPECTED_PAYIN_TOKEN

The payment token provided is invalid or expired.

Retry the payment or ask the customer to re-enter their payment details.

UNSUPPORTED_CARD_TYPE

The card type isn’t supported by the merchant’s payment processor.

The customer needs to use a supported card or another payment method.


Do Not Honor decline

Code (05) Do Not Honor means the bank declined the transaction without giving a reason. The real issue could be anything—insufficient funds, suspected fraud, or spending limits—but each of those already has its own specific code.

Some banks often return this vague response because many still use outdated infrastructure that can’t generate precise decline reasons. Others may have errors or misconfigurations that default to 'Do Not Honor', even when a clearer code like (51) Insufficient Funds should apply.

Even upgraded systems can produce this response due to faulty logic or data mapping issues.

In any case, here are a few steps you can take to handle 'Do Not Honor' declines:

1. Retry with a fallback processor

“Do Not Honor” is a soft decline, so you can safely retry. Try routing the transaction through a different processor. It might go through—or at least return a more detailed reason.


2. Check card details

Incorrect card info often triggers this decline. Prompt the customer to re-enter their details and try again.


3. Offer another payment method

Ask the customer to use another card, digital wallet, open banking option, or Buy Now, Pay Later method.

If none of the above help, the customer needs to contact their card issuer for more information.


I’m Getting Too Many 'Do Not Honor' Declines

If you’re seeing many Do Not Honor declines, start by checking where they come from. If most come from a few specific banks, the issue may be on their side.

You can identify this by reviewing decline data. Compare the Bank Identification Numbers (BINs) of the declined cards to see if the problem is concentrated with certain banks, regions, or card types.

The BIN is the first 6–8 digits of a card, which identify the issuing bank and country.

If you notice a pattern, have your payment processor contact the banks directly. This can help resolve the issue and increase approval rates for future transactions.


Can't find answers you're looking for?

Email us at support@x-cart.com. We will be happy to help!


Did this answer your question?