Introduction
This documentation provides all necessary information to communicate with Mozrest Partner API:
- Use the Partner API to manage the following content:
- Expose a Booking services API based on Mozrest requirements, i.e. the following endpoints must be available:
- Export availability feed with a fresh snapshot of your availability (only for RwG).
- Webhook to easily notify updates.
Find here the guidelines, rules, formats and environments info to develop and go live with our system.
Partner API
Authentication
Partner API allows you to manage content, such as booking channels, venues, bookings, availability, etc.
To authorize, use this code:
EXAMPLE REQUEST:
# With shell, you can just pass the correct header with each request
curl "api-sandbox.mozrest.com/v1/rms" \
-H "Authorization: Bearer {api_key}"
Make sure to replace
{api_key}
with your API key.
You must provide your API key to authenticate to the Mozrest API.
Your API key carries many privileges, so be sure to keep it secret! You do not need to provide a password.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. You must authenticate for all requests.
Your API key will be provided by the Mozrest team.
Errors
Mozrest uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information, and codes in the 5xx range indicate an error coming from Mozrest's servers. However, all errors are not cleanly mapped to HTTP response codes. When a method call is not allowed, we return a 403 error code.
HTTP Status Code Summary
Code | State | Description |
---|---|---|
200 | OK | Everything worked as expected |
400 | Bad request | Missing a required parameter |
401 | Unauthorized | API key not valid |
402 | Request Failed | Parameters were valid but request failed |
403 | Forbidden | Access forbidden |
404 | Not Found | The requested item does not exist |
5xx | Server errors | Something went wrong on Mozrest's server |
Versioning
When Mozrest makes backwards-incompatible changes to the Mozrest Partner API, a new dated version is released.
The current version is v1.
Translations
Mozrest allows translation on certain entities. Those entities will indicate explicitly on the Object definition and at the field level which ones allow translation.
Default locale
The default locale can be defined at 2 levels:
- Globally by Partner
- On each Venue
Providing translation
OBJECT JSON EXAMPLE:
{
"name": "English translation as a default locale",
"translations": [
{
"locale": "de",
"data": [
{
"field": "name",
"content": "German translation for the field 'name'"
}
]
},
{
"locale": "es",
"data": [
{
"field": "name",
"content": "Spanish translation for the field 'name'"
}
]
}
]
}
When providing translation on a creation or update, a translations property must be provided with the following structure:
Key | Type | Description |
---|---|---|
locale | String | Locate to translate in ISO2 format |
data[field] | String | The field to translate.Example: name, description |
data[content] | String | The translation in the desired locale |
Get localized data
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas/{areaId}" \
-H "Authorization: Bearer {{api_key}}" \
-H "x-locale: es"
In order to get the data localized, x-locale the parameter must be provided on the request Headers.
The x-locale parameter must be provided in ISO2 format.
Pagination
Mozrest utilizes offset-limit pagination, using the parameter offset and limit.
Key | Constraints | Default | Description |
---|---|---|---|
offset | 0 to ... | 0 | The first requested element |
limit | 0 to 50 | 10 | The requested number of elements |
Environments
Production:
https://api.mozrest.com/v1/rms
Sandbox:
https://api-sandbox.mozrest.com/v1/rms
Booking Channels
A Booking Channel is a booking platform where customers can reserve or book a service online.
Find here the object definition.
Get Booking Channels
This endpoint retrieves a list of Booking Channels available to use.
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/booking-channels" \
-H "Authorization: Bearer {{api_key}}" \
-d "offset=0" \
-d "limit=10" \
-d "filters[criteria]=name"
EXAMPLE JSON:
{
"total": 4,
"data": [
{
"id": "60e5a3ed409541da3650bd90",
"name": "Booking Channel Name",
"logo": "https://url-to-logo.com"
},
{ ... }
]
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/booking-channels
Query Parameters
Parameter | Status | Description |
---|---|---|
filters[criteria] | Optional | Filter by Booking Channel name Like %criteria% format |
Enable Venues on a Booking Channel
This endpoint enables venues to be bookable on a Booking Channel.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/booking-channels/{bookingChannelId}/venues" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"venues": [
"60e5a3edfc8747ddfe1c10da",
"60e5a3ed45f889c669110306",
"60e5a3ed2db1dd4b81db45d4"
]
}'
EXAMPLE JSON:
{
"venues": [
"60e5a3edfc8747ddfe1c10da",
"60e5a3ed45f889c669110306",
"60e5a3ed2db1dd4b81db45d4"
]
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/booking-channels/{bookingChannelId}/link-venues
URL Parameters
Parameter | Status | Description |
---|---|---|
bookingChannelId | Mandatory | Booking Channel id to enable venues to be bookable through |
Body Parameters
Parameter | Status | Description |
---|---|---|
venues | Mandatory | Array with the id of the venues you want to be bookable through a specific Booking Channel |
Disable Venues from a Booking Channel
This endpoint allows you to disable venues from being bookable through a specific Booking Channel.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/booking-channels/{bookingChannelId}/unlink-venues" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"venues": [
"60e5a3edfc8747ddfe1c10da",
"60e5a3ed45f889c669110306",
"60e5a3ed2db1dd4b81db45d4"
]
}'
EXAMPLE JSON:
{
"venues": [
"60e5a3edfc8747ddfe1c10da",
"60e5a3ed45f889c669110306",
"60e5a3ed2db1dd4b81db45d4"
]
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/booking-channels/{bookingChannelId}/unlink-venues
URL Parameters
Parameter | Status | Description |
---|---|---|
bookingChannelId | Mandatory | Booking Channel id to disable venues to be bookable through |
Body Parameters
Parameter | Status | Description |
---|---|---|
venues | Mandatory | Array with the id of the venues you want to disable from being bookable through a specific Booking Channel / |
Companies
A Company is a legal entity that owns Venues, and can own from one single Venue to multiple.
When creating a Venue, a new Company is automatically generated with the exact Venue details if the Company is not explicitly defined.
If you want to create multiple Venues related to a single Company, you must create a Company and then create the different Venues indicating the Company.
Find here the object definition.
Get Available Companies
This endpoint retrieves a list of Companies.
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/company' \
--header 'Authorization: Bearer adcce721fdf62d1e32ce2ab2d4d0d38ceee5cbcafee40043ae0488922c3d6bd1443ab9b7aafb0472'
EXAMPLE JSON:
{
"total": 10,
"data": [
{
"id": "6400e7bd72a4c82d20561517",
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": 3600,
"includeSourceInNotes": true,
"sdkKey": "02C9846B4E1F43B1B3D747FFC0AC992C",
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226400e7bd72a4c82d20561517%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Proident%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%7D%7D%2C%22repeat%22%3Afalse%7D"
},
{ ... }
]
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/company
Get a Specific Company
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/company/{companyId}' \
--header 'Authorization: Bearer adcce721fdf62d1e32ce2ab2d4d0d38ceee5cbcafee40043ae0488922c3d6bd1443ab9b7aafb0472'
EXAMPLE JSON:
{
"id": "6400e7bd72a4c82d20561517",
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": 3600,
"includeSourceInNotes": true,
"sdkKey": "02C9846B4E1F43B1B3D747FFC0AC992C",
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226400e7bd72a4c82d20561517%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Proident%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
This endpoint retrieves a specific Company.
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/company/{companyId}
URL Parameters
Parameter | Status | Description |
---|---|---|
companyId | Mandatory | Id of the Company to retrieve. |
Create Company
This endpoint allows you to create a Company.
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/company' \
--header 'Authorization: Bearer adcce721fdf62d1e32ce2ab2d4d0d38ceee5cbcafee40043ae0488922c3d6bd1443ab9b7aafb0472' \
--header 'Content-Type: application/json' \
--data '{
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": null,
"includeSourceInNotes": "true"
}'
EXAMPLE JSON:
{
"id": "6400e7bd72a4c82d20561517",
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": 3600,
"includeSourceInNotes": true,
"sdkKey": "02C9846B4E1F43B1B3D747FFC0AC992C",
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226400e7bd72a4c82d20561517%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Proident%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/company
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Company's name. |
legalName | Optional | Company's legal name. |
address | Optional | Company's address. |
postalCode | Optional | Company's postal code. |
city | Mandatory | Company's city. |
countryCode | Mandatory | Company's country code. |
description | Optional | Company's description. |
minAdvanceBooking | Optional | The duration (in seconds) from when the last booking can be made to when the availability slot starts. |
minAdvanceBookingCancelling | Optional | The minimum advance notice in seconds required to cancel a booking. |
includeSourceInNotes | Optional | If you want to include the origin of the booking in the booking notes. |
sdkKey | Optional | L&R product access key. |
bookingMessage | Optional | The booking message. |
Update Company
This endpoint allows you to update a Company.
EXAMPLE REQUEST:
url --location --request PUT 'https://api-sandbox.mozrest.com/v1/rms/company/{companyId}' \
--header 'Authorization: Bearer adcce721fdf62d1e32ce2ab2d4d0d38ceee5cbcafee40043ae0488922c3d6bd1443ab9b7aafb0472' \
--header 'Content-Type: application/json' \
--data '{
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": null,
"includeSourceInNotes": "true"
}'
EXAMPLE JSON:
[
true
]
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/company/{companyId}
URL Parameters
Parameter | Status | Description |
---|---|---|
companyId | Mandatory | Id of the Company to update. |
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Optional | Company's name. |
legalName | Optional | Company's legal name. |
address | Optional | Company's address. |
postalCode | Optional | Company's postal code. |
city | Optional | Company's city. |
countryCode | Optional | Company's country code (ISO2 format). |
description | Optional | Company's description. |
minAdvanceBooking | Optional | The duration (in seconds) from when the last booking can be made to when the availability slot starts. |
minAdvanceBookingCancelling | Optional | The minimum advance notice in seconds required to cancel a booking. |
includeSourceInNotes | Optional | If you want to include the origin of the booking in the booking notes. |
sdkKey | Optional | L&R product access key. |
Brands
A Brand is a group of Venues within a Company.
Find here the object definition.
Get Available Brands
This endpoint retrieves a list of Brands.
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/brands' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda'
EXAMPLE JSON:
{
"total": 2,
"data": [
{
"id": "619f9c3de5f97823ea767gs4",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": null,
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22619f9c3de5f97823ea767gs4%22%2C%22timezone%22%3A%22Europe%5C%2FLondon%22%2C%22currency%22%3A%22GBP%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
},
{ ... }
]
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/brands
Get a Specific Brand
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda'
EXAMPLE JSON:
{
"id": "619f9c3de5f97823ea767gs4",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": null,
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22619f9c3de5f97823ea767gs4%22%2C%22timezone%22%3A%22Europe%5C%2FLondon%22%2C%22currency%22%3A%22GBP%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
This endpoint retrieves a specific brand.
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}
URL Parameters
Parameter | Status | Description |
---|---|---|
brandId | Mandatory | Id of the Brand to retrieve. |
Create Brand
This endpoint allows you to create a Brand.
EXAMPLE REQUEST:
curl --location 'https://api-sandbox.mozrest.com/v1/rms/brands' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda' \
--header 'Content-Type: application/json' \
--data '{
"name": "Delicatessen",
"company": "619dd442ca4b1064fcd99b08",
"logo": "https://my-logo-url.com"
}'
EXAMPLE JSON:
{
"id": "6401acd07e03aba11dc6ec71",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": "https://my-logo-url.com",
"fbInstalled": null,
"igInstalled": null,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226401acd07e03aba11dc6ec71%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/brands
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Brand's name. |
company | Mandatory | Company to which the Brand belongs. |
logo | Optional | Brand's logo. |
widgetLegalText | Optional | Brand's widget legal text. |
bookingApproach | Optional |
Update Brand
This endpoint allows you to update a Brand.
EXAMPLE REQUEST:
curl --location --request PUT 'https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda' \
--header 'Content-Type: application/json' \
--data '{
"name": "Delicatessen",
"logo": "https://my-logo-url.com",
}'
EXAMPLE JSON:
{
"id": "6401acd07e03aba11dc6ec71",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": "https://my-logo-url.com",
"fbInstalled": null,
"igInstalled": null,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226401acd07e03aba11dc6ec71%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}
URL Parameters
Parameter | Status | Description |
---|---|---|
brandId | Mandatory | Id of the brand to update. |
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Brand's name. |
logo | Optional | Brand's logo. |
Link Venues
This endpoint allows you to link multiple venues to a brand.
EXAMPLE REQUEST:
curl --location --request PUT 'https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}/link-venues' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda' \
--header 'Content-Type: application/json' \
--data '{
"venues": [
"62d7e0af5fb4549ab70ff7e7",
"62d7fbc8398919fe7f3d2a16"
]
}'
EXAMPLE JSON:
{
"id": "6401acd07e03aba11dc6ec71",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": "https://my-logo-url.com",
"fbInstalled": null,
"igInstalled": null,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226401acd07e03aba11dc6ec71%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}/link-venues
URL Parameters
Parameter | Status | Description |
---|---|---|
brandId | Mandatory | Id of the brand to link venues. |
Body Parameters
Parameter | Status | Description |
---|---|---|
venues | Mandatory | An array with the ids of the venues to link to. |
Unlink Venues
This endpoint allows multiple venues to be unlinked from one brand.
EXAMPLE REQUEST:
curl --location --request PUT 'https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}/unlink-venues' \
--header 'Authorization: Bearer ebda68797d69a4780fa73c33e7418e71646e614ade27aa3bd0fc45315b74c1babf481771de1f7bda' \
--header 'Content-Type: application/json' \
--data '{
"venues": [
"62d7e0af5fb4549ab70ff7e7",
"62d7fbc8398919fe7f3d2a16"
]
}'
EXAMPLE JSON:
{
"id": "6401acd07e03aba11dc6ec71",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": "https://my-logo-url.com",
"fbInstalled": null,
"igInstalled": null,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226401acd07e03aba11dc6ec71%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6401acd07e03aba11dc6ec71%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/brands/{brandId}/unlink-venues
URL Parameters
Parameter | Status | Description |
---|---|---|
brandId | Mandatory | Id of the brand to link venues. |
Body Parameters
Parameter | Status | Description |
---|---|---|
venues | Mandatory | An array with the ids of the venues to unlink to. |
Venues
A Venue is a business location that offers online booking services.
Find here the object definition.
Get Available Venues
This endpoint retrieves a list of available Venues.
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/venues" \
-H "Authorization: Bearer {{api_key}}" \
-d "offset=0" \
-d "limit=10" \
-d "filters[criteria]=par" \
-d "filters[city]=Par" \
-d "filters[countryCode]=FR" \
-d "filters[bookingChannel]=60e5a3cab8e5c33agh870101" \
-d "filters[notBookingChannel]=60e5a3cab8e5c33agh870101"
-d "filters[fbInstalled]=1"
-d "filters[igInstalled]=1"
EXAMPLE JSON:
{
"total": 4,
"data": [
{
"id": "60e5a3ed409541da3650bd90",
"externalId": "123456789",
"company": {
"id": "60e5a3ed409541da3650bd90",
"name": "Company Name"
},
"brand": {
"id": "60e5a3ed409541da3650bd90",
"name": "Brand Name"
},
"name": "Restaurant Name",
"countryCode": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"latitude": null,
"longitude": null,
"capacity": 20,
"url": null,
"minAdvanceBooking": 1,
"minAdvanceOnlineCancelling": 24,
"minCovers": 1,
"maxCovers": 12,
"currency": "GBP",
"paymentDefinition": {
"requireCreditCard": true,
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"sdkVersion": null,
"publishKey": "pk_test_2343823823823",
"merchantId": null,
},
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22621e5ba1a5f7c4fbb87ecd9b%22%2C%22timezone%22%3A%22America%5C%2FNew_York%22%2C%22currency%22%3A%22USD%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Docs+NY%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61a45e24757d22026a87f369%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa47c4%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%7D%7D%2C%22repeat%22%3Afalse%7D",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
},
{ ... }
]
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/venues
Query Parameters
Parameter | Status | Description |
---|---|---|
filters[criteria] | Optional | Filter by Venue name Like %criteria% format |
filters[city] | Optional | Filter by Venue city Like %city% format |
filters[brand] | Optional | Filter by Brand Id |
filters[countryCode] | Optional | Filter by Country code (ISO2 format) |
filters[bookingChannel] | Optional | Filter by Booking Channel |
filters[notBookingChannel] | Optional | Filter by Not Related with this Booking Channel |
filters[fbInstalled] | Optional | Filter Venues with Facebook installed Values: 0 (not installed), 1 (installed) |
filters[igInstalled] | Optional | Filter Venues with Instagram installed Values: 0 (not installed), 1 (installed) |
Get a Specific Venue
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}" \
-H "Authorization: Bearer {{api_key}}" \
EXAMPLE JSON:
{
"id": "60e5a3ed409541da3650bd90",
"externalId": "123456789",
"company": {
"id": "60e5a3ed409541da3650bd90",
"name": "Company Name"
},
"brand": {
"id": "60e5a3ed409541da3650bd90",
"name": "Brand Name"
},
"name": "Restaurant Name",
"countryCode": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"latitude": null,
"longitude": null,
"capacity": 20,
"url": null,
"minAdvanceBooking": 1,
"minAdvanceOnlineCancelling": 24,
"minCovers": 1,
"maxCovers": 12,
"currency": "GBP",
"paymentDefinition": {
"requireCreditCard": true,
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"sdkVersion": null,
"publishKey": "pk_test_2343823823823",
"merchantId": null,
},
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22621e5ba1a5f7c4fbb87ecd9b%22%2C%22timezone%22%3A%22America%5C%2FNew_York%22%2C%22currency%22%3A%22USD%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Docs+NY%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61a45e24757d22026a87f369%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa47c4%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%7D%7D%2C%22repeat%22%3Afalse%7D",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
}
This endpoint retrieves a specific Venue.
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/venues/{id}
URL Parameters
Parameter | Status | Description |
---|---|---|
id | Mandatory | Venue id to retrieve. Accepts Mozrest id or Partner's id |
Get Venue Credentials
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/credential" \
-H "Authorization: Bearer {{api_key}}" \
EXAMPLE JSON:
{
"email": "[email protected]",
"password": "k9iIB6zPoG6F"
}
This endpoint retrieves the credentials for a specific Venue to login during the Meta Onboarding.
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/venues/{id}/credential
URL Parameters
Parameter | Status | Description |
---|---|---|
id | Mandatory | Venue id to retrieve. Accepts Mozrest id or Partner's id |
Create Venue
This endpoint allows you to create a Venue.
EXAMPLE REQUEST:
curl POST "https://api-sandbox.mozrest.com/v1/rms/venues" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"name": "Venue Name",
"externalId": "123456789",
"company": "60e5a3ed409541da3650bd90",
"brand": "60e5a3ed409541da3650bd90",
"country": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"email": "[email protected]",
"url": "http://your-url.com",
"latitude": "51.56797",
"longitude": "-0.28122",
"timezone": "Europe/London",
"capacity": 100,
"minAdvanceBooking": 1,
"minAdvanceOnlineCanceling": 24,
"paymentDefinition[requireCreditCard]": "true",
"paymentDefinition[deposit][type]": "fixed_price",
"paymentDefinition[deposit][amount]": 2000,
"paymentDefinition[noShowFee][type]": "fixed_price",
"paymentDefinition[noShowFee][amount]": 2000,
"paymentGateway[gateway]": "stripe",
"paymentGateway[publishKey]": "pk_test_2343823823823",
"paymentGateway[merchantId]": "123456",
"currency": "GBP",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
},
}'
EXAMPLE JSON:
{
"id": "60e5a3ed409541da3650bd90",
"externalId": "123456789",
"company": {
"id": "60e5a3ed409541da3650bd90",
"name": "Company Name"
},
"brand": {
"id": "60e5a3ed409541da3650bd90",
"name": "Brand Name"
},
"name": "Restaurant Name",
"countryCode": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"latitude": null,
"longitude": null,
"capacity": 20,
"url": null,
"minAdvanceBooking": 1,
"minAdvanceOnlineCancelling": 24,
"minCovers": 1,
"maxCovers": 12,
"currency": "GBP",
"paymentDefinition": {
"requireCreditCard": true,
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"publishKey": "pk_test_2343823823823",
"merchantId": null
},
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22621e5ba1a5f7c4fbb87ecd9b%22%2C%22timezone%22%3A%22America%5C%2FNew_York%22%2C%22currency%22%3A%22USD%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Docs+NY%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61a45e24757d22026a87f369%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa47c4%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%7D%7D%2C%22repeat%22%3Afalse%7D",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
}
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/venues
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Venue name |
externalId | Mandatory | Venue id in Partner System |
company | Optional | Company id where the venue belongs. If blank, a new company will automatically be generated |
brand | Optional | Brand id |
country | Mandatory | Country code where the venue is located (ISO2 format) |
address | Mandatory | Address where the venue is located |
city | Mandatory | City where the venue is located |
postalCode | Mandatory | Postcode where the venue is located |
phoneNumber | Optional | Venue's phone number |
Optional | Venue's email | |
url | Optional | Venue's website URL |
latitude | Optional | Venue's latitude |
longitude | Optional | Venue's longitude |
timezone | Mandatory | Time zone where the Venue is located (see possible time zone values) |
minAdvanceBooking | Optional | Minimum hours in advance a booking has to be placed |
minAdvanceOnlineCancelling | Optional | Minimum hours in advance a booking can be canceled |
minCovers | Optional | Minimum covers allowed per reservation |
maxCovers | Optional | Maximum covers allowed per reservation |
currency | Mandatory | Currency code used for payments (ISO 4217 format) |
paymentDefinition[requireCreditCard] | Optional | Does the booking require a Credit Card Guarantee? [true, false] |
paymentDefinition[deposit][type] | Optional | What type of deposit is? ["fixed_price", "per_person"] |
paymentDefinition[deposit][amount] | Optional | Deposit amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentDefinition[noShowFee][type] | Optional | What type of no show fee is? ["fixed_price", "per_person"] |
paymentDefinition[noShowFee][amount] | Optional | No show fee amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentGateway[gateway] | Optional | Payment gateway used [ stripe, braintree, adyen ] |
paymentGateway[publishKey] | Optional | Publishable key for the payment gateway |
paymentGateway[merchantId] | Optional | Your Merchant Id for the payment gateway |
bookableAreas | Optional | Does the booking require to select an are? ["true", "false"] |
bookingMessage | Optional | Message from the venue to be displayed before to place a reservation |
paymentPolicy | Optional | Message from the venue related to payments/deposits in case credit card is required |
confirmationMessage | Optional | Message from the venue to be displayed after placing a reservation |
Update Venue
This endpoint allows you to update a Venue.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"id": "60e5a3ed409541da3650bd90",
"externalId": "123456789",
"name": "Restaurant Name",
"countryCode": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"latitude": null,
"longitude": null,
"capacity": 20,
"url": null,
"minAdvanceBooking": 1,
"minAdvanceOnlineCancelling": 24,
"minCovers": 1,
"maxCovers": 12,
"currency": "GBP",
"paymentDefinition": {
"requireCreditCard": true,
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"publishKey": "pk_test_2343823823823",
"merchantId": null,
},
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
}'
EXAMPLE JSON:
{
"id": "60e5a3ed409541da3650bd90",
"externalId": "123456789",
"company": {
"id": "60e5a3ed409541da3650bd90",
"name": "Company Name"
},
"brand": {
"id": "60e5a3ed409541da3650bd90",
"name": "Brand Name"
},
"name": "Restaurant Name",
"countryCode": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"latitude": null,
"longitude": null,
"capacity": 20,
"url": null,
"minAdvanceBooking": 1,
"minAdvanceOnlineCancelling": 24,
"minCovers": 1,
"maxCovers": 12,
"currency": "GBP",
"paymentDefinition": {
"requireCreditCard": true,
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"publishKey": "pk_test_2343823823823",
"merchantId": null
},
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22621e5ba1a5f7c4fbb87ecd9b%22%2C%22timezone%22%3A%22America%5C%2FNew_York%22%2C%22currency%22%3A%22USD%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Docs+NY%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61a45e24757d22026a87f369%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa47c4%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%7D%7D%2C%22repeat%22%3Afalse%7D",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue to update. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Optional | Venue name |
code | Optional | Venue id in Partner System To be deprecated on Dec 1st, 2022 New property: externalId |
externalId | Optional | Venue id in Partner System |
country | Optional | Country code where the venue is located (ISO2 format) |
address | Optional | Address where the venue is located |
city | Optional | City where the venue is located |
postalCode | Optional | Postcode where the venue is located |
phoneNumber | Optional | Venue's phone number |
Optional | Venue's email | |
emails | Optional | Venue's emails |
url | Optional | Venue's website URL |
latitude | Optional | Venue's latitude |
longitude | Optional | Venue's longitude |
minAdvanceBooking | Optional | Minimum hours in advance a booking have to be placed |
minAdvanceOnlineCancelling | Optional | Minimum hours in advance a booking can be canceled |
minCovers | Optional | Minimum covers allowed per reservation |
maxCovers | Optional | Maximum covers allowed per reservation |
currency | Optional | Currency code used for payments (ISO 4217 format) |
paymentDefinition[requireCreditCard] | Optional | Does the booking require a Credit Card Guarantee? [true, false] |
paymentDefinition[deposit][type] | Optional | What type of deposit is? ["fixed_price", "per_person"] |
paymentDefinition[deposit][amount] | Optional | Deposit amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentDefinition[noShowFee][type] | Optional | What type of no show fee is? ["fixed_price", "per_person"] |
paymentDefinition[noShowFee][amount] | Optional | No show fee amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentGateway[gateway] | Optional | Payment gateway used [ stripe, braintree, adyen ] |
paymentGateway[publishKey] | Optional | Publishable key for the payment gateway |
paymentGateway[merchantId] | Optional | Your Merchant Id for the payment gateway |
timezone | Optional | Time zone where the Venue is located (see possible time zone values) |
bookableAreas | Optional | Does the booking require to select an are? ["true", "false"] |
bookingMessage | Optional | Message from the venue to be displayed before to place a reservation |
paymentPolicy | Optional | Message from the venue related to payments/deposits in case credit card is required |
confirmationMessage | Optional | Message from the venue to be displayed after placing a reservation |
Delete Venue
This endpoint allows you to delete a Venue.
EXAMPLE REQUEST:
curl DELETE "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}" \
-H "Authorization: Bearer {{api_key}}" '
EXAMPLE RESPONSE:
{
removed: true
}
HTTP Request
DELETE https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue to deleted. Accepts Mozrest id or Partner's id |
Manage license
This endpoint allows you to manage the license for the available Mozrest features.
Activate license
EXAMPLE REQUEST:
curl POST "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/activate-license" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"feature": "listing"
}'
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/activate-license
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue to deleted. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
feature | Mandatory | Available features ['listing'] |
Deactivate license
EXAMPLE REQUEST:
curl POST "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/deactivate-license" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"feature": "listing"
}'
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/deactivate-license
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue to deleted. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
feature | Mandatory | Available features ['listing'] |
Areas
An Area is a space within the venue where customers can choose to book.
Find here the object definition.
Get Available Areas
This endpoint retrieves a list of available areas for a Venue.
The area entity allows translations.
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/{venueId}/areas" \
-H "Authorization: Bearer {{api_key}}" \
-H "x-locale: en" \
EXAMPLE JSON:
{
"total": 2,
"data": [
{
"id": "624fbc403cfd9a529ea17f36",
"venue": {
"id": "624fba8a5fb36da5ae6e73bf",
"name": "TapasTapas"
},
"name": "Dinning room",
"description": "Main dinning room in the restaurant",
"externalId": "0001",
"rwgDefault": true,
"byDefault": false,
"translations": [
{
"id": "624fbc414a3b895d7d00efb3",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "name",
"content": "Salón pricipal",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41924ab9a37e938247",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "description",
"content": "Main dinning room in the restaurant",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41c910729de305be29",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "description",
"content": "Salón principal del restaurante",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41fa21017434e24af7",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "name",
"content": "Dinning room",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
}
],
"createdAt": "2022-04-08T04:38:24+00:00",
"updatedAt": "2022-04-08T04:38:24+00:00"
},
{ ... }
]
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue's Areas to retrive. Accepts Mozrest id or Partner's id |
Get a Specific Area
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/{venueId}/areas/{area_id}" \
-H "Authorization: Bearer {{api_key}}" \
-H "x-locale: en" \
EXAMPLE JSON:
{
"id": "624fbc403cfd9a529ea17f36",
"venue": {
"id": "624fba8a5fb36da5ae6e73bf",
"name": "TapasTapas"
},
"name": "Dinning room",
"description": "Main dinning room in the restaurant",
"externalId": "0001",
"rwgDefault": true,
"byDefault": false,
"translations": [
{
"id": "624fbc414a3b895d7d00efb3",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "name",
"content": "Salón pricipal",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41924ab9a37e938247",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "description",
"content": "Main dinning room in the restaurant",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41c910729de305be29",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "description",
"content": "Salón principal del restaurante",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41fa21017434e24af7",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "name",
"content": "Dinning room",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
}
],
"createdAt": "2022-04-08T04:38:24+00:00",
"updatedAt": "2022-04-08T04:38:24+00:00"
}
This endpoint retrieves a specific Area for a Venue.
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas/{area_id}
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue's Area to retrive. Accepts Mozrest id or Partner's id |
areaId | Mandatory | Id of the Area to retrieve. Accepts Mozrest id or Partner's id |
Create Area
This endpoint allows you to create an Area for a Venue.
EXAMPLE REQUEST:
curl POST "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"name": "Terrace",
"externalId": "0002",
"description": "Terrace with view to the Rhein river",
"rwgDefault": "true",
"byDefault": false,
"translations": [
{
"locale": "en",
"data": [
{
"field": "name",
"content": "Terrace"
},
{
"field": "description",
"content": "Terrace with view to the Rhein river"
}
]
},
{
"locale": "es",
"data": [
{
"field": "name",
"content": "Terraza"
},
{
"field": "description",
"content": "Terraza con vistas al rio Rhein"
}
]
}
]
}'
EXAMPLE JSON:
{
"id": "624fbc8e4ac61a6a88bf1e75",
"venue": {
"id": "624fba8a5fb36da5ae6e73bf",
"name": "TapasTapas"
},
"name": "Terrace",
"description": "Terrace with view to the Rhein river",
"externalId": "0002",
"rwgDefault": true,
"byDefault": false,
"translations": [],
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
}
HTTP Request
POST https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue where the Area belongs. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Area's name. Allows translation |
externalId | Mandatory | Area id in Partner system |
description | Optional | Area's description. Allows translation |
rwgDefault | Optional | Use always for Reserve with Google bookings. Just applies to venues with RwG channel active. |
byDefault | Optional | Use as a default area in case on no area selected |
translations[locale] | Optional | Locale to translate in ISO2 format |
translations[data][field] | Optional | Field to translate |
translations[data][content] | Optional | Translation for the field |
Update Area
This endpoint allows you to update an Area of a Venue.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas/{area_id}" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"name": "Terrace",
"description": "Terrace with view to the Rhein river",
"rwgDefault": "true",
"translations": [
{
"locale": "en",
"data": [
{
"field": "name",
"content": "Terrace"
},
{
"field": "description",
"content": "Terrace with view to the Rhein river"
}
]
},
{
"locale": "es",
"data": [
{
"field": "name",
"content": "Terraza"
},
{
"field": "description",
"content": "Terraza con vistas al rio Rhein"
}
]
}
]
}'
EXAMPLE JSON:
{
"id": "624fbc8e4ac61a6a88bf1e75",
"venue": {
"id": "624fba8a5fb36da5ae6e73bf",
"name": "TapasTapas"
},
"name": "Terrace",
"description": "Terrace with view to the Rhein river",
"externalId": "0002",
"rwgDefault": true,
"byDefault": false,
"translations": [
{
"id": "624fbc8e3a167594c79ab7be",
"parentId": "624fbc8e4ac61a6a88bf1e75",
"locale": "es",
"field": "description",
"content": "Terraza con vistas al rio Rhein",
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
},
{
"id": "624fbc8e821586ddaf9e8ae5",
"parentId": "624fbc8e4ac61a6a88bf1e75",
"locale": "en",
"field": "description",
"content": "Terrace with view to the Rhein river",
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
},
{
"id": "624fbc8ee610240b8ef7cee3",
"parentId": "624fbc8e4ac61a6a88bf1e75",
"locale": "es",
"field": "name",
"content": "Terraza",
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
},
{
"id": "624fbc8ee85a913105a161eb",
"parentId": "624fbc8e4ac61a6a88bf1e75",
"locale": "en",
"field": "name",
"content": "Terrace",
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
}
],
"createdAt": "2022-04-08T04:39:42+00:00",
"updatedAt": "2022-04-08T04:39:42+00:00"
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/venues/{venueId}/areas/{area_id}
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Id of the Venue's Area to update. Accepts Mozrest id or Partner's id |
areaId | Mandatory | Id of the Area to update. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
name | Mandatory | Area's name. Allows translation |
description | Optional | Area's description. Allows translation |
rwgDefault | Optional | Use always for Reserve with Google bookings. Just applies to venues with RwG channel active. |
byDefault | Optional | Use as a default area in case on no area selected |
translations[locale] | Optional | Locale to translate in ISO2 format |
translations[data][field] | Optional | Field to translate |
translations[data][content] | Optional | Translation for the field |
Availability (only for RwG)
This set of endpoints are only required for those venues connected to Reserve with Google.
The purpose of this endpoints is to keep Mozrest availability cache in sync with you system, allowing Mozrest to rely on its internal availability cache to provide information to RwG each time they request availability without having any impact on your API.
Find here the availability object definition.
Real-Time Update
This endpoint allows you to update the availability of a specific venue in real-time in.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/venue/{venueId}/availability" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"availabilities": [
{
"date": "2022-03-20",
"partySize": 4,
"duration": 3600,
"totalSpot": 100,
"openSpot": 100,
"session": "lunch",
"slotData": [
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{
...
},
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
]
},
{
...
}
]
}'
EXAMPLE JSON:
{
"availabilities": [
{
"date": "2022-03-20",
"partySize": 4,
"duration": 3600,
"totalSpot": 100,
"openSpot": 100,
"session": "lunch",
"slotData": [
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{
...
},
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
}
]
}
]
}
RESPONSE:
{
"availabilitiesUpdated": 6
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/venue/{venueId}/availability
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Venue id to update. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
date | Mandatory | Date requested for availability (format: YYYY-MM-DD) |
partySize | Mandatory | Number of people |
duration | Optional | Duration of the booking slot |
totalSpot | Optional | Total spots for the session |
openSpot | Optional | Total available spots for the session |
session | Optional | Session when the booking is taking place (ie. dinner) |
slotData | Optional | List of available slots |
slotData[startSec] | Mandatory | Slot time on timestamp |
slotData[totalSpot] | Optional | Available and unavailable spots for this time slot. Optional if spots are defined globally |
slotData[openSpot] | Optional | Available spots for this time slot. Optional if spots are defined globally |
slotData[deposit] | Optional | Is a deposit required for this slot? |
slotData[depositAmount] | Optional | Deposit amount |
slotData[requireCc] | Optional | Does the booking require a Credit Card Guarantee? (If a deposit has already been asked = true not allowed.) |
Batch Real-Time Cancelation
This endpoint allows you to cancel in real-time the availability of a specific venue between the dates defined.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/venue/{venueId}/availability/cancel" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"from": "2022-03-20",
"till": "2022-03-29"
}'
EXAMPLE JSON:
{
"from": "2022-03-20",
"till": "2022-03-29"
}
RESPONSE:
{
"availabilitiesCancelled": 6
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/venue/{venueId}/availability/cancel
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Venue id to update. Accepts Mozrest id or Partner's id |
Body Parameters
Parameter | Status | Description |
---|---|---|
from | Mandatory | Start date you want to cancel (format: YYYY-MM-DD) |
till | Mandatory | End date you want to cancel (format: YYYY-MM-DD) |
Bookings
This is how the booking object structure looks like. The booking owner is presented as an array named "Contact".
Find here the object definition.
Update Booking
This endpoint allows to amend a pending status booking.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/booking/{id}" \
-H "Authorization: Bearer {{api_token}}" \
--data-raw '{
"partySize": 4,
"date": 1634401800
}'
EXAMPLE JSON:
{
"id": "60e890aca5f07b6ee5b950b1",
"venueId": "60e890aca5f07b6ee5b950b1",
"partySize": 4,
"status": "confirmed",
"date": "2021-11-07T12:00:00+02:00",
"notes": "I'm alergic to peanuts and broccoli",
"paymentGatewayToken":null,
"optInConsent": true
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/booking/{id}
URL Parameters
Parameter | Status | Description |
---|---|---|
id | Mandatory | Booking id in Partner system |
Body Parameters
Parameter | Status | Description |
---|---|---|
partySize | Optional | Number of persons |
date | Optional | Date time in Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp) |
Cancel Booking
This endpoint allows you to cancel a booking.
EXAMPLE REQUEST:
curl PUT "https://api-sandbox.mozrest.com/v1/rms/booking/{dd}/cancel" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"cancelActor": "venue",
"cancelReason": "Overbooking"
}'
EXAMPLE JSON:
{
"cancelActor": "venue",
"cancelReason": "Overbooking"
}
RESPONSE:
{
"id": "60e890aca5f07b6ee5b950b1",
"venueId": "60e890aca5f07b6ee5b950b1",
"partySize": 4,
"status": "canceled",
"date": "2021-11-07T12:00:00+02:00",
"notes": "I'm alergic to peanuts and broccoli",
"paymentGatewayToken":null,
"cancelActor": "user",
"cancelReason": "I can't finally attend",
"canceledAt": "2021-10-20T12:00:00+02:00",
"optInConsent": true
}
HTTP Request
PUT https://api-sandbox.mozrest.com/v1/rms/booking/{id}/cancel
URL Parameters
Parameter | Status | Description |
---|---|---|
id | Mandatory | Booking id in Partner system |
Body Parameters
Parameter | Status | Description |
---|---|---|
cancelActor | Mandatory | Who had canceled the booking |
cancelReason | Optional | Why the booking has been canceled |
Reports
Mozrest provides a set of endpoint to get reports.
Booking Report
This endpoint provides a bookings report for a specific venue and day.
Find here the booking report object definition.
EXAMPLE REQUEST:
curl GET "https://api-sandbox.mozrest.com/v1/rms/reports/booking?venueId=b62be154-a301-49bb-9f00-edcee8a6fe9f&date=2022-04-01'" \
-H "Authorization: Bearer {{api_key}}"
RESPONSE:
[
{
"id": "688f95fc-6196-4819-a754-439d7ea065cd",
"venue": "b62be154-a301-49bb-9f00-edcee8a6fe9f",
"channel": "RWG",
"bookingDate": "2022-04-01 09:16:49",
"mealDate": "2022-03-31 20:30:00",
"covers": "4",
"status": "confirmed",
"optIn": true,
"parentId": null
},
{
"id": "ce21494a-1c4f-433a-86f3-b93296b5598c",
"venue": "b62be154-a301-49bb-9f00-edcee8a6fe9f",
"channel": "RWG",
"bookingDate": "2022-04-01 09:21:12",
"mealDate": "2022-03-31 14:30:00",
"covers": "4",
"status": "confirmed",
"optIn": true,
"parentId": null
},
{
"id": "f93e6ff1-e4af-4dcb-9fa3-7874f4a8922d",
"venue": "b62be154-a301-49bb-9f00-edcee8a6fe9f",
"channel": "RWG",
"bookingDate": "2022-04-01 09:23:12",
"mealDate": "2022-03-31 15:30:00",
"covers": "4",
"status": "canceled",
"optIn": true,
"parentId": "ce21494a-1c4f-433a-86f3-b93296b5598c"
},
{
"id": "410d5ed9-b205-4517-b2d7-620caae41103",
"venue": "b62be154-a301-49bb-9f00-edcee8a6fe9f",
"channel": "RWG",
"bookingDate": "2022-04-01 14:37:06",
"mealDate": "2022-03-31 15:30:00",
"covers": "4",
"status": "canceled",
"optIn": true,
"parentId": null
}
]
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/reports/booking?venueId=b62be154-a301-49bb-9f00-edcee8a6fe9f&date=2022-04-01
URL Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Venue id in Partner system |
date | Mandatory | The date you want the bookings for. Format: YYYY-MM-DD |
Booking Services API
Authentication
All API requests must be make over HTTPS. You have to provide an API key for Mozrest Partner API to access the Booking Services API you expose.
All requests made to the Booking Service API are relative to the URL provided by you. For example, if you provide the URL “api.example.com”, then all HealthCheck requests will be sent to “api.example.com/mozrest/healthcheck”.
Healthcheck
This endpoint is used to check periodically the health status of the Booking Services API.
EXAMPLE REQUEST:
curl GET "https://partner-domain.com/v1/mozrest/healthcheck" \
HTTP Request
GET https://partner-domain.com/v1/mozrest/healthcheck
Response
Empty payload with Http status Code 200
Get Venue Availability
This endpoint retrieves a list of slots available for a specific Venue on a specific date, session and party size.
EXAMPLE REQUEST:
curl GET "https://partner-domain.com/v1/mozrest/availability" \
-H "Authorization: Bearer {{api_key}}" \
-d "venueId='60e5a3ed409541da3650bd90'" \
-d "date=2022-02-14" \
-d "partySize=4",
-d "areaId=60e5a3ed409541da3650b2d3"
EXAMPLE JSON:
{
"venueId": "60e5a3ed409541da3650bd90",
"date": "2022-02-14",
"partySize": 4,
"duration": 3600,
"totalSpot": 100,
"openSpot": 100,
"session": "lunch",
"slotData": [
{
"startSec": 1644847200,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{
"startSec": 1644849000,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{...},
],
"nextAvailability": 1639558800
}
HTTP Request
GET https://partner-domain.com/v1/mozrest/availability
Query Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Venue id in Partner system. Accepts Mozrest id or Partner's id |
date | Mandatory | Date requested for availability (format: YYYY-MM-DD) |
partySize | Mandatory | Number of people (ie. 4) |
areaId | Optional | The Area id to search availability |
Find a booking
This endpoint allows you to access a specific booking.
EXAMPLE REQUEST:
curl GET "https://partner-domain.com/v1/mozrest/booking/{bookingId}" \
-H "Authorization: Bearer {{api_key}}"
RESPONSE:
{
"id": "60e890aca5f07b6ee5b950b1",
"bookingChannelId": "60e890aca5f07b6ee5b950b3",
"bookingChannel": {
"id": "60e890aca5f07b6ee5b950b3",
"name": "Channel Name"
},
"venueId": "60e890aca5f07b6ee5b950b1",
"partySize": 4,
"status": "confirmed",
"date": "2021-11-07T12:00:00+02:00",
"notes": "I'm alergic to peanuts and broccoli",
"paymentGatewayToken":null,
"contact": {
"id": "60e890aca5f07b6ee5b950b1",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "44344223322",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"street": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}
HTTP Request
GET https://api-sandbox.mozrest.com/v1/rms/booking/{id}
URL Parameters
Parameter | Status | Description |
---|---|---|
bookingId | Mandatory | Booking id to retrieve |
Create a booking
This endpoint allows you to create a booking.
EXAMPLE REQUEST:
curl POST "https://partner-domain.com/v1/mozrest/booking" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"venueId": "60e890aca5f07b6ee5b950b1",
"bookingChannelId": "60e890aca5f07b6ee5b950b3",
"bookingChannel": {
"id": "60e890aca5f07b6ee5b950b3",
"name": "Channel Name"
},
"partySize": 4,
"areaId": "60e5a3ed409541da3650b2d3",
"date": 1639578600,
"notes": "I am allergic to peanuts",
"paymentGatewayToken": "pm_1JkkRzAY52ufXkvaHWKbasua",
"contact": {
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "44344223322",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"street": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}'
EXAMPLE JSON:
{
"venueId": "60e890aca5f07b6ee5b950b1",
"venueExternalId": "123456789",
"bookingChannelId": "60e890aca5f07b6ee5b950b3",
"bookingChannel": {
"id": "60e890aca5f07b6ee5b950b3",
"name": "Channel Name"
},
"partySize": 4,
"areaId": "60e5a3ed409541da3650b2d3",
"date": 1639578600,
"notes": "I am allergic to peanuts",
"paymentGatewayToken": "pm_1JkkRzAY52ufXkvaHWKbasua",
"contact": {
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "44344223322",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"street": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}
Response:
{
"id": "60e890aca5f07b6ee5b950b1",
"status": "pending_confirmation"
}
HTTP Request
POST https://partner-domain.com/v1/mozrest/booking
Body Parameters
Parameter | Status | Description |
---|---|---|
venueId | Mandatory | Venue id in Partner system |
bookingChannelId | Mandatory | Booking channel id where the customer placed the booking Deprecated |
bookingChannel[id] | Mandatory | Booking channel id where the customer placed the booking |
bookingChannel[name] | Mandatory | Booking channel name where the customer placed the booking |
partySize | Mandatory | Number of people |
areaId | Optional | Area where the reservation is made for |
date | Mandatory | Date time in Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp) |
notes | Optional | User notes |
paymentGatewayToken | Optional | Payment gateway token for customers credit card |
contact[firstname] | Mandatory | Customer's first name |
contact[lastname] | Mandatory | Customer's last name |
contact[email] | Mandatory | Customer's email |
contact[telephone] | Optional | Customer's phone number (including country code but NO sign) |
contact[locale] | Mandatory | Customer's language (ISO2 format) |
contact[address][country] | Mandatory | Customer's country (ISO2 format) |
contact[address][city] | Optional | Customer's city |
contact[address][region] | Optional | Customer's region |
contact[address][street] | Optional | Customer's address |
contact[address][postalCode] | Optional | Customer's postcode |
contact[optInConsent] | Optional | Allow to receive booking reminders and marketing emails from the Venue and the Partner (default: false) |
Update a booking
This endpoint allows you to create a booking.
EXAMPLE REQUEST:
curl PUT "https://partner-domain.com/v1/mozrest/booking/{bookingId}" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"partySize": 2,
"areaId": "60e5a3ed409541da3650b2d3",
"date": 1639665000,
"contact": {
"firstname": "john",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "34655040452",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"street": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}'
EXAMPLE JSON:
{
"partySize": 2,
"areaId": "60e5a3ed409541da3650b2d3",
"date": 1639665000,
"contact": {
"firstname": "john",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "34655040452",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"street": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}
Response:
{
"id": "60e890aca5f07b6ee5b950b1",
"status": "confirmed"
}
HTTP Request
https://partner-domain.com/v1/mozrest/booking/{bookingId}
URL Parameters
Parameter | Status | Description |
---|---|---|
bookingId | Mandatory | Booking id in Partner system |
Body Parameters
Parameter | Status | Description |
---|---|---|
partySize | Mandatory | Number of people |
areaId | Optional | Area where the reservation is made for |
date | Mandatory | Date time in Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp) |
contact[firstname] | Mandatory | Customer's first name |
contact[lastname] | Mandatory | Customer's last name |
contact[email] | Mandatory | Customer's email |
contact[telephone] | Optional | Customer's phone number (including country code but NO sign) |
contact[locale] | Mandatory | Customer's language (ISO2 format) |
contact[address][country] | Mandatory | Customer's country (ISO2 format) |
contact[address][city] | Optional | Customer's city |
contact[address][region] | Optional | Customer's region |
contact[address][street] | Optional | Customer's address |
contact[address][postalCode] | Optional | Customer's postcode |
contact[optInConsent] | Optional | Allow to receive marketing emails from the Venue and the Partner (default: false) |
Cancel a Booking
This endpoint allows you to cancel a booking.
EXAMPLE REQUEST:
curl PUT "https://partner-domain.com/v1/mozrest/booking/{bookingId}/cancel" \
-H "Authorization: Bearer {{api_key}}" \
--data-raw '{
"cancelActor": "owner",
"cancelReason": "Can't attend the appointment"
}'
EXAMPLE JSON:
{
"cancelActor": "owner",
"cancelReason": "Can't attend the appointment"
}
RESPONSE:
{
"id": "60e890aca5f07b6ee5b950b1"
}
HTTP Request
PUT https://partner-domain.com/v1/mozrest/booking/{venueId}/cancel
URL Parameters
Parameter | Status | Description |
---|---|---|
bookingId | Mandatory | Booking id in Partner system |
Body Parameters
Parameter | Status | Description |
---|---|---|
cancelActor | Mandatory | Who had canceled the booking |
cancelReason | Optional | Why the booking has been canceled |
Export Availability Feed
The availability feed contains information about the availability of the venues you want to connect to Reserve with Google.
For Mozrest to have every day the fresher snapshot of availability for the number of days you want to expose availability on Reserve with Google (RwG), you must send a daily feed (JSON) with the required format for Mozrest to process the information, update its internal cache and provide the information to RwG.
Format
EXAMPLE JSON:
{
"metadata": {
"total_shards": 2,
"shard_number": 0,
"nonce": null,
"date": 1649294100
},
"availabilities": [
{
"venueId": "123456",
"date": "2022-04-15",
"partySize": 4,
"duration": 3600,
"totalSpots": null,
"openSpots": null,
"slotData": [
{
"startSec": 1639558800, // Slot = 14:30
"totalSpot": 30,
"openSpots": 12,
"deposit": true,
"depositAmount": 10050, //100,50 in your currency
"requiresCc": false
},
{
"startSec": 1650034800, // Slot = 15:00
"totalSpots": 30,
"openSpots": 8,
"deposit": true,
"depositAmount": 10050, //100,50 in your currency
"requiresCc": false
}
]
},
{
"venueId": "123456",
"date": "2022-04-15",
"partySize": 2,
"duration": 3600,
"totalSpots": null,
"openSpots": null,
"slotData": [
{
"startSec": 1639558800, // Slot = 14:30
"totalSpots": 15,
"openSpots": 7,
"deposit": true,
"depositAmount": 10050, //100,50 in your currency
"requiresCc": false
},
{
"startSec": 1650034800, // Slot = 15:00
"totalSpots": 15,
"openSpots": 0,
"deposit": true,
"depositAmount": 10050, //100,50 in your currency
"requiresCc": false
}
]
}
]
}
The feed must include metadata that instructs Mozrest on how to interpret it.
Metadata
Key | Value example | Description |
---|---|---|
total_shards | 2 | Total number of shards for this feed. Shards do not need to be transferred in order, and they may not be processed in order. |
shard_number | 0 | Current shards number for this feed. Shard number is assumed to be zero-based. |
nonce | null | Id to identify the lot number of the file is being send. If just one file, send null. |
date | 1649294100 | send date on timestamp |
Availability
Key | Mandatory | Value example | Description |
---|---|---|---|
venueId | Yes | 123456 | The id on your system |
date | Yes | 2022-03-20 | Date for the availability |
partySize | Yes | 4 | Id to identify the lot number of the file is being send. If just one file, send null. |
areaId | No | 123456 | The id of the area on your system |
duration | No | 3600 | turn time in seconds |
totalSpots | No | 100 | Number of total spots of this availability. Optional if totalSpot are defined at the slot level |
openSpots | No | 75 | Number of open spots of this availability. Optional if openSpot are defined at the slot level |
slotData[startSec] | Yes | 1650033000 | Start time of this slot, using epoch time in seconds in UTC |
slotData[totalSpots] | Yes | 30 | Number of total spots for this slot. Optional if totalSpots are defined at the availability level |
slotData[openSpots] | Yes | 12 | Number of open spots for this slot. Optional if openSpots are defined at the availability level |
slotData[deposit] | No | true | Is a deposit required to place a booking? |
slotData[depositAmount] | No | 10050 | Amount to pay for a deposit. Format: Integer. Example: 100,50€ -> 10050 |
slotData[requiresCc] | No | true | Credit Card Guarantee. Not allowed if deposit is true. |
JSON sample feed
Feed Samples | Availability Coverage |
---|---|
Dining sample feed | 30 days |
File sizes and upload frequency
To determine the size of the feeds and frequency of delivery, use the following guidelines (a feed can be constituted of multiple files called "shards"):
- Suggested feed sharding:
- Availability feed : less than 10 shards
- Size of feed file and sharding:
- Keep shard file size below 200 MB (after compression). Use multiple shards if needed.
- Individual records sent in one shard don't need to be sent in the same shard in future feeds.
- For better performance, split data evenly among the shards, to make all the shard files similar in size.
- Use gzip to compress plain text JSON feeds. However, do so for each individual feed shard.
- Frequency of complete updates:
- Sends a complete feed once per day before 3 am UTC.
- The complete feed covers the next 30 days
We recommend that you give the files you upload unique names. For instance, it can be helpful to append each filename with a timestamp. This helps to troubleshoot issues and query for feed status.
Example: availability_feed_1649294100.01.json.gz
Credentials
Mozrest will provide you with the following information:
- host
- port
- user
- password
Webhook
The webhook allows you to easily notify updates to Mozrest.
UPDATE JSON:
{
"entity": "booking",
"entityId": "123456",
"action": "update",
"data": {
"date": 1639558800,
"partySize": 4
}
}
CANCEL JSON:
{
"entity": "booking",
"entityId": "123456",
"action": "cancel",
"data": {
"cancelReason": "Overbooked"
}
}
LISTING UPDATE JSON:
{
"entity": "listing",
"entityId": "123456",
"action": "update",
"data": {
"description": "The new description for my listing"
}
}
Parameters
Parameter | Type | Description |
---|---|---|
entity | Mandatory | Type of data to updade. ["booking", "venue", "listing"] |
entityId | Mandatory | Id in Partner's system to update |
action | Mandatory | Action to take. ["update", "cancel"] |
data | Mandatory | Array with the properties to be updated. |
Allowed parameters per entity and action
Entity | Action | Allowed parameters |
---|---|---|
booking | update | date, partySize |
booking | cancel | cancelReason |
listing | update | To be agreed with each partner |
Objects definition
The Booking Channel Object
EXAMPLE JSON:
{
"id": "60e5a3ed409541da3650bd90",
"name": "Booking Channel Name",
"logo": "https://url-to-logo.com/logo.png"
}
Key | Type | Description |
---|---|---|
id | String | Booking Channel id |
name | String | Booking Channel name |
logo | String | Booking Channel logo |
The Company Object
EXAMPLE JSON:
{
"id": "6400e7bd72a4c82d20561517",
"name": "Proident",
"legalName": "Proident Ltd",
"address": "29 Corringham Road",
"postalCode": "HA9 9PX",
"city": "Wembley",
"countryCode": "GB",
"description": "Mozrest Demo Company",
"minAdvanceBooking": 3600,
"minAdvanceBookingCancelling": 3600,
"includeSourceInNotes": true,
"sdkKey": "02C9846B4E1F43B1B3D747FFC0AC992C",
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%226400e7bd72a4c82d20561517%22%2C%22timezone%22%3A%22Europe%5C%2FParis%22%2C%22currency%22%3A%22EUR%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Proident%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D6400e7bd72a4c82d20561517%26display%3Dcompany%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
Key | Type | Description |
---|---|---|
id | String | Company id. |
name | String | Company's name. |
legalName | String | Company's legal name. |
address | String | Company's address. |
postalCode | String | Company's postal code. |
city | String | Company's city. |
countryCode | String | Company's country code (ISO2 format). |
description | String | Description |
minAdvanceBooking | Integer | The duration (in seconds) from when the last booking can be made to when the availability slot starts. |
minAdvanceBookingCancelling | Integer | The minimum advance notice in seconds required to cancel a booking. |
includeSourceInNotes | Bool | If you want to include the origin of the booking in the booking notes. |
sdkKey | String | L&R product access key. |
fbInstallLink | String | URL ready to install the Meta Business Extension for Facebook and Instagram Open a Link in a New Tab |
The Brand Object
EXAMPLE JSON:
{
"id": "619f9c3de5f97823ea767gs4",
"name": "Delicatessen",
"company": {
"id": "619dd442ca4b1064fcd99b08",
"name": "Mozrest Sandbox"
},
"logo": null,
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp-pre.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22619f9c3de5f97823ea767gs4%22%2C%22timezone%22%3A%22Europe%5C%2FLondon%22%2C%22currency%22%3A%22GBP%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Delicatessen%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa89e3%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D6218f06a64bc4c2b2d0ea118%26mzId%3D619f9c3de5f97823ea767gs4%26display%3Dbrand%22%7D%7D%2C%22repeat%22%3Afalse%7D"
}
Key | Type | Description |
---|---|---|
id | String | Brand id. |
name | String | Brand's name. |
company | Array | Company to which the Brand belongs. |
company[id] | String | Company's id. |
company[name] | String | Company's name. |
logo | String | Brand's logo. |
fbInstalled | Bool | If the facebook widget is installed at company level. |
igInstalled | Bool | If the instagram widget is installed at company level. |
fbInstallLink | String | URL ready to install the Meta Business Extension for Facebook and Instagram Open a Link in a New Tab |
The Venue Object
EXAMPLE JSON:
{
"name": "Venue Name",
"externalId": "123456789",
"company": {
"id": "60e5a3ed409541da3650bd90",
"name": "Company Name"
},
"brand": {
"id": "60e5a3ed409541da3650bd90",
"name": "Brand Name"
},
"country": "GB",
"address": "The Address 24, Picadilly",
"city": "London",
"postalCode": "W1J 9LL",
"phoneNumber": "442072343456",
"email": "[email protected]",
"emails": ["[email protected]","[email protected]"],
"url": "http://your-url.com",
"latitude": "51.56797",
"longitude": "-0.28122",
"capacity": 100,
"minAdvanceBooking": 1,
"minAdvanceOnlineCanceling": 24,
"paymentDefinition": {
"requireCreditCard": "true",
"deposit": {
"type": "fixed_price",
"amount": 2000
},
"noShowFee": {
"type": "fixed_price",
"amount": 2000
}
},
"paymentGateway": {
"gateway": "stripe",
"publishKey": "pk_test_2343823823823",
"merchantId": null,
},
"currency": "GBP",
"timezone": "Europe/London",
"fbInstalled": false,
"igInstalled": false,
"fbInstallLink": "https://facebook.com/dialog/oauth?client_id=1181690592254979&display=page&redirect_uri=https%3A%2F%2Fapp.mozrest.com%2Fauth%2Ffacebook%2Fcallback&response_type=token&scope=manage_business_extension&extras=%7B%22setup%22%3A%7B%22external_business_id%22%3A%22621e5ba1a5f7c4fbb87ecd9b%22%2C%22timezone%22%3A%22America%5C%2FNew_York%22%2C%22currency%22%3A%22USD%22%2C%22business_vertical%22%3A%22RESERVATIONS%22%7D%2C%22business_config%22%3A%7B%22business%22%3A%7B%22name%22%3A%22Docs+NY%22%7D%2C%22page_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61a45e24757d22026a87f369%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%2C%22below_button_text%22%3A%22In+partnership+with+Mozrest%22%7D%2C%22ig_cta%22%3A%7B%22enabled%22%3Atrue%2C%22cta_button_text%22%3A%22Reserve%22%2C%22cta_button_url%22%3A%22https%3A%5C%2F%5C%2Fwidget-pre.mozrest.com%3Fkey%3D61afa0d0b5fb12d27dfa47c4%26mzId%3D621e5ba1a5f7c4fbb87ecd9b%26display%3Dvenue%22%7D%7D%2C%22repeat%22%3Afalse%7D",
"bookableAreas": "true",
"bookingMessage": "It is obligatory to wear a mask when you are not seating at the table.",
"paymentPolicy": "Dinner Cancellation Policy: We ask that any cancellation to your reservation be made no less than 24 hours prior. For no shows, you will be subject to fee of $25 per person that will be applied to the credit card on file.",
"confirmationMessage": "Thank you for choosing Scampi! We look forward to you dining with us.<b>Please note, there is a 15 minutes grace period for late arrivals and we only seat complete parties.<b> If your party completes later than 15 minutes after your reservation time, you are subject to waiting for the next available table.<br>If we can do anything to better accommodate your dining experience, please email [email protected] or call us at 212.888.2171 between 12pm - 5pm, Monday - Friday. <br>"
}
Key | Type | Description |
---|---|---|
id | String | Venue id |
name | String | Venue name |
externalId | String | Venue id in Partner system |
company[id] | String | Company id where the venue belongs. If blank, a new company will automatically be generated |
company[name] | String | Company name where the venue belongs. If blank, a new company will automatically be generated |
brand[id] | String | Brand name |
brand[name] | String | Brand id |
country | String | Country code where the venue is located (ISO2 format) |
address | String | Address where the venue is located |
city | String | City where the venue is located |
postalCode | String | Postcode where the venue is located |
phoneNumber | String | Venue's phone number |
String | Venue's email | |
emails | Array | Venue's emails |
url | String | Venue's website URL |
latitude | String | Venue's latitude |
longitude | String | Venue's longitude |
minAdvanceBooking | Int | Minimum hours in advance a booking have to be placed |
minAdvanceOnlineCancelling | Int | Minimum hours in advance a booking can be canceled |
minCovers | Int | Minimum covers allowed per booking |
maxCovers | Int | Maximum covers allowed per booking |
currency | String | Currency code used for payments (ISO 4217 format) |
paymentDefinition[requireCreditCard] | String | Does the booking require a Credit Card Guarantee? ["true", "false"] |
paymentDefinition[deposit][type] | String | What type of deposit is? ["fixed_price", "per_person"] |
paymentDefinition[deposit][amount] | Int | Deposit amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentDefinition[noShowFee][type] | String | What type of no show fee is? ["fixed_price", "per_person"] |
paymentDefinition[noShowFee][amount] | Int | No show fee amount. Integer multiply per 100. Ie. 20,00€: 2000 |
paymentGateway[gateway] | String | Payment gateway used [ stripe, braintree, adyen ] |
paymentGateway[publishKey] | String | Publishable key for the payment gateway |
paymentGateway[merchantId] | Optional | Your Merchant Id for the payment gateway |
timezone | String | Time zone where the Venue is located (see possible time zone values) |
fbInstalled | Boolean | Shows if the Venue has installed the Meta Business Extension for Facebook Values: false (not installed), true (installed) |
igInstalled | Boolean | Shows if the Venue has installed the Meta Business Extension for Instagram Values: false (not installed), true (installed) |
fbInstallLink | String | URL ready to install the Meta Business Extension for Facebook and Instagram Open a Link in a New Tab |
bookableAreas | String | Does the venue requires to choose an area? ["true", "false"] |
bookingMessage | String | Message to show to the user after a booking has been placed. |
paymentPolicy | String | Message from the venue related to payments/deposits in case credit card is required |
confirmationMessage | String | Message from the venue to be displayed after placing a reservation |
The Area Object
EXAMPLE JSON:
{
"id": "624fbc403cfd9a529ea17f36",
"venue": {
"id": "624fba8a5fb36da5ae6e73bf",
"name": "TapasTapas"
},
"name": "Dinning room",
"description": "Main dinning room in the restaurant",
"externalId": "0001",
"rwgDefault": true,
"byDefault": false,
"translations": [
{
"id": "624fbc414a3b895d7d00efb3",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "name",
"content": "Salón pricipal",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41924ab9a37e938247",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "description",
"content": "Main dinning room in the restaurant",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41c910729de305be29",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "es",
"field": "description",
"content": "Salón principal del restaurante",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
},
{
"id": "624fbc41fa21017434e24af7",
"parentId": "624fbc403cfd9a529ea17f36",
"locale": "en",
"field": "name",
"content": "Dinning room",
"createdAt": "2022-04-08T04:38:25+00:00",
"updatedAt": "2022-04-08T04:38:25+00:00"
}
],
"createdAt": "2022-04-08T04:38:24+00:00",
"updatedAt": "2022-04-08T04:38:24+00:00"
}
Key | Type | Description |
---|---|---|
id | String | Area id |
name | String | Area's name. Allows translation |
externalId | String | Area id in Partner system |
description | String | Area's description. Allows translation |
rwgDefault | Bool | Use always for Reserve with Google bookings. Just applies to venues with RwG channel active. |
byDefault | Bool | Use as a default area in case on no area selected |
translations[locale] | String | Locale to translate in ISO2 format |
translations[data][field] | String | Field to translate |
translations[data][content] | String | Translation for the field |
The Availability Object
EXAMPLE JSON:
{
"venueId": "60e5a3ed409541da3650bd90",
"date": "2020-03-20",
"partySize": 4,
"duration": 3600,
"totalSpot": 100,
"openSpot": 100,
"session": "lunch",
"slotData": [
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{
"startSec": 1639558800,
"totalSpot": 100,
"openSpot": 75,
"deposit": true,
"depositAmount": 10000,
"requireCc": false
},
{...},
],
"nextAvailability": 1639558800
}
Key | Type | Description |
---|---|---|
venueId | String | Venue id |
date | String | Date requested for availability (format: YYYY-MM-DD) |
partySize | Int | Number of people |
duration | Int | Duration of the booking slot |
totalSpot | Int | Total spots for the session |
openSpot | Int | Total available spots for the session |
session | String | Session when the booking is taking place (ie. dinner) |
slotData | Array | List of available slots |
slotData[startSec] | Int | Slot time in Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp) |
slotData[totalSpot] | Int | Optional if spots are defined globally |
slotData[openSpot] | Int | Optional if spots are defined globally |
slotData[deposit] | Boolean | Is a deposit required for this slot? |
slotData[depositAmount] | Int | Deposit amount |
slotData[requireCc] | Boolean | Does the booking require a Credit Card Guarantee? (If a deposit has already been asked = true not allowed.) |
nextAvailability | Int | In case of no availability, the next available slot can be provided to inform the user. Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp |
The Booking Object
EXAMPLE JSON:
{
"id": "60e890aca5f07b6ee5b950b1",
"venueId": "60e890aca5f07b6ee5b950b1",
"venueExternalId": "123456789",
"bookingChannelId": "60e890aca5f07b6ee5b950b3",
"bookingChannel": {
"id": "60e890aca5f07b6ee5b950b3",
"name": "Channel Name"
},
"partySize": 4,
"session": "lunch",
"status": "confirmed",
"date": "2021-11-06T12:00:00+02:00",
"notes": "I'm alergic to peanuts",
"cancelActor": null,
"cancelReason": null,
"canceledAt": null,
"contact": {
"id": "60e890aca5f07b6ee5b950b1",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"telephone": "44344223322",
"locale": "en",
"address": {
"country": "GB",
"city": "London",
"region": "London",
"address": "Picadilly Sq. 15",
"postalCode": "W1J 9LL"
},
"optInConsent": true
}
}
Key | Type | Description |
---|---|---|
id | String | Booking id |
venueId | String | Venue id for booking |
venueExternalId | String | Venue id on Partner system for the booking |
bookingChannelId | String | Booking channel id where the customer placed the booking Deprecated |
bookingChannel[id] | String | Booking channel id where the customer placed the booking |
bookingChannel[name] | String | Booking channel name where the customer placed the booking |
status | String | Booking status [pending, pending_confirmation, requires_payment, confirmed, canceled, faked, honored] |
partySize | Int | Number of people |
session | String | Booking session |
date | Datetime | Booking date and time in Timestamp UTC format (ie. Saturday, 16 October 2021 14:30 is 1634387400 on timestamp) |
notes | Text | User notes |
cancelActor | String | Who had canceled the booking |
cancelReason | Text | Why the booking has been canceled |
canceledAt | Datetime | When the booking has been canceled (UTC) |
paymentGatewayToken | String | Payment gateway token for customers credit card |
contact[firstname] | Text | Customer's first name |
contact[lastname] | Text | Customer's last name |
contact[email] | Text | Customer's email (ie. [email protected]) |
contact[telephone] | Int | Customer's telephone including country code but NO sign (ie. +44 20 7234 3456 -> 442072343456 ) |
contact[locale] | Text | Customer's language (ISO2 format) |
contact[address][country] | Text | Customer's country (ISO2 format) |
contact[address][city] | Text | Customer's city |
contact[address][region] | Text | Customer's region |
contact[address][street] | Text | Customer's address |
contact[address][postalCode] | Text | Customer's postal code |
contact[optInConsent] | Boolean | Allow to receive marketing emails from the Venue and the Partner (default: false) |
The Booking Report Object
EXAMPLE JSON:
{
"id": "410d5ed9-b205-4517-b2d7-620caae41103",
"venue": "b62be154-a301-49bb-9f00-edcee8a6fe9f",
"channel": "RWG",
"bookingDate": "2022-04-01 14:37:06",
"mealDate": "2022-03-31 15:30:00",
"covers": "4",
"status": "canceled",
"optIn": true,
"parentId": null
}
Key | Type | Description |
---|---|---|
id | String | Booking id on the Partner system |
venue | String | Venue id on the Partner system for booking |
channel | String | Booking channel code that originated the booking |
bookingDate | Datetime | Datetime where the booking was placed |
mealDate | Datetime | Datetime where the booking will be consumed |
covers | Int | Number of people |
status | String | Booking status [confirmed, cancelled] |
optIn | Bool | Did the user gave consent for marketing communications? |
parentId | String or null | When a booking is cancelled due a modification on the channel, the new booking will be the parentId of the cancelled one. |