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:

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.

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

Header Parameters

WWW-Authenticatestring

Header for authenticating through SCA

Idempotency-Keystring

A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).

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 category of the transfer.

Possible values:

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

  • card: a transfer involving a third-party card.

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

  • topUp: an incoming transfer initiated by your user to top up their balance account.

counterpartyobjectRequired

The other party involved in the funds transfer. A bank account, a balance account, a card, 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.

prioritiesarray[string]

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:

  • 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).

Required for transfers with category bank. For more details, see fallback priorities.

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.

reviewobject

Contains information required for triggering transfer reviews.

typestring

The type of transfer.

Possible values:

  • bankTransfer: for push transfers to a transfer instrument or a bank account. The category must be bank.
  • internalTransfer: for push transfers between balance accounts. The category must be internal.
  • internalDirectDebit: for pull transfers (direct debits) between balance accounts. The category must be internal.
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