Stripe decline code
generic_declineThe card issuer declined the charge but did not provide a specific reason. This is a catch-all soft decline used when the bank will not say why.
Type
Recoverable
Frequency
Very Commongeneric_decline is the second most common decline code after insufficient_funds. Because the bank refused to share the reason, diagnosis requires guesswork. The underlying cause is usually one of: a fraud or velocity flag on the issuer side, an internal bank policy (like international transactions being blocked), a temporary freeze, or a spending limit. About 40-50% of generic_decline failures recover on a 24-72 hour retry as the bank flag clears.
Retry once after 24 hours. If it fails again, retry after 72 hours. If that also fails, stop retrying and send the customer a payment update link. Unlike insufficient_funds, long waits rarely help generic_decline because the cause is usually a persistent bank policy, not a missing balance.
Avoid blaming the customer. The right message explains that the bank declined the charge without giving a reason and suggests two actions: (1) wait while you retry, or (2) contact the bank or use a different card if it fails again.
Temporary issue. The card is still valid. High recovery rate with proper retry timing.
In practice they are nearly identical: both mean the issuer refused the charge without giving a specific reason. card_declined is the top-level Stripe error code, while generic_decline is the more specific decline_code value. Treat them the same way.
The card network and issuer choose what reason to send back. Many banks deliberately send generic decline codes to avoid giving fraudsters clues about why a stolen card was rejected. As a merchant, you have no way to force a more specific code.
How Rebounce handles generic_decline
Rebounce classifies every failed payment by its Stripe decline code and applies the optimal recovery strategy automatically. For generic_decline, that means a limited retry window combined with customer outreach. Multi-channel follow-up through email, SMS, WhatsApp, and in-app banners ensures the customer actually sees the message.
card_declinedSoft declineA generic decline from the card issuer. Very similar to generic_decline: the bank said no without giving a specific reason.
do_not_honorSoft declineThe issuing bank has flagged the charge, usually for a fraud or risk reason, and will not approve it right now.
insufficient_fundsSoft declineThe card does not have enough available balance or credit to cover the charge at the moment the transaction was attempted.
call_issuerSoft declineThe card issuer requires the customer to contact them before approving the charge.