Adyen-for-platform icon

Initiate on-demand internal funds transfers

Send funds or initiate an internal direct debit between balance accounts within your platform.

In your platform, you can set up a schedule to automatically transfer funds between balance accounts. In addition to or instead of that, you can transfer funds between balance accounts on-demand.

Requirements

Before you begin, take into account the following requirements:

Requirement Description

Integration type

You need an Adyen for Platforms integration.

API credentials

Your API credential for the Transfers API must have the following role:
  • TransferService Webservice Initiate role

Customer Area roles

You need the following role:
  • Initiate internal transfers

Webhooks

  1. Make sure that your server receives and accepts webhooks.

  2. In your Customer Area, subscribe to Transfer webhooks.

Capabilities

If the balance accounts involved in the transfer do not belong to the same account holder, check the capabilities of the account holders:
  • The account holder of the balance account that sends the the transfer request must have the sendToBalanceAccount capability.

  • The account holder of the balance account that receives the transfer request must have the receiveFromBalanceAccount capability.

Setup steps

Before you begin your integration, contact our Support Team to enable transfers for the source balance account.

How it works

To make an on-demand transfer, you must initiate a transfer request. The following diagram shows the stages of a transfer request, from initiation to sending the funds.

As shown in the previous diagram, transfer requests go through the following stages:

  1. Transfer request sent: You send a transfer request using the POST /transfers endpoint or your Customer Area.
  2. Capability check: Adyen verifies that your user has the required capabilities.
    • If the capabilities are verified, Adyen receives and accepts your transfer request.
    • If any capabilities are missing, the transfer request fails.
  3. Approval process: Before approving a transfer, Adyen reviews the transfer and performs internal checks. Additionally, you can trigger additional reviews for the transfer request, to make sure that the transfer is also approved by a member of your team.
    • If all the required reviews are completed successfully, the transfer request is approved.
    • If any of the required reviews fails, the transfer request also fails.
  4. Transfer request authorized: The transfer request is instantly authorized.
    If you specified an execution date in the future, the transfer request remains pending until the execution date, and is authorized on that date.
  5. Transfer request booked: The funds are deducted from the user's balance account and sent to the user's transfer instrument.

Adyen informs you about the status of a transfer through webhooks.

Initiate an internal transfer

Select the following tabs to learn how to initiate transfers between balance accounts using your Customer Area, or using an API call.

Troubleshooting

If an internal fund transfer fails, verify if there are enough funds in the source balance account:

  1. Make a GET /balanceAccounts/{id} request, specifying the source balance account's ID in the path.
  2. Check the available balance.
  3. If the amount is lower than the transfer amount, you can:
    • Ask your user to top up their balance account.
    • Make an internal transfer from your liable balance account to your user's balance account.

If there are enough funds in the balance account, but the transfer still fails, contact our Support Team.

Get status updates

For every internal transfer request, Adyen sends multiple webhooks to your server: a series of webhooks for the balance account where the transfer is an outgoing request, and a series of webhooks for the balance account where the transfer is an incoming request.

Using these webhooks, you can track the status of the transfer: received, then authorised, and finally booked. The webhooks also inform you if the transfer failed.

You can also view the transfer details in your Customer Area. Each transfer of funds between balance accounts appears in the Customer Area as two transfer entries: one for the balance account that is credited, and one for the balance account that is debited.

See also