Developer cheat sheet

Stripe decline codes (2026)

A decline code tells you why the card was refused. Below are all 50 card decline codes Stripe lists: what each means, whether to retry, and a message you can show the buyer. Search a code, then copy it.

Codes and next steps from Stripe’s decline codes docs, checked . Buyer messages are our suggestions. Kept up to date by AgentaOS, a merchant of record.

Before the table

Five kinds of decline

  • 16Buyer can fix it: wrong number, CVC, date, address or PIN, or a missing 3D Secure step.
  • 5Retry: a temporary error at the bank or network.
  • 6Another card: no funds, a limit, or the card can’t pay this.
  • 19Bank must say why: the issuer gave no reason; the buyer calls their bank.
  • 4Show as generic: fraud, lost, stolen or block list. Never tell the buyer the real reason.
Card payments

Every decline code

Codes marked with a test card can be reproduced in test mode.
CodeWhat it meansWhat to doTell the buyer
authentication_requiredThe payment needs authentication such as 3D Secure.Buyer can fix it Show the authentication step again; for off-session payments, ask the customer to come back and pay.Please confirm this payment with your bank, then try again.
authentication_not_handledThe customer skipped required authentication, so the issuer declined again.Buyer can fix it Run the 3D Secure or SCA flow; collect authentication on-session first.Please confirm this payment with your bank, then try again.
approve_with_idThe payment cannot be authorized.Retry Retry once; if it fails again, the customer contacts their issuer.We could not approve this payment. Please try again or contact your bank.
call_issuerDeclined for an unknown reason.Bank must say why The customer contacts their card issuer.Your bank declined this payment. Please contact your bank or use another card.
card_not_supportedThe card does not support this type of purchase.Another card The customer checks with their issuer or uses another card.This card cannot be used for this purchase. Please use another card.
card_velocity_exceededBalance, credit limit or transaction limit exceeded. Test card 4000 0000 0000 6975Bank must say why The customer contacts their card issuer.Your card limit was reached. Please use another card or contact your bank.
currency_not_supportedThe card does not support this currency.Bank must say why The customer checks with their issuer.This card cannot pay in this currency. Please use another card.
do_not_honorDeclined for an unknown reason.Bank must say why The customer contacts their card issuer.Your bank declined this payment. Please contact your bank or use another card.
do_not_try_again deprecatedDeclined for an unknown reason (deprecated).Bank must say why The customer contacts their card issuer.Your bank declined this payment. Please contact your bank or use another card.
duplicate_transactionAn identical payment was submitted very recently.Buyer can fix it Check whether the earlier payment already went through.It looks like you just paid. Please check your email before trying again.
expired_cardThe card has expired. Test card 4000 0000 0000 0069Another card The customer uses another card.This card has expired. Please use another card.
fraudulentStripe suspects the payment is fraudulent.Show as generic Show it to the customer as a generic decline.Your bank declined this payment. Please use another card or contact your bank.
generic_declineDeclined for an unknown reason, or blocked by Radar or Adaptive Acceptance. Test card 4000 0000 0000 0002Bank must say why The customer contacts their card issuer.Your bank declined this payment. Please use another card or contact your bank.
incorrect_addressThe address is incorrect.Buyer can fix it The customer retries with the correct address.The billing address does not match your card. Please check it and try again.
incorrect_cvcThe CVC is incorrect. Test card 4000 0000 0000 0127Buyer can fix it The customer retries with the correct CVC.The security code is incorrect. Please check it and try again.
incorrect_numberThe card number is incorrect. Test card 4242 4242 4242 4241Buyer can fix it The customer retries with the correct number.The card number is incorrect. Please check it and try again.
incorrect_pinThe PIN is incorrect (card readers only).Buyer can fix it The customer retries with the correct PIN.The PIN is incorrect. Please try again.
incorrect_zipThe postal code is incorrect.Buyer can fix it The customer retries with the correct postal code.The postal code does not match your card. Please check it and try again.
insufficient_fundsInsufficient funds. Test card 4000 0000 0000 9995Another card The customer uses another payment method.There are not enough funds on this card. Please use another card.
invalid_accountThe card or its account is invalid.Bank must say why The customer checks with their issuer.Your bank declined this payment. Please contact your bank or use another card.
invalid_amountThe amount is invalid or above the allowed limit.Bank must say why If the amount is right, the customer checks with their issuer.This amount could not be charged to your card. Please contact your bank.
invalid_cvcThe CVC is incorrect.Buyer can fix it The customer retries with the correct CVC.The security code is incorrect. Please check it and try again.
invalid_expiry_monthThe expiry month is invalid.Buyer can fix it The customer retries with the correct date.The expiry date is incorrect. Please check it and try again.
invalid_expiry_yearThe expiry year is invalid.Buyer can fix it The customer retries with the correct date.The expiry date is incorrect. Please check it and try again.
invalid_numberThe card number is incorrect.Buyer can fix it The customer retries with the correct number.The card number is incorrect. Please check it and try again.
invalid_pinThe PIN is incorrect.Buyer can fix it The customer retries with the correct PIN.The PIN is incorrect. Please try again.
issuer_not_availableThe card issuer could not be reached.Retry Retry; if it fails again, the customer contacts their issuer.Your bank could not be reached. Please try again in a moment.
lost_cardThe card is reported lost. Test card 4000 0000 0000 9987Show as generic Show it as a generic decline.Your bank declined this payment. Please use another card or contact your bank.
merchant_blacklistMatches a value on your block list.Show as generic Show it as a generic decline.Your bank declined this payment. Please use another card or contact your bank.
new_account_information_availableThe card or its account is invalid.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
no_action_takenDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
not_permittedThe payment is not permitted.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
offline_pin_requiredThe card requires a PIN.Buyer can fix it The customer inserts the card and enters a PIN.Please insert your card and enter your PIN.
online_or_offline_pin_requiredThe card requires a PIN.Buyer can fix it Prompt for a PIN, or the customer inserts the card.Please enter your PIN.
pickup_cardThe card cannot be used (possibly lost or stolen).Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
pin_try_exceededToo many PIN attempts.Another card The customer uses another card.Too many PIN attempts. Please use another card.
processing_errorAn error occurred processing the card. Test card 4000 0000 0000 0119Retry Retry; if it fails again, the customer contacts their issuer.Something went wrong with your card. Please try again.
reenter_transactionThe issuer could not process the payment.Retry Retry; if it fails again, the customer contacts their issuer.Please try the payment again.
restricted_cardThe card cannot be used (possibly lost or stolen).Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
revocation_of_all_authorizationsDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
revocation_of_authorizationDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
security_violationDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
service_not_allowedDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
stolen_cardThe card is reported stolen. Test card 4000 0000 0000 9979Show as generic Show it as a generic decline.Your bank declined this payment. Please use another card or contact your bank.
stop_payment_orderDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
testmode_declineA test card number was used in live mode.Another card Use a real card.Test cards do not work for real payments. Please use your card.
transaction_not_allowedDeclined for an unknown reason.Bank must say why The customer contacts their issuer.Your bank declined this payment. Please contact your bank or use another card.
try_again_later deprecatedDeclined for an unknown reason (deprecated).Retry Retry; if it keeps failing, the customer contacts their issuer.Please try again in a few minutes.
withdrawal_count_limit_exceededBalance or credit limit exceeded.Another card The customer uses another payment method.Your card limit was reached. Please use another card.
mobile_device_authentication_requiredThe payment needs authentication on the phone.Buyer can fix it Ask the customer to tap their phone again.Please confirm on your phone and tap again.
Selling through a merchant of record

Who handles declines

With Stripe you build the checkout, so you choose the message and the retry rules for every code above. With a merchant of record, its hosted checkout shows the buyer the message and you see the failed payment in its dashboard and webhooks.

AgentaOS: you sell through our hosted checkout, so you don’t write this decline logic yourself. Try it in test mode with the test cards. Docs.

Questions

Related questions

What does do_not_honor mean on Stripe?

The card issuer declined the payment without giving a reason. The buyer has to contact their bank or use another card. Stripe lists it as declined for an unknown reason.

What is generic_decline?

The issuer declined for an unknown reason, or Stripe blocked the payment (Radar or Adaptive Acceptance). Stripe also tells you to show fraudulent, lost_card, stolen_card and merchant_blacklist to the buyer as a generic decline.

Should I retry a declined payment?

Only for temporary errors: processing_error, issuer_not_available, reenter_transaction, approve_with_id and try_again_later. For insufficient_funds or a contact-your-bank code, ask for another card instead of retrying the same one.

Why should I not tell the buyer the card is stolen?

Stripe advises showing fraudulent, lost_card, stolen_card and merchant_blacklist as a generic decline, so a person using a stolen card learns nothing from the message.

How do I test decline codes?

Use the Stripe test cards in test mode: 4000 0000 0000 0002 returns generic_decline and 4000 0000 0000 9995 returns insufficient_funds. The full list is on our Stripe test cards page.

Do merchants of record show the same codes?

A merchant of record runs the checkout for you, so its own checkout shows the buyer the message and handles retries. You see the result in its dashboard and webhooks, in its own format.

Keep reading

Related

Source: docs.stripe.com/declines/codes. Stripe is a trademark of Stripe, Inc.; AgentaOS is not affiliated with Stripe. Link to this page: https://agentaos.ai/tools/stripe-decline-codes