Adyen sends webhooks for the following fund transfer-related events when it disburses a grant or receives a repayment from the user:
- Grant disbursement initiated
- Grant disbursement authorised
- Grant disbursement booked
- Regular repayment initiated
- Regular repayment authorised
- Regular repayment booked
- Unscheduled repayment initiated
- Unscheduled repayment authorised
- Unscheduled repayment booked
- Transaction created
The following sections provide code samples for the specified events, focusing on cases where the transfer is successfully processed. For a complete list of possible outcomes, refer to the status field in our API documentation.
Grant disbursement initiated
After the grant has been configured and the user has completed required actions, Adyen initiates grant disbursement and sends a balancePlatform.transfer.created webhook with the following information:
direction: incomingcategory: grantstype: grantreference: Contains the ID of the related grant. For example, GR00000000000000000000001.status: received
Grant disbursement authorised
After the grant disbursement request has been received, Adyen sends a balancePlatform.transfer.updated webhook with the following information:
direction: incomingcategory: grantstype: grantreference: Contains the ID of the related grant. For example, GR00000000000000000000001.status: authorized
Grant disbursement booked
After the grant disbursement request has been authorized, Adyen sends another balancePlatform.transfer.updated webhook with the following information:
direction: incomingcategory: grantstype: grantreference: Contains the ID of the related grant. For example, GR00000000000000000000001.status: booked
Regular repayment initiated
After the regular repayment request has been initiated, Adyen sends a balancePlatform.transfer.created webhook with the following information:
direction: outgoingcategory: grantstype: repaymentreference: Contains the ID of the related grant. For example, GR00000000000000000000001.description: Contains information about the related grant ID, balance account ID, and processing date. For example, \/GREF\/GR00000000000000000000001\/FBAC\/BA00000000000000000000001\/DATE\/2025-10-17T01:31:15+02:00\/.status: received
Regular repayment authorised
After the regular repayment request has been received, Adyen sends a balancePlatform.transfer.updated webhook with the following information:
direction: outgoingcategory: grantstype: repaymentreference: Contains the ID of the related grant. For example, GR00000000000000000000001.description: Contains information about the related grant ID, balance account ID, and processing date. For example, \/GREF\/GR00000000000000000000001\/FBAC\/BA00000000000000000000001\/DATE\/2025-10-17T01:31:15+02:00\/.status: authorized
Regular repayment booked
After the regular repayment request has been authorized, Adyen sends a balancePlatform.transfer.updated webhook with the following information:
direction: outgoingcategory: grantstype: repaymentreference: Contains the ID of the related grant. For example, GR00000000000000000000001.description: Contains information about the related grant ID, balance account ID, and processing date. For example, \/GREF\/GR00000000000000000000001\/FBAC\/BA00000000000000000000001\/DATE\/2025-10-17T01:31:15+02:00\/.status: booked
Unscheduled repayment initiated
An unscheduled repayment first triggers an incoming transfer to Adyen's internal Capital fund collection account. After this transfer is processed, an outgoing transfer completes the repayment on the grant according to the regular repayment flow.
After the unscheduled repayment request has been initiated, Adyen sends a balancePlatform.transfer.created webhook with the following information:
direction: incomingcategory: grantstype: capitalFundsCollectionreferenceanddescription: Contains the ID of Adyen's internal Capital fund collection account. For example, CPTL00000000000000000000000001.status: received
Unscheduled repayment authorised
An unscheduled repayment first triggers an incoming transfer to Adyen's internal Capital fund collection account. After this transfer is processed, an outgoing transfer completes the repayment on the grant according to the regular repayment flow.
After the unscheduled repayment request has been received, Adyen sends a balancePlatform.transfer.updated webhook with the following information:
direction: incomingcategory: grantstype: capitalFundsCollectionreferenceanddescription: Contains the ID of Adyen's internal Capital fund collection account. For example, CPTL00000000000000000000000001.status: authorized
Unscheduled repayment booked
An unscheduled repayment first triggers an incoming transfer to Adyen's internal Capital fund collection account. After this transfer is processed, an outgoing transfer completes the repayment on the grant according to the regular repayment flow.
After the unscheduled repayment request has been authorized, Adyen sends a balancePlatform.transfer.updated webhook with the following information:
direction: incomingcategory: grantstype: capitalFundsCollectionreferenceanddescription: Contains the ID of Adyen's internal Capital fund collection account. For example, CPTL00000000000000000000000001.status: booked
Fund movement transaction
When a grant is disbursed to a receiving balance account or a user makes a repayment, and the transfer is recorded, Adyen sends a balancePlatform.transaction.created webhook. The webhook includes details about the transaction and the corresponding transfer ID and grant ID.