For businesses on StripeGuide · all decline codesIndependent · not affiliated with Stripe

Decline guide · all codes

Stripe decline codes, one page.

A failed card payment on Stripe comes with a decline code: the reason the bank or Stripe gave. The code tells you whether to retry the same card, ask for another one, or leave it alone. Find yours in the table below.

01Find your code

First, find the reason.

The message a customer sees is usually just "your card was declined". The reason is in the payment itself.

WhereWhat to look for
DashboardPayments, then the failed payment Open the payment. Its details show why it failed, including the decline code.
API and webhooksFor developers The error's code is usually card_declined. The reason is in a separate field, decline_code. On a PaymentIntent, look in last_payment_error.
Payments exportA CSV from the Dashboard Many failures at once. Run the free check on the export to see which codes cost you the most.
02Every code

The codes, and the fix.

Grouped by what you can do about them. Codes with a full guide are linked.

CodeWhat it meansRetry the same card?
The customer can fix it now
incorrect_cvcFull guide The security code didn't match. Usually a typo at checkout. Yes, after they re-enter it
incorrect_number The card number is wrong. The customer checks it and types it again. Yes, after they re-enter it
expired_cardFull guide The card's date has passed. Retrying won't help; ask for the new card. No, get the new card
authentication_required The bank wants the customer to confirm the payment, for example with 3D Secure. Bring them back to pay while they're there. Yes, with the customer present
Wait, or the customer talks to the bank
insufficient_fundsFull guide Not enough balance or credit right now. Tell the customer and retry a few days later. Later
card_velocity_exceeded The customer has hit a limit on the card, such as its balance or credit limit. They can ask the bank or use another card. Later, or another card
do_not_honorFull guide The bank said no and gave no reason. The customer calls their bank or uses another card. After they call the bank
generic_declineFull guide No reason given. Check first whether the bank said no or one of your own rules blocked it. After they call the bank
transaction_not_allowedFull guide A rule on the card blocks this kind of payment, such as online or foreign payments. The customer asks the bank to allow it. After they call the bank
processing_error Something went wrong while the payment was being processed. Not the customer's fault. Yes, try again
Leave it alone
lost_card, stolen_card The card was reported lost or stolen. Don't tell the payer the real reason: show a plain "card declined" message, as Stripe advises. No
fraudulent The bank suspects fraud. Same rule: show a plain decline message, don't chase it, and look at the order. No
Index

You may see card_declined on its own: that's the error, and the decline code inside it is the reason. How to read card_declined →

Charged back instead of declined? How to answer a Stripe dispute →

03Recover revenue

Turn declines into payments.

The Failed-Payment Recovery Kit: a download on Whop, yours right after paying. No subscription, no account with us.

Failed-Payment Recovery KitDownload
  • Dunning email templates to send after a failed payment
  • A Stripe settings checklist
  • A recovery playbook
Total19 USD
Buy the Recovery Kit

One-time purchase · Files, not software