Smart Retry
Available via: Dashboard and API
What Is Smart Retry?
By default, when a recurring payment fails, Inflow retries the same amount on the next attempt. Smart Retry changes that: once enabled, each retry attempt after the first failure charges progressively less, according to a ladder you configure. This increases the odds of recovering at least part of the payment instead of losing the subscriber to UNPAID / cancellation.
Smart Retry only affects recurring renewal charges — it does not apply to a subscription's first payment, to entry fees, or to one-time payments.
Smart Retry does not change when Inflow retries a failed invoice — that schedule follows Inflow's standard retry timing. It only changes how much each of those already-scheduled attempts charges.
How the Reduction Ladder Works
You configure steps, an array of reduction percentages:
- Attempt 1 always charges the full price (implicit — you don't configure this one).
steps[0]is the reduction applied to attempt 2,steps[1]to attempt 3, and so on.- Values must be non-decreasing — a step can repeat the previous one to plateau at a reduction level for several attempts, but it can never go back up to a smaller discount.
- Attempts beyond the last configured step keep using that last step's reduction indefinitely.
Example with steps: [30, 50]:
| Attempt | Charged |
|---|---|
| 1 | Full price |
| 2 | −30% |
| 3 and beyond | −50% |
You can optionally set a fixed final amount (finalAttemptAmountInCents, offer-only): once the ladder above is exhausted, every attempt from there on charges this fixed amount instead of a percentage off. It's tax-exclusive and must stay below the offer's price — Inflow converts it to a tax-inclusive amount using the invoice's own tax rate at the time of the retry.
The charged amount never drops below the minimum chargeable amount for the currency (50 minor units, e.g. €0.50 / $0.50) — card networks refuse anything lower.
From the Dashboard
Account-level default
- Go to Settings → Smart retry.
- Toggle Enable smart retry.
- Under Reductions per retry, click Add retry step for each attempt you want to configure, and set its discount percentage. The recap below the builder spells out exactly what each attempt will charge.
This default applies to every subscription offer on your account, unless a specific offer overrides it.
Per-offer override
When creating or editing a subscription offer, use the Smart retry (failed renewals) field:
| Option | Effect |
|---|---|
| Use account default | The offer inherits whatever is configured account-wide (on or off) |
| Custom for this template | Configure a reduction ladder (and optional final amount) specific to this offer, ignoring the account default |
| Disabled for this template | Turns Smart Retry off for this offer, even if the account default is enabled |
Via the API
Pass smartRetryConfig when creating a subscription offer (Creating a Subscription Offer):
curl -X POST https://api.inflowpay.com/subscription/offer \
-H "X-Inflow-Api-Key: your_private_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Pro Plan",
"description": "Full access to all features",
"amountInCents": 2999,
"currency": "EUR",
"interval": "month",
"intervalCount": 1,
"smartRetryConfig": {
"enabled": true,
"steps": [30, 50],
"finalAttemptAmountInCents": 1000
}
}'Omit smartRetryConfig (or send null) to inherit the account-level default. Send { "enabled": false } to explicitly disable it for this offer regardless of the account default.
There is no public API endpoint to update an existing offer — like the rest of an offer's settings, changing
smartRetryConfigafter creation is Dashboard-only. See Creating a Subscription Offer.
Configuration Reference
| Field | Type | Required | Description |
|---|---|---|---|
enabled | boolean | Yes | Master switch for this level of configuration |
steps | number[] | No | Reduction ladder in percent (0–90), one value per attempt starting at attempt 2. Non-decreasing; up to 10 values |
finalAttemptAmountInCents | number | No | Fixed tax-exclusive amount charged once steps is exhausted. Offer-only; must be below amountInCents |
Important Notes
- The ladder is locked in when a customer subscribes. Editing an offer's Smart Retry settings later doesn't change how existing subscribers on that offer are retried — only subscriptions created after the change use the new ladder. This keeps mid-dunning behavior predictable for subscribers already being retried.
- Manual retries use whatever is currently due. The Retry Payment button in the Dashboard (see Managing Subscriptions) charges the invoice's current amount due — if Smart Retry already reduced it, the manual retry uses that reduced amount too.
- Statuses are unaffected. A subscription still moves through
PAST_DUEwhile automatic retries are in progress, and toUNPAIDif every attempt (at whatever amount) ultimately fails — see Subscription Statuses. - Payments reflect the actual amount charged. A renewal payment recovered via Smart Retry is recorded — and reported in webhooks — at the reduced amount actually charged, not the offer's full price.
Updated about 7 hours ago
