> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airdun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Recovery Cases: How Airdun Tracks Each Failed Payment

> What opens a recovery case, what data the case contains, and the stages it moves through from detection to recovered or exhausted.

A **recovery case** is the unit of work Airdun tracks. It is opened when a Stripe payment fails, enriched with everything relevant to that failure, and closed when the payment is recovered or the sequence is exhausted.

***

## What triggers a case

Every `payment_failed` event from Stripe opens a case. Airdun handles the full spectrum of failure types:

* **Card expired** — the card on file has passed its expiry date
* **Insufficient funds** — the account balance was too low at the time of the charge
* **Bank block** — the issuing bank blocked the transaction
* **Card declined** — a generic decline from the card network or issuer
* **Limit exceeded** — the customer's card or account limit was reached
* **3DS friction** — the payment required Strong Customer Authentication that wasn't completed
* **Auth failed** — authentication or authorization was refused

Each failure type has its own context and resolution path. See [Recovery Strategy](/how-it-works/recovery-strategy) for how that shapes the plan.

***

## What a case contains

Once a case is opened, Airdun enriches it with every available signal before building the strategy.

<CardGroup cols={2}>
  <Card title="Failure reason & Stripe data" icon="triangle-exclamation">
    The exact failure code from Stripe, the invoice, the amount, and any prior retry history associated with the charge.
  </Card>

  <Card title="Customer data" icon="user">
    Name, email address, country, detected language, and billing history — tenure, payment track record, and subscription tier.
  </Card>

  <Card title="Product-usage signals" icon="chart-line">
    How actively the customer uses your product, their engagement level, and their estimated value to your business.
  </Card>

  <Card title="Channels available" icon="satellite-dish">
    Which outreach channels Airdun can use for this customer — email, SMS, WhatsApp, in-app wall — based on the contact data Stripe has on file and your connected integrations.
  </Card>

  <Card title="Signals from similar past cases" icon="brain">
    Anonymized patterns from comparable failures across all Airdun clients — same failure type, similar customer profile, same country.
  </Card>
</CardGroup>

***

## Case lifecycle

<Steps>
  <Step title="Open">
    Airdun detects the `payment_failed` event from Stripe and creates the case.
  </Step>

  <Step title="Strategy designed">
    The algorithm processes the enriched case context and builds the recovery sequence.
  </Step>

  <Step title="Recovery sequence running">
    Airdun executes the plan — sending messages, scheduling retries, and tracking every interaction.
  </Step>

  <Step title="Recovered or Exhausted">
    The case closes as **Recovered** when the payment succeeds, or as **Exhausted** if the sequence completes without a successful charge.
  </Step>
</Steps>

***

## What counts as one case

**One failed payment = one case.**

If the same customer fails again in a later billing cycle, that is a separate payment event and a new case. Each case is independent — its own enrichment, its own strategy, its own outcome.

For how cases are counted against your monthly allowance, what happens at the limit, and how overages are handled, see [Cases & Limits](/faq/cases-and-limits).

<Note>
  Airdun never cuts an active recovery sequence mid-flow, even if you reach your monthly case limit.
</Note>
