---
title: "Webhook structure and types"
description: "Learn which webhook types are sent for each event."
url: "https://docs.adyen.com/development-resources/webhooks/webhook-types"
source_url: "https://docs.adyen.com/development-resources/webhooks/webhook-types.md"
canonical: "https://docs.adyen.com/development-resources/webhooks/webhook-types"
last_modified: "2023-10-27T13:18:00+02:00"
language: "en"
---

# Webhook structure and types

Learn which webhook types are sent for each event.

[View source](/development-resources/webhooks/webhook-types.md)

When you configure a webhook, Adyen offers different webhook types to choose from. Each webhook type has its own corresponding [events](#event-codes) that you can subscribe to. For example, the [Standard webhook type](#standard-webhooks) subscribes your endpoint to a set of [default event types](#default-event-codes). This page provides you with a list of webhook types, and which event types Adyen offers for each.

There are two main categories of webhooks:

* [Payments webhooks](#webhook-structure)
* [Platforms webhooks](#platforms-webhooks)

## Event types

Every webhook message contains an event type. The event type lets your server know what kind of information a webhook message contains. The event types your server receives depends on which webhooks you configured in your Customer area. For example, if you configure a Configuration webhook, you will receive webhook messages with its [corresponding event types](#configuration-webhook).

Use the event type to inform the business logic in your system. For example, if you receive a webhook message with an `eventCode` of **CAPTURED**, you can update your order management system and start the shipping process.

The event type is indicated by different fields, depending on the webhook type.

* In [Payments webhooks](#webhook-structure), the event type is typically in the `eventCode` field.
* In [Platforms webhooks](#platforms-webhook-structure), the event type is typically in the `type` field.

## Payments webhooks

### Payments webhook structure

Each payments webhook payload contains the following fields.

* `live`: Specifies whether the event happened on the test or live environment.

* `notificationItems`: An array of `NotificationRequestItem` objects.

  JSON and HTTP POST webhooks contain only one `NotificationRequestItem` object in the `notificationItems` array. SOAP webhooks may contain up to six `NotificationRequestItem` objects, in case the events happen within a very short period of time.

The `notificationItems` object contains information about the event:

* `additionalData`: Additional information about the shopper or the transaction. For more information about the fields that you can receive in `additionalData`, refer to [Additional settings](/development-resources/webhooks/webhook-types/additional-settings).

* `eventCode`: The [event type](#event-codes).

* `success`: The outcome of the event, set to either **true** or **false**.

  For some event codes, such as **REPORT\_AVAILABLE**, the `success` field is always set to **true**.

* `eventDate`: The time of the event. Format: [ISO 8601](http://www.w3.org/TR/NOTE-datetime); YYYY-MM-DDThh:mm:ssTZD

#### JSON

```json
{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "additionalData": {
                ...
            },
            "eventCode":"AUTHORISATION",
            "success":"true",
            "eventDate":"2019-06-28T18:03:50+01:00",
            "merchantAccountCode":"YOUR_MERCHANT_ACCOUNT",
            "pspReference": "7914073381342284",
            "merchantReference": "YOUR_REFERENCE",
            "amount": {
                "value":1130,
                "currency":"EUR"
            }
         }
      }
   ]
}
```

#### Soap

```xml
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <ns1:sendNotification xmlns:ns1="http://notification.services.adyen.com">
      <ns1:Notification>
        <live xmlns="http://notification.services.adyen.com">false</live>
        <notificationItems xmlns="http://notification.services.adyen.com">
          <NotificationRequestItem>
            <additionalData>
              ...
            </additionalData>
            <amount>
              <currency xmlns="http://common.services.adyen.com">EUR</currency>
              <value xmlns="http://common.services.adyen.com">1130</value>
            </amount>
            <eventCode>AUTHORISATION</eventCode>
            <eventDate>2019-06-28T18:03:50+01:00</eventDate>
            <merchantAccountCode>YOUR_MERCHANT_ACCOUNT</merchantAccountCode>
            <merchantReference>YOUR_TRANSACTION_REFERENCE</merchantReference>
            <operations xsi:ns1="true" />
            <reason  xsi:ns1="true" />
            <originalReference xsi:ns1="true" />
            <paymentMethod>visa</paymentMethod>
            <pspReference>7914073381342284</pspReference>
            <success>true</success>
          </NotificationRequestItem>
        </notificationItems>
      </ns1:Notification>
    </ns1:sendNotification>
  </soap:Body>
</soap:Envelope>
```

Some fields included in the `NotificationRequestItem` object depend on the type of event triggered. For example, webhook events triggered by a request to [refund](/online-payments/refund) a payment include:

* `originalReference`: The `pspReference` of the original payment.

### Standard webhooks

For most payment integrations, you need to sign up for Standard webhooks. Standard webhooks have [default](#default-event-codes) and [non-default](#non-default-event-codes) event types that you subscribe to when you configure the webhook.

### Default event types

Adyen sends the Standard webhook with default event types that cannot be disabled.

Because we sometimes create new webhooks and event types, you should set up your server to be able to [accept webhooks](/development-resources/webhooks/configure-and-manage#accept-webhooks) of more types and receive more event type values than are listed below. When we create a new event type, you have to create new business logic if you want to use it.

By default, the Standard webhook includes the following `eventCode` values. There are different categories of event codes:

* [Transaction events](#transaction-events)
* [Dispute events](#dispute-events)
* [Payout events](#payout-events)

#### Transaction events

| `eventCode`                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AUTHORISATION](https://docs.adyen.com/api-explorer/Webhooks/latest/post/AUTHORISATION)                        | The `success` field informs you of the outcome of a payment request.For payment methods that return an immediate authorisation result, such as cards, you will also receive an **AUTHORISED** webhook event.Although you can use the payment result from the API, we recommend that you rely on the webhook to trigger any business logic to make sure that your system is able to handle both synchronous and asynchronous payment flows.                                                |
| [AUTHORISATION\_ADJUSTMENT](https://docs.adyen.com/api-explorer/Webhooks/latest/post/AUTHORISATION_ADJUSTMENT) | The `success` field informs you of the outcome of a request to [adjust the authorised amount](/online-payments/adjust-authorisation).The `originalReference` field contains the `pspReference` of the original payment.                                                                                                                                                                                                                                                                   |
| [CANCELLATION](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CANCELLATION)                          | The `success` field informs you of the outcome of a request to [cancel](/online-payments/cancel) a payment.The `originalReference` field contains the `pspReference` of the original payment.                                                                                                                                                                                                                                                                                             |
| [CANCEL\_OR\_REFUND](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CANCEL_OR_REFUND)                | The `success` field informs you of the outcome of a request to [cancel or refund](/online-payments/cancel-or-refund) a payment.The `originalReference` field contains the `pspReference` of the original payment.                                                                                                                                                                                                                                                                         |
| [CAPTURE](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CAPTURE)                                    | The `success` field informs you of the outcome of a request to [capture](/online-payments/capture) a payment.The `originalReference` field contains the `pspReference` of the original payment.By default, the CAPTURE webhook is not sent for [automatic captures](/online-payments/capture). If you are using delayed automatic capture, you must also enable this event code on the [Webhooks settings page](#webhooks-settings-page).                                                 |
| [CAPTURE\_FAILED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CAPTURE_FAILED)                     | The capture [failed due to rejection by the card scheme](/online-payments/capture#failed-capture). This also includes installment-based transactions where a capture fails.The `originalReference` field contains the `pspReference` of the original payment.Technical failures are automatically re-captured by Adyen within 10 business days.You can simulate this webhook event by following [our guide on testing failed modifications](/development-resources/testing/result-codes). |
| [EXPIRE](https://docs.adyen.com/api-explorer/Webhooks/latest/post/EXPIRE)                                      | The original payment has expired on the Adyen payments platform.The `success` field is always **true** because the payment expired on the Adyen payments platform.The `amount` field contains the details of the original payment.For more information, refer to [Expiration of authorizations](/online-payments/adjust-authorisation/#validity).                                                                                                                                         |
| `HANDLED_EXTERNALLY`                                                                                           | The payment has been handled outside the Adyen payments platform.                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [ORDER\_OPENED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/ORDER_OPENED)                         | Sent when the first payment for your payment request is a [partial payment](/online-payments/classic-integrations/hosted-payment-pages/payment-request/partial-payments#webhooks), and an order has been created.                                                                                                                                                                                                                                                                         |
| [ORDER\_CLOSED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/ORDER_CLOSED)                         | The `success` field informs you of the outcome of the shopper's last payment when paying for an order in [partial payments](/online-payments/classic-integrations/hosted-payment-pages/payment-request/partial-payments#webhooks). Possible values:* **true**: The full amount has been paid.* **false**: The shopper did not pay the full amount within the `sessionValidity`. All partial payments that were processed previously are automatically cancelled or refunded.              |
| [REFUND](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REFUND)                                      | The `success` field informs you of the outcome of a request to [refund a payment](/online-payments/refund).The `originalReference` field contains the `pspReference` of the original payment.Possible values:* **true**: The refund request was successful.* **false**: The refund request failed due to a [technical issue](/online-payments/refund#refund-failed)                                                                                                                       |
| [REFUND\_FAILED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REFUND_FAILED)                       | The refund failed due to a [rejection by the card scheme](/online-payments/refund#refund-failed). This also includes installment-based transactions where a refund fails.The `originalReference` field contains the `pspReference` of the original payment.You can simulate this webhook event by following [our guide on testing failed modifications](/development-resources/testing/result-codes).                                                                                     |
| [REFUNDED\_REVERSED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REFUNDED_REVERSED)               | The refunded amount has been returned to Adyen, and is back in your account.The `originalReference` field contains the `pspReference` of the original payment. For more information, refer to [Failed refund](/online-payments/refund#refund-failed).                                                                                                                                                                                                                                     |
| [REFUND\_WITH\_DATA](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REFUND_WITH_DATA)                | The `success` field informs you of the outcome of a request to [refund with data](/online-payments/classic-integrations/modify-payments/refund#unreferenced-refund).                                                                                                                                                                                                                                                                                                                      |
| [REPORT\_AVAILABLE](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REPORT_AVAILABLE)                 | A [new report](/reporting/automatically-get-reports) is available. The `reason` field contains the URL where you can download the report, and the `pspReference` field contains the name of the report.                                                                                                                                                                                                                                                                                   |
| [VOID\_PENDING\_REFUND](https://docs.adyen.com/api-explorer/Webhooks/latest/post/VOID_PENDING_REFUND)          | The `success` field informs you of the outcome of a request to [cancel an unreferenced POS refund](/point-of-sale/basic-tapi-integration/refund-payment/cancel-unreferenced).The `originalReference` field contains the `pspReference` of the original payment.                                                                                                                                                                                                                           |

You won't receive a webhook event when a payment is settled.

#### Dispute events

| `eventCode`                                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CHARGEBACK](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CHARGEBACK)                                             | A payment was [charged back](/risk-management/disputes-api/dispute-notifications#chargeback), and the funds were deducted from your account.                                                                                                                                                                                                                           |
| [CHARGEBACK\_REVERSED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/CHARGEBACK_REVERSED)                          | A chargeback has been defended towards the issuing bank. This stage is not final. If the issuing bank decides to present a second chargeback, you might still lose the chargeback case.                                                                                                                                                                                |
| [NOTIFICATION\_OF\_CHARGEBACK](https://docs.adyen.com/api-explorer/Webhooks/latest/post/NOTIFICATION_OF_CHARGEBACK)           | The dispute process has opened. You should investigate the dispute and [supply defense documents](/risk-management/disputes-api#supply-dispute-defense-documents).                                                                                                                                                                                                     |
| [INFORMATION\_SUPPLIED](/risk-management/disputes-api/dispute-notifications#information_supplied)                             | You have successfully uploaded your dispute defense documents, or Adyen has auto-defended the dispute.                                                                                                                                                                                                                                                                 |
| [NOTIFICATION\_OF\_FRAUD](https://docs.adyen.com/api-explorer/Webhooks/latest/post/NOTIFICATION_OF_FRAUD)                     | The alert passed on by issuers to schemes and subsequently to processors. Visa calls them TC40 and Mastercard calls them System to Avoid Fraud Effectively (SAFE). These are informational webhook events offered at no charge by Adyen, providing you the opportunity to take action, such as blocking a shopper or issuing a refund before a chargeback is incurred. |
| [PREARBITRATION\_LOST](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PREARBITRATION_LOST)                          | Your pre-arbitration case has been declined by the cardholder's bank.                                                                                                                                                                                                                                                                                                  |
| [PREARBITRATION\_WON](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PREARBITRATION_WON)                            | Your pre-arbitration case has been accepted by the cardholder's bank.                                                                                                                                                                                                                                                                                                  |
| [REQUEST\_FOR\_INFORMATION](https://docs.adyen.com/api-explorer/Webhooks/latest/post/REQUEST_FOR_INFORMATION)                 | A shopper has opened an RFI (Request for Information) case with the bank. You should [supply defense documents](/risk-management/disputes-api#supply-dispute-defense-documents) to help shopper understand the charge.                                                                                                                                                 |
| [SECOND\_CHARGEBACK](https://docs.adyen.com/api-explorer/Webhooks/latest/post/SECOND_CHARGEBACK)                              | The issuing bank declined the material submitted during defense of the original chargeback. The disputed amount is deducted from your account.                                                                                                                                                                                                                         |
| [DISPUTE\_DEFENSE\_PERIOD\_ENDED](/risk-management/disputes-api/dispute-notifications#defense_ended)                          | You have not defended the dispute within the timeframe, or the defense period ended because you accepted liability for the chargeback and will not defend the dispute.                                                                                                                                                                                                 |
| [ISSUER\_RESPONSE\_TIMEFRAME\_EXPIRED](/risk-management/disputes-api/dispute-notifications#issuer_response_timeframe_expired) | The issuer either accepted your defense of the dispute, or did not respond in time.                                                                                                                                                                                                                                                                                    |
| [ISSUER\_COMMENTS](/risk-management/disputes-api/dispute-notifications#issuer_comments)                                       | Includes any free-text issuer comments that include relevant information about the dispute process, such as why the issuer decided to initiate or continue the dispute. You can receive issuer comments for chargebacks and pre-arbitration cases.                                                                                                                     |

For more information and examples, refer to [Dispute webhooks](/risk-management/disputes-api/dispute-notifications).

#### Payout events

| `eventCode`                                                                                      | Description                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [PAYOUT\_EXPIRE](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PAYOUT_EXPIRE)         | The payout has [expired](/online-payments/online-payouts/payout-webhook).                                                                                                                                   |
| [PAYOUT\_DECLINE](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PAYOUT_DECLINE)       | The user reviewing the payout declined it.                                                                                                                                                                  |
| [PAYOUT\_THIRDPARTY](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PAYOUT_THIRDPARTY) | The `success` field informs you of the outcome of a payout request: * **true**: The request was successful.* **false**: The request failed. The `reason` field contains a short description of the problem. |
| [PAIDOUT\_REVERSED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/PAIDOUT_REVERSED)   | The financial institution rejected the payout. We will return the funds back to your account. The `reason` field contains the bank statement description if present.                                        |

For more information and examples, refer to [Payout webhooks](/online-payments/online-payouts/payout-webhook).

### Non-default event codes

There are additional event codes that are not enabled in the Standard webhook by default. You can enable them:

* [On the Standard webhook page](#standard-webhook-page)
* [On the Webhooks settings page](#webhooks-settings-page)
* [On the Risk settings page](#risk-settings-page)

#### On the Standard webhook page

1. In your Customer Area, select **Developers** > **Webhooks**.

2. From the list of webhooks, select the **Standard webhook** to configure.

3. From the **Webhook details** panel, select the **Edit webhook** icon **.

4. On the **Standard webhook** page, in the **Events** row, select the **Edit** icon **.

5. From the list, select the checkboxes for the event codes you want to enable:

   | `eventCode`                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                                                                          |
   | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | [OFFER\_CLOSED](https://docs.adyen.com/api-explorer/Webhooks/latest/post/OFFER_CLOSED)             | The offer has expired, for example, because the shopper abandoned the session. For cards, offers expire after 12 hours by default.                                                                                                                                                                                                                                                                                   |
   | [RECURRING\_CONTRACT](https://docs.adyen.com/api-explorer/Webhooks/latest/post/RECURRING_CONTRACT) | A recurring contract has been created, and the shopper's payment details have been stored with Adyen. The `recurringDetailReference` is included in the `pspReference` field. You must also enable this event code on the [Webhooks settings page](#webhooks-settings-page).To get updates related to tokens, we recommend to use the new [**Recurring tokens life cycle events** ](#other-webhooks)webhook instead. |

6. Select **Apply**.

7. Select **Save**.

#### On the Webhooks settings page

You can enable the following `eventCode` values in the **Webhook settings** page.

1. In your Customer Area, go to **Developers** > **Webhooks**.

2. Select ****Settings**.

3. On the **Webhooks settings** page, select the checkboxes for the event code you want to enable:

   | `eventCode`                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                                                                        |
   | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | [RECURRING\_CONTRACT](https://docs.adyen.com/api-explorer/Webhooks/latest/post/RECURRING_CONTRACT) | A recurring contract has been created, and the shopper's payment details have been stored with Adyen. The `recurringDetailReference` is included in the `pspReference` field. You must also enable this event code on the [Standard webhook page](#standard-webhook-page).To get updates related to tokens, we recommend to use the new [**Recurring tokens life cycle events** ](#other-webhooks)webhook instead. |
   | [POSTPONED\_REFUND](https://docs.adyen.com/api-explorer/Webhooks/latest/post/POSTPONED_REFUND)     | The refund for the payment will be performed after the payment is captured.                                                                                                                                                                                                                                                                                                                                        |
   | `AUTHENTICATION`                                                                                   | A [standalone authentication](/online-payments/3d-secure/standalone-authentication) was performed.                                                                                                                                                                                                                                                                                                                 |
   | `CAPTURE`                                                                                          | Receive `CAPTURE` webhook events if you are using delayed automatic capture. You must also enable this event code on the [Standard webhook page](#standard-webhook-page).                                                                                                                                                                                                                                          |

4. Select **Save**

#### On the Risk settings page

Follow instructions to [configure case management webhook events](/risk-management/case-management#case-management-settings) to enable these `eventCode` values:

| `eventCode`                                                                                             | Description                                                                                 |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [MANUAL\_REVIEW\_ACCEPT](https://docs.adyen.com/api-explorer/Webhooks/latest/post/MANUAL_REVIEW_ACCEPT) | The manual review triggered by [risk rules](/risk-management/case-management) was accepted. |
| [MANUAL\_REVIEW\_REJECT](https://docs.adyen.com/api-explorer/Webhooks/latest/post/MANUAL_REVIEW_REJECT) | The manual review triggered by [risk rules](/risk-management/case-management) was rejected. |

### Other webhooks

In addition to Standard webhooks, you can get other types of webhooks:

1. Set up a separate endpoint to receive the type of webhook. Each endpoint that you set up can receive only one type of webhook.
2. [Configure the webhook](/development-resources/webhooks/configure-and-manage#set-up-webhooks-in-your-customer-area) you want to receive from the list of webhook types in the following table.

| Webhook type                                                                                                                  | Description                                                                                                                                                                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Account data webhook**                                                                                                      | Receive a webhook event when a merchant account was created, or if the capabilities of a merchant account were updated.                                                                                                                                                                                    |
| **Account settings details**                                                                                                  | Receive a webhook event when there is a status change related to your company account, merchant account, or store. This webhook is not available by default, and it has a different format. Refer to [Account settings webhooks](/development-resources/webhooks/webhook-types/account-settings-webhooks). |
| **ACH Notification of Change webhook**                                                                                        | Receive a webhook event when you sent an ACH Direct Debit transaction and Adyen has received a notification that the customer's bank account details have changed.                                                                                                                                         |
| **Adyen Giving merchant webhook**                                                                                             | Receive a webhook event with `eventCode`: **DONATION** when a shopper has made a donation.                                                                                                                                                                                                                 |
| **BankTransfer pending webhook**                                                                                              | Receive a webhook event with `eventCode`: **PENDING** when there is a pending bank transfer payment.                                                                                                                                                                                                       |
| **Boleto Bancario pending webhook**                                                                                           | Receive a webhook event with `eventCode`: **PENDING** when there is a pending Boleto Bancario payment.                                                                                                                                                                                                     |
| **Direct-debit pending webhook**                                                                                              | Receive a webhook event with `eventCode`: **PENDING** when there is a pending direct debit payment.                                                                                                                                                                                                        |
| **Generic pending webhook**                                                                                                   | Receive a webhook event with `eventCode`: **PENDING** when there is a [pending](/online-payments/payment-result-codes) payment for any redirect payment method.                                                                                                                                            |
| **Ideal details**                                                                                                             | Receive **AUTHORISATION** webhook event for iDEAL payments, with the following shopper details included in the `additionalData` object:- `iDealConsumerAccountNumber`
- `iDealConsumerIBAN`
- `iDealConsumerBIC`
- `iDealConsumerName`
- `iDealConsumerCity`
- `iDealTransactionId`                        |
| **Ideal pending**                                                                                                             | Receive a webhook event with `eventCode`: **PENDING** when there is a pending iDEAL payment.                                                                                                                                                                                                               |
| **OXXO pending webhook**                                                                                                      | Receive a webhook event with `eventCode`: **PENDING** when there is a pending OXXO voucher payment.                                                                                                                                                                                                        |
| **Payment method webhook**                                                                                                    | Receive a webhook event when a payment method was successfully configured or when the configuration failed.                                                                                                                                                                                                |
| **Recurring tokens life cycle events**                                                                                        | Receive a webhook event when a [token](/online-payments/tokenization) is created, updated, or disabled.                                                                                                                                                                                                    |
| **Terminal assignment complete**                                                                                              | Receive a webhook event when a scheduled assignment of a payment terminal has been completed. Refer to [Use API calls to assign terminals](/point-of-sale/automating-terminal-management/assign-terminals-api).                                                                                            |
| **Terminal boarding succeeded**                                                                                               | Receive a webhook event when the boarding of a terminal succeeded.                                                                                                                                                                                                                                         |
| [Terminal settings updated](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/terminalSettings.modified) | Receive a webhook event when the terminal settings are updated. Refer to [Configure terminal settings](/point-of-sale/automating-terminal-management/configure-terminals-api).                                                                                                                             |
| **Terminal order update**                                                                                                     | Receive a webhook event about updates to your sales, return, or replacement order for payment terminals. Refer to [Order or return terminals](/point-of-sale/managing-terminals/order-terminals#terminal-order-notifications).                                                                             |

## Platforms webhooks

### Platforms webhook structure

Each Platforms webhook payload contains the following fields:

* `data`: An object containing the event-specific data. The structure of this object depends on the `type` of the event.
* `environment`: Specifies whether the event happened on the **test** or **live** environment.
* `timestamp`: The time of the event, in [ISO 8601](http://www.w3.org/TR/NOTE-datetime) format.
* `type`: The [event type](#event-codes). For a list of possible values, refer to the tables of event types for [Platforms webhooks](#platforms-webhooks).

```json
{
    "data": {
        "balancePlatform": "YOUR_BALANCE_PLATFORM",
        "accountHolder": {
            "legalEntityId": "LE00000000000000000001",
            "reference": "YOUR_REFERENCE-2412C"
        }
    },
    "environment": "live",
    "timestamp": "2024-12-15T15:42:03+01:00",
    "type": "balancePlatform.accountHolder.updated"
}
```

### Authentication webhook

Use Authentication webhooks to get the outcome of 3D Secure authentications for payment instruments in your [Adyen Issuing](/issuing/) integration. To learn more, see [Authenticate cardholders](/issuing/3d-secure/oob-auth-sdk/authenticate-cardholders/).

| Event Type                                                                                                                                   | Description                                                                                                                                   |
| -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.authentication.created](https://docs.adyen.com/api-explorer/acs-webhook/latest/post/balancePlatform.authentication.created) | Adyen sends this webhook when the process of cardholder authentication is finalized, whether it is completed successfully, fails, or expires. |

***

### Balance Webhook

Use Balance webhooks to monitor balances of users on your platform. This webhook is useful for [Adyen for Platforms](/platforms/), [Issuing](/issuing/), and [Business Accounts](/business-accounts/) integrations to manage funds. For example, you can automate topping up a balance account when its funds are low, or receive a notification for a negative balance. Learn more at [Track balance updates](/platforms/balance-updates/).

| Event Type                                                                                                                                                        | Description                                                                                                   |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.balanceAccount.balance.updated](https://docs.adyen.com/api-explorer/balance-webhooks/latest/post/balancePlatform.balanceAccount.balance.updated) | Adyen sends this webhook when the specified balance type reaches or drops below the threshold you configured. |

***

### Capital dynamic offer webhook

Use Capital dynamic offer webhook to get notified when [dynamic offers](/capital/get-grant-offers/dynamic-offers/) are created in your [Adyen Capital](/capital/) integration.

| Event type                                                                                                                                                    | Description                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.capital.dynamicOffer.created](https://docs.adyen.com/api-explorer/capital-webhooks/latest/post/balancePlatform.capital.dynamicOffer.created) | After dynamic offers are created for an account holder, Adyen sends this webhook with information about the offers. |

***

### Capital static offer webhook

Use Capital static offer webhook to get notified when [static offers](/capital/get-grant-offers/static-offers/) are created in your [Adyen Capital](/capital/) integration.

| Event Type                                                                                                                                                                              | Description                                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| [balancePlatform.balanceAccountHolder.capitalOffer.created](https://docs.adyen.com/api-explorer/capital-webhooks/latest/post/balancePlatform.balanceAccountHolder.capitalOffer.created) | After static offers are created for an account holder, Adyen sends this webhook with information about the offers. |

***

### Capital grant webhook

Use Capital grant webhooks to [get updates about grants](/capital/make-grant-request/#get-updates) in your [Adyen Capital](/capital/) integration.

| Event Type                                                                                                                        | Description                                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [balancePlatform.grants.created](https://docs.adyen.com/api-explorer/capital-webhooks/latest/post/balancePlatform.grants.created) | After a grant is created for an account holder, Adyen sends this webhook with information about the grant. |
| [balancePlatform.grants.updated](https://docs.adyen.com/api-explorer/capital-webhooks/latest/post/balancePlatform.grants.updated) | After a grant is updated for an account holder, Adyen sends this webhook with information about the grant. |

***

### Card Order webhook

Use Card Order webhooks to track the lifecycle of physical card orders in your [Adyen Issuing](/issuing/) integration.

| Event Type                                                                                                                                      | Description                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [balancePlatform.cardorder.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.cardorder.created) | Adyen sends this webhook to indicate a successful creation of a card order. |
| [balancePlatform.cardorder.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.cardorder.updated) | Adyen sends this webhook when there is an update in card order status.      |

***

### Configuration webhook

Configuration webhooks are essential for [Adyen for Platforms](/platforms/) and integrations that use Adyen's [Financial products](/financial-products/). These webhook events inform you about the creation and updates of resources, like account holders, balance accounts, payment instruments, and sweeps. Your integration needs configuration webhooks to track the status of users as you [onboard and verify them](/platforms/onboard-users/).

| Event Type                                                                                                                                                          | Description                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [balancePlatform.accountHolder.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.accountHolder.created)             | Adyen sends this webhook when you successfully create an account holder.    |
| [balancePlatform.accountHolder.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.accountHolder.updated)             | Adyen sends this webhook when you successfully update an account holder.    |
| [balancePlatform.balanceAccount.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.created)           | Adyen sends this webhook when you successfully create a balance account.    |
| [balancePlatform.balanceAccount.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.updated)           | Adyen sends this webhook when you successfully update a balance account.    |
| [balancePlatform.balanceAccountSweep.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountSweep.created) | Adyen sends this webhook when you successfully create a sweep.              |
| [balancePlatform.balanceAccountSweep.deleted](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountSweep.deleted) | Adyen sends this webhook when you successfully delete a sweep.              |
| [balancePlatform.balanceAccountSweep.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccountSweep.updated) | Adyen sends this webhook when you successfully update a sweep.              |
| [balancePlatform.paymentInstrument.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.paymentInstrument.created)     | Adyen sends this webhook when you successfully create a payment instrument. |
| `balancePlatform.paymentInstrument.expiring`                                                                                                                        | Adyen sends this webhook when a payment instrument is about to expire.      |
| [balancePlatform.paymentInstrument.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.paymentInstrument.updated)     | Adyen sends this webhook when you successfully update a payment instrument. |

***

### Dispute webhook

Use Dispute webhooks to track the [dispute lifecycle](/issuing/raise-disputes#lifecycle-of-a-raised-dispute) for cards created with [Adyen Issuing](/issuing/). When you raise a dispute, Adyen sends webhooks to inform you about its creation and outcome.

| Event Type                                                                                                                          | Description                                         |
| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [balancePlatform.dispute.created](https://docs.adyen.com/api-explorer/dispute-webhooks/latest/post/balancePlatform.dispute.created) | Adyen sends this webhook when a dispute is created. |
| [balancePlatform.dispute.updated](https://docs.adyen.com/api-explorer/dispute-webhooks/latest/post/balancePlatform.dispute.updated) | Adyen sends this webhook when a dispute is updated. |

***

### Negative Balance Compensation Warning Webhook

Get a warning when a balance account on your platform has a negative balance for an extended period. This webhook is useful for [Adyen for Platforms](/platforms/), [Issuing](/issuing/), and [Business Accounts](/business-accounts/) integrations to manage financial risk. It informs you before an automatic deduction is made from your liable account, giving you an opportunity to settle the negative balance with your user.

| Event Type                                                                                                                                                                                                                  | Description                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.negativeBalanceCompensationWarning.scheduled](https://docs.adyen.com/api-explorer/negative-balance-compensation-warning-webhooks/latest/post/balancePlatform.negativeBalanceCompensationWarning.scheduled) | Adyen sends this webhook to inform you about a balance account whose balance has been negative for 20 or more days. |

***

### Network token webhook

Use network token webhooks to track the status of network tokens for cards created with [Adyen Issuing](/issuing/). These webhook events are important if you want to know when a user [adds their card to a digital wallet](/issuing/digital-wallets/) like Apple Pay or Google Pay. To learn more, see [Manage network tokens](/issuing/manage-network-tokens/).

| Event Type                                                                                                                                            | Description                                               |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [balancePlatform.networkToken.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.networkToken.created) | Adyen sends this webhook when a network token is created. |
| [balancePlatform.networkToken.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.networkToken.updated) | Adyen sends this webhook when a network token is updated. |

***

### Onboarding on invite

Use Onboarding on invite webhooks to get a notification when a user is successfully onboarded to your platform. This webhook is part of an [Adyen for Platforms](/platforms/) integration in the [Onboarding on invite](/platforms/onboard-users/?tab=onboarding_on_invite_0_1) flow.

| Event Type                                                                                                                                                       | Description                                                                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.accountHolder.onboarded](https://docs.adyen.com/api-explorer/onboarding-on-invite-webhooks/latest/post/balancePlatform.accountHolder.onboarded) | Adyen sends this webhook when an account holder is successfully onboarded. It contains the IDs of all the resources, like a balance account, that were created for the user. |

***

### Report webhook

Use this webhook to automate your reporting and reconciliation processes for Balance Platform reports. For example, receive a notification when your [Balance Platform Accounting Report](/platforms/reports-and-fees/balance-platform-accounting-report/) is available for download.

| Event Type                                                                                                                       | Description                                                                      |
| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [balancePlatform.report.created](https://docs.adyen.com/api-explorer/report-webhooks/latest/post/balancePlatform.report.created) | Adyen sends this webhook after a report is generated and ready to be downloaded. |

***

### Transaction webhook

Use Transaction webhooks to get track the fund movement of transfers on your platform. This webhook is important for [Adyen for Platforms](/platforms/), [Issuing](/issuing/), [Capital](/capital/), and [Business Accounts](/business-accounts/) integrations. It informs you when a transfer is booked, for example, when an [outgoing external transfer](/platforms/transfer-transactions/track-webhooks/#outgoing-external-transactions) is completed.

| Event Type                                                                                                                                      | Description                                                                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| [balancePlatform.transaction.created](https://docs.adyen.com/api-explorer/transaction-webhooks/latest/post/balancePlatform.transaction.created) | After a transfer is booked in a balance account, Adyen sends this webhook with information about the transaction. |

***

### Transfer webhook

Use transfer webhooks to track lifecycle of fund movements on your platform, from initiation to completion. This webhook is important for [Adyen for Platforms](/platforms/), [Issuing](/issuing/), [Capital](/capital/), and [Business Accounts](/business-accounts/) integrations. It is especially important for tracking the state [payouts](/platforms/payout-webhooks/), for example.

| Event Type                                                                                                                             | Description                                                              |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created) | Adyen sends this webhook when there are fund movements on your platform. |
| [balancePlatform.transfer.updated](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.updated) | Adyen sends this webhook when the status of a transfer changes.          |

## See also

* [Configure and manage webhooks](/development-resources/webhooks/configure-and-manage)
