Payout retries
Payout retries increase the likelihood that your users with EUR accounts receive payouts instantly, with fallbacks in case instant payouts aren't available.
Retries are enabled for all closed-loop and open-loop payouts by default. This means that any failed payouts are retried for one hour over an instant payment scheme. The final retry is made over a non-instant payment scheme.
This page explains each aspect of payout retries in more depth. Contact us to disable payout retries, or to change the period that payouts are retried for.
Default behaviour, with payout retries enabled
Payout retries are enabled by default. In the default behaviour, payouts are retried over the instant EUR payment scheme for, SEPA Credit Instant Transfer for an hour (you can change this). The final payout attempt is made over the non-instant EUR payment scheme, SEPA Credit Transfer, to increase the likelihood the payout executes.
Payout retry example
This example shows the general flow of an EU payout that is retried until it fails:
- You make the initial payout over SEPA Instant.
- After 1.5 minutes, the API attempts a second payout over SEPA Instant.
- After 6 minutes, the API attempts a third payout over SEPA Instant.
- After 20 minutes, the API attempts a fourth payout over SEPA Instant.
- After 1 hour, the API attempts a fifth payout over SEPA Instant.
- When the fifth payout fails, the API immediately attempts to make the payout over SEPA Credit.
In the UK, the API attempts to retry payouts five times over Faster Payments. There is no sixth fallback attempt (as there is no non-instant payment scheme to use).
The timing of payout retries
The exact timing for payout retries uses a jittered exponential backoff algorithm, which means there is not a set schedule.
Payouts can be retried faster or slower than the example given above, which is the average, due to the variability of this algorithm. In the incredibly unlikely event that every retry is made at the latest possible moment, the fifth payout would occur at 2 hours and 2 minutes.
How to disable payout retries
You can contact us to disable payout retries. If disabled, we do not attempt to retry any payouts, and they will either succeed or fail quickly.
Retry duration
By default, payouts are retried for a duration of 1 hour. Contact us to change the duration payouts are retried for to a minimum of 1 minute and a maximum of 1 day.
For the duration you specify, payouts are retried with a jittered exponential backoff algorithm. This means that payouts are initially retried more frequently, and grow progressively further apart.
Payout status during retries
For the duration that a payout is retried, the payout status changes back and forth between pending
and authorized
.
You can check the status of a payout that is being retried with the /v3/payouts/{id}
endpoint.
Webhook notifications for payout retries
After you initiate a payout, you don't receive any webhook notifications until the payout enters one of the two terminal statuses of executed
or failed
. In this case, you receive the payout_executed
or payout_failed
webhook.
As a result, in the case of payout failure, you will not receive a webhook notification until the retries have finished.
Updated about 2 months ago