Post Webhook

post

/webhook

{IntegratorProvidedURL}

STS Gen2 includes resource level notifications that it facilitates via webhooks.

Integrators must expose a service endpoint which accepts HTTP POST requests (webhook) to receive notifications from the STS Gen2 Notifications Service. The endpoint must implement TLS 1.2 and listen on port 443. The following top-level domains .com, .net, .org, .edu, .ca, .io, .site, .se, .sa are supported. Timeout for HTTP requests to subscribers is 15 seconds with no retry

HTTP POST requests from the STS Gen2 Notifications Service include Digest and Key-Id headers to allow the message to be verified.

Notification message body

Webhook requests contain a JSON object with a messages array. Each message has an id, creationDate, messageType, resource, and data object. The messageType.id value matches the subscription message type. The resource object identifies the organization hierarchy for the event; orgShortName is always present, locRef is present for property and revenue center scoped events, and rvcRef is present for revenue center scoped events when the message type supports revenue center subscriptions. EmployeesNotification supports organization and property level subscriptions only.

The following examples show the notification message body an integrator can expect for each supported subscription message type.

CheckNotification

Check notifications are sent when a subscribed check event occurs. The resource object includes the organization hierarchy and the checkRef for the affected check. The data object includes the check notification status and UTC timestamp.

{
  "messages": [
    {
      "id": "8253c2a5-5b3c-497d-a87f-f8bb2e250ba7",
      "creationDate": "2021-08-13T15:40:43.511Z",
      "messageType": {
        "id": "CheckNotification"
      },
      "resource": {
        "orgShortName": "tfoinc",
        "locRef": "fdmnh144",
        "rvcRef": "42",
        "checkRef": "929aacee2c6d42c78ae877e824c28eed00000431"
      },
      "data": {
        "status": "Submitted",
        "timeStampUtc": "2021-08-13T15:40:44.501Z"
      }
    }
  ]
}

OrganizationsNotification

Organizations notifications are sent when any property returned by the organizations service changes for a subscribed organization hierarchy. The data object identifies that a resource changed.

{
  "messages": [
    {
      "id": "8d001964-56b8-46ae-b607-a742f12deff4",
      "creationDate": "2025-11-14T10:39:09.2625517Z",
      "messageType": {
        "id": "OrganizationsNotification"
      },
      "resource": {
        "orgShortName": "tfoinc",
        "locRef": "fdmnh144",
        "rvcRef": "2"
      },
      "data": {
        "ResourceAction": "changed"
      }
    }
  ]
}

ConfigurationNotification

Configuration notifications are sent when any property returned by the configuration service changes for a subscribed organization hierarchy. The data.ResourceType value indicates the configuration area where the change occurred.

The following is a complete ConfigurationNotification webhook message. In this example, the ResourceType is Menus, which can indicate a menu change such as menu item name, price, menu item class, tags, or another menu property returned by the configuration service.

{
  "messages": [
    {
      "id": "e640d141-642e-4cba-9f94-bf4fe395c7b7",
      "creationDate": "2025-05-30T13:54:41.7491187Z",
      "messageType": {
        "id": "ConfigurationNotification"
      },
      "resource": {
        "orgShortName": "tfoinc",
        "locRef": "fdmnh144",
        "rvcRef": "26"
      },
      "data": {
        "ResourceVersion": "V2",
        "ResourceType": "Menus",
        "ResourceAction": "changed"
      }
    }
  ]
}

For Menus notifications, ResourceVersion can be included because the configuration service supports both V1 and V2 menu resources. When ResourceVersion is V2, the change relates to the Configuration V2 menu resource. When ResourceVersion is not included, the notification relates to Configuration V1 menus.

The data object can contain the following ResourceType values depending on the configuration area where the change occurred.

Menus - Configuration V2
"data": {
  "ResourceVersion": "V2",
  "ResourceType": "Menus",
  "ResourceAction": "changed"
}
Menus - Configuration V1
"data": {
  "ResourceType": "Menus",
  "ResourceAction": "changed"
}
TenderItems
"data": {
  "ResourceType": "TenderItems",
  "ResourceAction": "changed"
}
ServiceCharges
"data": {
  "ResourceType": "ServiceCharges",
  "ResourceAction": "changed"
}
Barcodes
"data": {
  "ResourceType": "Barcodes",
  "ResourceAction": "changed"
}
MenuItemAvailability
"data": {
  "ResourceType": "MenuItemAvailability",
  "ResourceAction": "changed"
}
Discounts
"data": {
  "ResourceType": "Discounts",
  "ResourceAction": "changed"
}
Taxes
"data": {
  "ResourceType": "Taxes",
  "ResourceAction": "changed"
}

EmployeesNotification

Employees notifications are sent when an employee is created, updated, or deleted for a subscribed organization or property. EmployeesNotification does not support revenue center level subscriptions.

{
  "messages": [
    {
      "id": "701f995a-14fc-4d9f-889f-a72395d9f1a9",
      "creationDate": "2025-11-14T12:39:21.3898405Z",
      "messageType": {
        "id": "EmployeesNotification"
      },
      "resource": {
        "orgShortName": "tfoinc",
        "locRef": "fdmnh144"
      },
      "data": {
        "ResourceAction": "changed"
      }
    }
  ]
}

Retry logic

At present retries are not supported. A notification will be sent only once.

Request

Supported Media Types
Header Parameters
  • Digest HMACSHA256 using key provided by Integrator at time of registration/subscription. The value of digest is Base64 encoded HMACSHA256 hash of the ASCII-encoded request message body. The Base64 decoded subscriber's Key is used as the hash key.
  • Key ID that was used to sign the digest.
Back to Top

Response

Supported Media Types

200 Response

A successful 200-299 response status code with an empty response body acknowledging receipt of the wetfoincok event.
Back to Top