Adyen-for-platform icon

On-demand payouts

Initiate an on-demand payout to your user's verified bank account.

Send funds to third parties

Offer Adyen business accounts to your users so they can transfer funds to third-party bank accounts.

Additional verification requirements apply.

On-demand payouts give you the flexibility to trigger a payout off-schedule. When triggering an on-demand payout, consider the cutoff times for each bank transfer method in each region. Cutoff times affect the expected time for the account holders to receive the funds in their bank account.

This page explains how to pay out on-demand to your user's transfer instruments.

Before you begin

  • Ensure your API credential has the roles to use with the Transfers API.
  • 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.
  • Ensure that your server receives and accepts webhooks.
  • Contact our Support Team:

Get transfer routes

Before submitting a transfer request, we recommend that you calculate the available transfer routes. This enables you to design a configuration that optimally aligns with your use case. It also minimizes the risk of transfer failures by identifying supported routes and highlighting any necessary parameters.

Step 1: Make a transfer request

To set up on-demand payouts, make a POST /transfers request or use your Customer Area.

To send an on-demand payout, make a POST /transfers request, specifying:

Parameter name Required Description
amount -white_check_mark- The amount of the transfer.
balanceAccountId -white_check_mark- The unique identifier of the source balance account.
category -white_check_mark- Set to bank.
counterparty.transferInstrumentId -white_check_mark- The unique identifier of the transfer instrument to which the payout must be sent. This resource must be linked to the account holder's legal entity.
priority -white_check_mark- The priority of the bank transfer, which affects the transfer speed and the fees you have to pay.
description Your description for the transfer request, which is used by most recipient banks as the transfer description. Check the character limit based on the country of the counterparty bank account and the priority.
reference Your reference for the transfer. This is only used within your platform and not sent to the recipient. If you don't provide this in the request, Adyen generates a unique reference.
referenceForBeneficiary Your reference for the transfer, which is also sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses.

If the transfer request is successful, you receive an HTTP 200 OK response containing an id of the transfer request.

Step 2: Get updates on the status of the transfer

Track the transfer requests 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 will also inform you if the transfer failed.

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

Transfer statement description character limits

The following limits apply to the length and the characters that you can use when setting a transfer statement description based on the country of the counterparty and the priority.

Europe

Country of counterparty Currency Supported priority Transfer description limits
Single Euro Payments Area (SEPA) countries EUR regular, instant, wire Maximum 140 characters.
Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Czech Republic CZK regular Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Denmark DKK regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Hungary HUF regular Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Norway NOK regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Poland PLN regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Sweden SEK regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Switzerland CHF regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
United Kingdom GBP regular, fast, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space

North America

Country of counterparty Currency Supported priority Transfer description limits
Canada CAD, USD regular Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
United States USD regular, fast, wire Allowed characters:
Priority: regular and fast
[a-z][A-Z][0-9]& $ % # @ ~ = + - _ ' " ! ?
Priority:wire [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space

Asia Pacific

Country of counterparty Currency Supported priority Transfer description limits
Australia AUD regular, fast, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Hong Kong HKD, USD regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
New Zealand NZD regular, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space
Singapore SGD regular, fast, wire Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space

See also