Skip to content

Decline code generic_decline: Stripe generic_decline

Jay StevensBy Jay Stevens · Principal EngineerReviewed by Jordan MederichUpdated 2 min read
Summarize with AI

Quick answer

Stripe’s generic_decline is the decline_code Stripe returns when the cardholder’s bank declined the charge without giving a specific reason — Stripe’s documentation says the card was declined for an unknown reason and advises the customer contact their issuer. It maps to the same issuer decision as ISO 8583 code 05 (“Do Not Honor”) and NMI response code 201. Treat it as a hard decline: recover it with customer outreach and a timed retry, not immediate re-attempts.

What code generic_decline means

Hard declineDo not retry

Stripe surfaces generic_decline when the issuer declined the charge but returned no reason. A blind retry rarely clears it — recover with cardholder outreach plus a timed retry, the same playbook as ISO code 05.

Cross-processor equivalents

The same issuer decision surfaces under a different code on every processor. Here is how code generic_decline maps across the stacks Revatto recovers on.

ISO 8583
Code05
CalledDo Not HonorThe underlying issuer decision
Stripe
Codegeneric_decline
Calledcard_declinedNo reason returned by the issuer
Authorize.net
Code2
CalledDeclinedReason code 2 — generic decline
NMI
Code201
CalledDo not honorresponse_code 201 (response = 2)

Why it happens

  • The issuer’s risk or fraud heuristics declined the charge without returning a specific code.
  • An issuer-side block on recurring or card-not-present transactions.
  • A funds or limit issue the bank chose not to itemize (surfaced as generic rather than insufficient_funds).
  • A temporary hold the cardholder can release by confirming the charge with their bank.

How to recover it

  1. 1Don’t re-run the charge right away — generic declines rarely clear on an instant retry, and repeated attempts hurt your decline ratio.
  2. 2Reach the customer on a channel they answer — email and SMS — and ask them to confirm the charge with their bank or update the card.
  3. 3Time the retry to land 24–72 hours later, once the cardholder has had a chance to clear the issuer-side block.
  4. 4
    When it sticks, a real person resolves the card or confirms with the issuer. Stripe retries a card a few times and gives up; Revatto picks up exactly where that stops — AI plus a human team recovering the payment for you, with no fee unless it works (20% of the first recovered payment, $0 setup).See how Revatto recovers generic_declinedeclines →

See what Revatto would recover for you

Failed payments recovered automatically — no engineering, no manual chasing. We do the work; you keep the revenue.

See Your Recovery Potential

Frequently asked questions