product.statusChanged

product.statusChanged

⚠️

Deprecated

This event has been superseded by product.updated. Changes to a product's sale status in a branch are now reported with product.updated as well.

product.statusChanged still works and both events are sent together. We recommend migrating your integration to product.updated; this event will be retired once the migration is complete.

This event is triggered when a product's sales status changes in a restaurant.

Opening or closing the product for sale, enabling or disabling it for a specific order type (Table / Delivery / Takeaway), and assigning the product to a branch or removing it from a branch all trigger this event.

Payload Structure

The payload carries only the ids of the products whose status changed. Read their current sales status from the /Menu endpoint.

{
  "eventId": "9c1f0a2d-4b7e-4c1a-9f52-1d8e6b3a7c04",
  "webhookEventType": "product.statusChanged",
  "eventTimeUtc": "2025-10-21T11:59:50.1855135Z",
  "data": {
    "productIds": [2230902]
  },
  "restaurantIdentity": "3edc2d46-bfc0-44d1-b701-f18e56306aed"
}

Data Fields

FieldTypeDescription
productIdsarray(number)Ids of the products whose sales status changed. Same as productId in the /Menu response

restaurantIdentity identifies the branch the change belongs to; the event is always branch scoped. If an operation affects several branches, a separate event is sent for each.

Usage

When you receive the event, call /Menu for that branch and read the current status of the products in productIds. If a product is absent from the response, it has been removed from the branch or closed for sale.

A status change currently affects a single product, so productIds arrives with one element. The field is an array regardless, so that no integration change is needed if bulk status updates are added later. This also lets you reuse the same handling as product.priceChanged.