The following launch requirements apply to all affiliates with a business-to-consumer (B2C) integration model where end customers interact with your integration directly. See our B2B launch requirements for template/platform integrations for use with partner programs or other business-to-business scenarios.


1. General Requirements

1.1 Affiliate must not hold themselves to be the supplier of the hotel

In any description of your business wherever it resides - your integration, related websites, marketing material, etc. - you must not claim or suggest that you are the supplier of any EAN property.
This includes suggestions of property exclusivity (e.g. "our unique collection of hotels") or price exclusivity (e.g. "the lowest prices on the web").
Your brand's association with EAN properties must clearly remain as a marketer of EAN properties, not a supplier.



1.2 No use of Expedia or EAN names or logos

None of the Expedia or EAN names or logos may be used on affiliate sites for any purpose. Any exceptions must be approved by legal and relevant groups within Expedia, with approval attached to the affiliate launch record.

Example


1.3 Affiliate is providing name of actual traveller in the booking

EAN bookings must always be submitted with the name of the actual traveller booking the reservation. This means that in your booking request body, the values for firstName and lastName within each Room object must match the first and last name of the guest checking in for the reservation.

Code Samples
REST
……
&room1=2
&room1FirstName={actual traveller's name}
&room1LastName={actual traveller's name}
&room1BedTypeId=23
&room1SmokingPreference=NS
……
XML
……
<RoomGroup>
<Room>
<numberOfAdults>2</numberOfAdults>
<firstName>{actual traveller's name}</firstName>
<lastName>{actual traveller's name}</lastName>

<bedTypeId>23</bedTypeId>
<smokingPreference>NS</smokingPreference>
</Room>
</RoomGroup> ……
Example


1.4 Links to the EAN booking Terms & Conditions URL to be displayed in the Affiliates Terms and Conditions

You must provide a link to the EAN Terms and Conditions within your site's own Terms and Conditions text. Place the following linkin an easy-to-find location, such as top of your own Terms and Conditions page: http://developer.ean.com/terms/en/

Example


1.5 No change to pricing or booking conditions that are returned from the API

You may not modify any price- or booking-related values that describe factual aspects of costs of stay, the property and its amenities. This also includes omitting or obscuring any part of such data.

Changes that do not affect the meaning of the contained language are acceptable, e.g. changing "swimming pool" to "pool," "wireless internet" to "WiFi."

Do not attempt to provide additional information than what is provided in the response. EAN cannot be held responsible for disputes resulting from inappropriate affiliate modifications or additions to API data.

Example
This example shows the incorrect and correct way to display an affiliate fee added to the booking total.


1.6 Customer support numbers to be clearly displayed, including links to online customer service tools

Clearly display EAN's support number, or your own if you are not relying on EAN's customer support centers. You must also provide links to online customer service tools to allow customers to retrieve and review their own bookings.

Examples
Customer service number and self-service tools presented in top menu/header area


1.7 Proper use and display regarding credit card regulations

Affiliates must follow PCI (Payment Card Industry) regulations when requesting, handling, and storing customer credit card data. A complete reference for these regulations is available at the official PCI Security Standards web site.

To assist with the PCI rules most critical to your integration, EAN provides a targeted guide for partners: developer.ean.com/docs/credit-card

By following the above guide, you will ensure that:

  • CSV is required on all booking requests
  • Card number truncation requirements met for display and storage
  • SSL used on all booking-related pages ()
  • Brand parity requirements met



1.8 Evidence of PCI compliance supplied for applicable partners

Where EAN is Merchant of Record, evidence of PCI compliance, such as an an Attestation of Compliance (AOC), must be supplied.

EAN Affiliates must use the PCI Security Standards Council's Self-Assessment Questionnaire file "SAQ D - Merchants" to produce the proper AOC.

You can review the instructions and guidelines for SAQs and find the "SAQ D - Merchants" file on the official PCI Security Standards Document Library, or download the SAQ D - Merchants file directly as a PDF or Word document.



1.9 Completed TripAdvisor agreement is provided for any TripAdvisor content usage

If you intend to consume the TripAdvisor content available in the EAN API, you must agree to comply with TripAdvisor’s guidelines to be authorized access.
This agreement must be provided via email to support@ean.com, or in writing, at the time of requesting approval to launch, or any time after going live. TripAdvisor hold the right to withhold/remove access to the TripAdvisor content, even after authorization is approved, at any time.

2. Search Page

2.1 Where affiliate allows children to be included in bookings, proper messaging and input of child ages is implemented

If your integration permits child guests, you must offer the ability to specify child guests and their ages separately from adult guests for all Expedia Collect properties. This information is provided via the numberOfChildren and childAges elements (see code samples below).

When customers specify child guests, the API response may contain age restrictions and/or extra occupancy or crib charges that may affect the cost or eligibility of the booking. These items must be clearly messaged to customers during shopping and before checkout.

Each hotel configures what age range they classify as a child. Typically individuals aged 17 or younger are considered children. Some properties do not allow guests under age 18.

Code Sample
REST
list? 
apiKey=#####
&cid=#####
&sig=####################
&customerIpAddress=#####
&customerUserAgent=######
&customerSessionId=#####
&minorRev=##
&locale=en_US
&currencyCode=USD
&city=Seattle
&stateProvinceCode=WA
&countryCode=US
&arrivalDate=09/04/2015
&departureDate=09/05/2015
&room1=1,3,6

XML
 
<HotelListRequest>
    <city>Seattle</city>
    <stateProvinceCode>WA</stateProvinceCode>
    <countryCode>US</countryCode>
    <arrivalDate>08/01/2015</arrivalDate>
    <departureDate>08/03/2015</departureDate>
    <RoomGroup>
      <Room>
        <numberOfAdults>2</numberOfAdults>
        <numberOfChildren>2</numberOfChildren>
        <childAges>3,6</childAges>
      </Room>
    </RoomGroup>
</HotelListRequest>
Example


3. Hotel List Results Page

3.1 If a tax and fee breakdown is provided, individual charges must be clearly displayed

Providing a breakdown of charges is optional for the hotel list results page. If you choose to display additional charges along with the nightly rate, you will need to display all taxes and fees as returned by the Surcharges and HotelFees arrays. The fees returned by the HotelFees array must be displayed separately, as these are collected by the property (not EAN or local governments) at check-in or check-out. The full breakdown would include nightly rates (total or per-night), Surcharge and HotelFee amounts, and a chargeable total.

If you choose to display only the room rate, this can be shown as either individual per-night rates, or a total of the rates for the dates selected without taxes (shown in image to right).

Code Samples
These blocks contain the charge arrays referred to for this requirement. Following are relevant excerpts from a full hotel list response.
REST
  ……
  
"Surcharges": {
      "@size": "1",
      "Surcharge": {
  		"@type": "TaxAndServiceFee",
		"@amount": "64.65"
	    }}    },
"nonRefundable": false,
	"HotelFees":
	 {"@size": "1","HotelFee":
	  {    "@description": "MandatoryTax",
	      "@amount": "57.11"}
	      },
	      "rateType": "MerchantStandard",
	      "currentAllotment": 1}
      ……
      
XML
  ……
  <NightlyRate baseRate="545.82" rate="545.82" promo="false" />
  </NightlyRatesPerRoom>
  <Surcharges size="1">
  <Surcharge type="TaxAndServiceFee" amount="64.65" />
  </Surcharges></ChargeableRateInfo>
  <nonRefundable>false</nonRefundable>
  <HotelFees size="1">
  <HotelFee description="MandatoryTax" amount="57.11" />
  </HotelFees>
  <rateType>MerchantStandard</rateType>
  <currentAllotment>1</currentAllotment>
  </RateInfo>
  ……
  

4. Hotel/Room Availability

4.1 Taxes and Fees are clearly stated as a separate line item

The value returned for TaxAndServiceFee must be displayed separately for all tax references and/or where a price breakdown is given, such as room availability, booking form and confirmation results for Expedia Collect properties.

The exact text below is legally required on your site for all Expedia Collect inventory when referring to any "taxes and fees" totals. Base your display on the point of supply of the hotel, not the customer's location.

  • Europe: "Tax Recovery Charges"
  • All Other Regions: "Tax Recovery Charges and Service Fees"
Example (Europe)


4.2 Sales tax values are reported separately when applicable

When salesTax is returned by the Surcharges array, display this item separately within your charge breakdown. This item details taxes collected by local municipalities or states and must be displayed per local laws.

Code Samples
Example XML

<Surcharges size="2">
<Surcharge type="SalesTax" amount="126.62" />
<Surcharge type="TaxAndServiceFee" amount="133.62" />
</Surcharges>
Example REST

"Surcharges": {
"@size": "2",
"Surcharge": [
{
"@type": "SalesTax",
"@amount": "126.62"

}, {
"@type": "TaxAndServiceFee",
"@amount": "133.62"
} …
Example:


4.3 Bed type descriptions are present on each room

For availability responses where the BedTypes array does not return or returns a single value, display each room's rateDescription or roomTypeDescription value – these values typically return the same.

When the BedTypes array returns with multiple options, provide these options to the customer to allow them to select their preference. Return the customer's selected BedType ID in your reservation request using the bedTypeId parameter.

You must also display messaging to the traveller that choices between multiple bed types for the same room are requests only and may not be honored at the hotel if availability does not permit.

Code Samples
Single Bed Type Example XML

<rateCode>205109735</rateCode>
<roomTypeCode>201048862</roomTypeCode>
<rateDescription>Deluxe Room, 2 Single Beds</rateDescription>
<roomTypeDescription>Deluxe Room, 2 Single Beds</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="1">
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>

Multiple Bed Type Example XML
Note the rate/room type descriptions do not contain a bed type description.
<rateCode>204975819</rateCode>
<roomTypeCode>201019993</roomTypeCode>
<rateDescription>Executive Room</rateDescription>
<roomTypeDescription>Executive Room</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="2">
<BedType id="14">
<description>1 king bed</description>
</BedType>
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>
Single Bed Type Example REST
"rateCode": 484072,
"roomTypeCode": 198058,
"rateDescription": "Deluxe Room, 1 King Bed",
"roomTypeDescription": "Deluxe Room, 1 King Bed",

"supplierType": "E",
"propertyId": 5900,
"BedTypes": {
"@size": "1",
"BedType": {
"@id": "14",
"description": "1 king bed"

}
},
Multiple Bed Type Example REST
"rateCode": 206423129,
"roomTypeCode": 426739,
"rateDescription": "Family Apartment sleeps 6",
"roomTypeDescription": "Family Apartment sleeps 6",

"supplierType": "E",
"propertyId": 914263,
"BedTypes": {
"@size": "2",
"BedType": [
{
"@id": "69",
"description": "1 double and 1 sofa bed"
}, {
"@id": "70",
"description": "2 twin and 1 sofa bed"

}
]
},


4.4 Check-in instructions displayed

The contents of checkInInstructions must be displayed for each room when returned in the room availability response. These instructions may include critical information such as fees that can be incurred at check-in, or after-hours access instructions. Always use the value from the availability response - hotel info or static database check-in instruction values may not be up to date.

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……
 


XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>


4.5 Non-refundable policies are clearly visible

Non-refundable availabilities are indicated by nonRefundable=true. This value always takes precedence over any differing policy data. These reservations are not refunded by the property under any circumstances.

When nonRefundable=true returns during property or room selection, clearly label the applicable rooms wherever individual availabilities are offered - full room selection pages, partial selections on list result pages, etc.

For refundable availabilities, refer to our guide for evaluating penalties provided by the cancelPolicyInfo array.

Code Sample
REST
nonRefundable returns between the CancelPolicyInfoList array and rateType.
"CancelPolicyInfoList": {
[array contents omitted for example]
},
"nonRefundable": true,
"rateType": "MerchantStandard",
"promoType": "Standard",
"currentAllotment": 13,
"guaranteeRequired": false,
"depositRequired": true,
XML
nonRefundable returns between CancelPolicyInfoList and HotelFees.
  …
  </CancelPolicyInfo>
</CancelPolicyInfoList>
<nonRefundable>true</nonRefundable>
<HotelFees size="1">
<HotelFee description="MandatoryTax" amount="56.99" />
</HotelFees> …


4.6 Affiliate is displaying the contents of specialCheckInInstructions when returned

The contents of specialCheckInInstructions must be displayed for each room when returned in the room availability response.
This field may include information critical for check-in that is not included in the checkInInstructions field, such as a requirement to notify the property of expected arrival time, check-in at a different location from the guest building, or an alert to expect special check-in instructions from the property via email.
Display this information in the same area as the primary check-in instructions.

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example

5. Booking Page

5.1 SSL encryption is present for sensitive data

When sending or transmitting sensitive data, you must use SSL encryption. Sensitive data includes guest names, phone numbers or emails, payment card details, and booking/itinerary receipts and confirmation pages.

If the customer's browser does not employ a secure connection to send or receive this information, SSL is not properly incorporated .


Example
A valid SSL certificate as viewed in a browser


5.2 Clear breakdown of charges must be provided

A breakdown of charges is required for your booking pages. The breakdown must clearly provide individual charges in full as they are returned by the Surcharge and HotelFees arrays.

Remember to display fees returned by the HotelFees array separately, as they are collected by the property (not EAN or local gov'ts) at check-in or check-out.

Include either each individual per-night rate for the dates selected, or a total of all night rateswithout taxes. Your final breakdown should include nightly rates (total or per-night), Surcharge and HotelFee amounts, and a chargeable total.

Code Samples
These blocks contain the charge arrays referred to for this requirement. Following are relevant excerpts from a full hotel list response.
REST
  ……
  
"Surcharges": {
      "@size": "1",
      "Surcharge": {
  		"@type": "TaxAndServiceFee",
		"@amount": "64.65"
	    }}    },
"nonRefundable": false,
	"HotelFees":
	 {"@size": "1","HotelFee":
	  {    "@description": "MandatoryTax",
	      "@amount": "57.11"}
	      },
	      "rateType": "MerchantStandard",
	      "currentAllotment": 1}
      ……
      
XML
  ……
  <NightlyRate baseRate="545.82" rate="545.82" promo="false" />
  </NightlyRatesPerRoom>
  <Surcharges size="1">
  <Surcharge type="TaxAndServiceFee" amount="64.65" />
  </Surcharges></ChargeableRateInfo>
  <nonRefundable>false</nonRefundable>
  <HotelFees size="1">
  <HotelFee description="MandatoryTax" amount="57.11" />
  </HotelFees>
  <rateType>MerchantStandard</rateType>
  <currentAllotment>1</currentAllotment>
  </RateInfo>
  ……
  
Example


5.3 Taxes and Fees are clearly stated as a separate line item

The value returned for TaxAndServiceFee must be displayed separately for all tax references and/or where a price breakdown is provided on your booking form(s).

The exact text below is legally required on your site for all Expedia Collect inventory when referring to any "taxes and fees" totals within a price breakdown. Base your display on the point of supply of the hotel, not the customer's location.

  • Europe: "Tax Recovery Charges"
  • All Other Regions: "Tax Recovery Charges and Service Fees"


5.4 Total price charged is clearly displayed

Example



5.5 Affiliate service or booking fees must be clearly separated

If you will charge your own booking or service fee, it must be clear to the customer that the fee is levied by you, the affiliate, and not EAN for a separate service (i.e. not a further charge for the provision of accommodation). Fees may not be included inside of existing fee breakdowns.
Affiliate booking or service fees may not be bundled into the price and must be broken out separately.

Example:
The example room below has a tax and service fee total of 27.09 euros. In the incorrect example, the partner service fee has been rolled into the EAN fee total. The correct example provides the partner service fee separately and clearly identifies its source.



5.6 City/Mandatory tax values must be reported separately

When a MandatoryTax value returns, return this value separately in your charge breakdowns. These charges are collected directly by the hotel and are not part of standard tax recovery charges.

Example



5.7 Sales tax values are reported separately when applicable

When salesTax is returned by the Surcharges array, display this item separately within your charge breakdown. This item details taxes collected by local municipalities or states and must be displayed per local laws.

Code Samples
Example XML

<Surcharges size="2">
<Surcharge type="SalesTax" amount="126.62" />
<Surcharge type="TaxAndServiceFee" amount="133.62" />
</Surcharges>
Example REST

"Surcharges": {
"@size": "2",
"Surcharge": [
{
"@type": "SalesTax",
"@amount": "126.62"

}, {
"@type": "TaxAndServiceFee",
"@amount": "133.62"
} …
Example:


5.8 Check-in instructions displayed

The contents of checkInInstructions must be displayed for each room when returned in the room availability response. This information must be displayed on your pre-booking pages to ensure the customer is aware of any potential fees at check-in or special access instructions before they finalize their booking.

Always use the value from the availability response - hotel info or static database check-in instruction values may not be up to date.

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……


XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>


5.9 Affiliate is providing customer email address OR monitored email mailbox with each booking request

The email element within ReservationInfo must contain the customer's email address OR the mailbox your integration monitors for confirmation email handling. This ensures the destination of all EAN-generated emails is always known, which is required for cases of booking disputes or troubleshooting.



5.10 Pre-Pay booking to state payment is taken in full

Booking pages for Expedia Collect availabilities must state that the credit card provided will be charged immediately for the full amount of the reservation. Confirmation pages for Expedia Collect bookings must state that payment was made for the full amount of the reservation.

Example


5.11 If applicable, child ages must be clearly stated

If your integration permits child guests and the customer specified child guests for their room selection, you must clearly confirm the number of child guests and their ages on your booking pages for all Expedia Collect properties. This information is provided via the numberOfChildren and childAges elements from the room availability response.

When customers specify child guests, the API response may contain age restrictions and/or extra occupancy or crib charges that may affect the cost or eligibility of the booking. These items must be clearly messaged to customers before checkout.

Each hotel configures what age range they classify as a child. Typically individuals aged 17 or younger are considered children. Some properties do not allow guests under age 18.

Example


5.12 Non-refundable policies are clearly visible

Non-refundable availabilities are indicated by nonRefundable=true. This value always takes precedence over any differing policy data. Clearly state such rooms are non-refundable on room selection pages and reiterate the non-refundable policy on your final booking page. These reservations are not refunded by the property under any circumstances.

For refundable availabilities, refer to our guide for evaluating penalties provided by the cancelPolicyInfo array.



5.13 Cancellation policy clearly displayed

Before allowing customers to confirm their purchase on your final booking page, you must provide the cancellation policy for the selected room or rooms and require customers to accept the policy.
Customers must not be allowed to book without agreeing to the room's specific cancellation policy.

Cancellation policies must always be obtained from live API responses via the cancelPolicyInfo array.

It is acceptable to include this agreement as part of the customer's acceptance of your own terms & conditions, e.g. "By [selecting this checkbox/continuing with the booking/etc], you agree you have read and accepted our Terms and Conditions as well as the cancellation policy for your selected room."

Example

5.14 Telephone number to be included in each booking request

The booking must include a viable contact number for the customer. Include this number in your booking request's homePhone field. Inform customers that this number will be used to contact them in the event a problem needs to be resolved with their reservation ahead of check-in time.

Example





5.15 Affiliate is displaying the contents of specialCheckInInstructions when returned

The contents of specialCheckInInstructions must be displayed for each room when returned.
This field may include information critical for check-in that is not included in the checkInInstructions field, such as a requirement to notify the property of expected arrival time, check-in at a different location from the guest building, or an alert to expect special check-in instructions from the property via email.
Display this information in the same area as the primary check-in instructions.

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example


5.16 EAN MoR – Payment processing location displayed on checkout pages

Where EAN are Merchant of Record for transactions, the country where the payment will be processed must be displayed in a prominent place on the checkout page. The phrase “This payment will be processed in” must be inserted before the country name.

Use the Payment API to retrieve this information.

Code Samples
REST
{
"HotelPaymentResponse": {
"@size": "7",
"@currencyCode": "USD",
"customerSessionId": "0c0a51e9-aedc-4909-b17c-ba57ab53fc28",
"PaymentType": [
{
"code": "AX",
"name": "American Express"
}, {
"code": "BC",
"name": "BC Card"
}, {
"code": "DC",
"name": "DINERS CLUB INTERNATIONAL"
}, {
"code": "DS",
"name": "Discover"
}, {
"code": "JC",
"name": "JCB"
}, {
"code": "CA",
"name": "Master Card",
"mandatoryDisplayText": "This payment will be processed in the United States.",
"processorCountryCode": "US"
}, {
"code": "VI",
"name": "Visa",
"mandatoryDisplayText": "This payment will be processed in the United States.",
"processorCountryCode": "US"
}
]
}
}
XML
<ns2:HotelPaymentResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="7" currencyCode="USD">
<customerSessionId>ce9e5fab-2984-4510-bb8e-240ce16ddd82</customerSessionId>
<PaymentType>
<code>AX</code>
<name>American Express</name>
</PaymentType>
<PaymentType>
<code>BC</code>
<name>BC Card</name>
</PaymentType>
<PaymentType>
<code>DC</code>
<name>DINERS CLUB INTERNATIONAL</name>
</PaymentType>
<PaymentType>
<code>DS</code>
<name>Discover</name>
</PaymentType>
<PaymentType>
<code>JC</code>
<name>JCB</name>
</PaymentType>
<PaymentType>
<code>CA</code>
<name>Master Card</name>
<mandatoryDisplayText>This payment will be processed in the United States.</mandatoryDisplayText>
<processorCountryCode>US</processorCountryCode>
</PaymentType>
<PaymentType>
<code>VI</code>
<name>Visa</name>
<mandatoryDisplayText>This payment will be processed in the United States.</mandatoryDisplayText>
<processorCountryCode>US</processorCountryCode>
</PaymentType>
</ns2:HotelPaymentResponse>
Example

6. Confirmation Page

6.1 Total price charged is clearly displayed

Example

7. Confirmation Email/Voucher

7.1 Clear breakdown of charges is provided if using own emails

If you opt out of EAN's automated customer confirmation emails/vouchers, the emails/vouchers you send to customers must provide a charge breakdown


7.2 Taxes and Fees are clearly stated as a separate line item

The value returned for TaxAndServiceFee must be displayed separately for all tax references and/or where a price breakdown is given, such as room availability, booking form and confirmation results for Expedia Collect properties.

The exact text below is legally required on your site for all Expedia Collect inventory when referring to any "taxes and fees" totals. Base your display on the point of supply of the hotel, not the customer's location.

  • Europe: "Tax Recovery Charges"
  • All Other Regions: "Tax Recovery Charges and Service Fees"


7.3 Affiliate service or booking fees must be clearly separated

If you will charge your own booking or service fee, it must be clear to the customer that the fee is levied by you, the affiliate, and not EAN for a separate service (i.e. not a further charge for the provision of accommodation). Fees may not be included inside of existing fee breakdowns.
Affiliate booking or service fees may not be bundled into the price and must be broken out separately.

Example:
The example room below has a tax and service fee total of 27.09 euros. In the incorrect example, the partner service fee has been rolled into the EAN fee total. The correct example provides the partner service fee separately and clearly identifies its source.



7.4 City/Mandatory tax values must be reported separately

If a MandatoryTax value returned earlier for the property to be booked, return this value separately in your pre-book price breakdown. These charges are collected directly by the hotel and are not part of standard tax recovery charges.

Example



7.5 Travelscape LLC or Vacationspot, SL stated as the Supplier

You must clearly identify the supplier of the hotel as either Travelscape LLC or Vacationspot, SL, according to the hotel's point of sale as follows:

  • Vacationspot: Applicable for all French and Belgium Points of Sale (PoSa), e.g. French: Mytravel.fr or Belgium: Mytravel.be
  • Travelscape: Applicable for all other PoSa.


7.6 Bed type descriptions are present on each room

Confirm the customer's selected bed types in your confirmation email/voucher. For availability responses where the BedTypes array did not return or returns a single value, display each room's rateDescription or roomTypeDescription value – these values typically return the same.

If the BedTypes array returned with multiple options, confirm the customer's selection from the hotel's room selection page. Return the customer's selected BedType ID in your reservation request using the bedTypeId parameter.

You must also display messaging to the traveller that choices between multiple bed types for the same room are requests only and may not be honored at the hotel if availability does not permit.

Code Samples
Single Bed Type Example XML

<rateCode>205109735</rateCode>
<roomTypeCode>201048862</roomTypeCode>
<rateDescription>Deluxe Room, 2 Single Beds</rateDescription>
<roomTypeDescription>Deluxe Room, 2 Single Beds</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="1">
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>

Multiple Bed Type Example XML
Note the rate/room type descriptions do not contain a bed type description.
<rateCode>204975819</rateCode>
<roomTypeCode>201019993</roomTypeCode>
<rateDescription>Executive Room</rateDescription>
<roomTypeDescription>Executive Room</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="2">
<BedType id="14">
<description>1 king bed</description>
</BedType>
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>
Single Bed Type Example REST
"rateCode": 484072,
"roomTypeCode": 198058,
"rateDescription": "Deluxe Room, 1 King Bed",
"roomTypeDescription": "Deluxe Room, 1 King Bed",

"supplierType": "E",
"propertyId": 5900,
"BedTypes": {
"@size": "1",
"BedType": {
"@id": "14",
"description": "1 king bed"

}
},
Multiple Bed Type Example REST
"rateCode": 206423129,
"roomTypeCode": 426739,
"rateDescription": "Family Apartment sleeps 6",
"roomTypeDescription": "Family Apartment sleeps 6",

"supplierType": "E",
"propertyId": 914263,
"BedTypes": {
"@size": "2",
"BedType": [
{
"@id": "69",
"description": "1 double and 1 sofa bed"
}, {
"@id": "70",
"description": "2 twin and 1 sofa bed"

}
]
},


7.7 Check-in instructions displayed

The contents of checkInInstructions must be displayed for each room when returned in the room availability response. This information must be displayed on your confirmation email to ensure the customer is aware of any potential fees at check-in or special access instructions.

Always use the value from the availability response - hotel info or static database check-in instruction values may not be up to date.

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……

XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>


7.8 Itinerary IDs and confirmation numbers displayed properly

If your integration will provide EAN's itineraryId and confirmationNumbers directly to customers, you must clearly display both of these numbers on your confirmation email.

If you opt out of EAN's automated customer confirmation emails/vouchers, you must provide evidence that your agents have access to the original EAN itinerary IDs and confirmation numbers should they require assistance from EAN customer support.

Code Samples
REST
customerSessionId: "0ABAAA80-6022-F319-1492-8BACB0B09974",
    itineraryId: 177592654,
    confirmationNumbers: 1234,
    processedWithConfirmation: true,
    supplierType: "E",
    reservationStatusCode: "CF",
    existingItinerary: false,

XML
<ns2:HotelRoomReservationResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/">
<customerSessionId>0ABAAA8A-B59C-1291-4982-BDA2A8793A49</customerSessionId>
<itineraryId>177598724</itineraryId>
<confirmationNumbers>1234</confirmationNumbers>

<processedWithConfirmation>true</processedWithConfirmation>
<supplierType>E</supplierType>
<reservationStatusCode>CF</reservationStatusCode>
<existingItinerary>false</existingItinerary>


7.9 Affiliate is displaying the contents of specialCheckInInstructions when returned

The contents of specialCheckInInstructions must be displayed for each room when returned.
This field may include information critical for check-in that is not included in the checkInInstructions field, such as a requirement to notify the property of expected arrival time, check-in at a different location from the guest building, or an alert to expect special check-in instructions from the property via email.
Display this information in the same area as the primary check-in instructions.

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example

8. Technical & Fraud Prevention Requirements

8.1 Affiliate is providing unique Affiliate Confirmation ID with each booking request

For every booking request, you must use the affiliateConfirmationId element, with the intent of:

  1. Your own tracking
  2. Preventing duplicate bookings/duplicate charges from multiple form submissions
  3. Checking EAN systems for an itinerary if the reservation timed out or returned an empty result due to upstream timeouts.


8.2 Logic has been implemented to handle pending and error states

See the Pending Supplier Process page and our error handling section at large to help your implementation meet this requirement.

Bookings that return with a PS status must be monitored until they resolve to a permanent confirmed (CF), an error (ER) status, or for up to 3 days, whichever comes first. Most bookings will resolve within a few hours to a day.



8.3 Affiliate is providing customer IP address with each request

The customer's device IP address must be passed in all API calls to identify the point of sale.

This requirement ensures the correct POS is set within EAN's systems to provide customers with relevant content and the most suitable rates based on their location.

Passing static, dummy, or server IPs will cause price mismatch errors and incorrect content to return.



8.4 Affiliate is providing session ID with each request

You must use the customerSessionId for each customer beginning with their first hotel list search, or use the value returned in the initial list response for the remainder of the booking path, to ensure the content returned is consistent throughout API calls and your customers have a consistent experience from shopping to booking.

This value greatly eases EAN's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual customers.



8.5 Affiliate is providing customer's user agent string with each request

If you are eligible for mobile deals, user agent data must be passed in all API calls to identify the customers device type and ensure customers receive rates relevant to the device they are using.

8.6 Affiliate to integrate additional anti-fraud measures

If EAN is Merchant of Record for your integration, you may be required to integrate additional anti-fraud elements provided by EAN. This may include, but is not limited to: JavaScipt code and additional data points on the API requests, such as: apiExperience, Credit Card Full Name, customer email, stateProvinceCode, and postalCode. Your commercial representative will advise if this requirement applies to your integration & provide access to EAN’s anti-fraud integration guide.