Property ID on the Your PMS if already set
WebBookingPro <-> PMS API (1.0)
This API allows an PMS ("Property Manager System") to integrate with the WebBookingPro channel manager by implementing an API receiver in their environment for bookings and API push from their side for ARI.
To be considered as a partner, please complete our partnership form. Your application will be placed in a queue to be reviewed for fit andcompatibility. We will reach out if the partnership is approved.
Upon completion of the API Credentialing, you will then have access to your Test Account login information, you will receive channel ID (cid
), and the shared_secret
that is required for the API calls.
We request that you update our team at least once every two weeks while in development with your estimated completion date.
Partners that fail to provide an estimated completion date may have their participation eligibility rescinded.
Once you have finished your development process, you will be guided on certification integration process.
Once you get certified, our team will inform you of the next steps, including providing us with:
- Logos
- Information about your service
- Contact Information to various departments of your business (support, marketing, etc.)
If the Property is not existing already on WebBookingPro, you will have ability to Create Property using our API and automatically receive all required information needed for mapping.
Any existing WebBookingPro property use can add integration with your System through "Integrations" menu. The property owner then maps the rooms and rate plans in your System to complete the connection.
After a property has been setup, you should push full refresh to WebBookingPro channel maanger. This means PMS should send all availability, rates and restrictions for the next 1+ years (usually until the end of next year) for all rooms and rate plans. After this initial sync has been completed PMS should update the WebBookingPro whenever there is a change to ARI, eg. because a booking has been imported, room types of booking has been changed, price has been altered.
PMS should poll for bookings as backup in regular configurable intervals (e.g. 30 minutes). Bookings can and should be sent via a callback to your PMS to speed up the import.
In this case you have to provide us your endpoint for receiving push of reservations.
The full booking format is documented here. Please take note of which fields are required and which fields are optional.
You can respond with error IDs listed in our error code list. Please use the numeric codes in the ID
column. Only errors whose code starts with FAULT.OTA.
are supported.
On the WebBookingPro channel manager rooms and rate plans have a many-to-many relationship. This means that a room can have one or more rate plans, and each rate plan can be used in one or more rooms. For the ARIUpdate
calls we can send different wbp_rate_id
values for the same wbp_room_id
. Rates and restrictions are tied to rate plans, while availability is usually (99%) tied to rooms, so the units
will be constant across different rate plans for the same dates and for the same room, but rates and restrictions can vary. To close off a rate plan we are using the close
flag.
Also there is a possibility that rate plan has it's own separater availability. In this case you can send availabilty even on rate plan level.
Each Rate Plan on WebBookingPro can have either separate or inherited pricing, seprate on inherited inventory availability, seprate or inherited restrictions (close, minimum stay, maximum stay).
- OTA: Online travel agency (ex: booking.com, or competitor)
- PMS: Property Management System (your system you are integration with WebBookingPro)
- cid: Channel ID - a two to four character code used by WebBookingPro uniquely identify an PMS. WebBookingPro will define this upon approving request.
- guid: Globally unique identifier, a unique 36 character code which identifies a request. Useful for seeing if a request is a retry and for debugging.
PMS should send requests to the WebBookingPro with content-type application/json
, with the payload being in the body of the request. Gzip compression and keep-alives will be used if supported. HTTPS (SSL encryption) is required for any endpoint (WebBookingPro or yours).
HTTP response codes from WebBookingPro should always be 200. They have the content-type application/json
.
https://webbookingpro.redocly.app/_mock/wbpapi/
https://secure.webbookingpro.com/api/cloudpms/
Property ID on the WebBookinPro if already set, empty string otherwise
Password for property on WebBookingPro if already set, empty string otherwise.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/HealthCheck
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/HealthCheck
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/HealthCheck?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "HealthCheck",
"wbp_property_id": "",
"wbp_property_password": "",
"pms_property_id": "",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3"
}'
{ "success": true }
Request
Check/verify/validate the credentials stored in wbp_property_id
and wbp_property_password
. If the credentials are invalid return with error ID 1001
. If the connection needs to be enabled from the WBP side first return with error ID 1002
.
You can prepare UI for integration with WebBookingPro where user will be prompted to put in the credentials (wbp_property_id
and wbp_property_password
), which are provided by WebBookingPro. Both wbp_property_id
and wbp_property_password
should be retained by PMS and passed in every call.
It is up to your system if you will be handling connection and setup of password manually, visible to user or not, or using CreateProperty operationId.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
This list should contain of rooms enabled for the the Channel Manager. By default this is not present. It's only necessary for deep integrations or situations where the WebBookingPro plans to automatically/create destroy rooms using the PMS configuration. In a normal integration this isn't very usual.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/SetupProperty
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/SetupProperty
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/SetupProperty?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "SetupProperty",
"wbp_property_id": "",
"wbp_property_password": "",
"pms_property_id": "14524",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3"
}'
{ "success": true }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
This list of rooms will only be returned if enabled for the WebBookingPro by your PMS. By default this is not present. It's only necessary for deep integrations or situations where the PMS plans to automatically/create destroy rooms using PMS configuration. In a normal integration this isn't very usual.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/GetRoomTypes
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/GetRoomTypes
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/GetRoomTypes?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "GetRoomTypes",
"wbp_property_id": 1111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3"
}'
{ "success": true, "Rooms": [ { … }, { … } ] }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/GetRatePlans
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/GetRatePlans
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/GetRatePlans?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "GetRatePlans",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3"
}'
{ "success": true, "RatePlans": [ { … }, { … } ] }
Request
This call is used to send availability, rates and restrictions to your OTA. We will combine the updates into as few date ranges as possible, and we split bigger updates into several API requests. We also cache data and will not send ARI updates if the ARI data has not changed within a certain timeframe. You can ask us to alter the number of Inventory
objects we send per request. It's also possible to ask us to restrict maximum number of days per date range.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
3-letter ISO 4217 currency code. This is the currency the property has set for the channel connection, and may differ from the property's native currency. The OTA can use this field to assert that rates are sent in the correct currency.
End date for when the sent ARI is applicable. Note that this date is inclusive. For example, if the end_date
is 2028-08-29 and we send rate
= 20.15
, then this rate is applicable for someone staying/arriving on 2028-08-29.
Number of rooms bookable (available) for private rooms, or for the number of beds for shared/dorm rooms.
The single use rate, if only one person is staying. This will only be present for private rooms, and only if the occupancy of this room is higher than 1
. If the value is 0
we recommend to not make the single use rate available, or to just use the same price as for rate
.
Number of adults included in base rate. Sent for OBP enabled channels.
Number of children included in base rate. Sent for OBP enabled channels.
Maximum length of stay. A guest should not be able to book if they selected more nights than this value. A value of 0
means that there is no restriction.
There are two ways to restrict bookings by this value: a) Check the max_los
value for the arrival date, or b) check the max_los
value for all days the guest is intending to stay and restrict by the lowest value.
Minimum length of stay. A guest should not be able to book if they selected fewer nights than this value.
There are two ways to restrict bookings by this value: a) Check the min_los
value for the arrival date, or b) check the min_los
value for all days the guest is intending to stay and restrict by the lowest value.
Restricts whether a guest can arrive within the specified date range. If true
the guest can stay and depart within the date range, but not arrive.
Restricts whether a guest can depart within the specified date range. If true
the guest can stay and arrive within the date range, but not depart.
Restricts whether a guest can stay within the specified date range. If true
the guest cannot arrive, stay or depart within the date range. In many cases this is equivalent to units
= 0, however it is also used to make specific rate plans unavailable while leaving others bookable.
Cut off restriction: Specifies the number of days before the arrival date guests are allowed to book. The value of 0 resets to no restriction, which is the default. This restriction is mainly used for properties that want to have a lot of advanced bookings by offering a heavily discounted rate if guests book at least X number of days in advance.
Last Minute restriction: The number of days before the arrival date guests can book. The value of 0 resets to no restriction, which is the default. This restriction is mainly used to boost last-minute reservations.
Extra price for the Nth adult (e.g., adult_3, adult_4). Sent for OBP enabled channels.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/ARIUpdate
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/ARIUpdate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/ARIUpdate?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "ARIUpdate",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"currency": "USD",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3",
"Inventory": [
{
"wbp_room_id": "61365",
"wbp_rate_id": "rate_456",
"start_date": "2025-01-22",
"end_date": "2025-02-12",
"units": 5,
"rate": "15.00",
"rdef_single": "12.00",
"max_los": 14,
"min_los": 2,
"closearr": false,
"closedep": false,
"close": false,
"min_advanced_offset": 2,
"max_advanced_offset": 30,
"num_adults_included": 2,
"num_children_included": 2,
"adult_3": "8.00",
"child_3": "5.00"
},
{
"wbp_room_id": "61365",
"wbp_rate_id": "rate_888",
"start_date": "2025-01-22",
"end_date": "2025-02-12",
"units": 5,
"rate": "30.00",
"close": true
}
]
}'
{ "success": true }
Request
Returns a list of bookings/reservations which have not been previously downloaded or have been modified.
The pull interval can be freely set. For channels that do not support the CreateBooking
callback the interval is usually set to pull bookings every 5 minutes. If CreateBooking
is supported then the GetBookingList
will be used as a fallback every 30 minutes.
The WebBookingPro can also send to your PMS a NotifyBooking
callback to inform about new bookings available to be polled.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
With each request we send along wbp_booking_version
, which has the format YYYY-MM-DD HH:MM:SS
and indicates the time in UTC we last successfully requested bookings. It can be null
if no successful response has been received so far. Please use wbp_booking_version
to only return to us new or modified bookings made since then. To ensure that no booking are skipped due to a time-offset between your and our servers make sure to always reduce 5 or more minutes from the time given. Example: we provide 2017-06-22 12:09:19, then please return all new/modified/cancelled bookings since 2017-06-22 12:04:19 (5 minutes before the time sent).
If wbp_booking_version
is null
please return all bookings.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/GetBookingList
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/GetBookingList
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/GetBookingList?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "GetBookingList",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3",
"wbp_booking_version": "2022-03-22 12:09:19"
}'
{ "success": true, "Bookings": [ { … }, { … }, { … } ] }
Request
Returns detailed bookings made on WebBookingPro.
The booking format is described here in full detail.
Most fields are optional. This specification lists only the minimum required fields to be eligible for a successful Build-To-Us integration.
Prices: Send us sell rates (rates including taxes and fees). The sum of all room prices should equal the TotalPrice
field. Day rates should be per unit, so the sum of all day rates multiplied by the number of units should equal the room price.
Country codes: For CustomerCountry and CustomerNationality (if you include those fields) make sure to pass the country code as uppercase Alpha-2 ISO-3166 codes.
Currency codes: Make sure they are valid ISO-4217 (uppercase).
Make sure to provide OrderDate
and OrderTime
. They have to be provided in UTC.
Guest's credit/debit card details can be provided with the Payments
field.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/GetBookingId
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/GetBookingId
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/GetBookingId?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "GetBookingId",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3",
"booking_id": 111
}'
{ "success": true, "reservation": { "OrderId": "123456789", "OrderDate": "2018-04-22", "OrderTime": "18:02:58", "IsCancellation": 0, "IsModification": 0, "OrderAdults": 2, "OrderChildren": 0, "OrderCustomers": 2, "TotalCurrency": "USD", "TotalPrice": 134, "PaymentCollect": "Property", "Customers": [ … ], "Rooms": [ … ] } }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/AckBooking
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/AckBooking
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/AckBooking?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "AckBooking",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3",
"booking_id": "H7736-29385551"
}'
{ "success": false, "errors": [ { … } ] }
Request
Allows a property to cancel a booking on WebBookingPro from the PMS side.
IMPORTANT: Please contact us to enable this capability for your channel. It is NOT enabled by default.
The reason why the booking is to be canceled is given in the reason field. If the booking cannot be canceled the error code should be provided. Here are possible error codes:
- 4001 - booking has already departed
- 4002 - booking is already canceled
- 4003 - booking cannot be canceled. The reason is provided in the
msg
field.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/CancelBooking
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/CancelBooking
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/CancelBooking?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "CancelBooking",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"pms_cid": "mycloudpms1",
"shared_secret": "s3cr3ts4uc3",
"booking_id": "H7736-29385551",
"reason": "Guest called and requested cancellation"
}'
{ "success": false, "errors": [ { … } ] }
Request
Can be used to create a new property (including rooms) on WebBookingPro based on the details that you have in your PMS (eg. property name, address, images, room details, etc). This call needs to be activated explicitly from our side before you can use it. Please talk to your WebBookingPro contact before implementing this call!
Rate plan information was added at a later date and is only transmitted for new build-to-us implementations or if the feature has been enabled explicitly. Note that every room has a default rate plan, and the ID (even across different rooms) is always 0
.
Once approved please provide us with your terms & conditions for us to display to a property. You should provide them as a HTML file with only basic styling.
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
2-letter ISO 3166-1 alpha-2 country code. This is the country the property is located in.
3-letter ISO 4217 currency code. This is the default currency of the property.
Timezone the property is located in. Check (this document)[https://apidocs.myallocator.com/timezone-list.html] for valid values.
The default property email address. Defaults to default user email.
The email address used when forwarding channel booking emails. Defaults to default user email.
The email address of the contact person responsible for the property creation.
Default minimum length of stay setting for this property. See the description for min_los
in the ARIUpdate
call for more details on this restriction.
Default maximum length of stay setting for this property. See the description for max_los
in the ARIUpdate
call for more details on this restriction.
0
means there is no restriction.
Default breakfast setting for the property. Empty string means no breakfast is available, IN
means breakfast is included in the day rates and EX
means breakfast is excluded from day rates.
Note that this setting is likely not very useful and too broad.
List of weekdays that the property considers to be their weekend.
Note that this setting is likely not very useful.
Address of the property.
First address line of the property (usually the street name and house number)
2-letter ISO 3166-1 alpha-2 country code. This is the country the property is located in. Same as country
on the top level.
Geographic longitude of the property, given as decimal degrees. Positive for east, negative for west. Example: -117.15292
Geographic latitude of the property, given as decimal degrees. Positive for north, negative for south. Example: 32.70954
Phone number for the property with international country code (eg. +44 350 5697864
)
Contact information for invoicing
Name of the main contact for the property
Name of the account manager responsible for the property
First address line of the company or property owner (usually the street name and house number)
Second address line of the company or property owner (if applicable)
State of the company or property owner (if applicable)
City or locality the company or property owner is located in
List of property-level images
Description of the image to show on a channel (max. 2000 characters)
List of rooms configured for the property
true
if it's a dormitory (shared room), false
for private rooms.
Longer description of the room which describes a room to a potential guest.
List of room-level images.
Description of the image to show on a channel (max. 2000 characters)
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/CreateProperty
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/CreateProperty
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/CreateProperty?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"wbp_property_id": "",
"wbp_property_password": "",
"pms_property_id": "12345",
"pms_cid": "mycloudpms1",
"verb": "CreateProperty",
"shared_secret": "s3cr3ts4uc3",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"Property": {
"name": "Sample Hostel",
"country": "US",
"currency": "EUR",
"email_default": "someone@example.com",
"email_channel_booking": "bookings@example.com",
"email_contact": "person@example.com",
"default_min_los": 3,
"default_max_los": 0,
"breakfast": "",
"weekend": [
"tuesday",
"saturday",
"sunday"
],
"firstname": "John",
"lastname": "Smith",
"taxes": [
{
"amount": 10.567,
"applies_per": "booking",
"calculation_basis": "rate",
"category": "vat",
"code": "IVA",
"description": "Impuesto",
"id": 4761,
"is_fee": false,
"is_inclusive": true,
"is_per_night": false,
"is_percent": true,
"is_refundable": false,
"name": "IVA"
}
],
"timezone": "Asia/Thimphu",
"address": {
"address_line_1": "Main St",
"address_line_2": "Annex",
"city": "San Diego",
"zip": "92120",
"state": "CA",
"country": "US",
"website": "http://example.com",
"lon": "32.715736",
"lat": "-117.161087",
"phone": "+1 123123123 ",
"fax": "+1 123123123"
},
"business_contact": {
"main_contact_name": "Jeff Johnson",
"company_name": "Hostels Inc.",
"account_manager_name": "Hillary Jackson",
"vat_id": "US2345678",
"address_line_1": "Office Street",
"address_line_2": "3rd floor",
"state": "Office State",
"zip": "22222",
"city": "Office City",
"country": "DE"
},
"images": [
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c37.jpg",
"description": "Outside View",
"sort_order": 1
},
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c38.jpg",
"description": "Reception Area",
"sort_order": 2
}
],
"rooms": [
{
"pms_room_id": 45829,
"units": 5,
"beds": 2,
"dormitory": false,
"gender": "MIXED",
"label": "Double Room",
"description": "A potentially long description about the room",
"images": [
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c37.jpg",
"description": "Double bed",
"sort_order": 1
},
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c38.jpg",
"description": "Bath room",
"sort_order": 2
},
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c99.jpg",
"description": "Balcony",
"sort_order": 3
}
],
"rateplans": [
{
"pms_rate_id": 0,
"label_public": "Default Rate Plan",
"label_private": "Default Rate Plan",
"meal_codes": [
21
]
},
{
"label_public": "Non-refundable",
"label_private": "NR",
"pms_rate_id": 850,
"meal_codes": [
19,
21,
22
]
},
{
"label_public": "With Breakfast",
"label_private": "BR",
"pms_rate_id": 851,
"meal_codes": [
19
]
}
]
},
{
"pms_room_id": 290,
"units": 25,
"beds": 4,
"dormitory": false,
"label": "4-person private",
"description": null,
"images": [],
"rateplans": [
{
"label_private": "Default Rate Plan",
"label_public": "Default Rate Plan",
"pms_rate_id": 0
}
]
},
{
"pms_room_id": 329,
"units": 7,
"beds": 3,
"dormitory": false,
"label": "3-person private",
"description": "Best three bed room in town",
"images": [
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c37.jpg",
"description": "3-bed room",
"sort_order": 1
}
],
"rateplans": [
{
"label_public": "Default Rate Plan",
"label_private": "Default Rate Plan",
"pms_rate_id": 0
},
{
"pms_rate_id": 853,
"label_private": "NR",
"label_public": "Non-refundable"
}
]
},
{
"pms_room_id": 52,
"units": 3,
"beds": 30,
"dormitory": true,
"gender": "MIXED",
"label": "30-person mixed shared",
"description": null,
"images": [],
"rateplans": [
{
"pms_rate_id": 0,
"label_public": "Default Rate Plan",
"label_private": "Default Rate Plan"
},
{
"pms_rate_id": 852,
"label_public": "Non-refundable",
"label_private": "NR"
}
]
}
]
}
}'
CreateProperty
WebBookingPro will set up first password used for integration. You have to store this password in your system. This can be visible to user or not..
The instruction text will be displayed to the hotel after the property creation is complete. We will escape any HTML characters, so please only return plain text. You can include linebreaks (\n
) which will be converted into actual line breaks for HTML display.
If an instruction link is provided we will display the clickable link below the instruction text (if present).
Returning this field will help PMS to automatically map the WebBookingPro room IDs to the PMS room IDs. This is required to automatically send a full refresh after successful property creation. We strongly recommend that you return this field. If you do not support rate plans you do not need to return wbp_rate_id
and pms_rate_id
.
{ "success": false, "errors": [ { … } ] }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/DeleteRoom
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/DeleteRoom
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/DeleteRoom?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "DeleteRoom",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"shared_secret": "s3cr3ts4uc3",
"pms_cid": "mycloudpms1",
"room": {
"pms_room_id": 45769
}
}'
{ "success": true }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
Longer description of the room which describes a room to a potential guest.
List of property-level images
Description of the image to show on a channel (max. 2000 characters)
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/UpdateRoom
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/UpdateRoom
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/UpdateRoom?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "UpdateRoom",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"shared_secret": "s3cr3ts4uc3",
"pms_cid": "mycloudpms1",
"room": {
"pms_room_id": 45829,
"units": 5,
"beds": 2,
"dormitory": false,
"label": "Double Room",
"description": "A potentially long description about the room",
"gender": "MIXED",
"images": [
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c37.jpg",
"description": "Double bed",
"sort_order": 1
},
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c38.jpg",
"description": "Bath room",
"sort_order": 2
},
{
"url": "https://inbox.myallocator.com/n/user_image.xt?pid=1&img=97f471e5-5898-4e9a-ab94-da0751e19c99.jpg",
"description": "Balcony",
"sort_order": 3
}
],
"rateplans": [
{
"pms_rate_id": 0,
"label_public": "Default Rate Plan",
"label_private": "Default Rate Plan",
"meal_codes": [
21
]
},
{
"label_public": "Non-refundable",
"label_private": "NR",
"pms_rate_id": 850,
"meal_codes": [
19,
21,
22
]
},
{
"label_public": "With Breakfast",
"label_private": "BR",
"pms_rate_id": 851,
"meal_codes": [
19
]
}
]
}
}'
{ "success": true }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
Rate plan to delete
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/DeleteRatePlan
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/DeleteRatePlan
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/DeleteRatePlan?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "DeleteRatePlan",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"shared_secret": "s3cr3ts4uc3",
"pms_cid": "mycloudpms1",
"rateplan": {
"pms_rate_id": 115326
}
}'
{ "success": true }
Request reference ID, used for debugging and support requests.
Authentication between the PMS and the WebBookingPro. Identical for all requests. Not to be shared with customers.
The public name of the rate plan, that can also be shown to customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/UpdateRatePlan
- WebBookingPro endpoint
https://secure.webbookingpro.com/api/cloudpms/UpdateRatePlan
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/UpdateRatePlan?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"verb": "UpdateRatePlan",
"wbp_property_id": 111,
"wbp_property_password": "very-secret-password",
"pms_property_id": "25678",
"guid": "6C08B96E-450D-4E6A-9933-7D0305730305",
"shared_secret": "s3cr3ts4uc3",
"pms_cid": "mycloudpms1",
"rateplan": {
"pms_rate_id": 115629,
"label_private": "NR",
"label_public": "Non-refundable",
"max_occupancy": 3,
"min_occupancy": 1,
"meal_codes": [
19,
21,
22
],
"wbp_rate_id": "3456"
}
}'
{ "success": true }
Request
Note that the endpoint for this API call is on your PMS! This is for technical support on the WebBookingPro enqueue a full refresh of the property. You may use either wbp_property_id
(it may be resolved into a number of PMS IDs) or pms_property_id
. Note that full refreshes are heavy operations, so only call this when absolutely necessary. Under no circumstances use this callback on a scheduled basis.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/ARIFullRefresh
your_endpoint_url e.g. (https://yourcloudpms.com/api/callback/webookingpro)/ARIFullRefresh
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/ARIFullRefresh?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"pms_property_id": "998201",
"shared_secret": "s3cr3ts4uc3"
}'
{ "UpdateId": 99277138491 }
Request
Note that the endpoint for this API call is on your PMS!
WebBookingPro uses this callback to send us new bookings to your PMS. Using this callback ensures that there is no delay between the creation of the booking and import on PMS. Therefore it's strongly recommend to implement this callback. Even when implemented it's still necessary to also implement the GetBookingList
and GetBookingId
calls, which act as fallbacks if the CreateBooking
notification fails, when a reimport due to processing issues on PMS is necessary, or when a specific booking needs to be debugged.
The booking format is identical to what is being returned in the GetBookingId
call. The booking format is described here in full detail.
See the documentation about GetBookingId
for more details on the format. The specification listed here is not complete and just the minimal requirement.
Authentication between the OTA and the channel. Identical for all requests. Not to be shared with customers.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/BookingCreate
your_endpoint_url e.g. (https://yourcloudpms.com/api/callback/webookingpro)/BookingCreate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/BookingCreate?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"pms_property_id": "998201",
"wbp_property_id": 111,
"shared_secret": "s3cr3ts4uc3",
"reservation": {
"OrderId": 123456789,
"OrderDate": "2018-04-22",
"OrderTime": "18:02:58",
"IsCancellation": 0,
"TotalCurrency": "USD",
"TotalPrice": 134,
"Customers": [
{
"CustomerCountry": "US",
"CustomerEmail": "test@test.com",
"CustomerFName": "Test Firstname",
"CustomerLName": "Test Lastname"
}
],
"Rooms": [
{
"ChannelRoomType": 111,
"Currency": "USD",
"DayRates": [
{
"Date": "2017-11-08",
"Description": "Refundable Rate",
"Rate": 32.5,
"Currency": "USD",
"RateId": 13649
},
{
"Date": "2017-11-09",
"Description": "Refundable Rate",
"Rate\"": 34.5,
"Currency": "USD",
"RateId": 13649
}
],
"StartDate": "2017-11-08",
"EndDate": "2017-11-09",
"Price": 134,
"Units": 2
}
]
}
}'
{}
Request
Note that the endpoint for this API call is on your PMS!
With this API call the WebBookingPro can notify PMS to immediately request a GetBookingList
call based on the wbp_property_id
and the passed booking_id
. This should be send on any new booking OR any changes such as cancellations to an existing booking.
If the BookingCreate
API call has been implemented then NotifyBooking
is not required.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/NotifyBooking
your_endpoint_url e.g. (https://yourcloudpms.com/api/callback/webookingpro)/NotifyBooking
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/NotifyBooking?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d wbp_property_id=0 \
-d booking_id=0 \
-d shared_secret=string
{}
Request
Note that the endpoint for this API call is on your PMS!
Returns the rooms configured on your PMS. It's only necessary for deep integrations or situations where the WebBookingPro plans to automatically/create destroy rooms using PMS's configuration. In a normal integration this isn't very common.
- Mock server
https://webbookingpro.redocly.app/_mock/wbpapi/RoomInfo
your_endpoint_url e.g. (https://yourcloudpms.com/api/callback/webookingpro)/RoomInfo
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://webbookingpro.redocly.app/_mock/wbpapi/RoomInfo?shared_secret=YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"pms_property_id": "998201",
"shared_secret": "s3cr3ts4uc3"
}'
RoomInfo
List of rooms configured on your PMS.
If true
it's a dormitory (shared room), false
for private rooms.
Pricing Model. It can be "occ" for occupancy (default), "pax" for per adult person, "room" for per room/unit, "dormitory", "camp" for campsites (plot + per persons)
{ "RoomInfo": [ { … }, { … } ] }