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)