---
title: "Platform-generated webhooks"
description: "Receive platform-generated webhooks on your back-end system."
url: "https://docs.adyen.com/point-of-sale/design-your-integration/notifications/standard-notifications"
source_url: "https://docs.adyen.com/point-of-sale/design-your-integration/notifications/standard-notifications.md"
canonical: "https://docs.adyen.com/point-of-sale/design-your-integration/notifications/standard-notifications"
last_modified: "2026-06-01T15:33:14+02:00"
language: "en"
---

# Platform-generated webhooks

Receive platform-generated webhooks on your back-end system.

[View source](/point-of-sale/design-your-integration/notifications/standard-notifications.md)

Webhooks generated on the Adyen payments platform share a similar format and are delivered in the same way across sales channels. Platform-generated webhooks inform you asynchronously of transaction details and settings updates.

There are two types of platform-generated webhooks relevant for in-person payments:

* [Standard webhooks](#standard-webhook)
* [Terminal management webhooks](#terminal-management-webhooks)

## Set up webhooks

To add standard or terminal management webhooks, follow our [webhooks documentation](/development-resources/webhooks) to:

* Set up standard webhooks and other platform-generated webhooks.
* Verify the HMAC signature included in webhooks.
* Acknowledge webhooks with a [successful HTTP response status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses), for example **202**.
* Understand the structure of webhooks.
* Learn best practices for using webhooks.

## Standard webhook

In a point-of-sale integration, standard webhooks may seem less important, because the terminal provides instant feedback: it immediately shows if a transaction is approved or declined. And even if you do not receive the Terminal API response with the transaction details, you can get the details through a [transaction status request](/point-of-sale/basic-tapi-integration/verify-transaction-status).

However, there are point-of-sale use cases that rely on standard webhooks:

* Asynchronous requests:

  * Referenced and unreferenced [refunds](/point-of-sale/basic-tapi-integration/refund-payment/referenced)
  * [Asynchronous authorization adjustment](/point-of-sale/pre-authorisation?tab=asynchronous_authorisation_adjustment_1#adjust-auth)
  * [Manual capture](/point-of-sale/capturing-payments#manual-capture)
  * [Cancellation of uncaptured authorizations](/point-of-sale/capturing-payments#cancel-authorisation) when using delayed automatic capture or manual capture

* [PSP reference-based reconciliation of offline payments](/point-of-sale/offline-payment#reconcile-offline-transactions)

* [Customer insights](/unified-commerce/collect-data) through combining data from multiple sales channels

* [Recurring online payments](/point-of-sale/recurring-payments) after creating a token through an initial point-of-sale payment

Standard webhooks include a few details by default, as well as configurable additional data. Depending on your use case, you need to and select [identifiers](/point-of-sale/card-acquisition/identifiers) that you want to receive in the additional data of webhooks.

To configure the structure, when [setting up a standard webhook](/development-resources/webhooks):

1. Select the [event codes](/development-resources/webhooks/webhook-types/#event-codes) that trigger sending the webhook.

2. Select the [additional settings](/development-resources/webhooks/webhook-types/additional-settings) you want to receive. For example:

   | Identifier                       | Additional setting to select                                                                           |
   | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
   | Card alias                       | **Include Alias Info**                                                                                 |
   | Funding source                   | **Include Funding Source**                                                                             |
   | Issuer country/region            | **Include Issuer Country/Region**                                                                      |
   | PAR                              | **Add Payment Account Reference** Must be enabled under **Developers** > **Additional data**.          |
   | Recurring detail reference       | Cannot be enabled in the webhook settings. Must be enabled under **Developers** > **Additional data**. |
   | Shopper email, shopper reference | **Include Shopper Details**                                                                            |
   | Token variant                    | **Include tokenTxVariant** Must be enabled under **Developers** > **Additional data**.                 |
   | BIN                              | **Include Card Bin**                                                                                   |
   | POIID                            | **Include POS TerminalInfo**                                                                           |
   | Store name                       | **Include Store**                                                                                      |
   | Tender reference, POIID          | **Include POS Details**                                                                                |

   When you enable identifiers under **Developers** > **Additional data** you also receive these identifiers in your API responses.

The following example shows the standard webhook for an in-person payment. The identifiers are in the `additionalData` object.

**Identifiers in a standard webhook**

```json
{
   "live":"false",
   "notificationItems":[
      {
         "NotificationRequestItem":{
            "additionalData":{
               "alias":"M469509594859802",
               "aliasType":"Default",
               "authCode":"00",
               "cardBin":"541333",
               "cardSummary":"9999",
               "expiryDate":"02/2028",
               "fundingSource":"CREDIT",
               "issuerCountry":"GB",
               "recurring.shopperReference":"YOUR_SHOPPER_REFERENCE",
               "shopperEmail":"S.Hopper@example.com",
               "shopperIP":"198.51.100.1",
               "shopperReference":"YOUR_SHOPPER_REFERENCE",
               "store":"YOUR_STORE",
               "tenderReference":"CYHG001647245627000",
               "terminalId":"V400m-346403161"
            },
            "amount":{
               "currency":"EUR",
               "value":12098
            },
            "eventCode":"AUTHORISATION",
            "eventDate":"2021-04-14T15:30:14+02:00",
            "merchantAccountCode":"ADYEN_MERCHANT_ACCOUNT",
            "merchantReference":"902",
            "operations":[
               "CANCEL",
               "CAPTURE",
               "REFUND"
            ],
            "paymentMethod":"mc",
            "pspReference":"8825408195409505",
            "reason":"00:9999:02/2028",
            "success":"true"
         }
      }
   ]
}
```

## Terminal management webhooks

Adyen sends terminal management webhooks to inform your system about the status of payment terminals orders, assignment, or settings update.

Terminal management webhooks have a different structure from standard webhooks and do not require additional setup apart from the [server and security configuration](/development-resources/webhooks/#set-up-webhooks-in-your-customer-area) in your [Customer Area](https://ca-test.adyen.com/).

| Webhook type                      | Description                                                                                                                                                                                              |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Terminal assignment completed** | Receive a webhook event when a scheduled assignment of a payment terminal has been completed. Refer 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 order updated**        | Receive a webhook event about updates to your sales, return, or replacement order for payment terminals. Refer to [Order terminals](/point-of-sale/automating-terminal-management/order-terminals-api/). |
| **Terminal settings updated**     | Receive a webhook event when the terminal settings are updated. Refer to [Configure terminals](/point-of-sale/automating-terminal-management/configure-terminals-api/).                                  |

### Tab: Terminal assignment completed

**Terminal assignment completed**

```json
{
   "uniqueTerminalId":"V400m-324688179",
   "pspReference":"PPKFQ89R6QRXGN82",
   "eventDate":"2020-06-03 22:42:13.840 CEST",
   "assignedToAccount":"ADYEN_COMPANY_ACCOUNT",
   "assignedToStore":"YOUR_STORE_ID"
}
```

### Tab: Terminal boarding succeeded

**Terminal boarding succeeded**

```json
{
   "type":"terminalBoarding.triggered",
   "environment":"live",
   "createdAt":"2024-04-23T22:42:51+02:00",
   "data":{
      "companyId":"ADYEN_COMPANY_ACCOUNT",
      "merchantId":"ADYEN_MERCHANT_ACCOUNT",
      "storeId":"YOUR_STORE_ID",
      "uniqueTerminalId":"V400m-324688179"
   }
}
```

### Tab: Terminal order updated

**Terminal order updated**

```json
{
   "orderNumber":"8815329842815460",
   "orderType":"salesOrder",
   "orderStatus":"placed",
   "orderReference":"YOUR_PURCHASE_ORDER",
   "orderedBy":"YOUR_USERNAME",
   "company":"ADYEN_COMPANY_ACCOUNT",
   "merchant":"ADYEN_MERCHANT_ACCOUNT",
   "content":{
      "shippingAddress":{
         "streetAddress":"Neherkade 1 XI, Gravenhage",
         "postalCode":"2521VK",
         "stateOrProvince":"SH",
         "countryCode":"NL"
      },
      "billingAddress":{
         "streetAddress":"Neherkade 1 XI, Gravenhage",
         "postalCode":"2521VK",
         "stateOrProvince":"SH",
         "countryCode":"NL"
      },
      "orderLines":[
         {
            "productcode":"M435-003-04-WWA-5",
            "description":"P400Plus",
            "quantity":"1"
         },
         {
            "productcode":"CBL435-044-01-C",
            "description":"Dongle Ethernet RS232 USB 1,0m - P400",
            "quantity":"1"
         }
      ],
      "creationDate":"Fri May 03 15:30:15 CEST 2024"
   }
}
```

### Tab: Terminal settings updated

**Terminal settings updated**

```json
{
   "type":"terminalSettings.modified",
   "environment":"Live",
   "createdAt":"2024-04-23T22:42:51+02:00",
   "data":{
      "companyId":"ADYEN_COMPANY_ACCOUNT",
      "merchantId":"ADYEN_MERCHANT_ACCOUNT",
      "storeId":"YOUR_STORE_ID",
      "terminalId":"V400m-324688179",
      "updateSource":"Customer Area",
      "user":"Adyen"
   }
}
```

## See also

* [Webhooks](/development-resources/webhooks)
* [Webhook structure and types](/development-resources/webhooks/webhook-types/)
* [Terminal-generated display notifications](/point-of-sale/design-your-integration/notifications/display-notifications)
* [Terminal-generated event notifications](/point-of-sale/design-your-integration/notifications/event-notifications)
