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

To enable webhooks, provide Mozrest with:

  1. Your webhook endpoint URL — Mozrest will send POST requests to this URL.
  2. A non-expiring Bearer Token — included in the Authorization header for authentication.

Endpoints

Send your webhook payloads to:

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

All requests must include your Token in the Authorization header.


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)