Stripe Decline Codes: What They Mean & How to Fix Them
Last updated: April 14, 2026
When a donation or payment fails, Stripe returns a decline code that tells you why. This guide covers every decline code you might encounter so you can quickly troubleshoot failed charges and help your donors get back on track.
How Decline Codes Work
When a charge fails, Stripe returns a decline code in the API response. These codes expand on the raw issuer response to give you more detail about what went wrong. In some cases, Stripe also includes an advice_code with suggested next steps.
There are two categories of decline codes:
Card decline codes — returned when a credit or debit card payment fails
Local payment method (LPM) decline codes — returned when an alternative payment method fails
Card Decline Codes
Payment Authentication Issues
Code | What It Means | What to Do |
| The transaction requires authentication (e.g., 3D Secure). | In most cases, Stripe's front end will trigger an authentication flow automatically. For off-session payments, ask the donor to retry and complete authentication. If the decline persists after successful authentication, the donor should contact their card issuer. |
| Authentication was required but wasn't performed before proceeding. | Run the 3D Secure / SCA authentication flow. For off-session payments, collect authentication on-session first, then fall back if needed. |
| The transaction requires mobile device authentication. | Ask the donor to retry by tapping their mobile device again. |
Incorrect Payment Details
Code | What It Means | What to Do |
| The card number is wrong. | Ask the donor to re-enter their card number. |
| The card number is invalid. | Ask the donor to re-enter their card number. |
| The CVC is wrong. | Ask the donor to re-enter the correct CVC. |
| The CVC is invalid. | Ask the donor to re-enter the correct CVC. |
| The PIN entered is wrong (card reader payments only). | Ask the donor to try again with the correct PIN. |
| The PIN entered is invalid. | Ask the donor to try again with the correct PIN. |
| The postal/ZIP code is wrong. | Ask the donor to re-enter their billing postal code. |
| The billing address is wrong. | Ask the donor to re-enter the correct billing address. |
| The expiration month is invalid. | Ask the donor to re-enter the correct expiration date. |
| The expiration year is invalid. | Ask the donor to re-enter the correct expiration date. |
Card Limits & Insufficient Funds
Code | What It Means | What to Do |
| The card doesn't have enough funds. | Ask the donor to use a different payment method. |
| The donor has hit a balance, credit limit, or transaction limit. | The donor should contact their card issuer. |
| The donor has exceeded their balance or credit limit. | Ask the donor to use a different payment method. |
| The payment amount is invalid or exceeds the allowed limit. | If the amount looks correct, the donor should check with their issuer about purchase limits. |
| (LPM) The order exceeds a limit on the donor's account. | Retry may succeed after the donor resolves the issue with their account. |
Card & Account Problems
Code | What It Means | What to Do |
| The card has expired. | Ask the donor to use a different card. |
| The card or connected account is invalid. | The donor should contact their card issuer. |
| The card or connected account is invalid. | The donor should contact their card issuer. |
| The card doesn't support this type of purchase. | The donor should contact their issuer to confirm the card supports this purchase type. |
| The card doesn't support the specified currency. | The donor should check with their issuer about supported currencies. |
Fraud & Security Blocks
Code | What It Means | What to Do |
| Stripe suspects the payment is fraudulent. | Present this to the donor as a generic decline — do not share the specific reason. |
| The payment matches a value on your Stripe block list. | Present this to the donor as a generic decline. |
| The card is reported stolen. | Present this to the donor as a generic decline. |
| The card is reported lost. | Present this to the donor as a generic decline. |
| Declined for a security-related reason. | The donor should contact their card issuer. |
| The card can't be used for this payment (possibly lost/stolen). | The donor should contact their card issuer. |
| The card can't be used for this payment (possibly lost/stolen). | The donor should contact their card issuer. |
Generic & Issuer Declines
Code | What It Means | What to Do |
| Declined for an unknown reason, or blocked by Stripe Radar. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| The payment isn't permitted. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
Processing & Retry Issues
Code | What It Means | What to Do |
| The payment can't be authorized. | Retry the payment. If it still fails, the donor should contact their issuer. |
| The card issuer couldn't be reached. | Retry the payment. If it still fails, the donor should contact their issuer. |
| An error occurred while processing the card. | Retry the payment. If it still fails, try again later. |
| The issuer couldn't process the payment. | Retry the payment. If it still fails, the donor should contact their issuer. |
| An identical transaction was submitted very recently. | Check if a recent payment already exists before retrying. |
| Declined for an unknown reason. | Retry the payment. If it keeps failing, the donor should contact their issuer. |
| Declined for an unknown reason. | The donor should contact their card issuer. |
PIN-Related Declines
Code | What It Means | What to Do |
| The card requires a PIN. | The donor should insert their card and enter a PIN. |
| The card requires a PIN. | If the reader supports Online PIN, prompt for it. Otherwise, the donor should insert their card and enter a PIN. |
| Too many PIN attempts. | The donor must use a different card or payment method. |
Test Mode
Code | What It Means | What to Do |
| A Stripe test card number was used. | Use a real card to make the payment. |
Local Payment Method (LPM) Decline Codes
These codes apply to alternative payment methods (not standard credit/debit cards).
Code | What It Means | Will a Retry Work? |
| The payment provider declined the payment. | Possibly. |
| The donor's account can't be charged. | Possibly, after the donor resolves the account issue. |
| The order exceeds a limit on the donor's account. | Possibly, after the donor resolves the account issue. |
| The donor's billing agreement is invalid. | No. |
| The card registered with the payment provider has expired. | Possibly, after the donor updates their card. |
| The payment provider hit a processing error. | Possibly. |
| The donor has insufficient funds with the provider. | Possibly, after the donor adds funds. |
| The payment provider doesn't support this currency. | No. |
| The payment provider doesn't allow this amount. | No. |
| The business account is deactivated. | Possibly, if the account is reactivated. |
| The provider labeled this donor as high risk. | Unlikely. |
| The payment violates terms of service or applicable laws. | No. |
| There's a dispute over the payment. | Possibly, if the dispute resolves in your favor. |
| The authorization is invalid or revoked. | No. |
| The payment has invalid information. | No. |
| The payment provider can't find this payment. | Possibly. |
| The underlying payment instrument is expired. | Possibly, after the donor updates their payment info. |
| An identical transaction was submitted recently. | Check for existing payments first. |
Quick Troubleshooting Tips
For donors seeing repeated declines: Ask them to contact their card issuer directly. Many "unknown reason" declines are the issuer's fraud prevention flagging an unfamiliar transaction.
For authentication failures: Make sure your integration supports 3D Secure / SCA. Most authentication declines resolve when the donor completes the verification step.
For fraud-related declines: Never share the specific decline reason (fraudulent, stolen_card, lost_card, merchant_blacklist) with the donor. Always present these as a generic decline.
For duplicate transactions: Before retrying, check your dashboard for a recently successful charge with the same amount and card.