failure

Tracking down card declines with Stripe

There are several reasons why a credit card can be declined using the Payment for Stripe app. The reasons are generally surfaced in the app after a charge with a descriptive label outlining the reasoning. There are two possible reasons why a credit card payment can fail:

  • Payments declined by the card issuer
  • Blocked payments (Stripe Radar, fraud, etc)
Payments declined by card issuers

Card issuers have automated systems that determine whether the charge should be authorized or not. The algorithms look at various signals instantaneously, from spending habits, account balance and credit card information, as well as location of the charge. Unfortunately, not all of the information that led to the decline is shared with Stripe, and subsequently to the Payment app. In rare cases, card issuers may also provide helpful explanations, but generally, card decline reasons can be hard to track down.

In some cases, the type of restrictions on the credit card can also cause certain declines. For example, using an FSA/HSA card to create a charge for a non-medical payment.

In addition, geographic location can also play a role in declined or failed payments. If credit cards are issued in a different country than your Stripe account, you may be at a higher risk of fraud, and thus risk a higher rate of failed payments.

Payments blocked by Stripe Radar

Every Stripe account comes with automated fraud verification for every single charge made on the Stripe network. The reason this is helpful is simple: Stripe processes billions of dollars in transactions every single day, scanning and identifying trends that give your Stripe account real time feedback on fraud across a variety of mediums. In addition, the Radar prevention tool can also be used to scale up and down your protection, ultimately putting you in control of how finicky your payment protection should be.

How can card declines be avoided?

One of the easiest ways is by using a PCI-compliant card reader, such as Stripe Terminal. Not only does using a card reader give you an abundance of new ways to collect payment methods like Apple Pay and Google Pay, but you'll also be able to accept chip-enabled cards; further preventing fraud. Although manually inputting card numbers is supported by the Payment app, they are still treated by payment gateways and issuers like an online purchase would be, as there is no evidence that the card was “present” at the time of the transaction.

In some cases, it may also be helpful to provide additional information with the charge. At the very least, including a billing zip or postal code to be validated with the credit card can help exponentially, but other information including name on the card and billing address can also be validated and checked against known fraudulent transactions. Lastly, providing a billing email address also allows Stripe Radar to check to see if that email address has been used across the Stripe network (globally) for other types of fraud.

What are the bank decline codes?
Decline Code Description
authentication_required The card was declined as the transaction requires authentication.
approve_with_id The payment cannot be authorized.
call_issuer The card has been declined for an unknown reason.
card_not_supported The card does not support this type of purchase.
card_velocity_exceeded The customer has exceeded the balance or credit limit available on their card.
currency_not_supported The card does not support the specified currency.
do_not_honor The card has been declined for an unknown reason.
do_not_try_again The card has been declined for an unknown reason.
duplicate_transaction A transaction with identical amount and credit card information was submitted very recently.
expired_card The card has expired.
fraudulent The payment has been declined as Stripe suspects it is fraudulent.
generic_decline The card has been declined for an unknown reason.
incorrect_number The card number is incorrect.
incorrect_cvc The CVC number is incorrect.
incorrect_pin The PIN entered is incorrect. This decline code only applies to payments made with a card reader.
incorrect_zip The ZIP/postal code is incorrect.
insufficient_funds The card has insufficient funds to complete the purchase.
invalid_account The card, or account the card is connected to, is invalid.
invalid_amount The payment amount is invalid, or exceeds the amount that is allowed.
invalid_cvc The CVC number is incorrect.
invalid_expiry_year The expiration year invalid.
invalid_number The card number is incorrect.
invalid_pin The PIN entered is incorrect. This decline code only applies to payments made with a card reader.
issuer_not_available The card issuer could not be reached, so the payment could not be authorized.
lost_card The payment has been declined because the card is reported lost.
merchant_blacklist The payment has been declined because it matches a value on the Stripe user's block list.
new_account_information_available The card, or account the card is connected to, is invalid.
no_action_taken The card has been declined for an unknown reason.
not_permitted The payment is not permitted.
offline_pin_required The card has been declined as it requires a PIN.
online_or_offline_pin_required The card has been declined as it requires a PIN.
pickup_card The card cannot be used to make this payment (it is possible it has been reported lost or stolen).
pin_try_exceeded The allowable number of PIN tries has been exceeded.
processing_error An error occurred while processing the card.
reenter_transaction The payment could not be processed by the issuer for an unknown reason.
restricted_card The card cannot be used to make this payment (it is possible it has been reported lost or stolen).
revocation_of_all_authorizations The card has been declined for an unknown reason.
revocation_of_authorization The card has been declined for an unknown reason.
security_violation The card has been declined for an unknown reason.
service_not_allowed The card has been declined for an unknown reason.
stolen_card The payment has been declined because the card is reported stolen.
stop_payment_order The card has been declined for an unknown reason.
testmode_decline A Stripe test card number was used.
transaction_not_allowed The card has been declined for an unknown reason.
try_again_later The card has been declined for an unknown reason.
withdrawal_count_limit_exceeded The customer has exceeded the balance or credit limit available on their card.

The list above is directly from Stripe. For a complete list, as well as suggested next steps, please visit: https://stripe.com/docs/declines/codes

Take your business offline in less than 30 seconds

No-setup apps and card readers for every platform.