Adyen-for-platform icon

Schedule automatic payouts

Set up scheduled automatic payouts to your user's verified bank account.

Automate payouts to your user's verified bank accounts by configuring sweeps. A sweep automatically pushes out or pulls in funds from a balance account based on a pre-defined schedule, amount, and source or destination.

How sweeps work

Sweeps are configured on a balance account. The configuration includes the type of the sweep and conditions, such as the schedule when the sweep is evaluated or a trigger amount. The type dictates the direction of the funds: push to push funds out of the balance account to a destination that you specify, or pull to pull funds in to the balance account from a source that you specify.

You can also set sweep conditions such as:

  • Transfer the entire available amount or a fixed amount.
  • Maintain an amount on the balance account.
  • Set an amount that triggers the sweep.

When the conditions for the sweep are met, it triggers a transfer request. Adyen sends webhooks to your server when a transfer request results from a sweep.

For scheduled payouts, you will configure a push sweep to send funds from your user's balance account to their transfer instrument.

How Adyen calculates the available payout amount

Before paying out funds to your users, Adyen verifies their available balance. The available balance refers to the amount of money on the balance account that the user can spend. Verifying the available balance protects you as a platform from any potential obligations that may arise due to users holding a negative balance.

To determine the available balance, Adyen considers an existing balance and all debits and credits that are expected to occur in the future, also called future balance changes.

  • Existing balance – The initial balance as of the day of calculation, including all amounts with a value date until the day of calculation.

  • Future balance changes – The total of all future debits and credits amounts that have a value date in the future and a booking date until the day of calculation.

The expected future debits and credits are only taken into account if their total results in a negative amount. In such a case, Adyen calculates the available balance as the existing balance minus future balance changes.

If the future balance changes result in a zero or positive amount, Adyen ignores this amount when calculating the available balance.

Below are some examples of how Adyen calculates the available balance of the balance account.

Available balance example with negative future balance changes

  • At the current time T, the existing balance of the balance account is USD 100.
  • The total of the debits and credits scheduled for T+1 (USD -50) and T+2 (USD +30) is USD -20.
  • Since the future balance changes result in a negative amount, Adyen considers this amount for calculating the available balance.
  • The available balance for the balance sweep at T is the existing balance minus future balance changes, or USD 80.

Available balance example with zero future balance changes

  • At the current time T, the existing balance of the balance account is USD 100.
  • The total of the debits and credits scheduled for T+1 (USD -15) and T+2 (USD +15) is USD 0.
  • Since the future balance changes result in a zero amount, Adyen ignores this amount when calculating the available balance.
  • The available balance for the balance sweep at T is the existing balance of USD 100.

Available balance example with positive future balance changes

  • At the current time T, the existing balance of the balance account is 100 USD.
  • The total of the debits and credits scheduled for T+1 (USD -50) and T+2 (USD +80) is USD 30.
  • Since the future balance changes result in a positive amount, Adyen ignores this amount when calculating the available balance.
  • The available balance for the balance sweep at T is the existing balance of USD 100.

Before you begin

  • Ensure that your server can receive and accept webhooks.
  • Contact Support Team if you want to configure a default transfer description for your platform.
  • Ensure that the user is allowed to use the sendToTransferInstrument capability. From LEM API v3, this capability is verified at the level of the transfer instrument, such as a bank account. This means that transfers are possible to a verified transfer instrument independently of the verification status of other transfer instruments that the legal entity has.
  • Prior to creating a push sweep, we recommend that you calculate the available transfer routes. This will enable you to design a configuration that optimally aligns with your use case. Furthermore, it minimizes the risk of transfer failures by proactively identifying supported routes and highlighting any necessary parameters.

Create a push sweep

To set up scheduled payouts, create push sweeps in your Customer Area by using your Customer Area, or by making a POST /balanceAccounts/{balanceAccountId}/sweeps request.

To configure sweeps in your Customer Area, your account must have the Manage sweep configurations role.

  1. In the navigation menu, select the merchant account linked to your balance platform.

  2. In Accounts & balances > Balance accounts, select a Balance account ID.

  3. In Scheduled transfers panel, select Add a transfer schedule.

  4. Select Payout schedule.

  5. Select Next.

  6. Enter and verify the configuration details in their respective fields.

    Field Description
    When balance on Automatically set to the balance account ID.
    Is more or equal to Set a trigger amount. Before paying out the funds, Adyen checks if the available balance is more than or equal to the trigger amount.
    Action Select Push an amount or Maintain a balance.
    Push this amount Select Entire available balance or Custom. Read more on how Adyen calculates the available balance.
    Push balance to Select Transfer instrument.
    Transfer instrument Id Select the ID of the transfer instrument.
    When schedule matches Select the predefined schedules or Custom.
    Schedule If you select a Custom schedule, specify the schedule or a cron expression. Select Submit.
    Activate Immediately after creation
    Description Enter a description for the schedule. (Optional)
    Transfer priorities Add one or multiple transfer priorities. This sets the speed at which the transfer is sent and the fees that you have to pay.
  7. Select Next.

  8. Review the information that you provided.

  9. Select Save.

The details of your scheduled payout are shown in Scheduled transfers.

The following example shows how to enter the configuration details.

You want to pay out EUR 150 to your user's transfer instrument at the beginning of each month if the balance in their balance account is higher than EUR 250.

The following table shows the configuration details for this case.

Field Details
When balance on BA00000000000000000000001
Is more or equal to EUR 250
Action Push an amount
Push this amount Custom > EUR 150
Push balance to Transfer instrument
Transfer instrument Id SE00000000000000000000001
When schedule matches Custom
Schedule At 00:00, on day 1 of the month > Submit
Activate Immediately after creation
Transfer priorities 1. Regular For normal, low-value transactions.

Get updates when a sweep triggers a transfer request

Track the transfer requests that result from sweeps through webhooks that Adyen sends to your server. The webhooks provide the status of the request, from the time when Adyen received the request and the transfer was authorised, up to when the transfer was booked and deducted from the balance account. The webhooks also inform you if the transfer failed.

You can also view the resulting transfer in your Customer Area.

View sweep details

After you create a sweep, you can view the details of the resulting scheduled payout in your Customer Area. These details include:

  • Payout amount
  • Source and destination of the payout
  • Completed and upcoming scheduled payouts

You can view the details of all payout schedules and internal transfer schedules in the Balance account details page, under Scheduled transfers. To do this your account must have one of the following roles:

  • Balance platform base role
  • Balance platform admin role

To view details:

  1. In Accounts & balances > Balance accounts, select a Balance account ID.
  2. In Balance account details, under Scheduled transfers, select a scheduled payout.
  3. Select View details.

Transfer statement description character limits

A statement description is the text that your users see on their bank statements when they receive payouts, helping them identify the transaction. The limitis for the statement description depend on the clearing system regulations.

Adyen offers two dedicated fields that are sent to the beneficiary: description and referenceForBeneficiary. Depending on the location, currency, and priority combination, different character limits apply to these two fields. See the table below to understand the description behavior in each location. The data in the table is based on extensive testing, but some beneficiary banks may choose not to show the full description to their customers.

To configure a default description for all payouts, contact our Support Team. You can still override the default description when you initiate a scheduled or on-demand payout in the Customer Area or API.

Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
BGN regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

35 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
CZK regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

140 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
DKK regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? ( ) . , Space = ! % & ; *



[A-Z] [a-z] [0-9] / - ? ( ) . , Space = ! % & ; *


140

140



140

140

70 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
DKK regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? ( ) . , Space = ! % & ; *



[A-Z] [a-z] [0-9] / - ? ( ) . , Space = ! % & ; *


140

140



140

140

25 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
PLN regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140
0

0




140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
RON regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

70 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
EUR instant





regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140



140

140

140

35



140

35



140

0

Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
SEK regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

11 1





35 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
CHF regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140
85 1

0



85 1

0
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
GBP fast





regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , \' + Space = ! % & ; < > @ {


[A-Z] [a-z] [0-9] / - ? : ( ) . , \' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , \' + Space

140

140



140

140



140

140

140

18




16 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
CAD




USD
regular




regular

description

referenceForBeneficiary


description

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space


[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140


140


12 1



12 1

Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
USD instant





fast





regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space = ! % & ; < > @ _ \" ` ~ $ #


[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space = ! ; % & < > @ _ \ " \~ $ [ ] * ^ | ? ` { }


[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space = ! ; % & < > @ _ \ " \~ $ [ ] * ^ | ? ` { }


[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space = ! % & ; < > @ _ \ " ` \~ $ #
140

140



140

140



140

140



140

140

140

16



30

15



30

15




140

16

Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
AUD fast





regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary

[a-z][A-Z][0-9] / - ? :( ) . ,' + Space



[a-z][A-Z][0-9] / - ? :( ) . ,' + Space



[a-z][A-Z][0-9] / - ? :( ) . ,' + Space
140

140



140

140



140

140


280 1





18 1





35 1

Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
HKD regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

18 1





140 1


USD wire



description

referenceForBeneficiary



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



140

140


140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
NZD regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary

[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space



[A-Z] [a-z] [0-9] / - ? : ( ) . , ' + Space
140

140



140

140

35 1





140 1
Currency Payout priority API field name Allowed characters Maximum character length Character length visible on statements
SGD fast





regular





wire



description

referenceForBeneficiary



description

referenceForBeneficiary



description

referenceForBeneficiary

[a-z][A-Z][0-9] / - ? :( ) . ,' + Space



[a-z][A-Z][0-9] / - ? :( ) . ,' + Space



[a-z][A-Z][0-9] / - ? :( ) . ,' + Space
140

140



140

140



140

140


18 1




0

0




140 1

1 In these regions, the description and referenceForBeneficiary characters are combined and shown in a single field on the bank application or statement. The description appears first. If the character limit is reached, the referenceForBeneficiary is not included.

See also