Deeplinking to Whitelabel

This guide explains how to use URL parameters to deep link to the Hotel Listing, Hotel Details, and Checkout pages with pre-filled data. It includes parameter descriptions, values, and examples for easy implementation.

1. Hotel Listing Page

Example URL:
http://wl-domain/hotels

Use the parameters below to customize the hotel search results:

Parameter

Description

Example Value

Example Usage

placeId

Google Place ID for the destination

ChIJgUbEo8cfqokR5lP9_Wh_DaM

?placeId=ChIJgUbEo8cfqokR5lP9_Wh_DaM

checkin

Check-in date (YYYY-MM-DD)

2024-09-15

&checkin=2024-09-15

checkout

Checkout date (YYYY-MM-DD)

2024-09-20

&checkout=2024-09-20

occupancies

Guest & room configuration (base64)

btoa(JSON.stringify([{ "adults": 2, "children": [8,6] }]))

&occupancies=encodedStringHere

stars

Star ratings (comma-separated)

4,5

&stars=4,5
Possible Values:
5.0 – 5 stars
4.0 – 4 stars
3.0 – 3 stars
2.0 – 2 stars
1.0 – 1 star
0 – Unrated

ratings

Guest ratings (comma-separated)

8,9

&ratings=8,9
Possible Values:
9 – Wonderful
8 – Very Good
7 – Good
6 – Pleasant

facilities, roomAmenities, chains, hotelTypes

Feature filter (IDs, comma-separated)

5,12

&facilities=5,12

suburbs

Suburbs (comma-separated)

manhattan,brooklyn

&suburbs=manhattan,brooklyn

mealPlans

Meal plans

AI,HB

&mealPlans=AI,HB
Possible Values:
BI – Breakfast Included
LI – Lunch Included
DI – Dinner Included
HB – Half Board
FB – Full Board
AI – All Inclusive

freeCancellation

Show only free cancellation options

1 (all), 2 (only free cancellation)

&freeCancellation=2

min_price

Minimum price filter

100

&min_price=100

max_price

Maximum price filter

500

&max_price=500

sorting

Sorting options

1

&sorting=1
Possible Values:
1 – Our Top Picks
2 – Price Low to High
3 – Price High to Low
4 – Stars Low to High
5 – Stars High to Low
6 – Distance from City Center
7 – Guest Rating High to Low


Example Full URL

http://wl-domain/hotels?placeId=ChIJgUbEo8cfqokR5lP9_Wh_DaM&checkin=2024-09-15&checkout=2024-09-20&occupancies=W3siYWR1bHRzIjoyLCJjaGlsZHJlbiI6W119LHsiYWR1bHRzIjoxLCJjaGlsZHJlbiI6W119XQ==&stars=4,5&mealPlans=BI&freeCancellation=1

2. Hotel Details Page

URL Format:
https://wl-domain/hotels/{hotelId}
Example:
https://wl-domain/hotels/lp4aa75

Supported Parameters

ParameterDescriptionExample
placeIdGoogle Place IDChIJgUbEo8cfqokR5lP9_Wh_DaM
checkinCheck-in date2024-09-15
checkoutCheckout date2024-09-20
occupanciesRoom and guest config (base64)btoa(JSON.stringify([{ "adults": 2, "children": [8,6] }]))
needFreeCancellationOnly show free cancellation1
needBreakfastFilter for breakfast1
needHalfBoardFilter for half board1
needFullBoardFilter for full board1
needAllInclusiveFilter for all inclusive1
needDinnerIncludedFilter for dinner1
needLunchIncludedFilter for lunch1

Example URL

https://wl-domain/hotels/lp4aa75?placeId=ChIJgUbEo8cfqokR5lP9_Wh_DaM&checkin=2024-09-15&checkout=2024-09-20&occupancies=eyJhZHVsdHMiOjIsImNoaWxkcmVuIjpbOCw2XX0=&needAllInclusive=1&needBreakfast=1

3. Checkout Page

The checkout page supports dynamic deep linking, allowing you to send a user directly into the checkout flow by providing either a prebookId or an offerId.

This is especially useful when you already know which rate the user wants to book or when your system has performed prebooking in advance.

How It Works

You can open the checkout page using one of the following parameters:

Parameter

Source / Where It Comes From

Meaning

offerId

From the hotel rates API:
/hotels/rates
/hotels/min-rates

https://docs.liteapi.travel/reference/post_hotels-rates
https://docs.liteapi.travel/reference/post_hotels-min-rates

Direct rate identifier. The WL system will automatically perform prebooking before checkout.

prebookId

From the /rates/prebook API
https://docs.liteapi.travel/reference/post_rates-prebook

A prebook token you created yourself by calling the prebook endpoint.

When to Use Which?

✔ Option 1 — offerId (Recommended for simplicity)

  • Best option if you don't want to call prebook yourself.

  • The offerId represents an actual rate returned by the system.

  • When the user lands on the checkout page with offerId, the White Label will:

    • Fetch the rate
    • Automatically perform the prebook step
    • Load the checkout page with all details ready

Pros:

  • Less work for you
  • No need to call /rates/prebook on your side
  • Any pricing updates or conditions are confirmed automatically

✔ Option 2 — prebookId (Advanced / Full control)

  • Use this if you want to perform the prebook on your backend first.
  • After calling the /rates/prebook endpoint, you receive a prebookId.
  • Pass that ID into the booking page, and the WL will skip prebooking and go directly to checkout.

Pros:

  • Your system controls the prebook
  • Ideal for custom workflows requiring checks before letting users pay

Example URLs

Checkout using offerId

https://wl-domain/booking?offerId=abc123xyz

Checkout using prebookId

https://wl-domain/booking?prebookId=pq98lm45

Both will load the checkout page with the selected rate and room information.

Notes & Best Practices

  • You may still append global parameters such as
    language, currency, clientReference, , or xData` to enhance the checkout experience.
  • xData can pre-fill customer information, discount codes, and guest/holder data.
  • When using offerId, you do not need to send any room or date parameters — the WL already knows them from the rate.
  • When using prebookId, make sure the prebook response hasn’t expired (prebook validity is limited).

Quick Summary

MethodWhat You ProvideWho Handles PrebookRecommended For
offerIdRate offer IDWL systemFastest setup, simplest integration
prebookIdPrebook tokenYour backendAdvanced workflows, extra validations

4. Manage Booking Page

The manage booking page supports deep linking so you can send users directly to a specific booking using the booking ID (numeric).

URL Format:
https://wl-domain/manage-bookings/{bookingId}

Supported Parameters

ParameterDescriptionExample
emailGuest/holder email (for verification). Required.[email protected]

Example URL

https://wl-domain/manage-bookings/[email protected]

Notes

  • The email query parameter is required to verify access to the booking.
  • Generic parameters such as language and currency can be appended to the URL.

5. Generic Parameters

Any Route with xData

⚠️

Note: The Checkout page must be accessed via the Hotel Details page, as it depends on session data from prebooking.

How xData Works

xData allows you to pre-populate the checkout page with booking details. It can be appended to any route on the website and will persist throughout the user's journey, ensuring the data is retained until checkout.

Steps:

  1. Serialization — Convert your JSON data into a string.
  2. Compression — Gzip compress the string.
  3. Encoding — Base64 encode the compressed data.

Then, pass the result as a URL parameter xData.

Encoding Example (JavaScript)

import pako from 'pako';

export const encodeXdata = (data: any): string => {
  const jsonString = JSON.stringify(data);
  const compressedData = pako.gzip(jsonString);
  const base64String = btoa(String.fromCharCode(...compressedData));
  return base64String;
};

Example Usage

https://test.nuitee.link?xData=H4sIAAAAAA...

When the user lands on this URL:

  • xData is decoded and stored automatically.
  • Checkout will pre-fill guest, holder, and discount information.

Supported xData Fields

{
  "guests": [
    {
      "firstName": "Guest1FirstName",
      "lastName": "Guest1LastName",
      "email": "[email protected]"
    },
    {
      "firstName": "Guest2FirstName",
      "lastName": "Guest2LastName",
      "email": "[email protected]"
    }
  ],
  "discount": {
    "code": "WEDDING10",
		"id": 1,
  },
  "holder": {
    "firstName": "HolderFirstName",
    "lastName": "HolderLastName",
    "email": "[email protected]"
  }
}
FieldTypeRequiredDescription
holderObjectRequired (if guest details used)Main holder responsible for booking
guestsArrayOptionalGuest info for each room
discountObjectOptionalPromo code to apply automatically

Important Rules

  • Discount can be passed independently (without guests/holder).

  • Holder is required to proceed with booking.

  • If 1 room and no guests: ➜ holder will be used.

  • If multiple rooms:

    • Equal guests ➜ Each fills one room.
    • Fewer guests ➜ First room uses holder, others use guests, then placeholders.

Scenario Examples

Selected RoomsProvided GuestsFinal Room Assignment
10Holder details used as guest
22Guest 1 ➜ Room 1, Guest 2 ➜ Room 2
21Holder ➜ Room 1, Guest 1 ➜ Room 2
30Holder ➜ Room 1, Room 2 ➜ Empty, Room 3 ➜ Empty

Notes

  • Emails must be valid (used for confirmation).
  • Discount codes are auto-validated during checkout.
  • Missing or empty xData will NOT break the flow — will load a fresh page.

Quick Summary

What You Must DoWhy
Always pass a valid holderRequired for booking to proceed
Optionally pass guestsTo pre-fill room guest names
Optionally pass discountTo auto-apply promotions
Encode the xData properlyTo avoid payload issue

Client Reference

Parameter: clientReference
Type: String
Optional

A custom identifier to tag the booking flow with your internal reference (e.g., guest ID, cart ID, session ID). Useful for tracking, analytics, and mapping bookings to your system.

Example:

https://wl-domain/hotels?clientReference=guest_12345

✔️ Works across listing, details, and checkout pages.

Sandbox Mode

Parameter: isSandbox
Type: Boolean (true / false)
OptionalDefault: false

Use this parameter to enable the sandbox (test) payment flow instead of processing live transactions.

⚠️

Important: This requires the White Label configuration to include a valid sandbox payment key. If not properly configured, the work flow will not function.

Example

https://wl-domain/hotels?isSandbox=true

Notes

  • ✔️ Can be used on any route
  • ✔️ Default behavior is live mode (isSandbox=false or when omitted)
  • 🔁 Remember to setisSandbox=false when switching back to live payments

Language and Currency

These parameters can be appended to any route and influence the site behavior globally.

Language

Parameter: language
Default: en
Supported Languages:

  • en – English
  • fr – French
  • ru – Russian
  • it – Italian
  • nl – Dutch
  • es – Spanish
  • tr – Turkish
  • de – German
  • ar – Arabic
  • pt – Portuguese
  • el – Greek
  • ro – Romanian

Currency

Parameter: currency
Default: USD
Supported Currencies:

  • AED – UAE Dirham
  • AUD – Australian Dollar
  • BRL – Brazilian Real
  • CAD – Canadian Dollar
  • CNY – Yuan Renminbi
  • EGP – Egyptian Pounds
  • EUR – Euro
  • FJD – Fiji Dollar
  • GBP – Pound Sterling
  • HKD – Hong Kong Dollar
  • IDR – Rupiah
  • INR – Indian Rupee
  • JPY – Yen
  • LKR – Sri Lanka Rupee
  • MAD – Moroccan Dirham
  • MNT – Tugrik
  • MUR – Mauritius Rupee
  • MXN – Mexican Peso
  • MYR – Malaysian Ringgit
  • PHP – Philippine Peso
  • RUB – Russian Ruble
  • SAR – Saudi Riyal
  • SGD – Singapore Dollar
  • THB – Baht
  • TWD – New Taiwan Dollar
  • USD – US Dollar
  • ZAR – Rand
  • RON – Romanian Leu

That’s it!
By following this guide, you can seamlessly integrate deep linking across the entire website — from hotel search and details to checkout and manage booking — ensuring a smoother, faster, and more personalized user experience.