Error codes

Soft decline

Stripe

insufficient_funds

The card has insufficient funds to complete the purchase.

What does insufficient_funds mean?

The insufficient_funds decline code is returned when the cardholder's issuing bank confirms the account does not have enough available balance or credit to cover the transaction at the moment of authorization. The card itself is valid and active — the issue is purely a matter of timing and available funds.

Is it a soft or hard decline?

insufficient_funds is a soft decline. The cardholder's account is not blocked, there is no fraud flag, and the card has not been canceled. The bank is simply saying the funding is not available right now. This makes it one of the most recoverable decline types for subscription businesses.

Why it is the biggest decline category

Industry studies consistently show insufficient_funds as the single largest reason subscription payments fail — roughly 40–65% of all declines in subscription billing trace back to this code. It is especially common when:

  • A renewal charges on a non-payday date

  • The customer has a recent large purchase still pending as a hold

  • A daily or transaction-level spending cap has been triggered

  • The account balance dipped briefly between paychecks

Recommended recovery steps

Because the problem is temporary, a silent retry strategy is almost always the right first move:

  1. Retry after a short delay — typically 2–5 days, allowing time for the next paycheck or deposit.

  2. Align retry timing with payday cycles — mid-month and end-of-month retries often outperform random schedules.

  3. Avoid immediate retries — they rarely succeed and can flag the merchant as aggressive to the issuer.

  4. Only escalate to dunning after multiple retries fail — since the issue usually resolves without any customer involvement.

How FlyCode handles insufficient_funds

FlyCode's AI retry engine analyzes each customer's historical payment behavior — when their card typically has funds, which day-of-week succeeds most often, and how long it usually takes for balance to replenish after an insufficient_funds decline. Combined with network-level authorization data from Visa and Mastercard, this produces retry schedules tailored to each individual transaction.

Across 500+ subscription merchants and over $1B in processed volume, FlyCode delivers 17.6%–26.2% additional recovery on insufficient_funds declines compared to Stripe's native retry baseline — recovering revenue that fixed-schedule retries miss entirely.

What does insufficient_funds mean?

The insufficient_funds decline code is returned when the cardholder's issuing bank confirms the account does not have enough available balance or credit to cover the transaction at the moment of authorization. The card itself is valid and active — the issue is purely a matter of timing and available funds.

Is it a soft or hard decline?

insufficient_funds is a soft decline. The cardholder's account is not blocked, there is no fraud flag, and the card has not been canceled. The bank is simply saying the funding is not available right now. This makes it one of the most recoverable decline types for subscription businesses.

Why it is the biggest decline category

Industry studies consistently show insufficient_funds as the single largest reason subscription payments fail — roughly 40–65% of all declines in subscription billing trace back to this code. It is especially common when:

  • A renewal charges on a non-payday date

  • The customer has a recent large purchase still pending as a hold

  • A daily or transaction-level spending cap has been triggered

  • The account balance dipped briefly between paychecks

Recommended recovery steps

Because the problem is temporary, a silent retry strategy is almost always the right first move:

  1. Retry after a short delay — typically 2–5 days, allowing time for the next paycheck or deposit.

  2. Align retry timing with payday cycles — mid-month and end-of-month retries often outperform random schedules.

  3. Avoid immediate retries — they rarely succeed and can flag the merchant as aggressive to the issuer.

  4. Only escalate to dunning after multiple retries fail — since the issue usually resolves without any customer involvement.

How FlyCode handles insufficient_funds

FlyCode's AI retry engine analyzes each customer's historical payment behavior — when their card typically has funds, which day-of-week succeeds most often, and how long it usually takes for balance to replenish after an insufficient_funds decline. Combined with network-level authorization data from Visa and Mastercard, this produces retry schedules tailored to each individual transaction.

Across 500+ subscription merchants and over $1B in processed volume, FlyCode delivers 17.6%–26.2% additional recovery on insufficient_funds declines compared to Stripe's native retry baseline — recovering revenue that fixed-schedule retries miss entirely.

What does insufficient_funds mean?

The insufficient_funds decline code is returned when the cardholder's issuing bank confirms the account does not have enough available balance or credit to cover the transaction at the moment of authorization. The card itself is valid and active — the issue is purely a matter of timing and available funds.

Is it a soft or hard decline?

insufficient_funds is a soft decline. The cardholder's account is not blocked, there is no fraud flag, and the card has not been canceled. The bank is simply saying the funding is not available right now. This makes it one of the most recoverable decline types for subscription businesses.

Why it is the biggest decline category

Industry studies consistently show insufficient_funds as the single largest reason subscription payments fail — roughly 40–65% of all declines in subscription billing trace back to this code. It is especially common when:

  • A renewal charges on a non-payday date

  • The customer has a recent large purchase still pending as a hold

  • A daily or transaction-level spending cap has been triggered

  • The account balance dipped briefly between paychecks

Recommended recovery steps

Because the problem is temporary, a silent retry strategy is almost always the right first move:

  1. Retry after a short delay — typically 2–5 days, allowing time for the next paycheck or deposit.

  2. Align retry timing with payday cycles — mid-month and end-of-month retries often outperform random schedules.

  3. Avoid immediate retries — they rarely succeed and can flag the merchant as aggressive to the issuer.

  4. Only escalate to dunning after multiple retries fail — since the issue usually resolves without any customer involvement.

How FlyCode handles insufficient_funds

FlyCode's AI retry engine analyzes each customer's historical payment behavior — when their card typically has funds, which day-of-week succeeds most often, and how long it usually takes for balance to replenish after an insufficient_funds decline. Combined with network-level authorization data from Visa and Mastercard, this produces retry schedules tailored to each individual transaction.

Across 500+ subscription merchants and over $1B in processed volume, FlyCode delivers 17.6%–26.2% additional recovery on insufficient_funds declines compared to Stripe's native retry baseline — recovering revenue that fixed-schedule retries miss entirely.

Understanding This Decline Code

Extended content body

Frequently Asked Questions

Is insufficient_funds a soft or hard decline?

When should I retry an insufficient_funds decline?

Wait 2–5 days to allow the customer's balance to replenish (often aligned with payday cycles). AI-driven retry systems analyze individual cardholder patterns to predict the optimal retry window rather than using a fixed schedule.

What percentage of declines are insufficient_funds?

Industry data shows insufficient_funds accounts for roughly 40–65% of all subscription payment declines, making it the single largest category of recoverable failed payments for subscription businesses.

FlyCode partnered with Stripe, to turn failed payment intro revenue.

With our newest Stripe app, you can stop chasing your customers about their failed payments and recover more payments with zero development work.

With our newest Stripe app, you can stop chasing your customers about their failed payments and recover more payments with zero development work.

Giving Back

Partnering with organizations that promote women in technology and families in need is something we are proud to do.

Text graphic displaying "SPE CODES; NEXT LEVEL" in a bold, stylized font on a solid background.
Logo featuring a stylized text "Catching" with an orange accent, set against a simple background.

2026 FlyCode © All Right Reserved.

Giving Back

Partnering with organizations that promote women in technology and families in need is something we are proud to do.

Text graphic displaying "SPE CODES; NEXT LEVEL" in a bold, stylized font on a solid background.
Logo featuring a stylized text "Catching" with an orange accent, set against a simple background.

2026 FlyCode © All Right Reserved.