When a top-up is triggered in your platform, Adyen sends two kinds of webhooks:
- Standard webhooks, which inform your server of a direct debit from your merchant account. When the sweep triggers a direct debit, Adyen sends an AUTHORISATION webhook to your server.
- Transfer webhooks, which inform your server that an incoming transfer to a balance account in your platform.
To keep track of events related to top-ups in your platform, make sure that:
- Your server can receive and accept webhooks.
- You subscribed to the Transfer webhooks in your Balance Platform Customer Area.
You can identify transfer webhooks triggered by events related to top-ups by the following values:
Parameter | Description | Value |
---|---|---|
category | Specifies the category of the transfer. | platformPayment |
direction | The direction of the transfer based on the balance account. | incoming |
type | Specifies the type of the transfer. | capture |
Top-up initiated
When an incoming transfer request is received to credit funds to your user's balance account, Adyen sends a balancePlatform.transfer.created webhook with status
received and direction
incoming. The webhook provides information about the transfer, such as the amount and which user and balance account is credited with the funds.
{
"data": {
"accountHolder": {
"id": "AH00000000000000000000001"
},
"amount": {
"currency": "EUR",
"value": 100000
},
"balanceAccount": {
"id": "BA00000000000000000000001"
},
"balanceAccountId": "BA00000000000000000000001",
"balancePlatform": "YOUR_BALANCE_PLATFORM",
"balances": [
{
"currency": "EUR",
"received": 100000
}
],
"category": "platformPayment",
"creationDate": "2023-02-28T13:30:05+02:00",
"direction": "incoming",
"events": [
{
"bookingDate": "2023-02-28T13:30:18+02:00",
"id": "EVJN00000000000000000000000001",
"mutations": [
{
"currency": "EUR",
"received": 100000
}
],
"status": "received",
"type": "accounting"
}
],
"id": "JN4227222422265",
"pspPaymentReference": "CWBC43ZX2VTFWR82",
"reason": "approved",
"sequenceNumber": 1,
"status": "received",
"type": "capture"
},
"environment": "test",
"type": "balancePlatform.transfer.created"
}
Top-up authorised
When the incoming transfer request is authorised, Adyen sends a balancePlatform.transfer.updated webhook with status
authorised.
Top-up captured
When the funds are credited to your user's balance account, Adyen sends a balancePlatform.transfer.updated webhook with status
captured and the transactionId
.
{
"data": {
"accountHolder": {
"id": "AH00000000000000000000001"
},
"amount": {
"currency": "EUR",
"value": 100000
},
"balanceAccount": {
"id": "BA00000000000000000000001"
},
"balanceAccountId": "BA00000000000000000000001",
"balancePlatform": "YOUR_BALANCE_PLATFORM",
"balances": [
{
"balance": 100000,
"currency": "EUR",
"received": 0,
"reserved": 0
}
],
"category": "platformPayment",
"creationDate": "2023-02-28T13:30:05+02:00",
"direction": "incoming",
"events": [
{
"bookingDate": "2023-02-28T13:30:18+02:00",
"id": "EVJN00000000000000000000000001",
"mutations": [
{
"currency": "EUR",
"received": 100000
}
],
"status": "received",
"type": "accounting"
},
{
"bookingDate": "2023-02-28T13:30:18+02:00",
"id": "EVJN00000000000000000000000002",
"mutations": [
{
"currency": "EUR",
"received": -100000,
"reserved": 100000
}
],
"status": "authorised",
"type": "accounting"
},
{
"bookingDate": "2023-02-28T13:30:20+02:00",
"id": "EVJN00000000000000000000000003",
"mutations": [
{
"balance": 100000,
"currency": "EUR",
"received": 0,
"reserved": -100000
}
],
"status": "captured",
"transactionId": "3JERI65VWIRGW99A",
"type": "accounting",
"valueDate": "2023-03-01T00:00:00+02:00"
}
],
"id": "JN4227222422265",
"pspPaymentReference": "CWBC43ZX2VTFWR82",
"reason": "approved",
"sequenceNumber": 3,
"status": "captured",
"transactionId": "3JERI65VWIRGW99A",
"type": "capture"
},
"environment": "test",
"type": "balancePlatform.transfer.updated"
}