Attach links overview
Attach links drive traffic to, and bookings on, your White Label Travel Platform site by extending the number of touchpoints to display placements that highlight hotels in a manner that surfaces multi-item trip savings to eligible travelers.
Use attach links to:
- Build travelers’ awareness of other lines of business that can be purchased from your template site
- Offer better deals for eligible travelers with multi-item trip savings
- Personalize your site with configurable size, brand, and color options
- Expand your attach placements to email, app, and additional desktop touch points
Integration overview
Here is a high-level overview of the integration steps:
Step 1: Use the base deeplink URL provided by Expedia without partnerId and signature. This base URL will be used to create the signature.
Base URL
/go/hotel/search/Destination/{startDate}/{endDate}| Path variable | Description | Required | Default | Sample value | Notes |
|---|---|---|---|---|---|
startDate | Check-in date | Y | None | 2022-11-09 | One date format for all POS: yyyy-mm-dd |
endDate | Check-out date | Y | None | 2022-11-20 | One date format for all POS: yyyy-mm-dd Note: One-way flights require default value of 1-7 days after flight start date |
URL parameters
| parameters | Description | Required | Default | Sample value | Notes |
|---|---|---|---|---|---|
| Tracking code | Tracks attribution | Y | None | MDPCID=Expedia-IE.DPS.en_IE.confemail.attachDL.Flight | Replace Expedia with your brand name |
CityName | City name, represented as a 3-letter airport code | Y | None | CityName=SEA | Only airport codes are supported |
SortBy | The element by which to sort | Y | DISTANCE | DISTANCE | Valid values include: PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, DISTANCE, GUEST_RATING, PROPERTY_CLASS |
NumRoom | Adult counts sometimes vary by point of sale 1 or 2. | N | 1 | 2 | Max number of rooms is 8 |
NumAdult-Room{ROOM_INDEX} | Number of adults staying in the room | N | 1 | NumAdult-Room1=1 | Maximum of 4 adults per room |
NumChild-Room{ROOM_INDEX} | Number of children staying in the room | N | 2 | NumChild-Room1=2 | Maximum of 3 children per room |
Room{ROOM_INDEX}-Child{CHILD_INDEX}Age | Age of children staying in the room | Y, if NumChild is submitted | 1 | Room1-Child1Age=1 | Should be repeated for each child indicated |
Sample deeplink URL structure for hotel search results
=https://expedia.com/go/hotel/search/Destination/2025-12-22/2025-12-25?MDPCID=Expedia-IE.DPS.en_IE.confemail.attachDL.Flight&CityName=ORD&SortBy=distance&NumRoom=1&NumAdult1=3&NumChild1=2&Rm1child1age=9&Rm1child2age=6Step 2: Encode the deeplink URL using UTF-8.
>> Read about UTF-8 percent encoding
https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6Step 3: Append all the required parameters to enable attach rates.
outboundEndDateTime (encoded) + originTLA + returnStartDateTime(encoded) + destinationTLA + bookingDateTime (encoded) + partnerid + attachDL
Step 4: Construct the URL for signature generation (don't include domain).
endpoint + encoded deeplink url + outboundEndDateTime (encoded) + originTLA + returnStartDateTime (encoded) + destinationTLA + bookingDateTime (encoded) + partnerid + attachDL
Step 5: Sign the constructed URL and generate the signature.
Input value for the signature should include every required parameter and the endpoint: /xsell-redirect-pwa?url=encodedURL&val1¶m2=val2.
Signature example: signature=3WQjtTHsSCRxrogs3xhY7edWfgE
Step 6: Construct the final deeplink URL.
domain + endpoint + encoded deeplink url + outboundEndDateTime (encoded) + originTLA + returnStartDateTime (encoded) + destinationTLA + bookingDateTime (encoded) + partnerid + attachDL + signature