close

Sign in

To view secure documentation please login with EAN Service Desk, using the link below.

EAN service desk

No EAN Service Desk account?

Please contact your EAN representative

Login
Sign in
Rapid

Launch Requirements - B2C Standalone

Disclaimer: The requirements below are not final and may be changed, removed, or expanded in the future. 

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 given_name and family_name within the rooms object must match the first and last name of the guest checking in for the reservation.

Code Sample
REST
……
  "rooms": [
    {
      "title": "Mr",
      "given_name": "John",
      "family_name": "Smith",
……
   
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.

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: https://rapid.ean.com/reference/credit-card-guide

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 child_ages element (see code sample 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
…
"number_of_adults": 2,
<strong>"child_ages": [4,5]</strong>
…
  
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 rates, you will need to display all taxes and fees as returned by the nightly and fees arrays in the Shopping response. The fees returned by the fees 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 the nightly array's base_rates and tax_and_service_fee values, any additional nightly fees, all fee 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 Sample
These blocks contain the charge arrays referred to for this requirement
REST
…
  "occupancies": {
   "2": {
     "nightly": [
       [
         {
           "type": "tax_and_service_fee",
           "value": "74.38",
           "currency": "USD"
         },
         {
           "type": "base_rate",
           "value": "399.39",
           "currency": "USD"
         }
       ]
     ],
     "fees": [
       {
         "type": "resort_fee",
         "value": "14.19",
         "currency": "USD"
       }
     ],
     "totals": {
       "exclusive": {
         "value": "399.39",
         "currency": "USD"
       },
       "inclusive": {
         "value": "473.77",
         "currency": "USD"
       }
     }
 …
  

4. Hotel/Room Availability

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

When a price breakdown is provided on the room availability page, the value returned for tax_and_service_fee must be displayed separately for all tax references. 

This display must include the exact text below, as it is legally required 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 providing a charge breakdown on the room availability page, sales_tax must be displayed separately as it is returned by the fees array. This item details taxes collected by local municipalities or states and must be displayed per local laws. Display this item separately within your charge breakdown.


4.3 Bed type descriptions are present on each room

Shop responses may return the bed_groups array with a single value or multiple options. Display the values contained in the configuration array to describe the customer's bed choice(s).

When the bed_groups array returns with multiple options, display the price_check links provided by the Shop response for each bed type to allow selection by the customer.

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 Sample

Example Shop Response - Single Bed Option

 "bed_groups": [
              {
                "links": {
                  "price_check": {
                    "method": "GET",
                    "href": "/2/properties/availability/19248/rooms/abc123/rates/abc123/price-check?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
                  }
                },
                "configuration": [
                  {
                    "type": "Bed",
                    "size": "Queen",
                    "count": 1
                  }
                ]
              }
            ],

4.4 Check-in instructions displayed

The contents of instructions from the checkin object must be displayed for each room as returned in the property content definition. These instructions may include critical information such as fees that can be incurred at check-in, or after-hours access instructions.

Code Sample
REST
…
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "<strong>instructions</strong>": "Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />",
      "min_age": 18
    }, 
……

4.5 Non-refundable policies are clearly visible

Non-refundable availabilities are indicated by refundable=false in the Shop availability response. This value always takes precedence over any differing policy data. These reservations are not refunded by the property under any circumstances. 

When refundable=false is returned in an availability response, clearly label the applicable rooms wherever individual availabilities are offered - full room selection pages, partial selections on list result pages, etc.

Code Sample
REST
   "rates": [
          {
            "id": "200706716",
            "available_rooms": 12,
            "refundable": <strong>false</strong>,
  


4.6 Affiliate is displaying the contents of special_instructions when returned

The contents of the checkin object's special_instructions field must be displayed for each room when returned in the property content definition.
This field may include information critical for check-in that is not included in the checkin object's instructions 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 Sample
REST
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "instructions": "Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />",
      <strong>"special_instructions":</strong> "There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.",
      "min_age": 18
    },

 

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 nightly and fees arrays in the price check response.

Remember to display fees returned by the fees 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 rates without taxes. Your final breakdown should include nightly rates (total or per-night), any additional nightly fees, all fees amounts, and a chargeable total.

Code Sample
These blocks contain the charge arrays referred to for this requirement. You must use the data from the same price check response used to obtain your booking token link.
REST
……
  "occupancies": {
   "2": {
     "nightly": [
       [
         {
           "type": "tax_and_service_fee",
           "value": "74.38",
           "currency": "USD"
         },
         {
           "type": "base_rate",
           "value": "399.39",
           "currency": "USD"
         }
       ]
     ],
     "fees": [
       {
         "type": "resort_fee",
         "value": "14.19",
         "currency": "USD"
       }
     ],
     "totals": {
       "exclusive": {
         "value": "399.39",
         "currency": "USD"
       },
       "inclusive": {
         "value": "473.77",
         "currency": "USD"
       }
     }
……
  
Example

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

The value returned for tax_and_service_fee 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 mandatory_tax value returns, return this value separately in your charge breakdowns as an additional charge due at the hotel. These charges are collected directly by the hotel and are not part of standard tax recovery charges.

5.7 Sales tax values are reported separately when applicable

When sales_tax is returned by the fees 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.


5.8 Check-in instructions displayed

The contents of instructions from the checkin object must be displayed for each room as returned in the property content definition. 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. These instructions may include critical information such as fees that can be incurred at check-in, or after-hours access instructions.

Code Sample
REST
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "<strong>instructions</strong>": "Extra-person charges may apply and vary depending on hotel policy. 
      Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. 
      Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. ",
      "min_age": 18
    },

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

The email element within BillingContact 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 child_ages element.

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 refundable=<strong>false</strong>. 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.

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 shopping responses via the cancel_penalties 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 phone field within the BillingContact object. 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 special_instructions when returned

The contents of the checkin object's special_instructions field must be displayed for each room when returned in the property content definition.
This field may include information critical for check-in that is not included in the checkin object's instructions 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 Sample
REST
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "instructions": "Extra-person charges may apply and vary depending on hotel policy. 
      Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. 
      Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed.",
      "special_instructions": "There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.",
      "min_age": 18
    },
      

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 Options function of the Shopping API to retrieve this information.

Code Sample
   {
  "affiliate_collect": {
    "name": "Affiliate Collect"
  },
  "credit_card": {
    "name": "Credit Card",
    "card_options": [
      {
        "name": "AmericanExpress",
        "card_type": "AX"
      },
      {
        "name": "MasterCard",
        "card_type": "CA",
        "processing_country": "US"
      }
    ]
  }
}
  
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 in confirmation emails

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 tax_and_service_fee 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 mandatory_tax 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.

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. Shop responses may return the bed_groups array with a single value or multiple options. Display the values contained in the configuration array to describe the customer's bed choice(s).

Display the customer’s selected bed type as defined in the price_check link used prior to booking.

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 Sample

Example Shop Response - Single Bed Option
 "bed_groups": [
              {
                "links": {
                  "price_check": {
                    "method": "GET",
                    "href": "/2/properties/availability/19248/rooms/abc123/rates/abc123/price-check?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
                  }
                },
                "configuration": [
                  {
                    "type": "Bed",
                    "size": "Queen",
                    "count": 1
                  }
                ]
              }
            ],
    

7.7 Check-in instructions displayed

The contents of instructions from the checkin object must be displayed for each room as returned in the property content definition. 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.

Code Sample
REST …
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "instructions": "Extra-person charges may apply and vary depending on hotel policy. 
Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. 
Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. 
",
      "min_age": 18
    }, 
……

7.8 Itinerary IDs displayed properly

If your integration will provide EAN's itinerary_id directly to customers, you must clearly display this number on your confirmation email. You must include the itinerary retrieval link directly in your confirmation emails. If applicable, you must provide evidence that your agents have access to the original EAN itinerary IDs should they require assistance from EAN customer support.

Code Sample
REST
 …
{
  "itinerary_id": 8999989898988,
  "property_id": 8150374,
  "links": {
    "cancel": {
      "method": "DELETE",
      "href": "/2/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
    }
  },
……

7.9 Affiliate is displaying the contents of special_instructions when returned

The contents of the checkin object's special_instructions field must be displayed for each room when returned in the property content definition. This field may include information critical for check-in that is not included in the checkin object's instructions 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 Sample REST
"checkin": {
      "begin_time": "3:00 PM",
      "end_time": "11:00 PM",
      "instructions": "Extra-person charges may apply and vary depending on hotel policy. 
      Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. 
      Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed.",
      "special_instructions": "There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.",
      "min_age": 18
    },
        

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:

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

8.2 Affiliate is providing session ID with each request

You must send the Customer-Session-Id for each customer, beginning with their first property search, 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.3 Affiliate is providing customer IP address 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.


Previous API Documentation - New Location

Looking for docs for your V3 integration? Simply sign in to your account on support.ean.com to view all documentation for our previous V3 API.
Contact your EAN representative if you need assistance with your support.ean.com account - docs are not available without an account.