Stripe decline codes
Stopped — no retries
lane: stop- fraudulentWhat Stripe's fraudulent decline means, whose suspicion it records, why Stripe says not to tell the customer, and why Lirova stops rather than retrying.
- lost_cardWhat Stripe's lost_card decline means, why the credentials are gone for good, why the reason stays out of the customer email, and what happens instead.
- stolen_cardWhat Stripe's stolen_card decline means, how it differs from lost_card, why past charges may return as disputes, and why nothing automated happens next.
Customer action needed
lane: request_update- expired_cardWhat Stripe's expired_card decline means, why it can arrive before the stored date passes, what automatic card updates cover, and why retrying is pointless.
- incorrect_cvcWhat Stripe's incorrect_cvc decline means, why retries can't fix it, how it differs from invalid_cvc, when it signals card testing, and what to ask instead.
- invalid_accountWhat Stripe's invalid_account decline means, why the account behind the card may be gone, why retries can't help, and why Lirova still asks for a card.
- transaction_not_allowedWhat Stripe's transaction_not_allowed decline means, why the card works elsewhere and fails here, and the two fixes a customer can choose between.
- authentication_requiredWhat Stripe's authentication_required decline means, why renewals hit it, why no retry can supply 3D Secure, and how the customer completes the payment.
Retried quickly
lane: retry_aggressive- processing_errorWhat Stripe's processing_error means, why nothing was refused, how to retry safely through the same PaymentIntent, and when a repeat stops being transient.
- try_again_laterWhat try_again_later means in Stripe as a decline code and as an advice code, why the two differ, and why Lirova paces retries differently for each.
Retried gently
lane: retry_gentle- insufficient_fundsWhat Stripe's insufficient_funds decline means, why the card itself is valid, when a retry has a chance, and the mistakes that waste a recoverable decline.
- do_not_honorWhat Stripe's do_not_honor decline means, why the issuer won't say why, whether it signals fraud, and how to retry it without making things worse.
- generic_declineWhat Stripe's generic_decline means, why it covers both issuer declines and Radar blocks, how it differs from do_not_honor, and how Lirova retries it.
- card_velocity_exceededWhat Stripe's card_velocity_exceeded decline means, which limits trigger it, why your own retries can cause it, and why spacing attempts is the whole fix.
Codes with no explicit rule
lane: unhandledThe classifier names no rule of its own for these codes. They are not left untouched: the general default applies, and the code is recorded as unrecognised.