Skip to content

Stripe payment errorWhy does Stripe say the card was declined with generic_decline?

A customer tries to pay, Stripe says the card was declined, and the code is generic_decline or do_not_honor with no reason attached. Here’s what Stripe’s docs say those codes mean, what your app should show, or hand it over at a fixed price.

Short answer

Stripe’s docs say card issuers categorize most declines as generic, so the exact decline reason is often unclear. Check the payment in the Dashboard: if Radar blocked it, the outcome type is blocked and you can allow-list a legitimate payment; if the issuer declined it, read the decline code and the advice code, ask the customer to re-enter the card or use another one, and don’t keep retrying a charge the advice code says not to.

Find which kind of decline it is, then act on it

  1. 01

    The bank declined it without giving a reason

    “Card issuers categorize most declines as generic (generic_decline), making the exact decline reason unclear.” Stripe, Card declines

    generic_decline and do_not_honor mean the issuer said no without saying why. Stripe’s docs say the customer needs to contact their card issuer for more information. Your app should say the card was declined and offer another card, not guess at a reason.

  2. 02

    Stripe Radar blocked it before it reached the bank

    “If a rule you configured blocks a payment you recognize as legitimate, you can lift the block by locating the payment in the Dashboard and clicking Add to allow list.” Stripe, Declines

    generic_decline can also mean Radar or Adaptive Acceptance blocked the payment. In the Dashboard, a blocked payment’s outcome type is blocked, and Stripe doesn’t obtain authorization from the card issuer. If one of your own rules blocked a customer you trust, add them to the allow list; that doesn’t retry the payment, so the customer has to try paying again.

  3. 03

    The card details are wrong or the card has expired

    “If a customer enters an incorrect card number, CVC, or expiration date, the card issuer might decline the transaction.” Stripe, Card declines

    incorrect_cvc and expired_card have a clear fix: ask the customer to re-enter the card or use another one. Stripe also suggests collecting the CVC and postal code at checkout to avoid declines that stem from suspected fraud.

  4. 04

    Retrying a charge the bank won’t accept

    “Be aware that card networks limit the number of times you can reattempt a single charge.” Stripe, Card declines

    The advice code on the outcome says whether to retry: try_again_later means you can, do_not_try_again means don’t use that card again for the same transaction. Card networks limit how many times a single charge can be reattempted, so don’t loop on retries.

  5. 05

    A renewal fails while the customer isn’t there

    “If your customer isn’t available to make a payment or update a payment method, notify them” Stripe, Card declines

    When a subscription renewal or other off-session charge is declined, nobody is on the page to try another card. Tell the customer and send them to a page where they can update their payment method. A renewal that needs 3D Secure is covered on the incomplete subscription page linked below.

Checked against the vendor’s docs on : Stripe docs: Declines; Stripe docs: Card declines; Stripe docs: Decline codes.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Related: Stripe subscription stuck incomplete · Stripe works in test mode but not live · Stripe memberships not auto-renewing · Stripe cancel at period end

Questions

More on this error

Should I tell the customer the decline reason?

Not for every code. For fraudulent, Stripe says not to report more detail to your customer and to present it the same way as generic_decline. A plain “Your card was declined, try another card or contact your bank” works for most codes.

Can Stripe tell me why a generic_decline happened?

Usually not. Stripe shares the decline information it receives from the issuer, and for most declines that isn’t specific. Stripe’s docs say to ask the customer to contact their card issuer.

What do you need to see to fix declines in my app?

Read access to the Stripe Dashboard for a few declined payments, and the code that creates and confirms the payment, so we can check how decline codes and advice codes are handled and shown.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; we reply by email, usually within one business day.