> 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.md).

# Decline Codes Explained

What payment decline codes are, how to tell soft declines from hard declines, what the most common Stripe codes mean, and how FlyCode uses each code to recover more failed subscription payments.

When a subscription charge fails, the issuing bank returns a decline code that says why. That code decides everything that should happen next: whether to retry silently, when to retry, and whether the customer needs to be contacted at all. This collection covers what decline codes are, where to find them in Stripe and FlyCode, how to handle the codes that make up most failed payments (insufficient funds and generic declines), and how FlyCode's models act on each one.

{% hint style="info" %}
**Quick answer:** roughly two thirds of subscription payment failures are soft declines that can be recovered with correctly timed retries and no customer action. The single largest category is `insufficient_funds`, which accounts for 50 to 70 percent of all declines in FlyCode's study of more than 500 merchants. Hard declines (lost, stolen or closed cards) need a new payment method and should not be retried.
{% endhint %}

## In this section

* [What Decline Codes Tell You](https://help.flycode.com/decline-codes-explained/what-decline-codes-tell-you): what decline codes are, why they matter, soft versus hard declines, and fraud patterns.
* [Where to Find Decline Codes (and How to Use Them)](https://help.flycode.com/decline-codes-explained/where-to-find-decline-codes-and-how-to-use-them): where codes appear in Stripe and FlyCode, differences across processors, and Stripe test cards.
* [How to Handle the Most Common Declines](https://help.flycode.com/decline-codes-explained/how-to-handle-the-most-common-declines): `insufficient_funds`, why it dominates, when to retry, and FlyCode's measured uplift.
* [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): `generic_decline`, `do_not_honor`, `transaction_not_allowed`, `invalid_account`.
* [How FlyCode Makes Decline Codes Work for You](https://help.flycode.com/decline-codes-explained/how-flycode-makes-decline-codes-work-for-you): how FlyCode ingests and acts on codes without touching your webhooks.

## Full code-by-code reference

For every Stripe decline code and the equivalent ISO 8583 network response codes (05 Do Not Honor, 51 Insufficient Funds, 91 Issuer Inoperative and so on), with meaning, soft or hard classification and recommended next step, see the [Stripe decline codes reference on flycode.com](https://www.flycode.com/stripe/decline-codes). For a strategy-level guide with retry timing by code, see [Subscription payment decline codes guide for Stripe](https://docs.flycode.com/docs/subscription-payment-decline-codes-guide-for-stripe) in the FlyCode docs, and for the network limits on retrying each code, [Card network retry rules for failed payments](https://docs.flycode.com/docs/read-more/card-network-retry-rules-for-failed-payments-visa-and-mastercard).


---

# 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.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.
