--- title: "Webhooks" description: "Find out which webhooks Adyen sends for events related to top-ups." url: "https://docs.adyen.com/marketplaces/top-up-balance-account/top-up-webhooks" source_url: "https://docs.adyen.com/marketplaces/top-up-balance-account/top-up-webhooks.md" canonical: "https://docs.adyen.com/marketplaces/top-up-balance-account/top-up-webhooks" last_modified: "2026-05-08T17:09:18+02:00" language: "en" --- # Webhooks Find out which webhooks Adyen sends for events related to top-ups. When a top-up is triggered in your marketplace, Adyen sends webhooks to your server. These webhooks provide the status of the incoming top-up request, from the time when Adyen received the request and the top-up was authorised, up to when the funds were added to the balance account. These webhooks also inform you if the top-up failed. ## Types of webhooks When a top-up is triggered in your marketplace, Adyen sends two kinds of webhooks: * [Standard webhooks](/development-resources/webhooks/webhook-types#webhook-structure), which inform your server of incoming funds to your merchant account. When a top-up request triggers a direct debit or a payment authorization, Adyen sends an [AUTHORISATION](https://docs.adyen.com/api-explorer/Webhooks/latest/post/AUTHORISATION) webhook to your server. * [Transfer webhooks](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/overview), which inform your server of incoming transfers or payments to balance accounts in your marketplace. The content of the transfer webhook you receive varies depending on whether the top-up was triggered on demand or using a schedule. ## Requirements | Requirement | Description | | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Integration type** | Adyen for Platforms | | **[Webhooks](/development-resources/webhooks)** | Subscribe to the following webhook(s):- [Standard webhooks](/development-resources/webhooks/webhook-types#webhook-structure) - [Transfer webhooks](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/overview) - [Transaction webhooks](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/overview) | | **Setup steps** | Before you begin:- Make sure that your server can [receive and accept webhooks](/development-resources/webhooks/configure-and-manage). | ## Scheduled top-ups Transfer webhooks triggered by scheduled top-ups have the following values: | Parameter | Description | Value | | -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------- | | [category](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-category) | Specifies the category of the transfer. | **platformPayment** | | [direction](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-direction) | The direction of the transfer based on the balance account. | **incoming** | | [type](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-type) | Specifies the type of the transfer. | **capture** | In the example below, you configure a pull sweep to top-up your user's first balance account. * The [triggerAmount](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts/\(balanceAccountId\)/sweeps#request-triggerAmount) is EUR 5000.00. The transfer is initiated when the balance in the balance account drops below EUR 5000.00. * The [sweepAmount](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts/\(balanceAccountId\)/sweeps#request-sweepAmount) is EUR 1000.00. This is the amount that is credited to the balance account. When the balance drops below EUR 5000.00 and the top-up is triggered, your server receives webhooks for the balance account involved in the transfer (your user's first balance account). Adyen sends webhooks for each stage of the transfer. ### Scheduled 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](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/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. ** #### Webhook example **Transfer received** ```json { "data": { "accountHolder": { "id": "AH00000000000000000000001" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "id": "BA00000000000000000000001" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": 100000 } ], "category": "platformPayment", "categoryData": { "pspPaymentReference": "CWBC43ZX2VTFWR82", "type": "platformPayment" }, "counterparty": { "transferInstrumentId": "SE00000000000000000000001" }, "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", "reason": "approved", "sequenceNumber": 1, "transactionRulesResult": { "allHardBlockRulesPassed": true }, "status": "received", "type": "capture" }, "environment": "test", "type": "balancePlatform.transfer.created" } ``` ### Scheduled top-up authorized When the incoming transfer request is authorised, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **authorised**. ** #### Webhook example **Transfer authorised** ```json { "data": { "accountHolder": { "id": "AH00000000000000000000001" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "id": "BA00000000000000000000001" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": 0, "reserved": 100000 } ], "category": "platformPayment", "categoryData": { "pspPaymentReference": "CWBC43ZX2VTFWR82", "type": "platformPayment" }, "counterparty": { "transferInstrumentId": "SE00000000000000000000001" }, "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" } ], "id": "JN4227222422265", "reason": "approved", "sequenceNumber": 2, "transactionRulesResult": { "allHardBlockRulesPassed": true }, "status": "authorised", "type": "capture" }, "environment": "test", "type": "balancePlatform.transfer.updated" } ``` ### Scheduled top-up captured When the funds are credited to your user's balance account, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **captured** and the `transactionId`. ** #### Webhook example **Transfer captured** ```json { "data": { "accountHolder": { "id": "AH00000000000000000000001" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "id": "BA00000000000000000000001" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "balance": 100000, "currency": "EUR", "received": 0, "reserved": 0 } ], "category": "platformPayment", "categoryData": { "pspPaymentReference": "CWBC43ZX2VTFWR82", "type": "platformPayment" }, "counterparty": { "transferInstrumentId": "SE00000000000000000000001" }, "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": "EVJN42272224222B5JB8BRC84N686ZEUR", "type": "accounting", "valueDate": "2023-03-01T00:00:00+02:00" } ], "id": "JN4227222422265", "reason": "approved", "sequenceNumber": 3, "transactionRulesResult": { "allHardBlockRulesPassed": true }, "status": "captured", "type": "capture" }, "environment": "test", "type": "balancePlatform.transfer.updated" } ``` When the funds are credited, Adyen also sends a [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) webhook which includes information about the top-up. **Transaction created** ```json { "data": { "id": "EVJN42272224222B5JB8BRC84N686ZEUR", "amount": { "value": 100000, "currency": "EUR" }, "status": "booked", "transfer": { "id": "JN4227222422265", "reference": "Your reference for the top-up", }, "valueDate": "2023-03-01T00:00:00+02:00", "bookingDate": "2023-02-28T13:30:20+02:00", "creationDate": "2023-02-28T13:30:05+02:00", "accountHolder": { "id": "AH00000000000000000000001", "description": "Your description for the account holder", "reference": "Your reference for the account holder" }, "balanceAccount": { "id": "BA00000000000000000000001", "description": "Your description for the balance account", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM" }, "type": "balancePlatform.transaction.created", "environment": "test" } ``` ## On-demand top-ups On-demand top-ups are initiated using payment requests. Just like other payments processed by your marketplace, they incur transaction fees. Adyen sends separate webhooks for the top-up amount, and for the transaction fees incurred by the top-up. In the example below, your user makes a payment to top up their balance account. * EUR 1000.00 is booked to your user's first balance account as the top-up amount. * EUR 3.44 is deducted from your user's second balance account as the transaction fees incurred by the top-up. Your server receives webhooks for each balance account involved and each split of the total top-up amount specified in the `splits` array of your POST [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request. Transfer webhooks triggered by on-demand top-ups have the following values: ### Tab: Top-up amount | Parameter | Description | Value | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | | [category](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-category) | Specifies the category of the transfer. | **topUp** | | [direction](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-direction) | The direction of the transfer based on the balance account. | **incoming** | | [type](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-type) | Specifies the type of the transfer. | **capture** | | [platformPaymentType](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-categoryData-PlatformPayment-platformPaymentType) | Specifies the nature of each transfer on the balance platform. This parameter helps categorize transfers so you can reconcile transactions at a later time using the [Balance Platform Accounting Report](/marketplaces/reports-and-fees/balance-platform-accounting-report/). | **TopUp** | Adyen sends webhooks for each stage of the transfer. ### On-demand top-up initiated When a payment request is received to credit funds to your user's balance account, Adyen sends a [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created) webhook with `status` **received** and `direction` **incoming**. The webhook provides information about the transfer, such as the payment and split references and which user and balance account is credited with the funds. ** #### Webhook example **Transfer received** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "description": "Your description for the balance account", "id": "BA00000000000000000000001", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": 100000 } ], "category": "topUp", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "TopUp", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the top-up", "direction": "incoming", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "SKRL00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": 100000 } ], "status": "received", "type": "accounting" } ], "id": "JN4227222422265", "reason": "approved", "reference": "Your reference for the top-up", "sequenceNumber": 1, "status": "received", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.created" } ``` ### On-demand top-up authorized When the transfer request is authorized, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **authorised**. ** #### Webhook example **Transfer authorised** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "description": "Your description for the balance account", "id": "BA00000000000000000000001", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": 0, "reserved": 100000 } ], "category": "topUp", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "TopUp", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the top-up", "direction": "incoming", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "SKRL00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": 100000 } ], "status": "received", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "SKRL00000000000000000000000002", "mutations": [ { "currency": "EUR", "received": -100000, "reserved": 100000 } ], "status": "authorised", "type": "accounting" } ], "id": "JN4227222422265", "reason": "approved", "reference": "Your reference for the top-up.", "sequenceNumber": 2, "status": "authorised", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.updated" } ``` ### On-demand top-up captured When the funds are credited to your user's balance account, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **captured** and the `transactionId`. ** #### Webhook example **Transfer captured** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 100000 }, "balanceAccount": { "description": "Your description for the balance account", "id": "BA00000000000000000000001", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "balance": 100000, "currency": "EUR", "received": 0, "reserved": 0 } ], "category": "topUp", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "TopUp", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the transfer", "direction": "incoming", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "SKRL00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": 100000 } ], "status": "received", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "SKRL00000000000000000000000002", "mutations": [ { "currency": "EUR", "received": -100000, "reserved": 100000 } ], "status": "authorised", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:20+02:00", "id": "SKRL00000000000000000000000003", "mutations": [ { "balance": 100000, "currency": "EUR", "received": 0, "reserved": -100000 } ], "status": "captured", "transactionId": "EVJN42272224222B5JB8BRC84N686ZEUR", "type": "accounting", "valueDate": "2023-03-01T00:00:00+02:00" } ], "id": "JN4227222422265", "reason": "approved", "reference": "Your reference for the top-up", "sequenceNumber": 3, "status": "captured", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.updated" } ``` When the funds are credited, Adyen also sends a [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) webhook which includes information about the top-up. **Transaction created** ```json { "data": { "id": "EVJN42272224222B5JB8BRC84N686ZEUR", "amount": { "value": 100000, "currency": "EUR" }, "status": "booked", "transfer": { "id": "JN4227222422265", "reference": "Your reference for the top-up" }, "valueDate": "2023-03-01T00:00:00+02:00", "bookingDate": "2023-02-28T13:30:20+02:00", "creationDate": "2023-02-28T13:30:05+02:00", "accountHolder": { "id": "AH00000000000000000000001", "description": "Your description for the account holder", "reference": "Your reference for the account holder" }, "balanceAccount": { "id": "BA00000000000000000000001", "description": "Your description for the balance account", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM" }, "type": "balancePlatform.transaction.created", "environment": "test" } ``` ### Tab: Transaction fees Transfer webhooks triggered by the transactions fees incurred on a top-up have the following values: | Parameter | Description | Value | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------- | | [category](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-category) | Specifies the category of the transfer. | **platformPayment** | | [direction](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-direction) | The direction of the transfer based on the balance account. | **outgoing** | | [type](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-type) | Specifies the type of the transfer. | **capture** | | [platformPaymentType](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-categoryData-PlatformPayment-platformPaymentType) | Specifies the nature of each transfer on the balance platform. This parameter helps categorize transfers so you can reconcile transactions at a later time using the [Balance Platform Accounting Report](/marketplaces/reports-and-fees/balance-platform-accounting-report/). | **PaymentFee** | Adyen sends webhooks for each stage of the transfer. ### Transaction fee request initiated Once the transaction fees are calculated, Adyen sends a [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created) webhook with `direction` **outgoing** to announce that funds will be deducted from your user's second balance account. ** #### Webhook example **Received transfer request for transaction fees** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 344 }, "balanceAccount": { "description": "Your description for the second balance account", "id": "BA00000000000000000000002", "reference": "Your reference for the second balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": -344 } ], "category": "platformPayment", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "PaymentFee", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the transaction fees", "direction": "outgoing", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": -344 } ], "status": "received", "type": "accounting" } ], "id": "4GD3R84BMWTKIWBL", "reason": "approved", "reference": "Your reference for the transaction fees", "sequenceNumber": 1, "status": "received", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.created" } ``` ### Transaction fee request authorized When the transfer request for the transaction fees is authorized, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **authorised**. ** #### Webhook example **Authorised transfer request for transaction fees** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 344 }, "balanceAccount": { "description": "Your description for the second balance account", "id": "BA00000000000000000000002", "reference": "Your reference for the second balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "currency": "EUR", "received": 0, "reserved": -344 } ], "category": "platformPayment", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "PaymentFee", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the transaction fees", "direction": "outgoing", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": -344 } ], "status": "received", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000002", "mutations": [ { "currency": "EUR", "received": 344, "reserved": -344 } ], "status": "authorised", "type": "accounting" } ], "id": "4GD3R84BMWTKIWBL", "reason": "approved", "reference": "Your reference for the transaction fees.", "sequenceNumber": 2, "status": "authorised", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.updated" } ``` ### Transaction fee request booked When the funds are deducted from your user's balance account, Adyen sends a [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) webhook with `status` **captured** and the `transactionId`. ** #### Webhook example **Booked transfer request for transaction fees** ```json { "data": { "accountHolder": { "description": "Your description for the account holder", "id": "AH00000000000000000000001", "reference": "Your reference for the account holder" }, "amount": { "currency": "EUR", "value": 344 }, "balanceAccount": { "description": "Your description for the second balance account", "id": "BA00000000000000000000002", "reference": "Your reference for the second balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM", "balances": [ { "balance": -344, "currency": "EUR", "received": 0, "reserved": 0 } ], "category": "platformPayment", "categoryData": { "modificationMerchantReference": "Your reference for the capture.", "modificationPspReference": "WNS7WQ756L2GWR82", "paymentMerchantReference": "YOUR_ORDER_NUMBER", "platformPaymentType": "PaymentFee", "pspPaymentReference": "M5N7TQ4TG5PFWR50", "type": "platformPayment" }, "creationDate": "2023-02-28T13:30:05+02:00", "description": "Your description for the transaction fees", "direction": "outgoing", "events": [ { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000001", "mutations": [ { "currency": "EUR", "received": -344 } ], "status": "received", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000002", "mutations": [ { "currency": "EUR", "received": 344, "reserved": -344 } ], "status": "authorised", "type": "accounting" }, { "bookingDate": "2023-02-28T13:30:18+02:00", "id": "RFDN00000000000000000000000003", "mutations": [ { "balance": -344, "currency": "EUR", "received": 0, "reserved": 344 } ], "status": "captured", "transactionId": "EVJN42272224222B5JB8BRC84N686ZEUR", "type": "accounting", "valueDate": "2023-02-14T00:00:00+01:00" } ], "id": "4GD3R84BMWTKIWBL", "reason": "approved", "reference": "Your reference for the transaction fees.", "sequenceNumber": 3, "status": "captured", "type": "capture" }, "environment": "test", "timestamp": "2024-12-20T13:51:24.928Z", "type": "balancePlatform.transfer.updated" } ``` When the funds are deducted, Adyen also sends a [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) webhook, which includes information about the related transaction. **Transaction created** ```json { "data": { "id": "EVJN42272224222B5JB8BRC84N686ZEUR", "amount": { "value": -344, "currency": "EUR" }, "status": "booked", "transfer": { "id": "4GD3R84BMWTKIWBL", "reference": "Transaction_fees", }, "valueDate": "2023-02-14T00:00:00+01:00", "bookingDate": "2023-02-28T13:30:18+02:00", "creationDate": "2023-02-28T13:30:05+02:00", "accountHolder": { "id": "AH00000000000000000000001", "description": "Your description for the account holder", "reference": "Your reference for the account holder" }, "balanceAccount": { "id": "BA00000000000000000000001", "description": "Your description for the balance account", "reference": "Your reference for the balance account" }, "balancePlatform": "YOUR_BALANCE_PLATFORM" }, "type": "balancePlatform.transaction.created", "environment": "test" } ```