Decline codes
Checkout.com decline codes: what each response code means
Checked
Checkout.com answers every payment with a five-digit response_code. 20xxx codes are soft declines that may pass later, 30xxx codes are hard declines that need the bank or cardholder to fix something first, and 4xxxx codes are risk responses from your own rules or Checkout.com's. Each page below gives the plain meaning, whether Visa allows a retry, what the shopper and the store should do, and how PlatformDTC handles the code when a store connects its own Checkout.com account.
| Response code | Meaning |
|---|---|
| 20001 | The bank declined and wants the shopper to contact it before it will approve. |
| 20002 | The bank declined under its own special conditions and refers the shopper back to it. |
| 20003 | The payment failed for a technical reason on the merchant or acquirer side, not because of the card. |
| 20005 | The bank declined without giving a reason. The most common generic refusal. |
| 20012 | The bank says this transaction type is not allowed for the card. Visa says never retry it. |
| 20013 | The amount sent with the payment was invalid for the bank or the network. |
| 20014 | The card number does not exist at the bank. Usually a typo. Visa says never retry it. |
| 20019 | The bank could not process it this time and asks for the payment to be sent again. |
| 20030 | The payment message had a format the network or bank could not read. |
| 20046 | The bank declined the payment. Like do not honour, no reason is given. |
| 20051 | The card does not have enough available balance or credit for this amount. |
| 20054 | The card's expiry date has passed. Only a new card or updated date can work. |
| 20057 | The card is not allowed to make this kind of payment. Visa says never retry it. |
| 20059 | The bank suspects the payment is fraudulent and refused it. |
| 20061 | The card's spending limit for a period was reached. |
| 20062 | The bank has restricted the card, for example to certain countries or uses. |
| 20063 | The bank refused for a security reason tied to the card details or authentication. |
| 20064 | The amount did not match what the bank expected for the original transaction. |
| 20065 | The card made too many payments in a short time and hit its frequency limit. |
| 20068 | The bank did not answer in time, so the payment failed. |
| 20075 | The card is locked after too many wrong PIN attempts. |
| 20078 | A new or replacement card has not been activated yet. |
| 20082 | The card's security data failed the bank's checks. |
| 20087 | The security code or expiry date entered is wrong. |
| 20091 | The shopper's bank could not be reached, so it could not approve the payment. |
| 20093 | The bank refused because the payment would break a law or regulation it applies. |
| 20096 | A system error stopped the payment. Not the shopper's card. |
| 20099 | The bank returned a response Checkout.com could not map to a known code. |
| 2005C | The bank blocks this kind of transaction on the card. |
| 2009G | The cardholder has blocked payments like this on their own card. |
| 200N7 | The security code (CVV) entered does not match the card. |
| 200P1 | The card hit its daily spending limit. |
| 200P9 | The amount is above a limit on the card; a smaller amount could pass. |
| 200R1 | The cardholder cancelled this recurring payment with their bank. |
| 200R3 | The cardholder cancelled all recurring payments to this merchant on the card. |
| 20100 | The expiry date was sent in a format the network could not accept. |
| 20102 | A merchant or wallet identifier in the payment was not valid. |
| 20103 | This card type or payment method is not supported for the payment. |
| 20104 | Checkout.com's gateway rejected the transaction as invalid. |
| 20105 | Checkout.com's gateway rejected the payment for breaking a rule. |
| 20108 | The bank has newer card details for this customer. The old card will not work. |
| 20112 | The store's account is not set up for Mastercard's 3-D Secure. |
| 20150 | The card is not enrolled in 3-D Secure, so the authentication step could not run. |
| 20151 | The shopper did not pass the bank's verification step. |
| 20152 | The bank's verification step was left unfinished for 15 minutes and expired. |
| 20153 | A fault in the 3-D Secure system stopped the payment. |
| 20154 | The bank requires 3-D Secure verification before it will approve. |
| 20157 | The store's Checkout.com configuration is invalid for this payment. |
| 20159 | The bank's authentication server failed during 3-D Secure. |
| 20179 | The card data is no longer valid, for example an outdated card. |
| 20182 | The payment does not comply with the card's policies. |
| 20183 | The payment is suspected to be fraudulent. |
| 30004 | The bank wants the card taken out of use, without saying fraud. Never retry. |
| 30007 | The bank withdrew the card under special conditions. Never retry. |
| 30015 | The card number does not belong to any known bank. Usually a typo. |
| 30020 | The payment amount was not valid. |
| 30021 | The card has reached its total spending limit. |
| 30022 | The card has reached its limit on the number of transactions. |
| 30033 | The card is expired and the bank wants it taken out of use. |
| 30034 | The bank suspects fraud and wants the card withdrawn. Never retry. |
| 30035 | The bank withdrew the card and refers the merchant to its acquirer. |
| 30036 | The card is restricted and the bank wants it withdrawn. |
| 30037 | The bank withdrew the card and asks the acquirer's security team to call. |
| 30041 | The card was reported lost. Never retry it. |
| 30043 | The card was reported stolen. Never retry, and be careful with the order. |
| 30044 | An anonymous prepaid card cannot pay more than 50 EUR under EU anti-money-laundering rules. |
| 30046 | The card's account is closed. Never retry. |
| 41101 | Blocked by one of your own client-level risk rules in Checkout.com. |
| 41201 | The card number is on your client-level decline list. |
| 41202 | The card's bank range (BIN) is on your client-level decline list. |
| 41203 | The shopper's email address is on your client-level decline list. |
| 41204 | The shopper's phone number is on your client-level decline list. |
| 41205 | The shopper's IP address is on your client-level decline list. |
| 41206 | The email domain is on your client-level decline list. |
| 41301 | The payment's fraud score was above the threshold you set. |
| 42101 | Blocked by an entity-level risk rule in Checkout.com. |
| 42201 | The card number is on an entity-level decline list. |
| 42301 | The fraud score was above an entity-level threshold. |
| 43101 | Checkout.com itself declined the payment as high risk. |
| 43102 | Blocked by a Checkout.com decline rule or fraud model, named in the summary. |
| 43201 | The card is on Checkout.com's own decline list. |
| 43202 | The card's BIN is on Checkout.com's own decline list. |
| 43205 | The shopper's IP is on Checkout.com's own decline list. |
| 43301 | Checkout.com's Autopilot declined the payment for a high fraud score. |
| 43401 | Checkout.com requires 3-D Secure authentication before this payment can go through. |
How retries work on Checkout.com
Visa sorts declines into four categories. Category 1 (issuer will never approve) must not be retried. Categories 2, 3 and 4 allow at most 15 retries in 30 days, and Visa charges fees beyond that. Checkout.com pairs each category with a recommendation code: 03 do not try again, 02 try again later, 01 updated or additional information required.
For Mastercard, Checkout.com returns the merchant advice code in processing.partner_merchant_advice_code. Codes 03 and 21 mean do not try again; 24 to 30 give a wait from one hour to 10 days after an insufficient-funds decline.
Checkout.com on PlatformDTC
A PlatformDTC store can connect its own Checkout.com account and take card payments through Checkout.com Flow, including subscription renewals charged to the stored card.
When a payment is declined, PlatformDTC reads the response_code and sorts it into reroute, try later, needs 3-D Secure, never retry or fraud stop. Only reroute codes can trigger the store's backup, PayPal card fields, and only if the store chose it. Renewal payments that Checkout.com reports as Pending or Retry Scheduled are not treated as declines. Subscription renewals on Checkout.com use the same decline classes as Stripe renewals: low funds (20051) follows the payday schedule, "do not honour" and bank declines (20005, 20046) get one more try, temporary errors are retried over 8 days, and expired, lost, stolen, closed or restricted cards, every 30xxx hard decline and every 4xxxx risk response stop at once and ask the customer for a new card.
Similar decline lists exist at entity and Checkout.com level for each field (42202 to 42206, 43203, 43204, 43206); this library covers the distinct ones and explains the levels on each page.
Frequently asked questions
- What is the difference between Checkout.com 20xxx and 30xxx codes?
- Checkout.com says 20xxx are soft declines where later attempts may succeed, and 30xxx are hard declines where most need the issuer or cardholder to fix something before a retry.
- Do 4xxxx codes come from the bank?
- No. They are risk responses from your Fraud Detection rules or from Checkout.com's own checks, decided before the bank is asked.
Sources
- API response codes — Checkout.com
- Visa response codes — Checkout.com
- Recommendation codes — Checkout.com
- Mapping to Visa system integrity fee categories — Adyen