Transfer funds

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, or third-party bank accounts. Adyen sends the outcome of the transfer request through webhooks.

To use this endpoint, you need an additional role for your API credential and transfers must be enabled for the source balance account. Your Adyen contact will set these up for you.

Endpoint destination URL
https://balanceplatform-api-test.adyen.com/btl/v3/transfers
Click to copy

Header Parameters

WWW-Authenticatestring

Header for authenticating through SCA

Request Parameters

amountobjectRequired

The amount of the transfer.

balanceAccountIdstring

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.

categorystringRequired

The type of transfer.

Possible values:

  • bank: a transfer involving a transfer instrument or a bank account.

  • internal: a transfer between balance accounts within your platform.

  • issuedCard: a transfer initiated by a Adyen-issued card.

  • platformPayment: funds movements related to payments that are acquired for your users.

counterpartyobjectRequired

The other party involved in the funds transfer. A bank account, a balance account, or a transfer instrument is required.

descriptionstring
Max length: 140

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] & $ % # @ ~ = + - _ ' " ! ?

paymentInstrumentIdstring

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.

prioritystring

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 category bank.

Possible values:

  • regular: for normal, low-value transactions.

  • fast: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions.

  • wire: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions.

  • instant: for instant funds transfers in SEPA countries.

  • crossBorder: for high-value transfers to a recipient in a different country.

  • internal: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).

referencestring
Max length: 80

Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.

referenceForBeneficiarystring

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 category.

  • internal: 80 characters

  • bank: 35 characters when transferring to an IBAN, 15 characters for others.

ultimatePartyobject

The ultimate sender of the funds of the transfer (ultimate debtor).

Response parameters

After submitting a call, you receive a response message to inform you that your request was received and processed.

Depending on the HTTP status code of the response message, it is helpful to build some logic to handle any errors that a request or the system may return.

HTTP Responses

  • 202 - Accepted

    The request has been accepted for processing, but the processing has not been completed.

    Show moreShow less
  • 401 - Unauthorized

    Authentication required.

    Show moreShow less
  • 403 - Forbidden

    Insufficient permissions to process the request.

    Show moreShow less
  • 422 - Unprocessable Entity

    A request validation error.

    Show moreShow less
  • 500 - Internal Server Error

    The server could not process the request.

    Show moreShow less