POST /transfers
Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.
Starts a request to transfer funds to:
- Balance accounts
- Transfer instruments
- Third-party bank accounts
- Third-party cards
Adyen sends the outcome of the transfer request through webhooks.
To use this endpoint:
- Your API credential must have the TransferService Webservice Initiate role.
- The account holder must have the required capabilities.
Reach out to your Adyen contact to set up these permissions.
Servers
- https://balanceplatform-api-test.adyen.com/btl/v4
Request headers
Name | Type | Required | Description |
---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
Idempotency-Key |
String | No |
A unique identifier for the message with a maximum of 64 characters (we recommend a UUID). |
WWW-Authenticate |
String | No |
Header for authenticating through SCA |
Request body fields
Name | Type | Required | Description |
---|---|---|---|
ultimateParty |
Object | No |
The ultimate sender of the funds of the transfer (ultimate debtor). |
ultimateParty.lastName |
String | No |
The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
ultimateParty.type |
String | No |
The type of entity that owns the bank account or card. Possible values: individual, organization, or unknown. Required when Possible values:
Default value: "unknown" |
ultimateParty.firstName |
String | No |
The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
ultimateParty.reference |
String | No |
A unique reference to identify the party or counterparty involved in the transfer. For example, your client's unique wallet or payee ID. Required when you include |
ultimateParty.fullName |
String | No |
The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when |
ultimateParty.address |
Object | No |
The address of the bank account or card owner. |
ultimateParty.address.line2 |
String | No |
The second line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
ultimateParty.address.line1 |
String | No |
The first line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
ultimateParty.address.postalCode |
String | No |
The postal code. Maximum length:
Supported characters: [a-z] [A-Z] [0-9] and Space.
|
ultimateParty.address.stateOrProvince |
String | No |
The two-letter ISO 3166-2 state or province code. For example, CA in the US or ON in Canada.
|
ultimateParty.address.country |
String | Yes |
The two-character ISO 3166-1 alpha-2 country code. For example, US, NL, or GB. |
ultimateParty.address.city |
String | No |
The name of the city. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
ultimateParty.dateOfBirth |
String | No |
The date of birth of the individual in ISO-8601 format. For example, YYYY-MM-DD. Allowed only when |
review |
Object | No |
Contains information required for triggering transfer reviews. |
review.scaOnApproval |
Boolean | No |
Specifies whether you will initiate Strong Customer Authentication (SCA) in thePOST /transfers/approve request. Only applies to transfers made with an Adyen business account. |
review.numberOfApprovalsRequired |
Integer | No |
Specifies the number of approvals required to process the transfer. |
description |
String | No |
Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. Supported characters: [a-z] [A-Z] [0-9] / - ? : ( ) . , ' + Space Supported characters for regular and fast transfers to a US counterparty: [a-z] [A-Z] [0-9] & $ % # @ ~ = + - _ ' " ! ? |
priorities[] |
Array | No |
The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values:
Required for transfers with |
referenceForBeneficiary |
String | No |
A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement. Supported characters: a-z, A-Z, 0-9. The maximum length depends on the
|
counterparty |
Object | Yes |
The other party involved in the funds transfer. A bank account, a balance account, a card, or a transfer instrument is required. |
counterparty.transferInstrumentId |
String | No |
The unique identifier of the counterparty transfer instrument. |
counterparty.bankAccount |
Object | No |
Contains information about the counterparty bank account. |
counterparty.bankAccount.accountHolder |
Object | Yes |
Information about the owner of the bank account. |
counterparty.bankAccount.accountHolder.lastName |
String | No |
The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
counterparty.bankAccount.accountHolder.type |
String | No |
The type of entity that owns the bank account or card. Possible values: individual, organization, or unknown. Required when Possible values:
Default value: "unknown" |
counterparty.bankAccount.accountHolder.firstName |
String | No |
The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
counterparty.bankAccount.accountHolder.reference |
String | No |
A unique reference to identify the party or counterparty involved in the transfer. For example, your client's unique wallet or payee ID. Required when you include |
counterparty.bankAccount.accountHolder.fullName |
String | No |
The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when |
counterparty.bankAccount.accountHolder.address |
Object | No |
The address of the bank account or card owner. |
counterparty.bankAccount.accountHolder.address.line2 |
String | No |
The second line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.bankAccount.accountHolder.address.line1 |
String | No |
The first line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.bankAccount.accountHolder.address.postalCode |
String | No |
The postal code. Maximum length:
Supported characters: [a-z] [A-Z] [0-9] and Space.
|
counterparty.bankAccount.accountHolder.address.stateOrProvince |
String | No |
The two-letter ISO 3166-2 state or province code. For example, CA in the US or ON in Canada.
|
counterparty.bankAccount.accountHolder.address.country |
String | Yes |
The two-character ISO 3166-1 alpha-2 country code. For example, US, NL, or GB. |
counterparty.bankAccount.accountHolder.address.city |
String | No |
The name of the city. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.bankAccount.accountHolder.dateOfBirth |
String | No |
The date of birth of the individual in ISO-8601 format. For example, YYYY-MM-DD. Allowed only when |
counterparty.bankAccount.accountIdentification |
Object | Yes |
Contains the bank account details. The fields required in this object depend on the country of the bank account and the currency of the transfer. |
counterparty.card |
Object | No |
Contains information about the counterparty card. |
counterparty.card.cardHolder |
Object | Yes |
Contains information about the cardholder. |
counterparty.card.cardHolder.lastName |
String | No |
The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
counterparty.card.cardHolder.type |
String | No |
The type of entity that owns the bank account or card. Possible values: individual, organization, or unknown. Required when Possible values:
Default value: "unknown" |
counterparty.card.cardHolder.firstName |
String | No |
The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is:
|
counterparty.card.cardHolder.reference |
String | No |
A unique reference to identify the party or counterparty involved in the transfer. For example, your client's unique wallet or payee ID. Required when you include |
counterparty.card.cardHolder.fullName |
String | No |
The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when |
counterparty.card.cardHolder.address |
Object | No |
The address of the bank account or card owner. |
counterparty.card.cardHolder.address.line2 |
String | No |
The second line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.card.cardHolder.address.line1 |
String | No |
The first line of the street address. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.card.cardHolder.address.postalCode |
String | No |
The postal code. Maximum length:
Supported characters: [a-z] [A-Z] [0-9] and Space.
|
counterparty.card.cardHolder.address.stateOrProvince |
String | No |
The two-letter ISO 3166-2 state or province code. For example, CA in the US or ON in Canada.
|
counterparty.card.cardHolder.address.country |
String | Yes |
The two-character ISO 3166-1 alpha-2 country code. For example, US, NL, or GB. |
counterparty.card.cardHolder.address.city |
String | No |
The name of the city. Supported characters: [a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ | and Space.
|
counterparty.card.cardHolder.dateOfBirth |
String | No |
The date of birth of the individual in ISO-8601 format. For example, YYYY-MM-DD. Allowed only when |
counterparty.card.cardIdentification |
Object | Yes |
Contains the identification details of the card. |
counterparty.card.cardIdentification.issueNumber |
String | No |
The issue number of the card. Applies only to some UK debit cards. |
counterparty.card.cardIdentification.startYear |
String | No |
The year when the card was issued. Applies only to some UK debit cards. Format: four digits. For example: 2020 |
counterparty.card.cardIdentification.number |
String | No |
The card number without any separators. For security, the response only includes the last four digits of the card number. |
counterparty.card.cardIdentification.expiryMonth |
String | No |
The expiry month of the card. Format: two digits. Add a leading zero for single-digit months. For example:
|
counterparty.card.cardIdentification.startMonth |
String | No |
The month when the card was issued. Applies only to some UK debit cards. Format: two digits. Add a leading zero for single-digit months. For example:
|
counterparty.card.cardIdentification.storedPaymentMethodId |
String | No |
The unique token created to identify the counterparty. |
counterparty.card.cardIdentification.expiryYear |
String | No |
The expiry year of the card. Format: four digits. For example: 2020 |
counterparty.balanceAccountId |
String | No |
The unique identifier of the counterparty balance account. |
category |
String | Yes |
The category of the transfer. Possible values:
Possible values:
|
priority |
String | No |
The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with Possible values:
Possible values:
|
executionDate |
Object | No |
The date when the transfer will be processed. This date must be within 30 days of the current date. Until the
|
executionDate.timezone |
String | No |
The timezone that applies to the execution date. Use a timezone identifier from the tz database. Example: America/Los_Angeles. Default value: Europe/Amsterdam. |
executionDate.date |
String | No |
The date when the transfer will be processed. This date must be:
|
amount |
Object | Yes |
The amount of the transfer. |
amount.value |
Integer | Yes |
The amount of the transaction, in minor units. |
amount.currency |
String | Yes |
The three-character ISO currency code. |
type |
String | No |
The type of transfer. Possible values:
Possible values:
|
reference |
String | No |
Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference. |
balanceAccountId |
String | No |
The unique identifier of the source balance account. If you want to make a transfer using a virtual bankAccount assigned to the balance account, you must specify the payment instrument ID of the virtual bankAccount. If you only specify a balance account ID, Adyen uses the default physical bankAccount payment instrument assigned to the balance account. |
paymentInstrumentId |
String | No |
The unique identifier of the source payment instrument. If you want to make a transfer using a virtual bankAccount, you must specify the payment instrument ID of the virtual bankAccount. If you only specify a balance account ID, Adyen uses the default physical bankAccount payment instrument assigned to the balance account. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.