Are you looking for test card numbers?

Would you like to contact support?

Issuin icon

Webhook structure and types

Learn which webhook types are sent for each event.

On this page, you'll find information about:

You'll also learn about which webhook types are sent based on which 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 webhook type.

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.
Below is an example request body for a webhook of type balancePlatform.accountHolder.created.

Example webhook request body
  "data": {
    "balancePlatform": "YOUR_BALANCE_PLATFORM",
    "accountHolder": {
      "contactDetails": {
        "address": {
          "country": "NL",
          "houseNumberOrName": "274",
          "postalCode": "1020CD",
          "street": "Brannan Street"
        "email": "",
        "phone": {
          "number": "+315551231234",
          "type": "Mobile"
      "description": "S.Hopper - Staff 123",
      "id": "AH00000000000000000000001",
      "status": "Active"
  "environment": "test",
  "type": "balancePlatform.accountHolder.created"

Webhook types

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 fund movement (funds added to or deducted from balance accounts).

You can 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.

Configuration webhooks

Type Description
balancePlatform.accountHolder.created An account holder was successfully created.
balancePlatform.accountHolder.updated An account holder was successfully updated.
balancePlatform.balanceAccount.created A balance account was successfully created.
balancePlatform.paymentInstrument.created A payment instrument was successfully created.
balancePlatform.paymentInstrument.updated A payment instrument was successfully updated.
balancePlatform.balanceAccountSweep.created A balance account sweep was successfully created.
balancePlatform.balanceAccountSweep.deleted A balance account sweep was successfully deleted.
balancePlatform.balanceAccountSweep.updated A balance account sweep was successfully updated.

Transfer webhooks

Type Description
balancePlatform.transfer.created A transfer request was created to credit funds to or deducted funds from a balance account in your platform.
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:

category type
Payment issuedCard payment
Fund transfer bank bankTransfer

Report webhooks

Type Description A report was generated and is ready to be downloaded.

Some events trigger a set of webhooks. For example, when moving funds between two balance accounts, Adyen sends two sets of webhooks—one for the source and one for the destination balance account. To know more about which webhook types are sent based on scenarios, refer to the links below.

Payment webhooks (deprecated)

Payment webhooks are deprecated. Use the transfer webhooks instead.
Type Description
balancePlatform.incomingTransfer.created There are funds that will be added to the balance account because of a pending refund or a fund transfer.
Possible statuses: PendingIncomingTransfer
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 Funds were deducted from a balance account because of a payment capture or a funds transfer.
Possible statuses: Captured, OutgoingTransfer
balancePlatform.outgoingTransfer.updated There was an update after funds were deducted from a balance account. For example, the fund transfer to a transfer instrument failed.
Possible statuses: TransferConfirmed, TransferSentOut, or TransferFailed
balancePlatform.payment.created A payment authorisation, a refund, or a funds transfer has been initiated.
Possible statuses: Authorised, Refused, Error
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.