Posted by on April 28, 2021 — Updated on November 23, 2025
When you use Stripe to collect payments through your payment processing software, you may see decline codes from time to time. These codes come directly from the card issuer. Understanding what they mean helps you guide your customers and keep payments running smoothly.
Below is a simplified list of common Stripe decline codes, what they mean, and what steps to take next. For Stripe’s full and most up-to-date list, visit their official Decline Codes documentation.
| Decline Code | Meaning | Next Steps |
|---|---|---|
| authentication_required | The transaction needs card authentication. | The customer should try again and complete any prompts. If it still fails, they should contact their card issuer. |
| approve_with_id | The payment cannot be authorized. | Try the payment again. If it fails again, the customer should contact their card issuer. |
| call_issuer | The card was declined for an unknown reason. | The customer should contact their card issuer. |
| card_not_supported | The card does not support this type of purchase or currency. | The customer should check with their card issuer. |
| card_velocity_exceeded | The customer has reached a card limit. | The customer should contact their card issuer. |
| currency_not_supported | The card does not support the chosen currency. | The customer should verify currency support with their card issuer. |
| do_not_honor | The card was declined for an unknown reason. | The customer should contact their card issuer. |
| duplicate_transaction | A payment with the same amount and card was just submitted. | Check whether a recent payment already exists. |
| expired_card | The card is expired. | The customer should use a different card. |
| fraudulent | Stripe suspects the transaction may be fraudulent. | Present the decline as a standard “card declined” message. Customer should contact their issuer. |
| generic_decline | The payment was declined for an unknown reason. | The customer should contact their card issuer. |
| incorrect_number | The card number is incorrect. | The customer should re-enter the correct number. |
| incorrect_cvc | The CVC is incorrect. | The customer should re-enter the correct CVC. |
| incorrect_zip | The ZIP/postal code does not match. | The customer should confirm their billing ZIP. |
| insufficient_funds | The card does not have enough available funds. | The customer should use a different card. |
| invalid_account | The account or card is invalid. | The customer should contact their card issuer. |
| invalid_amount | The amount is invalid or not allowed. | The customer may need to check limits with their issuer. |
| invalid_expiry_month | The expiration month is invalid. | The customer should re-enter the correct expiration date. |
| invalid_expiry_year | The expiration year is invalid. | The customer should re-enter the correct expiration date. |
| issuer_not_available | The issuer could not be reached. | Try again. If it continues, the customer should contact their issuer. |
| lost_card | The card has been marked lost. | Show as a normal decline. Customer must contact their issuer. |
| merchant_blacklist | The payment matches a value in a blocklist. | Display as a normal decline without details. |
| new_account_information_available | The account or card is invalid. | The customer should contact their issuer. |
| not_permitted | The payment is not allowed. | The customer should contact their issuer. |
| offline_pin_required | The card needs a PIN to continue. | The customer should insert their card and enter their PIN. |
| pickup_card | The card cannot be used (may be lost or stolen). | The customer should contact their issuer. |
| pin_try_exceeded | The customer has entered the wrong PIN too many times. | The customer must use another form of payment. |
| processing_error | There was a processing error. | Try the payment again or try again later. |
| restricted_card | The card cannot be used (may be lost or stolen). | The customer should contact their issuer. |
| stolen_card | The card has been marked stolen. | Show as a normal decline. Customer must contact their issuer. |
| testmode_decline | A Stripe test card was used. | The customer must use a real card. |
| transaction_not_allowed | The card is not allowed to make this purchase. | The customer should contact their issuer. |
| try_again_later | The payment failed for an unknown reason. | The customer should try again. If it repeats, they should contact their issuer. |
| withdrawal_count_limit_exceeded | The customer exceeded a card limit. | The customer should try another payment method. |
By understanding these decline codes, you can help customers resolve payment issues quickly and keep your billing process running smoothly.
For related help, see: How to View Failed Payments.