Adyen-for-platform icon

Using an Adyen business account

Receive and send funds using an Adyen business account.

When your user has an Adyen business account, they can:

  • Receive business-related payments to their Adyen business account.
  • Send business-related fund transfers or payments to third-party bank accounts. For example, they can pay out their suppliers from their Adyen business account.

Receiving funds

The sender can send the funds to the Adyen business account number. This account number is returned in the API response when you created the business account number.

Your users must have the receiveFromThirdParty capability allowed and enabled before they can receive funds to their Adyen business account.

When Adyen receives funds, Adyen informs your server through a webhook.

Sending funds

Your user can send funds from their Adyen business account to third-party bank accounts. Their business account number will be shown in the bank statement of the recipient.

Your users must have the sendToThirdParty capability allowed and enabled before they can send funds from their Adyen business account to third-party accounts.

Third-party accounts are accounts not owned by your user and therefore not connected to their legal entity as a transfer instrument. Currently, Adyen only supports sending funds to third-party bank accounts. In the future, you will be able to send to third-party wallets and cards.

Before your user can send funds to third parties, reach out to your Adyen contact to:

  • Add an additional role for your API credential.
  • Enable transfers for the source balance account.

Get transfer routes

Prior to submitting a transfer request, 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.

Send funds to third parties

When sending funds to third-party bank accounts, the required bank account details depend on the bank identification type. There are also additional required fields if you're doing a cross-border transfer. Additionally, you can validate the third-party bank account before sending funds to avoid failed transfers due to incorrect details.

To start a transfer, make a POST /transfers request specifying:

Parameter name Required Description
amount -white_check_mark- The amount and the currency of the transfer.
balanceAccountId -white_check_mark- The ID of the balance account from which funds are deducted.
category -white_check_mark- Set to bank.
bankAccount -white_check_mark- Contains details about the bank account and its owner.
  • The accountHolder.fullName is always required. For cross-border transfers, the accountHolder.address object is also required.
  • The accountIdentification is required. The fields that you need to send in this object are determined by the accountIdentification.type. See bank account identification types.
priority -white_check_mark- The priority of the bank transfer, which affects the speed of the transfer and the fees you have to pay.
description Your description for the transfer. See here for allowed characters.
reference Your reference for the transfer. This is only used within your balance 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 that Adyen sends to the recipient.

Select a tab below for examples.

Here is an example of a local funds transfer of EUR funds to an IBAN bank account. When providing the details of the bank account, set the accountIdentification.type to iban.

For possible values for local transfers, see Bank account identification types.

If the transfer request is successful, you receive an HTTP 200 OK response containing an id of the transfer request. Adyen informs your server of the status of the transfer through webhooks.

Transfer priority

To specify how fast the funds must be sent, you can set a priority in the transfer request. A transfer with a higher priority incurs higher fees. The priorities available for bank transfers are:

  • Regular: For normal, low-value transactions.
  • Instant: Instant way to transfer funds in Single Euro Payments Area (SEPA) countries. Has higher fees than a regular payout.
  • Fast: Faster than regular but has higher fees. Recommended for high-priority, low-value transactions.
  • Wire: Fastest way but has the highest fees. Recommended for high-priority, high-value transactions.
  • Cross-border: Recommended for high-value transactions to a recipient in a different country.

    When using cross-border priority, transfer delays and potential fees may occur due to involving correspondent banks. As a result, the beneficiary may receive a reduced amount compared to the one instructed.

  • Internal: Transfer to an Adyen-issued business account.

Transfer cut-off times

There are specific times during a business day, called cut-off times, when Adyen stops processing bank transfers for settlement within the settlement delay. Bank transfers initiated before the cut-off time are typically processed within the specified settlement delay, while those initiated after the cut-off time will be processed the next day within the specified settlement delay.

Adhering to cut-off times can help you maintain consistency and predictability of your financial activities.

Suppose you need to make a bank transfer to a recipient in the SEPA area. Depending on when you initiate the transfer, the funds will be available the same business day or the next business day.

  1. You initiate the transfer with a wire priority at 16:20 PM ET (10 minutes before the 16:30 PM cut-off time). Adyen processes this transfer, and the recipient will receive the funds the same business day.
  2. You initiate the transfer with a wire priority at 17:00 PM ET (30 minutes after the 16:30 PM cut-off time). Since it is past the cut-off time, Adyen will process this transfer on the following business day. The funds will be available in the recipient's account on the day after the next business day (two business days from the date of the transfer initiation).

Suppose you need to make a bank transfer to a US recipient. Depending on when you initiate the transfer, the funds will be available the next business day or the day after the next business day.

  1. You initiate the transfer with a regular priority at 19:30 PM ET (30 minutes before the 20:00 PM cut-off time). Adyen processes this transfer, and the recipient will receive the funds on the next business day.
  2. You initiate the transfer with a regular priority at 20:30 PM ET (30 minutes after the 20:00 PM cut-off time). Since it is past the cut-off time, Adyen will process this transfer on the following business day. The funds will be available in the recipient's account on the day after the next business day (two business days from the date of the transfer initiation).

The following table is an overview of cut-off times depending on the country, currency, and transfer priority.

Country Currency Priority Cut-off time Local timezone Settlement delay Min amount Max amount
Australia AUD Wire 15:00 AEDT Same day 0.01 999,999,999.99
Australia AUD Regular 17:15 AEDT Same day 0.01 999,999,999.99
Australia AUD Fast 23:15 AEDT Same day 0.01 5,000,000.00
Bulgaria BGN Wire 10:45 CET Same day 1.00 999,999,999.99
Bulgaria BGN Regular 10:45 CET Same day 1.00 99,999.99
Canada CAD Regular 17:45 ET Same day 1.00 999,999.99
Canada USD Regular 02:00 ET Same day 1.00 999,999.99
Czechia CZK Wire 12:00 CET Same day 0.01 999,999,999.99
Czechia CZK Regular 12:00 CET Same day 0.01 999,999,999.99
Denmark DKK Wire 14:45 CET Same day 1.00 999,999,999.99
Denmark DKK Regular 10:15 CET Same day 1.00 39,999,999.99
Hong Kong HKD Wire 14:45 HKT Same day 1.00 999,999,999.99
Hong Kong USD Wire 14:45 HKT Same day 1.00 999,999,999.99
Hong Kong HKD Regular 15:45 HKT Same day 1.00 999,999,999.99
Hungary HUF Regular 13:00 CET Same day 1.00 999,999,999.99
Norway NOK Wire 14:20 CET Same day 1.00 999,999,999.99
Norway NOK Regular 11:20 CET Next day 1.00 10,000,000.00
Poland PLN Wire 10:50 CET Same day 0.01 999,999,999.99
Poland PLN Regular 10:30 CET Same day 0.01 999,999,999.99
Romania RON Wire 10:15 CET Same day 0.50 999,999,999.99
Romania RON Regular 10:15 CET Same day 0.50 50,000.00
SEPA EUR Wire 16:55 CET Same day 0.01 999,999,999.99
SEPA EUR Regular 15:45 CET Same day 0.01 999,999,999.99
SEPA EUR Instant 24/7 CET Same day 0.01 100,000.00
Singapore SGD Wire 16:45 SGT Same day 1.00 999,999,999.99
Singapore SGD Regular 18:15 SGT Next day 1.00 90,000,000.00
Singapore SGD Fast 23:45 SGT Same day 1.00 200,000.00
Sweden SEK Wire 15:30 CET Same day 1.00 999,999,999.99
Sweden SEK Regular 11:45 CET Next day 1.00 999,999,999.99
Switzerland CHF Wire 15:45 CET Same day 0.01 999,999,999.99
Switzerland CHF Regular 11:45 CET Same day 0.01 100,000,000.00
United Kingdom GBP Wire 15:15 GMT Same day 0.01 999,999,999.99
United Kingdom GBP Regular 19:30 GMT T+2 0.01 20,000,000.00
United Kingdom GBP Fast 21:00 GMT Same day 0.01 1,000,000.00
United States USD Wire 18:30 ET Same day 0.01 9,999,999,999.99
United States USD Regular 20:00 ET Next day 0.01 99,999,999.99
United States USD Fast 14:00 ET Same day 0.01 1,000,000.00

Bank account identification types and supported priorities

When transferring funds to a third-party bank account, you need to provide the accountIdentification.type in your API request. The type also determines the required bank account details.

  1. To determine the accountIdentification.type value, you must have:
    • The country of the recipient bank account.
    • The currency of the funds you are transferring.
  2. Find the combination in the table below and select the type to see the required fields.

This combination also identifies if you are doing a local or cross-border transfer. Cross-border transfers must be sent as wire transfers, and you must include the address of the bank account owner.

The following table show the limits for the length and the characters you can use in the descriptions based on the country, currency and priority.

Europe

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

North America

Country of counterparty Currency Supported priority Transfer description limits Type
Canada CAD, USD regular Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9]/ - ? : ( ) . , ' + Space caLocal or usLocal
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
usLocal

Asia Pacific

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

Cross-border

Country of counterparty Currency Supported priority Transfer description limits Type and other requirements
Countries where IBAN is required Any crossBorder Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9] . , – ( ) / = ' + : ? ! ” % & * < > ; Space - Type: iban
- address of the bank account owner
Countries where IBAN is optional
(for example, Poland or Czech Republic)
Any crossBorder Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9] . , – ( ) / = ' + : ? ! ” % & * < > ; Space - Type: iban or numberAndBic
- address of the bank account owner
Other countries not listed above Any crossBorder Maximum 140 characters. Allowed characters: [a-z][A-Z][0-9] . , – ( ) / = ' + : ? ! ” % & * < > ; Space - Type: numberAndBic
- address of the bank account owner

Bank account validation

Before sending funds to a third-party bank account, you can validate this bank account to avoid failed transfers due to incorrect details.

To validate a third-party bank account, make a POST /validateBankAccountIdentification request specifying the following information, depending on the bank account identification type:

Parameter Description
accountIdentification Object containing the details of the bank account to be validated.

If the bank account details are valid, you'll get an HTTP 200 OK response. You can proceed with transferring funds to this account.

In case the bank account validation fails, you'll get the details in the response. Use this information to build your own logic for handling invalid bank account details.

Next steps

Keep track of Adyen business account transactions using webhooks or by making an API request.