Account holders must have a sendToThirdParty capability before they can send funds to third parties.
Account holders that have a sendToThirdParty capability can make business-related fund transfers to third parties, such as their suppliers or providers.
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 you begin
Before your user can send funds to third parties, you must:
- Reach out to your Adyen contact to:
- Add an additional role for your API credential.
- Enable transfers for the source balance account.
- Make sure that the account holder has a sendToThirdParty capability.
- Implement Adyen's Authentication SDK for transfers in the European Economic Area (EEA).
Send funds to third parties
When sending funds to third-party bank accounts, the required bank account details depend on bank identification type. There are also additional required fields if you're doing a cross-border transfer.
To start a transfer, make a POST /transfers request specifying:
Parameter name | Required | Description |
---|---|---|
balanceAccountId |
![]() |
The ID of the balance account from which funds are deducted. |
category |
![]() |
Set to bank. |
counterparty.bankAccount |
![]() |
Contains details about the bank account and its owner.
|
priority |
![]() |
The priority of the bank transfer, which affects the speed of the transfer and the fees you have to pay. The possible values are regular, fast, or wire. For cross-border transfers, set the priority to wire. |
description |
Your description for the transfer. | |
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 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.
curl https://balanceplatform-api-test.adyen.com/btl/v3/transfers \
-H "content-type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-X POST \
-d '{
"amount": {
"currency": "EUR",
"value": 150000
},
"category": "bank",
"priority": "regular",
"balanceAccountId": "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty": {
"bankAccount": {
"accountHolder": {
"fullName": "A. Klaassen"
},
"accountIdentification": {
"type": "iban",
"iban": "NL91ABNA0417164300"
}
}
},
"referenceForBeneficiary": "YOUR_REFERENCE_SENT_TO_THE_BENEFICIARY",
"reference": "YOUR_INTERNAL_REFERENCE",
"description": "YOUR_DESCRIPTION"
}'
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.
Bank account identification types
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.
- To determine the
accountIdentification.type
value, you must have:- The country of the recipient bank account.
- The currency of the funds you are transferring.
- 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.
Country of recipient bank account | Currency of funds transfer | Type | Notes |
---|---|---|---|
Single Euro Payments Area (SEPA) countries | EUR | iban | |
United States | USD | usLocal | |
United Kingdom | GBP | ukLocal | |
Poland | PLN | plLocal or iban | |
Czech Republic | CZK | czLocal or iban | |
Sweden | SEK | seLocal | |
Countries where IBAN is required | Any | iban | This is a cross-border transfer. Make sure to:
|
Countries where IBAN is optional (for example, Poland or Czech Republic) |
Any | iban or numberAndBic | This is a cross-border transfer. Make sure to:
|
Other countries not listed above | Any | numberAndBic | This is a cross-border transfer. Make sure to:
|
Required fields
The table below shows the required fields that you need to send in the accountIdentification
object based on the type
.