Stripe decline codes,and what to do next.
20 Stripe decline codes in plain words: what each one means, whether a retry can fix it, and what to do next.
20 OF 20 CODES
IN SHORT
A Stripe decline code is the reason a card issuer gives for refusing a payment, such as insufficient_funds, do_not_honor or generic_decline. Soft declines can pass on a later retry. Hard declines, like lost_card or stolen_card, need a new card, and Stripe Billing won't retry them. Each code below says what to do next.
All codes20Every decline Stripe returns, by recovery chance.
Retry later6Temporary. The card works; timing doesn’t.
Update card5The card details are wrong or out of date.
Authenticate2The bank wants the customer to confirm.
Contact customer3The issuer said no without a clear reason.
Stop retrying4Reported lost, stolen or blocked. Never retry.
DECLINE CODEWHAT IT MEANSTYPERECOVERY
insufficient_fundsThe card is valid but the balance was too lowRetry laterHIGHcard_velocity_exceededThe card hit its spending or transaction limitRetry laterHIGHwithdrawal_count_limit_exceededToo many charges on the card in a short periodRetry laterHIGHprocessing_errorSomething went wrong while processing the cardRetry laterHIGHtry_again_laterThe issuer asked to retry laterRetry laterHIGHissuer_not_availableThe issuer couldn’t be reachedRetry laterHIGHexpired_cardThe card on file has expiredUpdate cardHIGHincorrect_cvcThe security code didn’t matchUpdate cardHIGHincorrect_numberThe card number is wrongUpdate cardHIGHinvalid_expiry_yearThe expiry year isn’t validUpdate cardHIGHcard_not_supportedThe card doesn’t support this type of purchaseUpdate cardHIGHauthentication_requiredThe bank needs the customer to confirm the paymentAuthenticateHIGHapprove_with_idThe issuer couldn’t authorize without more checksAuthenticateHIGHdo_not_honorThe issuer declined without giving a reasonContact customerMEDIUMgeneric_declineThe card was declined for an unknown reasonContact customerMEDIUMtransaction_not_allowedThe card can’t be used for this purchaseContact customerMEDIUMlost_cardThe card was reported lostStop retryingLOWstolen_cardThe card was reported stolenStop retryingLOWpickup_cardThe issuer asked merchants to keep the cardStop retryingLOWfraudulentThe payment was flagged as fraudulentStop retryingLOW01FAQ
Fair questions.Straight answers.
A soft decline, such as insufficient_funds, is temporary, so a later retry can work. A hard decline, such as lost_card or stolen_card, won't go through until the customer adds a new card or, for authentication_required, completes authentication. Stripe's Smart Retries skip hard declines.
FREE CHURN REPORT
See who is at riskin your Stripe.
Actions off until you turn them on