---
title: "Webhooks"
description: "Find out which webhooks Adyen sends for events related to top-ups."
url: "https://docs.adyen.com/platforms/top-up-balance-account/top-up-webhooks"
source_url: "https://docs.adyen.com/platforms/top-up-balance-account/top-up-webhooks.md"
canonical: "https://docs.adyen.com/platforms/top-up-balance-account/top-up-webhooks"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# Webhooks

Find out which webhooks Adyen sends for events related to top-ups.

[View source](/platforms/top-up-balance-account/top-up-webhooks.md)

When a top-up is triggered in your platform, 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 platform, 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 platform. 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 platform, 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](/platforms/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](/platforms/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"
}
```
