Webhook Events
Complete reference of webhook event types emitted by Tableo.
Tableo delivers the following event types to your webhook URLs. Subscribe to a
subset of them via the events[] field when
creating or
updating a webhook.
Booking events
All booking events include the booking snapshot under data.booking. Status
transitions emit a single status-specific event — they do not also emit
booking.updated.
booking.created
A new booking was created.
booking.updated
A booking was edited without a status change. Triggers include changes to date, time, party size/covers, dining area, table reassignment, patron, or reference.
The payload adds data.changes.updated_fields: an array naming the booking
fields that changed in this edit. Possible values:
datetimeend_timeno_of_adultsno_of_childrendining_area_idpatron_idreferencetable_histories
Status changes do not trigger booking.updated — they use the
status-specific events below.
booking.confirmed
The booking transitioned to confirmed.
booking.accepted
The booking transitioned to accepted.
booking.cancelled
The booking transitioned to cancelled.
booking.rejected
The booking transitioned to rejected.
booking.noshow
The booking transitioned to no-show.
booking.seated
The booking transitioned to arrived / seated.
Test event
webhook.ping
Synthetic test delivery emitted only by the
test endpoint
(POST /api/restaurant/webhooks/{webhook_id}/test).
webhook.ping is not a subscribable event. It is delivered to the target
webhook regardless of its events[] subscription, and is signed with the
webhook's secret so you can verify your signature-checking code end-to-end.
Delivery semantics
- At-least-once delivery. A single event may be delivered more than once —
always deduplicate by
X-Webhook-Id(or the payloadid). - Retries. Any non-2xx response or network error is treated as a failure
and retried automatically, up to
max_attempts(3). Retries may arrive out of order relative to other events. - No global sequence. There is no monotonic global event sequence. Use
X-Webhook-Delivery-Idfor best-effort ordering within a single webhook.
See Create a webhook subscription for the full list of delivery headers and signature verification.