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

# When a payment fails

> Retries, emails, and the backup card run by themselves. Watch it happen; step in rarely.

OPENSUBS PLATFORM

A failed charge opens a recovery campaign that runs itself. Step in only when a card never gets updated, a bank wants a confirmation, or a product is out of stock.

**1. Let it run**

The response, in order:

| Moment | What happens by itself |
| - | - |
| The charge fails | Recorded on the subscription; a recovery campaign opens. |
| Right away | The subscriber gets the first email, with a secure card-update link. A backup card on file is tried: one try per failed attempt on the primary. |
| On your schedule | Each step runs on its day and retries the charge, sends a reminder, or both. |
| After the last step | The ending you chose: cancel (the default), pause, or leave active and stop retrying. |

> [!TIP]
>
> **Checkpoint:** nothing above needed you.

**2. Watch it happen**

* **Subscriptions**, filtered to **Billing issues**, lists everyone in recovery; Home's **Needs attention** banner's **Review subscriptions** button lands on the same list.
* Two filter names look alike and aren't:

| Filter | Who's in it |
| - | - |
| **Billing issues** | Not cancelled or expired, and the last billing attempt errored, whatever the status badge says. The set Home counts. |
| **Failed** | Subscriptions whose contract status is Failed, mirrored from Shopify. Recovery never sets it. |

![The Billing issues filter: every subscription in recovery, with the failure reason as a badge.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/13-billing-issues.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=855222ec40278d5ff9db5e6325cdcefd)

* Open one: the **Payment recovery** card shows an **In recovery** badge, the amount at risk, retries used, the last error, and the dunning schedule with steps marked **Done**, **Next**, or **Upcoming**. Once the schedule is spent, **Next retry** becomes **Final action** with the ending's date. An out-of-stock campaign shows an **Out of stock** badge and no schedule. The card exists only mid-campaign.

![The Payment recovery card: amount at risk, retries used, next retry, last error, and the dunning schedule with Done, Next, and Upcoming steps.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/35-recovery-card.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=0d8cf7051e65457b67187d13bc142fc8)

* Below it, **Billing history** lists one row per attempt, **Paid** or **Failed**, with a **Recovery** badge on scheduled retries and **Backup card** on backup tries; failed amounts are labeled "attempted", not charged.

![Billing history: the attempt ledger, a Paid row linking to its order.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/14-billing-history.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=022b566efecb08bb20d0cc6f73b2ff7a)

* **Analytics > Dunning** totals what failed and what the schedule won back.

> [!TIP]
>
> **Checkpoint:** every attempt is on the screen.

**3. Tune the schedule, once**

* The whole campaign (retry days, emails, the ending) lives at **Settings > Payment recovery**; [Set up payment recovery](https://docs.opensubs.com/platform-v2/run/set-up-payment-recovery.md) walks every field.
* **After the last step** decides the ending.
* **Out-of-stock retries** run their own quieter schedule, with no emails to the subscriber.

> [!TIP]
>
> **Checkpoint:** the schedule matches how hard you want to chase.

**4. The subscriber who never fixes the card**

* If a campaign drags on, nudge once: click the pencil on the **Payment method** card and choose **Send payment update email**, or paste a **Quick action link** into a personal reply ([When a subscriber asks for help](https://docs.opensubs.com/platform-v2/run/when-a-subscriber-asks.md)).
* Either link signs the subscriber into their portal's payment section to pick another saved card or add one. OpenSubs never stores card details: they're exchanged for a Shopify vault token and discarded.

**5. The bank that wants a confirmation**

* Sometimes the bank makes the subscriber confirm the charge (3D Secure): the bank-authentication email carries the bank's confirmation link, the campaign waits, and the **Payment recovery** card's next retry reads **Waiting for customer authentication**.
* It waits as long as it takes; point a confused subscriber back at that email.

**6. The product that's out of stock**

* A renewal that fails because your product is out of stock never emails the subscriber.
* A partly stocked renewal bills without the missing line; the subscription keeps every line for the next cycle.
* With every line out of stock, the charge waits on the **Out-of-stock retries** schedule. Restock in Shopify and the next retry bills as normal.

> [!TIP]
>
> **Checkpoint:** restocking is the whole fix.

**7. End a campaign on purpose**

A campaign closes in one of four ways; you control three:

| How it ends | What closes it |
| - | - |
| The payment succeeds | A scheduled retry that lands (primary, backup, or fixed card) closes the campaign on the spot, as recovered. A **Ship now** payment also ends the chase; the campaign closes at its next scheduled retry. |
| You click **Stop recovery** | The button on the **Payment recovery** card. Retries and reminder emails stop immediately, the **After the last step** ending never fires, and the subscription doesn't change. |
| The schedule runs out | The last step fails, one more retry gap passes, and the **After the last step** ending fires. |
| The subscription stops | Cancel or pause it and the campaign is abandoned at the next scheduled retry: no failure email, no ending action. |

* Want the order out today? **Ship now**, then **Charge & ship now**.
* Want just the chasing to stop? **Stop recovery**. The missed order is never billed and nothing bills until you move the next billing date or use **Ship now**; it stays in **Billing issues** until a charge succeeds, and a later failed cycle opens a fresh campaign.
* Want the subscription ended too? Cancel or pause it.
* Want future campaigns shorter? Cut steps on **Settings > Payment recovery**; changes apply to running campaigns too.

> [!TIP]
>
> **Checkpoint:** pay it, stop it, outlast it, or end the subscription under it.

> [!NOTE]
>
> **There is no retry button, on purpose.** The schedule owns retries. When a fixed card needs the order today: **Ship now**, then **Charge & ship now** ([Edit one subscription](https://docs.opensubs.com/platform-v2/run/edit-one-subscription.md)).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.