When you initiate an internal transfer between balance accounts in your platform, Adyen sends two kinds of webhooks:
- balancePlatform.transfer.created, which informs your server that funds will be transferred between the balance accounts.
- balancePlatform.transfer.updated, which informs your server of changes in the status of the transfer.
For each event you receive two sets webhooks:
- Webhooks for the source balance account where you initiate the transfer as an outgoing request.
- Webhooks for the target balance account, where you receive the transfer as an incoming request.
To keep track of events related to internal transfers in your platform, make sure that:
- Your server can receive and accept webhooks.
- You subscribed to the Transfer webhooks in your test Customer Area.
Internal funds transfer
You can identify transfer webhooks triggered by internal funds transfers by the following values:
Parameter | Description | Value |
---|---|---|
category | The category of the transfer. | internal |
direction | The direction of the transfer request. | outgoing for the source balance account incoming for the target balance account |
type | The type of internal transfer. | internalTransfer |
For an internal sweep or on-demand transfer, you receive webhooks for the following events:
- The transfer is initiated.
- The transfer is authorized. This indicates that the funds are reserved.
- The transfer is booked.
You receive these webhooks for each of the balance accounts involved in the transfer.
The following is an example for an internal transfer request:
Expand the sections below to see the webhooks you would receive for the example transfer request.
1. Internal transfer initiated
When a scheduled or on-demand internal transfer is triggered, we send balancePlatform.transfer.created webhooks with status
received, to inform your server that funds will be transferred between balance accounts in your platform.
2. Internal transfer authorized
When the scheduled or on-demand internal push transfer is authorized, we send balancePlatform.transfer.updated webhooks with status
authorised, to inform your server that the funds have been reserved on the source and target balance accounts.
3. Internal transfer booked
When the scheduled or on-demand internal push transfer is booked, we send balancePlatform.transfer.updated webhooks with status
booked, to inform your server that the funds have been pushed from the source balance account to the target balance account.
Returned internal transfer
If needed, you can return the funds to the source balance account.
The following is an example for an internal return request.
Expand the sections below to see the webhooks you would receive for the example return request. The webhooks show that the return is handled as a modification of the original transfer.
1. Return initiated
When a return is initiated, we send a balancePlatform.transfer.updated webhook to inform your server that funds will be returned to the source balance account. The webhook has all the details of the original incoming transfer, and an additional event
that includes the modification
details:
type
returnstatus
: receiveddirection
: outgoingreference
: the reference from the return request
This shows that the incoming funds in the original transfer are now outgoing.
2. Return authorized
When the return is authorized, we send a balancePlatform.transfer.updated webhook to inform your server that the return amount has been reserved. The webhook has all the details of the previous incoming transfer, and an additional event
with the details of the modification
:
type
returnstatus
: authoriseddirection
: outgoingreference
: the reference from the return request
3. Return booked
When the return is processed, we send you two balancePlatform.transfer.updated webhooks, one for each of the balance accounts involved.