NOTE: This article is for advanced users. We recommend using this only if the Calendar Widgets won't work for your purposes. |
Overview
The Booking Engine uses a CartId
which connects to a back-end shopping cart that stores all of the details of the end-user's session, selections, etc. However, the CartId
is completely managed by the Booking Engine and cannot be generated externally or re-used (⚠️ it is NOT valid to link into the BE with a CartId
specified). So, if a 3rd party wants to dynamically drop a web visitor into our Booking Engine at any other step than the very first step (the standard link), they MUST take advantage of our external
endpoint.
The external
endpoint is just a standard link within the Booking Engine that takes a variety of query string parameters and based on those parameters will redirect the visitor to an internal page of the Booking Engine. The more specific the parameters passed, the deeper they will be passed into the Booking Engine.
For example, if only an arrival/departure is passed in, then the best the external
endpoint can do is pass you to step 2 where the BE displays the list of units/types available for those dates. If, however, a guest types and a unit id is included, the external
endpoint can validate that unit is still available and if so, pass the visitor directly to the Add-Ons page or the Confirm page (depending on the BE config for that business).
NOTE: Our calendar widgets use this endpoint. The widgets can be configured generally (to search the whole business) or specifically (to search only a specific unit). When you click Book Now
from the widget, it takes what it knows and applies the appropriate params (as defined below) to redirect the user into our BE.
The External Endpoint
The external
endpoint is:
https://guest.rezstream.com/external/[business-slug]?param0=value¶m1=value&etc
Standard Parameters
Parameter | Description |
---|---|
arrival |
Required. The requested arrival date. Required format: yyyy-MM-dd |
departure |
Required. The requested departure date. Required format: yyyy-MM-dd |
rooms |
Optional. The number (an integer ) of rooms requested. Default: whatever is configured in BE settings |
adults |
Optional. The number (an integer ) of guests requested. Because we support a variety of guest types (see Advanced Parameters below) this option simply sets the number of guests on the first guest type configured for the customer's BE. Since 99% of the time that is "Adults", this parameter is called adults. Default: whatever is configured in BE settings |
unit |
Optional. The id of the unit or unit type being requested. This is the internal id (a GUID ) from the PMS of the unit or unit type. Default: nothing/no unit |
rate |
Optional. The id of the rate being requested (in the case that multiple rates are available to choose from). This is the internal id (a GUID ) from the PMS of the rate. Default: nothing/no rate |
promocode |
Optional. A promotional code. Default: nothing/no promo code |
Examples
Redirect to Select Page by dates
https://guest.rezstream.com/external/[business-slug]?arrival=2019-05-25&departure=2019-05-30
redirects to https://guest.rezstream.com/select/[business-slug]?cartId=00000000-0000-0000-0000-000000000000
displaying units/types available between 5/25/2019 => 5/30/2019. The default number of guests and rooms will be specified in the BE search parameters since none were provided.
Redirect to Select Page by dates and guests
https://guest.rezstream.com/external/[business-slug]?arrival=2019-05-25&departure=2019-05-30&adults=4
redirects to https://guest.rezstream.com/select/[business-slug]?cartId=00000000-0000-0000-0000-000000000000
displaying units/types available for 4 adults (or whatever the first Guest Type is) between 5/25/2019 => 5/30/2019. The default rooms will be specified in the BE search parameters since none were provided.
Redirect to Select Page by dates and guests and rooms
https://guest.rezstream.com/external/[business-slug]?arrival=2019-05-25&departure=2019-05-30&adults=3&rooms=2
redirects to https://guest.rezstream.com/select/[business-slug]?cartId=00000000-0000-0000-0000-000000000000
displaying units/types available for 3 adults (or whatever the first Guest Type is) between 5/25/2019 => 5/30/2019. Since 2 rooms is specified, the BE will expect the user to select 2 rooms.
Redirect with Unit Specified
https://guest.rezstream.com/external/[business-slug]?arrival=2019-05-25&departure=2019-05-30&adults=4&unit=00000001-0000-0000-0000-000000000000
If the unit is available and the business sells POS or Packages online, this will redirect to https://guest.rezstream.com/addons/[business-slug]?cartId=00000000-0000-0000-0000-000000000000
(the Add-Ons/Enhancements page) and the unit (with id 00000001-0000-0000-0000-000000000000
) will already be in the cart for 5/25/2019 => 5/30/2019 with 4 adults (or whatever the first Guest Type is).
If the unit is available and the business does NOT sell POS or Packages online, this will redirect to https://guest.rezstream.com/confirm/[business-slug]?cartId=00000000-0000-0000-0000-000000000000
(the Confirmation page) and the unit (with id 00000001-0000-0000-0000-000000000000
) will already be in the cart for 5/25/2019 => 5/30/2019 with 4 adults (or whatever the first Guest Type is).
Advanced Parameters
⚠️ You may need additional assistance with this.
Parameter | Description |
---|---|
SelectedGuests[n].Id |
Because we support an unlimited number of "Guest Types" (Adults, Seniors, Children, Pets, etc.), you can be very specific about setting each one. This parameter allows you to set the Id (a GUID ) of the Guest Type you want to set. The n is simply a counter. If you had 3 guest types, you would use the values 0, 1 and 2 for the n value. |
SelectedGuests[n].NumberOfGuests |
See above for details. This param sets the number of requested guests of the specific type specified by the SelectedGuests[n].Id param. |
Form Generator
We have added an external endpoint form generator here:
https://www.rezstreamapps.com/form-generator/