How does dunning work?
When a renewal fails, the billing system schedules retries at times more likely to succeed, for example after payday, and sends the customer a series of reminders with a link to update their payment method. Stripe’s documentation describes retries chosen by a model using signals such as the time of day, and notes that it does not retry when the issuer returns a hard decline code, waiting instead for a new payment method. If recovery fails, the subscription is cancelled, marked unpaid, left past due or paused, depending on the merchant’s settings.
Why does it matter?
Failed payments cause involuntary churn: customers who meant to stay but lost access because a card failed. As an illustrative example: a subscription business has 1,000 failed renewals a month. Retries recover 350, card updates another 100 and reminder emails 150 more, so 600 customers stay who would otherwise have been lost, at a cost of a few emails and retries.
What are the risks?
Retrying too often or too fast hurts. Stripe warns that excessive retries in spikes with a low success rate can look like card testing to issuers, and the card schemes charge fees above their retry limits. Retrying hard declines wastes attempts. And reminders that read like threats push customers to cancel or dispute, so tone matters as much as timing.
Where does Omno use it?
Omno does not offer recurring payments yet, so retries and reminders are scheduled by the merchant’s own billing system. Within a single payment, if a provider is unavailable or rejects the request, the payment moves to the next provider in the routing rule until one accepts. Every attempt’s response code is kept in the routing-decision log and the final status arrives by webhook, which the merchant’s billing system can use to decide what to do next.