← All Stripe decline codes

Stripe decline code

insufficient_funds

The card does not have enough available balance or credit to cover the charge at the moment the transaction was attempted.

Type

Soft decline

Recoverable

Recoverable

Frequency

Very Common

What does insufficient_funds mean?

insufficient_funds is a soft decline, meaning the card itself is valid and active. The charge failed because the customer temporarily did not have enough funds or credit available. This is the most common decline code on Stripe, accounting for roughly 35-40% of all failed subscription payments. Because the payment method is still good, these failures are highly recoverable without asking the customer to do anything.

Recovery strategy

Retry approach

Retry on common payroll or credit-cycle dates rather than a fixed interval. For most consumer cards, that means retrying near the 1st or 15th of the month. For business cards, retry at the start of the next billing cycle. Retrying within 24 hours of the original failure recovers less than 20% because the underlying cash shortage has not resolved. Waiting 3-7 days and aligning with paydays recovers 60-75%.

Customer message

Do not send an alarming "update your card" email on the first insufficient_funds failure. The card is fine. A short heads-up that the payment did not go through, with the next retry date, is enough. Only escalate the tone after 2-3 retries fail.

Best practices

  • Space retries 3-7 days apart, not hours apart
  • Align retry dates with the 1st, 15th, or end of the month when possible
  • Do not trigger an aggressive dunning email on the first failure
  • Track which retry attempt (1st, 2nd, 3rd) recovers the payment to tune timing
  • After 3 failed retries, switch tone and ask the customer to update or check their card

About soft declines

Temporary issue. The card is still valid. High recovery rate with proper retry timing.

Frequently asked questions

Should I retry insufficient_funds immediately?

No. Retrying within hours rarely succeeds because the underlying cause (empty balance) has not changed. Wait at least 72 hours, and ideally align the retry with a common payday like the 1st or 15th of the month.

How many times should I retry insufficient_funds?

Three to four retries over 7-14 days is the standard. Beyond that, the recovery rate per additional retry drops sharply and it is more effective to contact the customer.

Does insufficient_funds hurt my Stripe account?

Soft declines like insufficient_funds do not count against your Stripe risk score the way hard declines or fraud declines do. However, excessive retries on the same card in a short window can trigger card network warnings.

How Rebounce handles insufficient_funds

Automatic soft decline handling, no code required

Rebounce classifies every failed payment by its Stripe decline code and applies the optimal recovery strategy automatically. For insufficient_funds, that means intelligent retries at the right times. Multi-channel follow-up through email, SMS, WhatsApp, and in-app banners ensures the customer actually sees the message.

Start free trial