Skip to main content

CRS booking engine best practices with direct booking links and variables

Place guests directly in the booking engine from your website, landing pages, or emails using customized URLs with specific search criteria.

M
Written by Michelle Normoyle
Updated over 3 weeks ago

Direct booking links

Direct booking links are designed for placing guests directly in the booking engine from your website, landing pages, or emails. Since searches can be refined by specific dates, rates, and other criteria, we strongly recommend testing the entire shopper journey. This includes starting from the originating pages and exploring use cases where there is no availability. Ensuring that guests always have a clear pathway to view all available options for their selected dates or alternative dates with availability is crucial for the booking experience.

Some of the more technical details are intended for use by hoteliers and their webmasters implementing the booking engine and aligning its design with the property or brand's web presence. This is still good information to understand what is possible for your marketing and selling strategies.

⚠️Important: The calendar driven shopping page starts on the detail page (not the index/availability page) and as a result, does not use some of these variables and those are called out in the list as they are not needed. This flow will also present the calendar to select dates prior to proceeding to the available offers as requested in the URL.


Base booking engine URLs

You can use these base URLs for different booking engine pages.

πŸ“ŒNote: Variables are appended to the base link following the '?'. You can add additional variables to the end of the URL by adding a '&'.


Property identification variables

Property code (pcode)

Compatible pages: INDEX, DETAILS, SHOP

Use your CRS Property code from the CRS.

πŸ“ŒNote: You can find this under Property Description > Address/Contacts > CRS Property ID.

Property ID or Hotel ID (propertyID / hotelID)

Compatible pages: INDEX, DETAILS, SHOP

Use your CRS property numeric ID.

πŸ€“Tip: All clients can find this by hovering over the property name in the CRS. Multi-property clients can also find it next to the property name in the select property drop-down box in the CRS.

Multi-property page variables

Hotel group ID (hgID)

Compatible pages: DEFAULT, SHOP

Use your CRS hotel group or chain numeric ID to display a list of hotels under a given chain or hotel group using the default.aspx or shop.aspx pages.

πŸ“ŒNote: You can find this by hovering over the chain name in the CRS.

Selected hotel (selectedHotel)

Compatible pages: SHOP

Use this to pre-select a specific hotel in the multi-property view.

Format: selectedHotel=<CRS property code>

Language and currency variables

Language ID (langID)

Compatible pages: INDEX, DETAILS, SHOP

Specify the property language using a numerical value.

πŸ“ŒNote: See Language ID List for full details. Default is &langID=1 for US English.

Currency ID (currID)

Compatible pages: INDEX, DETAILS, SHOP

Specify the currency using a numeric value.

πŸ“ŒNote: See Currency ID List for full details. This will default to the currency listed as default in Property Description > Currency.

Calendar variables

⚠️Important: Only use one "leadtime or checkin" variable in a given URL. Only use one "nights or checkout" variable in a given URL.

Check-in date (checkin)

Compatible pages: INDEX, DETAILS, SHOP

Specify the arrival date using the format appropriate for the selected language.

Examples:

  • 12/01/2022 for December 1st, 2022 (EN-US)

  • 01/12/2022 for December 1st, 2022 (EN-GB)

Check-out date (checkout)

Compatible pages: INDEX, DETAILS, SHOP

Specify the departure date using the format appropriate for the selected language.

Examples:

  • 12/03/2022 for December 3rd, 2022 (EN-US)

  • 03/12/2022 for December 3rd, 2022 (EN-GB)

Number of nights (nights)

Compatible pages: INDEX, DETAILS, SHOP

Specify the number of nights as a numeric value.

Lead time (leadtime)

Compatible pages: INDEX, DETAILS, SHOP

Dynamically set the check-in date relative to today.

Format: <numeric value><period (d/w/m)>

Examples:

  • leadtime=5d sets check-in date to 5 days from today

  • leadtime=2w sets check-in date to 2 weeks from today

  • leadtime=1m sets check-in date to 1 month from today

Open calendar automatically (opencalendar)

Compatible pages: INDEX

Set opencalendar=1 to automatically open the calendar when the page loads.

Suppress availability (suppressavail)

Compatible pages: INDEX

Set suppressavail=1 to work with 'open calendar', allowing the system to ignore restrictions and still open the calendar to view.

Shape

Occupancy variables

Adults (adults)

Compatible pages: INDEX, DETAILS, SHOP

Specify the number of adults per room as a numeric value.

Children (children)

Compatible pages: INDEX, DETAILS, SHOP

Specify the number of children per room as a numeric value.

Child age buckets (child one/two/three/four)

Compatible pages: INDEX, DETAILS, SHOP

Specify the number of children per room in specific child age buckets as numeric values.

Child ages (childAges)

Compatible pages: INDEX, DETAILS, SHOP

Specify the actual ages of children as a comma-separated list. For multi-property bookings, separate each room's ages with the | symbol.

Number of rooms (rooms)

Compatible pages: INDEX, DETAILS, SHOP

Specify the number of rooms in the request as a numeric value (one to five).

Bed type (bed)

Compatible pages: INDEX

Specify bed type preferences:

  • King = 10.

  • Queen = 20.

  • Double = 30.

  • Twin = 40.

Smoking preference (nonsmoking)

Compatible pages: INDEX

Specify smoking preferences:

  • Yes = Non-smoking room.

  • No or empty = no preference.

Room type, rate code, and package variables

⚠️Important: You must use details or shop base URLs for these variables. Only specify one room type, rate code, or package variable per URL.

Rate code (rate)

Compatible pages: DETAILS, SHOP

Use your rate code as a text string from the CRS.

Example: Rate Code AAA – Use of &rate=aaa will bring results showing the association rate offer first.

Rate code ID (rcID)

Compatible pages: DETAILS

Use the specific CRS rate code numeric ID.

πŸ€“Tip: You can find this by hovering over the rate code directly in the CRS under Rate Management > Rate Code > Rate Code List. Alternatively, it can be found in the browser URL bar if the rate code is selected from the rate code list after "RatecodeID=".

Selected rate (selectedRate)

Compatible pages: SHOP

Use this to pre-select a specific rate in the calendar-driven shop page.

Example: Rate Code AAA – Use of &selectedRate=aaa will bring results showing the association rate offer first.

Room type code (roomType)

Compatible pages: DETAILS

Use the specific CRS room type alphanumeric code found on the Room Type List in the CRS under Property Description > Room Type > Room Type List.

Room type ID (rmID)

Compatible pages: DETAILS

Use the specific CRS room type numeric ID.

πŸ€“Tip: You can find this by hovering over the room type directly in the CRS under Property Description > Room Type > Room Type List. Alternatively, it can be found in the browser URL bar if the room type is selected from the room type list after "roomTypeID=".

Package ID (packageID)

Compatible pages: DETAILS

Use the specific CRS package numeric ID.

πŸ€“Tip: You can find this by hovering over the package directly in the CRS under Group/Package/Add-Ons > Package > Package List. Alternatively, it can be found in the browser URL bar if the package is selected from the package list after "packageID=".

Package code (package)

Compatible pages: DETAILS, SHOP

Use the specific CRS Package code found in Group/Package/Add-Ons > Package > Package List.

Format: package=<CRS package Type Code>

Selected package (selectedPackage)

Compatible pages: SHOP

Use this to pre-select a specific package in the calendar-driven shop page.

Format: selectedPackage=<CRS package Type Code>

Selected tower (selectedTower)

Compatible pages: SHOP

Use this to pre-select a specific room type group in the calendar-driven shop page.

Format: selectedTower=<CRS room type group Code>

Show qualified rates (showQualifiedRates)

Compatible pages: INDEX, DETAILS, SHOP

Set showQualifiedRates=true to control the display of qualified rates.

Access and ID code variables

Compatible pages: DETAILS, SHOP

Promotional code (promo)

Specify a promotional rate code or ID offered by the property.

⚠️Important: Do not enter standard, discount, package, group, or corporate rate codes or IDs.

Group attendee ID (group)

Use the group attendee code that guests enter to retrieve and book group rates.

πŸ“ŒNote: Group rates will not be displayed unless requested by the guest. This is not the CRS or PMS group rate code, but what is entered in the 'Group Code' field on the UI of the IBE.

Corporate code (corp)

Use this for negotiated or corporate travelers to bring rates within the corporate category directly to guests.

Access code (access)

Use this for restricted rates to bring rates within the restricted category associated with the given access code to guests.

IATA number (IATA)

Assign a travel agent's IATA or ARC ID to reservations made on the booking (eight characters maximum).

Branding and A/B testing variables

Brand ID (brandID)

Use the branding ID set up in your CRS as a numeric value.

A/B testing settings (settings)

Use settings=<A/B> when A/B testing is enabled in your CRS branding setup.

Results view variables

Landing page view types (viewtype)

Compatible pages: INDEX

Control how results display on the landing page:

  • viewtype=1 - List View (default)

  • viewtype=2 - Price View sorted Low to High

  • viewtype=3 - Price View sorted High to Low

  • viewtype=4 - Grid View (default)

Calendar-driven shopping page view types (viewtype)

Compatible pages: SHOP

Control sorting on the shopping page:

  • viewtype=1 - SortBy: Price (Low to High)

  • viewtype=2 - SortBy: Price (Low to High)

  • viewtype=3 - SortBy: Price (High to Low)

Open promo/IATA code block (openPromoIATA)

Compatible pages: INDEX

Set openPromoIATA=true to automatically open the 'Enter Additional Options (Add Promo/IATA)' block when users land on the index page of IBE.

Loyalty program variables

Use these variables when your hotel or CRM website redirects logged-in guests to the booking engine.

Perform authentication check (performAuthCheck)

Compatible pages: DEFAULT, INDEX, DETAILS, SHOP

Set performAuthCheck=true to use the silent login feature of the SSO server using prompt=none. If guests are already logged in to the same browser session, they'll be logged into IBE automatically. If not logged in, they'll return to IBE quickly without any login.

Force authentication (forceAuth)

Compatible pages: DEFAULT, INDEX, DETAILS, SHOP

Set forceAuth=true to use the normal login feature of the SSO server. If guests are already logged in to the same browser session, they'll be logged into IBE. If not logged in, they'll see the login screen.

Voucher code (voucher or vouchercode)

Compatible pages: DEFAULT, SHOP (SHR CRM only)

Use encrypted offer data for voucher codes.

πŸ“ŒNote: Currently only supported with SHR CRM. Please contact your Customer Success Manager or support team for details.

User token (userToken)

Compatible pages: DETAILS, SHOP (specific programs only)

Use encrypted guest offer data to allow pseudo-login of guests.

πŸ“ŒNote: Currently only supported with selected loyalty programs to allow pseudo-login of guests. Please contact your Customer Success Manager or support team for details.

Offer code (offerCode)

Compatible pages: DETAILS, SHOP (specific programs only)

Use this to pass loyalty offer codes.

πŸ“ŒNote: Currently only supported with selected loyalty programs to allow passing loyalty offer codes. Please contact your Customer Success Manager or support team for details.

Saved cart variable

Load saved card (saved)

Compatible pages: CART

Use saved=<card id> with cart.aspx/combocheckout.aspx when the save for later or abandoned cart feature is enabled to load the previous saved cart.

Reservation confirmation variables

Reservation key (resvKey)

Compatible pages: CONFIRM

To create deep links to IBE reservation confirmations from third-party websites like our CRM landing pages or emails or hotel websites, the source website needs to know:

  • Hotel ID/Code of the property in the CRS.

  • CRS reservation number of the reservation.

  • Last name of the primary guest on the reservation.

Generate the reservation key

Follow the steps below to generate the reservation key.

  1. Combine the CRS reservation number and the last name in upper case using the pipe | symbol.

  2. Generate a SHA256 hash of the combined string.

  3. Get the lowercase hexadecimal string of the hash.

  4. Pass this as "resvKey" URL query parameter to the IBE confirmation page along with the CRS reservation number in the "crsID" URL query parameter along with ret=1 parameter.

Example:


Reference lists

Language ID options

Language ID - Language - Date Format

1 - English - MM/dd/yyyy

2 - French - dd/MM/yyyy

3 - Spanish - dd/MM/yyyy

4 - German - dd.MM.yyyy

5 - Italian - dd/MM/yyyy

6 - English (GB) - dd/MM/yyyy

7 - Chinese (Simplified) - yyyy-MM-dd

8 - Russian - dd.MM.yyyy

9 - Japanese - yyyy/MM/dd

10 - Chinese (Traditional) - yyyy-MM-dd

11 - Portuguese - dd/MM/yyyy

12 - Czech - dd.MM.yyyy

13 - Swedish - yyyy/MM/dd

14 - Arabic - dd/MM/yyyy

15 - Greek - dd/MM/yyyy

16 - Hindi - MM/dd/yyyy

17 - Dutch - dd/MM/yyyy

18 - Dutch - dd/MM/yyyy

19 - Romanian - dd/MM/yyyy

20 - Slovak - dd/MM/yyyy

21 - Korean - dd/MM/yyyy

22 - Bahasa Indonesia - dd/MM/yyyy

Currency ID options

Currency ID - Currency - Symbol

1 - USD - $

2 - GBP - Β£

3 - RMB - RMB

4 - AED - AED

5 - AFN - AFN

6 - ALL - ALL

7 - AMD - AMD

8 - AOA - AOA

9 - ARS - ARS

10 - AUD - AUD

11 - AWG - AWG

12 - AZN - AZN

13 - BAM - BAM

14 - BBD - BBD

15 - BDT - BDT

16 - BGN - BGN

17 - BHD - BHD

18 - BIF - BIF

19 - BMD - BMD

20 - BND - BND

21 - BOB - BOB

22 - BRL - BRL

23 - BSD - BSD

24 - BTN - BTN

25 - BWP - BWP

26 - BYR - BYR

27 - BZD - BZD

28 - CAD - CAD

29 - CDF - CDF

30 - CHF - CHF

31 - CLP - CLP

32 - CNY - Β₯

33 - COP - COP

34 - CRC - CRC

35 - CUP - CUP

36 - CVE - CVE

37 - CYP - CYP

38 - CZK - CZK

39 - DJF - DJF

40 - DKK - DKK

41 - DOP - DOP

42 - DZD - DZD

43 - EEK - EEK

44 - EGP - EGP

45 - ERN - ERN

46 - ETB - ETB

47 - EUR - €

48 - FJD - FJD

49 - FKP - FKP

50 - GEL - GEL

51 - GGP - GGP

52 - GHS - GHS

53 - GIP - GIP

54 - GMD - GMD

55 - GNF - GNF

56 - GTQ - GTQ

57 - GYD - GYD

58 - HKD - HKD

59 - HNL - HNL

60 - HRK - HRK

61 - HTG - HTG

62 - HUF - HUF

63 - IDR - IDR

64 - ILS - ILS

65 - IMP - IMP

66 - INR - INR

67 - IQD - IQD

68 - IRR - IRR

69 - ISK - ISK

70 - JEP - JEP

71 - JMD - JMD

72 - JOD - JOD

73 - JPY - Β₯

74 - KES - KES

75 - KGS - KGS

76 - KHR - KHR

77 - KMF - KMF

78 - KPW - KPW

79 - KRW - KRW

80 - KWD - KWD

81 - KYD - KYD

82 - KZT - KZT

83 - LAK - LAK

84 - LBP - LBP

85 - LKR - LKR

86 - LRD - LRD

87 - LSL - LSL

88 - LTL - LTL

89 - LVL - LVL

90 - LYD - LYD

91 - MAD - MAD

92 - MDL - MDL

93 - MGA - MGA

94 - MKD - MKD

95 - MMK - MMK

96 - MNT - MNT

97 - MOP - MOP

98 - MRO - MRO

99 - MTL - MTL

100 - MUR - MUR

101 - MVR - MVR

102 - MWK - MWK

103 - MXN - MXN

104 - MYR - MYR

105 - MZN - MZN

106 - NAD - NAD

107 - NGN - NGN

108 - NIO - NIO

109 - NOK - NOK

110 - NPR - NPR

111 - NZD - NZD

112 - OMR - OMR

113 - PAB - PAB

114 - PEN - PEN

115 - PGK - PGK

116 - PHP - PHP

117 - PKR - PKR

118 - PLN - PLN

119 - PYG - PYG

120 - QAR - QAR

121 - RON - RON

122 - RSD - RSD

123 - RUB - RUB

124 - RWF - RWF

125 - SAR - SAR

126 - SBD - SBD

127 - SCR - SCR

128 - SDG - SDG

129 - SEK - SEK

130 - SGD - SGD

131 - SHP - SHP

132 - SKK - SKK

133 - SLL - SLL

134 - SOS - SOS

135 - SPL - SPL

136 - SRD - SRD

137 - STD - STD

138 - SVC - SVC

139 - SYP - SYP

140 - SZL - SZL

141 - THB - THB

142 - TJS - TJS

143 - TMM - TMM

144 - TND - TND

145 - TOP - TOP

146 - TRY - TRY

147 - TTD - TTD

148 - TVD - TVD

149 - TWD - TWD

150 - TZS - TZS

151 - UAH - UAH

152 - UGX - UGX

153 - UYU - UYU

154 - UZS - UZS

155 - VEB - VEB

156 - VEF - VEF

157 - VND - VND

158 - VUV - VUV

159 - WST - WST

160 - XAF - XAF

161 - XAG - XAG

162 - XAU - XAU

163 - XCD - XCD

164 - XOF - XOF

165 - XPD - XPD

166 - XPF - XPF

167 - XPT - XPT

168 - YER - YER

169 - ZAR - ZAR

170 - ZMK - ZMK

171 - ZWD - ZWD

172 - UAE - UAE

Did this answer your question?