Stripe failed payments
Stripe decline codes
A practical guide to Stripe failed-payment decline codes: what each one means, whether to retry, and how to recover the revenue.
insufficient_fundsThe card is valid, but the account doesn't have enough money to cover the charge at the moment it was attempted.
processing_errorSomething went wrong while the payment was being processed — usually a temporary glitch on the bank's or network's side, not a problem with the card.
try_again_laterThe issuing bank declined the charge but signalled that a later attempt may succeed — a temporary, retryable decline.
issuer_not_availableStripe couldn't reach the issuing bank to get an authorization decision — a temporary connectivity problem rather than a declined card.
card_declinedThe issuing bank declined the charge without a more specific reason. It's a catch-all that can stem from several underlying causes.
do_not_honorThe issuing bank refused the charge without giving a specific reason. It's one of the most common — and most ambiguous — decline codes.
generic_declineThe bank declined the charge and didn't share a specific reason — a generic refusal similar to card_declined.
card_velocity_exceededThe card exceeded a velocity limit — too many charges, or too much total spend, within a short window set by the issuer.
expired_cardThe card on file has passed its expiration date and can no longer be charged.
incorrect_cvcThe CVC (the 3- or 4-digit security code) submitted with the card didn't match what the issuer expects.
invalid_numberThe card number provided is not a valid card number.
lost_cardThe issuer declined because the card has been reported lost. For security, banks don't reveal this to the cardholder at checkout.
stolen_cardThe issuer declined because the card has been reported stolen. As with lost cards, the reason is hidden from the cardholder at checkout for security.
pickup_cardThe issuing bank flagged the card to be retained (historically, 'pick up the card'). It cannot be charged again.
fraudulentThe charge was declined because it was flagged as suspected fraud by the issuer or the card network.
invalid_expiry_monthThe expiration month submitted with the card isn't valid — for example a month outside 01–12, or one that has already passed.
invalid_expiry_yearThe expiration year submitted with the card isn't valid, or is already in the past.
invalid_cvcThe CVC security code is malformed — the wrong length or otherwise not a valid code. (This differs from incorrect_cvc, where the code is well-formed but doesn't match.)
merchant_blacklistThe issuer blocked the charge because your business matched something on the cardholder's or bank's block list.
revocation_of_authorizationThe cardholder asked their bank to stop this specific recurring payment, so the bank revoked authorization for your charges.
revocation_of_all_authorizationsThe cardholder revoked authorization for all recurring charges on the card — not just yours.
approve_with_idThe charge couldn't be authorized because the payment couldn't be matched to a cardholder ID — usually a temporary issue.
reenter_transactionThe issuer asked for the transaction to be submitted again — a temporary, retryable condition rather than a hard decline.
call_issuerThe issuing bank declined and wants the cardholder to call them before the charge can go through.
transaction_not_allowedThe card doesn't permit this type of transaction — for example online or recurring charges may be disabled on it.
withdrawal_count_limit_exceededThe card hit a limit on the number of withdrawals or charges allowed within a period set by the issuer.
no_action_takenThe issuer didn't act on the authorization request — effectively a non-response that's treated as a decline.
