Guide
Stripe decline codes explained (and how to recover each)
A Stripe decline code tells you why a card payment failed. They split into two groups: soft declines (temporary — like insufficient funds or a processing error) that are worth retrying, and hard declines (permanent — an expired, lost, or stolen card) where retrying the same card won't work and the customer has to update it. RetryFi reads the decline code on every failed invoice and routes each one automatically.
Common Stripe decline codes
How RetryFi recovers each type
Soft declines are retried automatically at 4 hours, 3 days, 4 days, then 7 days, while a branded dunning sequence runs in parallel (immediately, then on day 3, day 4, and day 5) so the customer is nudged to act.
Hard declines skip retries entirely — there's no point retrying an expired or stolen card — and go straight to the dunning emails asking the customer to update their card. RetryFi runs alongside Stripe Smart Retries, not instead of it.
FAQ
A soft decline is temporary — insufficient funds, a processing error, a bank holding the charge. Retrying the same card later often succeeds. A hard decline is permanent — an expired, lost, stolen, or unsupported card — where retrying the same card will keep failing and the customer has to update their payment method.
Last updated: . Decline-code behavior follows Stripe's documentation; verify specific codes at stripe.com.