Why was a charge declined?

Declines can happen for a variety of reasons that are determined by the cardholder's bank. Each bank has a system that takes into account various signals, such as the cardholder's spending habits, account balance, and card information like the expiration date and CVV/CVC security number.

Since these signals are constantly changing, a previously successful card might be declined in the future.

Even if all of the card information is correct and the cardholder previously had a successful payment, a future charge can still be declined by a bank’s overzealous fraud systems.

Finding out more information about a specific decline

Cratejoy shows all the information we receive from the cardholder’s bank and the payment processor (e.g. Stripe) about a decline in the error message, therefore we don’t have specific information as to why a charge was declined.

If the card information (card number, expiration date, billing zip code, CVV/CVC) is correct but there is still trouble when checking out, the cardholder needs to contact their bank.

The cardholder's bank is declining the charge and sending the error. Therefore, only the bank knows why the transaction was declined and how to correct the issue.


Error Messages

“Your card does not support this type of purchase."

  • Some debit cards require a PIN to be entered. If the cardholder is using one of these cards, they'll need to use another card to make the purchase.
  • Some cards have restrictions on international purchases. If the card was issued in a country other than where your business is located, this might be the problem. In this case, the cardholder needs to contact their bank.
  • Some cards (often corporate cards or FSA cards) can only be used for certain business categories, like travel or healthcare.

“Your card is not supported.”

  • Some payment processors restrict card brands (i.e. Discover, Mastercard) based on the country your store is located in. For example, Stripe currently doesn't support Discover cards in Canada.
  • The cardholder needs to use a different brand of card that would be supported for the country where your store is located.

“Your card has insufficient funds.”

  • The cardholder's bank is saying that they don't have enough funds in their account to cover the costs of the purchase.
  • Sometimes cardholders' banks don't properly assess the risk of currency conversion of purchases. If they see that the purchase is in a different currency then the bank will decline the charge as insufficient funds so the currency conversion or the currency conversion fee doesn't overdraw the account.
  • If a cardholder sees this error message, they should contact their bank.

“The Zipcode you supplied failed validation."

  • The bank is telling the payment processor that the zip code does not match the one it has on file.
  • If the cardholder has recently moved, it may take their bank a while to have the correct zip code on file for them.
  • If the cardholder hasn't recently moved, they need to call their bank and confirm that the information their bank has on file is correct.

Stripe Errors

Error Code Explanation
approve_with_id The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.
call_issuer The customer needs to contact their card issuer for more information.
card_not_supported The customer needs to contact their card issuer to make sure their card can be used to make this type of purchase.
card_velocity_exceeded The customer should contact their card issuer for more information.
currency_not_supported The customer needs check with the issuer that the card can be used for the type of currency specified.
do_not_honor The customer needs to contact their card issuer for more information.
do_not_try_again The customer should contact their card issuer for more information.
duplicate_transaction Check to see if a recent payment already exists.
expired_card The customer should use another card.
fraudulent Do not report more detailed information to your customer. Instead, present as you would the generic_decline described below.
generic_decline The customer needs to contact their card issuer for more information.
incorrect_number The customer should try again using the correct card number.
incorrect_cvc The customer should try again using the correct CVC.
incorrect_pin The customer should try again using the correct PIN.
incorrect_zip The customer should try again using the correct billing ZIP/postal code. (you can turn this off in Stripe)
insufficient_funds The customer should use an alternative payment method.
invalid_account The customer needs to contact their card issuer to check that the card is working correctly.
invalid_amount If the amount appears to be correct, the customer needs to check with their card issuer that they can make purchases of that amount.
invalid_cvc The customer should try again using the correct CVC. (you can turn this off in Stripe)
invalid_expiry_year The customer should try again using the correct expiration date.
invalid_number The customer should try again using the correct card number.
invalid_pin The customer should try again using the correct PIN.
issuer_not_available The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.
lost_card The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.
new_account_information_available The customer needs to contact their card issuer for more information.
no_action_taken The customer should contact their card issuer for more information.
not_permitted The customer needs to contact their card issuer for more information.
pickup_card The customer needs to contact their card issuer for more information.
pin_try_exceeded The customer must use another card or method of payment.
processing_error The payment should be attempted again. If it still cannot be processed, try again later.
reenter_transaction The payment should be attempted again. If it still cannot be processed, the customer needs to contact their card issuer.
restricted_card The customer needs to contact their card issuer for more information.
revocation_of_all_authorizations The customer should contact their card issuer for more information.
revocation_of_authorization The customer should contact their card issuer for more information.
security_violation The customer needs to contact their card issuer for more information.
service_not_allowed The customer should contact their card issuer for more information.
stolen_card The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.
stop_payment_order The customer should contact their card issuer for more information.
testmode_decline A genuine card must be used to make a payment.
transaction_not_allowed The customer needs to contact their card issuer for more information.
try_again_later Ask the customer to attempt the payment again. If subsequent payments are declined, the customer should contact their card issuer for more information.
withdrawal_count_limit_exceeded The customer should use an alternative payment method.

When a cardholder receives any of these errors they are coming directly from Stripe and communication with the cardholder's bank. Cratejoy, the merchant, and the payment processor do not get any more information than these messages. You can read more about them here.

If their payment was declined, why is my customer seeing funds leave their account?