--- title: "Webhook structures and types for platforms" description: "Learn which webhook types are sent for each event." url: "https://docs.adyen.com/platforms/webhook-types" source_url: "https://docs.adyen.com/platforms/webhook-types.md" canonical: "https://docs.adyen.com/platforms/webhook-types" last_modified: "2026-05-24T12:54:31+02:00" language: "en" --- # Webhook structures and types for platforms Learn which webhook types are sent for each event. [View source](/platforms/webhook-types.md) Webhooks are typically sent when: * A resource was created or updated. * A request was initiated (such as a payment authorisation request, a refund request, or a funds transfer request). * There was a funds movement (funds added to or deducted from balance accounts). You can subscribe to the following webhooks: * Configuration * Onboarding on invite * Payment method * Transfer * Negative balance warning * Report You can also differentiate the events based on the `type`. Some webhook types also include a `data.status` field that informs you of the outcome of the event. ## Webhook structure In general, the body of a webhook contains the following objects. | Parameter | Data type | Description | | ------------- | --------- | ---------------------------------------------------------------------------- | | `data` | Object | Object that contains information about the event. | | `environment` | String | The environment where the transaction was processed—**test** or **live**. | | `type` | String | The [event type](/development-resources/webhooks/webhook-types#event-codes). | The information contained in the `data` object varies and depends on the webhook type. You can find the full schema for each type in [API Explorer](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/overview). Below is an example request body for a webhook of `type` [balancePlatform.accountHolder.created](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.accountHolder.created). **Example webhook request body** ```json { "data": { "balancePlatform": "YOUR_BALANCE_PLATFORM", "accountHolder": { "contactDetails": { "address": { "country": "NL", "houseNumberOrName": "274", "postalCode": "1020CD", "street": "Brannan Street" }, "email": "s.hopper@example.com", "phone": { "number": "+315551231234", "type": "Mobile" } }, "description": "S.Hopper - Staff 123", "id": "AH00000000000000000000001", "status": "Active" } }, "environment": "test", "type": "balancePlatform.accountHolder.created" } ``` ## Configuration webhooks Configuration webhooks inform your system about events that occur with account holders, balance accounts, and payment instruments. ### Account holders | Type | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | [balancePlatform.accountHolder.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.accountHolder.created) | An account holder was [successfully created](/platforms/manage-account-holders). | | [balancePlatform.accountHolder.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.accountHolder.updated) | An account holder was [successfully updated](/platforms/manage-account-holders#update-account-holder). | ### Balance accounts | Type | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | [balancePlatform.balanceAccount.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.created) | A balance account was [successfully created](/platforms/manage-balance-accounts). | | [balancePlatform.balanceAccount.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.updated) | A balance account was [successfully updated](/platforms/manage-balance-accounts#update-balance-account). | ### Managed payouts | Type | Scope | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [balancePlatform. balancePlatformPayoutSchedule.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balancePlatformPayoutSchedule.created) | Balance platform | A [managed payout schedule](/platforms/managed-payouts) was successfully created on your balance platform. | | [balancePlatform. balancePlatformPayoutSchedule.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balancePlatformPayoutSchedule.updated) | Balance platform | A managed payout schedule was successfully updated on your balance platform. | | [balancePlatform. balancePlatformPayoutSchedule.deleted](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balancePlatformPayoutSchedule.deleted) | Balance platform | A managed payout schedule was successfully deleted on your balance platform. | | [balancePlatform. balanceAccountPayoutSchedule.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutSchedule.created) | Balance account | A managed payout schedule was successfully created on a balance account. | | [balancePlatform. balanceAccountPayoutSchedule.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutSchedule.updated) | Balance account | A managed payout schedule was successfully updated on a balance account. | | [balancePlatform. balanceAccountPayoutSchedule.deleted](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutSchedule.deleted) | Balance account | A managed payout schedule was successfully deleted on a balance account. | | [balancePlatform. balanceAccountPayoutScheduleAutoApplication.failed](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleAutoApplication.failed) | Balance account | A managed payout schedule could not be automatically applied a balance account. | | [balancePlatform. balanceAccountPayoutScheduleExecution.succeeded](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.succeeded) | Payout execution | A payout was successfully initiated based on the execution times in the managed payout schedule. See the [resultDetails](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.succeeded#resultDetails) for the `transferId` of the resulting funds movement. | | [balancePlatform. balanceAccountPayoutScheduleExecution.skipped](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.skipped) | Payout execution | A payout was not triggered according to the schedule. This occurs when conditions are not met, for example, the balance is too low to pay out. You can check the [resultDetails](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.succeeded#resultDetails) for the reason why the payout was not triggered. However, no action is required. | | [balancePlatform. balanceAccountPayoutScheduleExecution.failed](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.failed) | Payout execution | A payout failed due to an error, for example, a configuration issue or missing capabilities. You can check the [resultDetails](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountPayoutScheduleExecution.succeeded#resultDetails) for the failure reason. Payouts will continue to fail until the root cause is resolved. | ### Custom payouts | Type | Description | | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `balancePlatform.balanceAccountSweep.created` | A [custom payout schedule (sweep)](/platforms/custom-payouts/scheduled-payouts) was successfully created on a balance account. | | `balancePlatform.balanceAccountSweep.updated` | A sweep was successfully updated on a balance account. | | `balancePlatform.balanceAccountSweep.deleted` | A sweep was successfully deleted on a balance account. | ### Payment instruments | Type | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | [balancePlatform.paymentInstrument.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.paymentInstrument.created) | A payment instrument, such as a [debit card](/issuing/create-cards) or an [Adyen business account](/business-accounts), was successfully created. | | [balancePlatform.paymentInstrument.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.paymentInstrument.updated) | A payment instrument, such as a [debit card](/issuing/create-cards) or an [Adyen business account](/business-accounts), was successfully updated. | ### Risk management | Type | Description | | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `balancePlatform.score.triggered` | A [risk signal](/platforms/identify-account-holder-risk) was triggered for the account holder. Reach out to your Adyen contact to enable sending this webhook type to your server. | ## Onboarding on invite webhook This webhook is part of the [onboarding on invite flow](/platforms/onboard-users?tab=onboarding_on_invite_0_1). Onboarding on invite webhook informs your system about the default resources created by Adyen for the account holder. | Type | Description | | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `balancePlatform.accountHolder.onboarded` | An account holder was successfully onboarded. The content informs you about the [created resources](/platforms/onboard-users#resources). | ## Payment method webhooks Payment method webhooks inform your system about payment method creation and removal requests, and the removal of a payment method request. | Type | Description | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [paymentMethod.created](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/paymentMethod.created) | A payment method creation request has been processed. The content informs you on the final state of the request. | | [paymentMethodRequest.scheduledForRemoval](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/paymentMethodRequest.scheduledForRemoval) | A payment method request is scheduled for removal. A request to add a payment method will be removed in 30 days. To make sure the payment method is added, provide the missing [KYC information](/platforms/onboard-users). | | [paymentMethodRequest.removed](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/paymentMethodRequest.removed) | A request to add a payment method is removed. You must make another request to add a payment method. | ## Transfer webhooks Transfer webhooks inform your system about incoming and outgoing transfers in your platform. | Type | Description | | -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created) | A transfer request was created to credit funds to or deduct funds from a balance account in your platform. The content informs you of the event that triggered the transfer request, such as a payment or refund. | | [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) | A transfer request's status changed. | []()\ You can identify transfer webhooks sent for different events by checking the following parameters and values: | Event | [category](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-category) | [type](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-type) | [counterparty](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated#request-data-counterparty) | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | Payment or capture | **platformPayment** | **capture** | | | Refund | **platformPayment** | **refund** | | | Chargeback | **platformPayment** | **chargeback** | | | Payout | **bank** | **bankTransfer** | `transferInstrumentId` | | Internal transfer | **internal** | **internalTransfer** | `balanceAccountId` | | Third-party bank transfer | **bank** | **bankTransfer** | `bankAccount` | ## Balance webhooks Balance webhooks inform your system about balance changes that occur in the balance accounts of your balance platform. | Type | Description | | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | | `balancePlatform.balanceAccount.balance.updated` | A [balance change](/platforms/balance-types) occurred in a balance account of your balance platform. | ## Negative balance compensation warning webhooks Negative balance compensation warning webhooks inform your system when a balance account in your platform has a negative balance, so you can take action. | Type | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [balancePlatform.negativeBalanceCompensationWarning.scheduled](https://docs.adyen.com/api-explorer/negative-balance-compensation-warning-webhooks/latest/post/balancePlatform.negativeBalanceCompensationWarning.scheduled) | A balance account in your platform has had a negative balance for more than 20 days, and an automatic transfer from your platform's liable balance account is scheduled to compensate that negative balance. | ## Report webhooks Report webhooks inform your system when a report is generated and ready to be downloaded. | Type | Description | | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | [balancePlatform.report.created](https://docs.adyen.com/api-explorer/report-webhooks/latest/post/balancePlatform.report.created) | A [report](/platforms/prepare-reports/generate-download-reports#step-2-get-updates-when-a-report-is-available) was generated and is ready to be downloaded. | ## Payment webhooks (deprecated) Payment webhooks are deprecated. Use the [transfer webhooks](#transfer-webhooks) instead. | Type | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [balancePlatform.incomingTransfer.created](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.incomingTransfer.created) | There are funds that will be added to the balance account because of a pending refund or a funds transfer. Possible statuses: **PendingIncomingTransfer** | | [balancePlatform.incomingTransfer.updated](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.incomingTransfer.updated) | Funds were added to a balance account because of a refund or a funds transfer. Possible values: **Refunded**, **IncomingTransfer** | | [balancePlatform.outgoingTransfer.created](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.outgoingTransfer.created) | Funds were deducted from a balance account because of a payment capture or a funds transfer. Possible statuses: **Captured**, **OutgoingTransfer** | | [balancePlatform.outgoingTransfer.updated](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.outgoingTransfer.updated) | There was an update after funds were deducted from a balance account. For example, the funds transfer to a transfer instrument failed. Possible statuses: **TransferConfirmed**, **TransferSentOut**, or **TransferFailed** | | [balancePlatform.payment.created](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.payment.created) | A payment authorisation, a refund, or a funds transfer has been initiated. Possible statuses: **Authorised**, **Refused**, **Error** | | [balancePlatform.payment.updated](https://docs.adyen.com/api-explorer/#/balanceplatform-webhooks/latest/post/balancePlatform.payment.updated) | A payment authorisation has expired or has been cancelled. Possible statuses: **Expired**, **Cancelled** | ## Next steps Learn which webhooks are sent for different scenarios. [Payout events](/platforms/payout-webhooks) [Webhooks for funds movements related to payouts.](/platforms/payout-webhooks) [Fund transfer events](/platforms/internal-fund-transfers/notification-webhooks) [Webhooks for funds movements related to fund transfers within the platform.](/platforms/internal-fund-transfers/notification-webhooks)