Skip to main content

Webhooks

Webhooks allow your RMS to push real-time updates to Mozrest whenever a booking or availability change occurs — no polling required. Timely webhook delivery is critical for accurate billing, availability sync, and a seamless guest experience.

Setup

Webhooks require no additional credentials. Authenticate every request with your Mozrest API key (available in the Partner Portal under Integration → Credentials), sent as a Bearer token in the Authorization header — this is how Mozrest identifies which RMS the events belong to. Do not generate or share a separate webhook token.

Endpoints

Send your webhook payloads to:

EnvironmentURL
Sandboxhttps://webhooks.sandbox.mozrest.com
Productionhttps://webhooks.mozrest.com

All requests must include your Mozrest API key as a Bearer token in the Authorization header.

Every authenticated webhook you send is recorded: it appears in the Partner Portal under Developers → Webhooks and counts toward the webhook rows of your integration checklist on the Integration dashboard. This is the endpoint the checklist observes — no other URL is needed.

Responses

StatusMeaning
200Webhook accepted and processed.
400Payload invalid — the response body describes the problem.
401 / 403Missing or invalid API key.
404Booking webhook references a booking id unknown to Mozrest. The webhook is still recorded in the Partner Portal.

Booking Update

Triggered when a booking's details change (e.g. party size, date).

{
"entity": "booking",
"entityId": "your-booking-id",
"action": "update",
"data": {
"partySize": 2,
"date": 1719599400
}
}
FieldTypeDescription
entityStringFixed: "booking"
entityIdStringYour unique booking identifier
actionStringFixed: "update"
data.partySizeIntegerUpdated party size
data.dateIntegerSlot time as UTC Unix timestamp

Status Update

Triggered when the booking status changes at the venue.

{
"entity": "booking",
"entityId": "your-booking-id",
"action": "update",
"data": {
"status": "no-show"
}
}
FieldTypeDescription
entityStringFixed: "booking"
entityIdStringYour unique booking identifier
actionStringFixed: "update"
data.statusStringNew booking status (see below)

Available statuses

StatusMeaning
confirmedBooking confirmed by the venue
rejectedBooking rejected by the venue
seatedGuest has been seated
completedGuest has paid and left
no-showGuest did not attend

Cancellation

Triggered when a booking is cancelled.

{
"entity": "booking",
"entityId": "your-booking-id",
"action": "cancel"
}
FieldTypeDescription
entityStringFixed: "booking"
entityIdStringYour unique booking identifier
actionStringFixed: "cancel"

Availability Update

Triggered when a booking-related event occurs that affects venue availability. Mozrest uses this to keep availability data in sync across channels.

{
"entity": "venue",
"entityId": "c0fa91e9-ed60-4d22-bd96-1545fb98936d",
"action": "booking_creation",
"data": {
"mealDate": 1742043600,
"partySize": 2,
"areaId": "8123477f-4630-404f-a7fb-eec13fe4cd37",
"contact": {
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@gmail.com",
"telephone": "44344223322",
"locale": "en"
}
}
}
FieldTypeDescription
entityStringFixed: "venue"
entityIdStringYour unique venue identifier
actionStringOne of: "booking_creation", "booking_update", "booking_cancellation"
data.mealDateIntegerDate in UTC Unix timestamp
data.partySizeIntegerParty size
data.areaIdStringArea identifier (if applicable)
data.contactObjectGuest contact details (see below)

Contact fields

FieldTypeDescription
contact.firstnameStringGuest first name
contact.lastnameStringGuest last name
contact.emailStringGuest email address
contact.telephoneStringGuest phone number
contact.localeStringPreferred locale (ISO 639-1)