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:

  1. You make the initial payout over SEPA Instant.
  2. After 1.5 minutes, the API attempts a second payout over SEPA Instant.
  3. After 6 minutes, the API attempts a third payout over SEPA Instant.
  4. After 20 minutes, the API attempts a fourth payout over SEPA Instant.
  5. After 1 hour, the API attempts a fifth payout over SEPA Instant.
  6. 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.