Overview
When a charge attempt to your billing system fails, the DVM doesn’t give up immediately. It follows a structured, time-based retry strategy designed to maximize successful payment collection without flooding your system with excessive attempts.Retries apply to any charge request that fails with a retryable error — including retryable reason codes and server-side errors (e.g. HTTP 500).
How retries work
1
Initial charge attempt fails
The DVM makes the initial charge request to your billing system. If it fails with a retryable error, the retry sequence begins automatically — no action is required from you.
2
First retry — 1 minute later
The first retry is attempted 1 minute after the initial failure, giving transient issues (network blips, brief service unavailability) a chance to resolve quickly.
3
Subsequent retries — Fibonacci backoff
Each subsequent retry is spaced progressively further apart, following a Fibonacci backoff sequence. The gap between attempts increases over time, reducing pressure on your billing system while still persisting toward a successful collection.
4
Retry window closes at 24 hours
Retries continue for up to 24 hours from the original failed attempt. If the charge has not been collected within this window, it is marked as unpaid and the retry sequence ends.
5
Next scheduled billing cycle
The DVM does not retry indefinitely beyond the 24-hour window. Instead, it waits for the next scheduled billing event for that subscription, at which point a fresh charge attempt is made as normal.
Retry schedule at a glance
Retry intervals follow a Fibonacci sequence (1, 1, 2, 3, 5, 8, 13…), meaning the gap between each attempt grows progressively. Up to 14 retries are made within the 24-hour window.
After the retry window
If all retries are exhausted without a successful collection:Charge marked as unpaid
The charge status is set to
CHARGE_NOT_PAID. No further retries are made for this charge event.Renewal charges continue at next billing cycle
The DVM does not block future renewal charges from occurring if a previous charge is unsuccessful.
What this means for you
- No action needed on failure — the DVM handles retries automatically.
- Your system won’t be overwhelmed — the Fibonacci backoff ensures retry frequency tapers off over time.
- Predictable recovery — if a payment fails, you can expect up to 14 retry attempts within 24 hours before the charge is marked unpaid.
- Continuity at renewal — a failed charge in one cycle doesn’t permanently block collection; the next billing cycle triggers a fresh renewal charge.

