> For the complete documentation index, see [llms.txt](https://help.flycode.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.flycode.com/decline-codes-explained/how-to-handle-the-most-common-declines.md).

# How to Handle the Most Common Declines

insufficient\_funds is the largest decline category in subscription billing, 50 to 70 percent of all failures. What it means, why it dominates, when to retry, and how much more FlyCode recovers on it,

One code dominates subscription payment failures: `insufficient_funds`. Together with `generic_decline` and `do_not_honor` it makes up the bulk of recoverable revenue, so how you handle it decides most of your recovery rate. This page explains what the code means, why it is so common, how much better optimized retries perform, and where the numbers come from.

## What does the insufficient\_funds decline code mean?

The cardholder's issuing bank confirmed that the account did not have enough available balance or credit at the moment the charge was attempted. Stripe classifies it as a soft decline: the card is valid, the account is open and nothing has been flagged, so the same card can succeed later once funds are available. The network equivalent is response code `51`.

Common triggers are a renewal that lands before payday, a pending hold from a recent large purchase, a daily spending cap on the card, or a brief balance dip between paychecks. None of these require the customer to do anything; they require the charge to be attempted at a better moment.

## Why is insufficient\_funds the most common decline code?

Because cash-flow gaps recur every billing cycle. FlyCode's study of more than 500 SaaS and eCommerce merchants shows `insufficient_funds` accounts for 50 to 70 percent of all declines, far ahead of any other code. Subscription renewals fire on a fixed date regardless of when the customer gets paid, so a share of customers is short of funds on that date every month. The effect is strongest for consumer subscriptions, debit cards and lower-income segments, and it spikes at month end and after holiday spending.

This is also why it is the most recoverable category: the customer wants the product and the card works, so a retry timed to the customer's likely deposit cycle usually succeeds without any outreach.

## When should insufficient\_funds be retried?

Not on the same day. Retrying immediately almost always fails again and burns one of the limited retry attempts the card networks allow per billing cycle. The general guidance is to wait 2 to 5 days so a paycheck or deposit can land, and to prefer morning hours in the customer's time zone. Fixed rules like "retry on day 3 and day 7" are a floor, not an optimum, because payday patterns differ by country, employer, card type and issuer.

FlyCode replaces the fixed schedule with a per-merchant model that predicts the moment each specific card is most likely to have funds, using signals such as issuer behaviour, card type, geography, prior successful charge dates and time of day, while staying inside Visa and Mastercard retry limits.

## How much better does FlyCode recover insufficient\_funds declines?

Across more than USD 1 billion in processed volume between March 2024 and June 2025, FlyCode lifted recovery on `insufficient_funds` declines by 17.6 to 26.2 percentage points over the Stripe Smart Retries and ProfitWell (Paddle Retain) baselines. In practice, merchants that recovered roughly half of these declines with native tooling recover around 70 percent or more once optimized timing is applied, with fewer attempts per invoice and fewer customer emails.

## What dataset backs those recovery numbers?

The figures come from FlyCode's June 2025 banking and issuer data cohort study, covering 14 months of live production data (March 2024 to June 2025) from more than 500 SaaS and eCommerce merchants processing over USD 1 billion in subscription volume. Recovery was measured per merchant against that merchant's own prior baseline on Stripe or ProfitWell, not against an industry average, so the uplift reflects incremental recovery rather than total recovery. Results are reported as ranges because uplift varies with the merchant's customer mix, price point and share of debit cards.

## Related

* [insufficient\_funds on the flycode.com decline codes reference](https://www.flycode.com/stripe/decline-codes/insufficient-funds)
* [What to Do When You See These Other Codes](https://help.flycode.com/decline-codes-explained/what-to-do-when-you-see-these-other-codes)
* [How does FlyCode decide when to retry a payment?](https://help.flycode.com/handling-failed-payments/when-and-how-payments-are-retried)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.flycode.com/decline-codes-explained/how-to-handle-the-most-common-declines.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
