Home / Decline codes / insufficient_funds
What does the Stripe insufficient_funds decline code mean?
insufficient_funds Mixed: partly retries, partly needs actionWhat it means
Stripe's description: "The card has insufficient funds to complete the purchase." This is exactly what it sounds like: at the moment the charge was attempted, the account behind the card didn't have enough available balance (for a debit card) or available credit (for a credit card) to cover it.
Will retries fix it?
This is genuinely mixed, and we'd rather say that plainly than force it into one bucket. Smart Retries is specifically built to catch timing-related declines like this by spacing out attempts, on the logic that a paycheck or transfer might land between attempts. That does work some of the time. But Stripe's own documented next step here is "The customer needs to use an alternative payment method," not simply to wait. We're reporting both sides rather than picking the more flattering one.
What you should do
Let Smart Retries run its course first, since it's specifically designed for this scenario and costs you nothing extra. If the charge is still failing after those automatic attempts are exhausted, that's the point to prompt the customer directly, per Stripe's own recommendation, toward an alternative payment method rather than continuing to hope the same card eventually clears.
Where Valkyrie helps: we only step in on insufficient_funds declines that have already survived Stripe's own retry window and are still unresolved, so we're not duplicating what Smart Retries already does for free. At that point, we send a branded email asking for an alternative payment method, matching Stripe's own guidance.
Your net monthly gain
300% ROIEvery $1 you pay us puts $3 back in your pocket.
Estimates based on industry averages. Connect your Stripe to see your real number.
See my actual numberRelated decline codes
Questions, answered
Does Smart Retries just wait and try the same card again?
Smart Retries varies timing and amount to catch cases where funds become available later, which does genuinely recover some insufficient_funds declines without any merchant action. But Stripe's own written guidance for this code is for the customer to use an alternative payment method, not to simply wait.
Why would Stripe recommend a different payment method instead of waiting?
We can't speak for Stripe's reasoning, only report what their docs say. It may be that waiting indefinitely isn't a reliable strategy for every cardholder's situation, so pointing the customer toward an alternative method is the more universally actionable advice.
Should I treat this the same as a hard decline like expired_card?
Not quite the same, but it's not purely a "retries will fix it" case either. Some insufficient_funds declines do resolve through automatic retries; others don't, and Stripe's own guidance leans toward getting a different payment method rather than only waiting.
Source: Stripe decline codes documentation, checked October 2026.