EST (Enhanced Shopping Transaction)

This transaction set is used to request actual available rates and rooms at multiple hotels (Note - up to a max of 200 properties in one request). All hotel CRSs support this transaction.

Standard EST request:

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="1285940187599"/>
<Route Destination="00" Source="XX" RequestedAccuracy="CacheOrSource"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="TP;043241"/>
<Property Code="MC;LONCH"/>
<RateCriteria VersionCompliance="Enhanced_V1" NumberOfRooms="1" ReturnRateChanges="true">
<GuestCount Type="Adult" Count="2"/>
<GuestCount Type="Child" Count="1"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2016-06-20" OutDate="2016-06-21"/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>
  • Demand Partner to insert their agency (TIDS, IATA, or CLIA)

  • Demand Partner to insert assigned Source Code (SGA) of XX

  • Property IDs are obtained from the property list from the PDS site and are inserted into requests with brand code and property ID separated by a semi-colon. MC;LONCH Brand code “MC”, property ID “LONCH”

  • Add RequestedAccuracy="CacheOrSource to these requests so we can identify from where the response is received (Either RateGain Cache or direct from hotel source).

  • 200 properties can be sent in one RateGain recommends sending less than 200 based on the strategy guidelines provided by implementer.

  • GuestCount is per room.

Standard EST Response:

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Route Destination="XX" Source="00">
<Operation Action="Create" App="UltraDirect-ud_instance_1" AppVer="V1_1" DataPath="/HotelML" StartTime="2015-04- 17T10:11:41.635+00:00" Success="true" TotalProcessTime="15"/>
</Route>
</Head>
<Property xml:lang="en" AvailabilityStatus="Open" Code="MC;LONCH" Token="1285940187599">
<Rate>
<RatePlan Code="D00" CommissionableStatus="Commissionable" Description="Advance Purchase rate, prepay in full, see Rate Rules" InDate="2016-06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="293.00" Code="APN" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Deluxe Room, 1 King, 30sqm/323sqft-45sqm/484sqf t, Wireless Internet for a fee, Wired Internet for a fee, Coffee/tea maker, 32in/81cm LCD TV" StandardRoomType="GENR" TotalRate="293.00" TotalRateInclusive="293.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="AfterBooking" PenaltyAmountTaxIndicator="Unknown" PenaltyAmountFeeIndicator="Unknown"/>
</RoomType>
</RatePlan>
<RatePlan Code="B00" CommissionableStatus="Commissionable" Description="Best Available rate" InDate="2016- 06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="395.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="River Thames View Room, 1 King or 2 Double, 30sqm/323sqft-45sqm/484sqft, Wireless Internet for a fee, Wired Internet for a fee, Coffee/tea ma" StandardRoomType="SRPM" TotalRate="395.00" TotalRateInclusive="395.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="395.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="H00" CommissionableStatus="Commissionable" Description="Best Available rate" InDate="2016- 06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="425.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Executive Big Ben View Room, Executive Lounge Access, 1 King or 2 Double, 30sqm/323sqft-45sqm/ 484sqft, Wireless Internet for a fee, Wired Int" StandardRoomType="BBEV" TotalRate="425.00" TotalRateInclusive="425.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="425.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="L00" CommissionableStatus="Commissionable" Description="Leisure Rate - Be Your #WeekendSelf, see Rate Rules" InDate="2016-06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016- 06-21">
<RoomType BookableRate="435.00" Code="UKE" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Deluxe Room, 2 Double, Wireless Internet for a fee, Wired Internet for a fee, Coffee/tea maker, 40in/102cm TV" StandardRoomType="DBDB" TotalRate="435.00" TotalRateInclusive="435.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="435.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="I00" CommissionableStatus="Commissionable" Description="Leisure Rate - Be Your #WeekendSelf, see Rate Rules" InDate="2016-06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016- 06-21">
<RoomType BookableRate="455.00" Code="UKE" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Executive Big Ben View Room, Executive Lounge Access, 1 King or 2 Double, 30sqm/323sqft-45sqm/ 484sqft, Wireless Internet for a fee, Wired Int" StandardRoomType="BBEV" TotalRate="455.00" TotalRateInclusive="455.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="455.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="D00" CommissionableStatus="Commissionable" Description="Best Available rate" InDate="2016- 06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="465.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Executive Big Ben View, 1 King or 1 Queen, Living/sitting area, Wireless Internet, complimentary, Wired Internet, complimentary, Coffee/tea m" StandardRoomType="KWTV" TotalRate="465.00" TotalRateInclusive="465.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="465.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="I00" CommissionableStatus="Commissionable" Description="Best Available rate" InDate="2016- 06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="645.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Junior Suite, 1 King or 1 Queen, Sofa bed, 30sq m/323sqft-45sqm/484sqft, Living/sitting area, Wireless Internet, complimentary, Wired Internet" StandardRoomType="EXVR" TotalRate="645.00" TotalRateInclusive="645.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="645.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="N00" CommissionableStatus="Commissionable" Description="Advance Purchase rate, prepay in full, see Rate Rules" InDate="2016-06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="793.00" Code="APN" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Balcony Suite with View over the River Thames and Big Ben, Executive Lounge Access, 1 King, 40 sqm/430sqft-50sqm/538sqft, Living/sitting area," StandardRoomType="STWD" TotalRate="793.00" TotalRateInclusive="793.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="AfterBooking" PenaltyAmountTaxIndicator="Unknown" PenaltyAmountFeeIndicator="Unknown"/>
</RoomType>
</RatePlan>
<RatePlan Code="F00" CommissionableStatus="Commissionable" Description="Best Available rate" InDate="2016- 06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06-21">
<RoomType BookableRate="845.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Balcony Suite with View over the River Thames and Big Ben, Executive Lounge Access, 1 King, 40 sqm/430sqft-50sqm/538sqft, Living/sitting area," StandardRoomType="STWD" TotalRate="845.00" TotalRateInclusive="845.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="845.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PercentageQualifier="Nights"/>
</RoomType>
</RatePlan>
<RatePlan Code="G00" CommissionableStatus="Commissionable" Description="Best Available rate, prepay in full, non-refundable, no changes" InDate="2016-06-20" MarketingText1="All rates are quoted inclusive of VAT." OutDate="2016-06- 21">
<RoomType BookableRate="2500.00" Code="REG" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Presidential Suite with View of the River Thames and Big Ben, Executive Lounge Access, 1 King, Microwave, 135sqm/1453sqft, Dining area, Livin" StandardRoomType="PRES" TotalRate="2500.00" TotalRateInclusive="2500.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="AfterBooking" PenaltyAmountTaxIndicator="Unknown" PenaltyAmountFeeIndicator="Unknown"/>
</RoomType>
</RatePlan>
</Rate>
</Property>
<Property xml:lang="en" AvailabilityStatus="Open" DataAge="2015-04-16T09:47:23.842+00:00" DataOrigin="Cache" Code="TP;043241" Token="1285940187599">
<Rate>
<RatePlan Code="A0B" CommissionableStatus="NonCommissionable" Description="NonRefundable Rate Excludes Breakfast / No Cancellation Allowed" InDate="2015-06-20" Indicator="BusinessStandard" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2015- 06-21">
<RoomType BookableRate="82.65" Code="A07" NativeCurrency="USD" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath Tub/ Hair Dryer For Up To 4" TotalRate="82.65" TotalRateInclusive="82.65">
<DepositPolicy Required="true"/>
<CancelPolicy Description="No cancel allowed."/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
</Rate>
</Property>
</HotelML>
  • BookableRate: rate per room per night (may or may not include taxes). Based on CRS, this rate may be the first night average, highest, or most frequent nightly.

  • TotalRate and TotalRateInclusive represent the per-room total for all nights.

  • BookableRate and TotalRate values may or may not include taxes and service TotalRateInclusive values include all taxes and service charges. TotalRateInclusive minus TotalRate equals Total Taxes not included in rate.

  • All rates are per room (Important to note if multiple rooms are requested).

  • Marriott (MC) also returns penalty information in this response, but not all chains support this.

  • Public rates have been returned for all hotels – note that some are deposit rates - <DepositPolicyRequired="true"/> this is important to note for the guarantee type value that needs to be sent in the booking request.

Rate Change Response Examples

The ReturnRateChanges="true” value in the initial request will trigger the response to contain the actual RateChanges if the hotel supports the functionality.

Example response extract if the chain supports this:

<RatePlan Code="MNL" CommissionableStatus="Commissionable" Description="XXX Manor" InDate="2015-12-28" OutDate="2015-12-30">
<Amenity xml:lang="en" Code="EP" Description="Room only" ExtraCharge="true" OnRequest="true" Room="true"/>
<RoomType BookableRate="84.00" Code="B1Q" NativeCurrency="GBP" RateChange="true" RateFrequency="Daily" RoomDescription="Superior Room Queen Bed convertible Sofa
Room only, Breakfast Pers-Nt: 8.00 GBP" TotalRate="163.00" TotalRateInclusive="163.00">
<CancelPolicy Time="18:00:00.000"/>
<Amenity xml:lang="en" Code="EP" Description="Room only" ExtraCharge="true" OnRequest="true" Room="true"/>
<RateChange Charge="79.00" CurrencyCode="GBP" Date="2015-12-28"/>
<RateChange Charge="84.00" CurrencyCode="GBP" Date="2015-12-29"/>
</RoomType>
</RatePlan>

  • RateChange Charge values may or may not include taxes and service charges.

  • During a rate change period, the first rate change is the rate that is in effect until the next date is specified and remains in effect until the next date is specified.

  • Average rate can be calculated by dividing either the TotalRateInclusive or TotalRate by the number of nights based on whether you wish to display the final nightly cost or the nightly cost before taxes.

If a chain does not support this functionality in the availability response, but rate changes do occur during the stay the indicator RateChange="true" is returned but with no rate listing – full rate change information is provided in the rate rules response.

Meal Plans in EST

Meal Plan Information may be returned in the EST responses (not all chains will return this information):

<RoomType BookableRate="498.00" Code="IPRG" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="PRIVILEGE ROOM-1 DBL OR 2 TWIN BEDS CITY" TotalRateInclusive="498.00">
<CancelPolicy IntervalUnits="Hours" TimeInterval="72"/>
<Amenity xml:lang="en" Code="BRKFST" Confirmable="true" Property="true" Room="true"/>
</RoomType>

Key to meal plans returns:

  • <Amenity Code="BRKFST" Confirmable="true" Room="true"/> Breakfast included in rate.

  • <Amenity Code="BRKFST" Confirmable="true" ExtraCharge="true" Room="true"/> Breakfast not included, extra cost.

  • <Amenity Code="BRKFST" OnRequest="true" Room="true"/> On Request and complimentary.

  • <Amenity Code="BRKFST" ExtraCharge="true" OnRequest="true"/> On Request with cost.

  • <Amenity Code="BRKFST" Room="true"/> If this is returned, we would suggest you check with the hotel chain for clarification of exactly what is on offer.

Please also note the meal plan codes can be returned at both RatePlan and RoomType level. It is important to code for both scenarios as shown below.

Marriott example:

<RatePlan Code="DUQC" CommissionableStatus="NonCommissionable" Description="Dyn Bdld Brkfast For 2, Bed & Breakfast Rate, see Rate Rules" InDate="2019-01-10" MarketingText1="Rates include VAT. Reservations required for Gillray's Steakhous" OutDate="2019-01-11" RequestedRatePlanCode="GT2" Status="Open">
<Amenity Code="BRKFST" Confirmable="true" Room="true"/>
<CorpInfo Code="DN2"/>
<RoomType BookableRate="260.00" Code="GENR" NativeCurrency="GBP" RateFrequency="Daily" RoomDescription="Deluxe Room, 1 King, 30sqm/323sqft-45sqm/484sqf t, Wireless internet, for a fee, Wired internet, for a fee, Coffee/tea maker, 32in/81cm LCD TV" StandardRoomType="GENR" TotalRate="260.00" TotalRateInclusive="260.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1" IntervalOffsetType="BeforeArrival" PenaltyAmount="260.00" PenaltyAmountTaxIndicator="Exclusive" PenaltyAmountFeeIndicator="Unknown"/>
</RoomType>
</RatePlan>

IHG example:

<RatePlan Code="P29C" CommissionableStatus="NonCommissionable" Description="TPI 25P BKFST WH" InDate="2018-04-28" OutDate="2018- 04-29" RequestedRatePlanCode="GT3" Status="Open" NonRefundableStay="false">
<RoomType BookableRate="1950.75" Code="SUP" NativeCurrency="HKD" RateFrequency="Daily" RoomDescription="CROWNE PLAZA SUPERIOR ROOM" TotalRate="1950.75" TotalRateInclusive="2145.83" TotalSurcharges="195.08" NumberOfPayingGuestsPerRoom="2">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="2" PenaltyAmountTaxIndicator="Unknown" PenaltyAmountFeeIndicator="Unknown" PenaltyNights="1" PenaltyPercentage="0" PercentageQualifier="Nights"/>
<Amenity Code="BRKFST" Confirmable="true" Description="Meal included - Breakfast" Room="true"/>
</RoomType>
</RatePlan>

Supported Meal Plan Codes

Code

Description

BRKFST

Breakfast

BRKBUF

Breakfast Buffet

CNTBRK

Continental Breakfast

COMBRK

Complimentary Continental Breakfast

DINNER

Dinner

FEBRK

Full English Breakfast

LUNCH

Lunch

COMPDN

Meal included - dinner

COMPLN

Meal included - lunch

MP

Meal Plan

AP

Meal Plan - American

BB

Meal Plan - Bed and Breakfast

BP

Meal Plan - Bermuda

CB

Meal Plan - Caribbean

CP

Meal Plan - Continental

EP

Meal Plan - European

FAP

Meal Plan - FAP/Full-board

MAP

Meal Plan - MAP/Half-board

Negotiated Rates in EST

  • Demand Partner will have agreements in place with the hotel chains regarding which negotiated rates will be available.

  • The hotel chains will inform Demand Partner which method to use to request the rates via For chains that use the Negotiated Rate Management Tool (Account Author) the distributor will use a “Negotiated” RatePlanType and for others use a “Corporate” RatePlanType.

  • It may be necessary for EST Negotiated rates requests to be separated by chain.

  • It is possible to request multiple codes from one chain (if they are offering you more than one net rate), generally a maximum of 3-15 negotiated rate codes per transaction depending upon the CRS.

Example EST request for Corporate rates

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="1285940187599"/>
<Route Destination="00" Source="XX" RequestedAccuracy="CacheOrSource"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="XX;043241"/>
<Property Code="XX;4321"/>
<Property Code="XX;3241"/>
<RateCriteria VersionCompliance="Enhanced_V1" NumberOfRooms="1" ReturnRateChanges="true">
<GuestCount Type="Adult" Count="1"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2015-11-20" OutDate="2015-11-21"/>
<RateSearch RatePlanCode="XX1" RatePlanType="Corporate"/>
<RateSearch RatePlanCode="XX2" RatePlanType="Corporate "/>
<RateSearch RatePlanCode="XX3" RatePlanType="Corporate "/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>

Example EST Response with Corporate rates returned

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Route Destination="XX" Source="00">
<Operation Action="Create" App="UltraDirect-d4c8_prod_12_2" AppVer="V1_1" DataPath="/HotelML" StartTime="2019-01- 15T16:20:26.719+00:00" Success="true" TotalProcessTime="285"/>
</Route>
</Head>
<Property xml:lang="en" AvailabilityStatus="Open" DataAge="2019-01-15T16:20:27.002+00:00" DataOrigin="Source" Code="XN;3562" Token="1547569226694">
<Rate>
<RatePlan ClosedReason="Unavailable" Code="XX1" CommissionableStatus="Unknown" InDate="2019-01-29" OutDate="2019- 01-31" RequestedRatePlanCode="XX1" Status="Closed"/>
<RatePlan Code="XX2" CommissionableStatus="Commissionable" Description="FLEXIBLE RATE EP Room only breakfast per pax- per night - 188.00 HKD" InDate="2019-01-29" Indicator="Corporate" OutDate="2019-01-31" RequestedRatePlanCode="XX2" Status="Open">
<RoomType BookableRate="1025.00" Code="C1Q" NativeCurrency="HKD" RateFrequency="Daily" RoomDescription="Standard Room with 1 queensize bed" RoomRateText="FLEXIBLE RATE Standard Room with 1 queensize bed" TotalRate="2050.00" TotalRateInclusive="2255.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="1"/>
</RoomType>
</RatePlan>
<RatePlan Code="XX2" CommissionableStatus="Commissionable" Description="Hotdeal CCPrepaid No Refund EP Room only breakfast per pax-per night - 188.00 HKD" InDate="2019-01-29" Indicator="Corporate" OutDate="2019-01-31" RequestedRatePlanCode="XX2" Status="Open">
<RoomType BookableRate="850.00" Code="C2T" NativeCurrency="HKD" RateFrequency="Daily" RoomDescription="Standard Room with two single beds" RoomRateText="Hotdeal CCPrepaid No Refund Standard Room with two single beds" TotalRate="1700.00" TotalRateInclusive="1870.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Months" TimeInterval="12"/>
</RoomType>
</RatePlan>
<RatePlan Code="XX3" CommissionableStatus="Commissionable" Description="Hotdeal CCPrepaid No Refund EP Room only breakfast per pax-per night - 188.00 HKD" InDate="2019-01-29" Indicator="Corporate" OutDate="2019-01-31" RequestedRatePlanCode="XX3" Status="Open">
<RoomType BookableRate="1100.00" Code="B1Q" NativeCurrency="HKD" RateFrequency="Daily" RoomDescription="Superior Room with 1 queensize bed" RoomRateText="Hotdeal CCPrepaid No Refund Superior Room with 1 queensize bed" TotalRate="2200.00" TotalRateInclusive="2420.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Months" TimeInterval="12"/>
</RoomType>
</RatePlan>
<RatePlan Code="XX3" CommissionableStatus="Commissionable" Description="Hotdeal CCPrepaid No Refund EP Room only breakfast per pax-per night - 188.00 HKD" InDate="2019-01-29" Indicator="Corporate" OutDate="2019-01-31" RequestedRatePlanCode="XX3" Status="Open">
<RoomType BookableRate="1100.00" Code="B2T" NativeCurrency="HKD" RateFrequency="Daily" RoomDescription="Superior Room with 2 single beds" RoomRateText="Hotdeal CCPrepaid No Refund Superior Room with 2 single beds" TotalRate="2200.00" TotalRateInclusive="2420.00">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Months" TimeInterval="12"/>
</RoomType>
</RatePlan>
</Rate>
</Property>
</HotelML>

Some chains may require a corporate rate plan type and a corporate code:

<RateSearch RatePlanCode="ABC" RatePlanType="Corporate" BrandCode="SI">

<CorpInfo Code="123456"/>

Example EST request for Negotiated Rates:

Demand Partner’s actual assigned Negotiated Rate Codes to be used in requests (to chains supporting this model):

  • 1XX - Demand Partner Rate 1

  • 2XX - Demand Partner Rate 2

  • 3XX - Demand Partner Rate 3

  • 4XX - Demand Partner Rate 4

  • 5XX - Demand Partner Rate 5

  • 6XX - Demand Partner Rate 6

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="3794703"/>
<Route RequestedAccuracy="CacheOrSource" Source="XX" Destination="00"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="TP;043241"/>
<RateCriteria NumberOfRooms="1" ReturnRateChanges="true" VersionCompliance="Enhanced_V1">
<GuestCount Count="2" Type="Adult"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2016-11-10" OutDate="2016-11-11"/>
<RateSearch RatePlanCode="1XX" RatePlanType="Negotiated"/>
<RateSearch RatePlanCode="2XX" RatePlanType="Negotiated"/>
<RateSearch RatePlanCode="3XX" RatePlanType="Negotiated"/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>

Example response with negotiated rates returned:

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Route Destination="XX" Source="00">
<Operation Action="Create" App="UltraDirect-ud_instance_3" AppVer="V1_1" DataPath="/HotelML" StartTime="2016-06-01T19:08:35.157+00:00" Success="true" TotalProcessTime="656"/>
</Route>
</Head>
<Property xml:lang="en" AvailabilityStatus="Open" DataAge="2016-06-01T19:08:35.806+00:00" DataOrigin="Source" Code="TP;043241" Token="3794703">
<Rate>
<RatePlan Code="1XX" CommissionableStatus="NonCommissionable" Description="Demand Partner Rate 1" InDate="2016-11-10" Indicator="Negotiated" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2016-
11-11" RequestedRatePlanCode="1XX" Status="Open">
<RoomType BookableRate="92.15" Code="A00" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Double or Twin/ 23sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Shower/ Hair Dryer" TotalRate="92.15" TotalRateInclusive="92.15">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="2"/>
<Amenity Code="BRKBUF" Confirmable="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="92.15" Code="A08" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Superior Double or Twin/ 28sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Bath Tub/ Hair Dryer" TotalRate="92.15" TotalRateInclusive="92.15">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="2"/>
<Amenity Code="BRKBUF" Confirmable="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="92.15" Code="A07" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath Tub/ Hair Dryer For Up To 4" TotalRate="92.15" TotalRateInclusive="92.15">
<DepositPolicy Required="true"/>
<CancelPolicy IntervalUnits="Days" TimeInterval="2"/>
<Amenity Code="BRKBUF" Confirmable="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
<RatePlan Code="A0Z" CommissionableStatus="Commissionable" Description=" Demand Partner Rate 2" InDate="2016-11-10" Indicator="Negotiated" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2016-11-11" RequestedRatePlanCode="2XX" Status="Open">
<RoomType BookableRate="82.45" Code="A00" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Double or Twin/ 23sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Shower/ Hair Dryer" TotalRate="82.45" TotalRateInclusive="82.45">
<GuaranteePolicy LateArrivalTime="18:00:00.000" Required="false"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="82.45" Code="A08" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Superior Double or Twin/ 28sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Bath Tub/ Hair Dryer" TotalRate="82.45" TotalRateInclusive="82.45">
<GuaranteePolicy LateArrivalTime="18:00:00.000" Required="false"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="82.45" Code="A07" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath
Tub/ Hair Dryer For Up To 4" TotalRate="82.45" TotalRateInclusive="82.45">
<GuaranteePolicy LateArrivalTime="18:00:00.000" Required="false"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
<RatePlan Code="A1C" CommissionableStatus="NonCommissionable" Description="Demand Partner Rate 3" InDate="2016-11-10" Indicator="Negotiated" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2016-
11-11" RequestedRatePlanCode="3XX" Status="Open">
<RoomType BookableRate="74.21" Code="A00" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Double or Twin/ 23sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Shower/ Hair Dryer" TotalRate="74.21" TotalRateInclusive="74.21">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="74.21" Code="A08" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Superior Double or Twin/ 28sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Bath Tub/ Hair Dryer" TotalRate="74.21" TotalRateInclusive="74.21">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="74.21" Code="A07" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath
Tub/ Hair Dryer For Up To 4" TotalRate="74.21" TotalRateInclusive="74.21">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
<RatePlan Code="A0B" CommissionableStatus="NonCommissionable" Description="Non Refundable Rate Excludes Breakfast / No Cancellation Allowed" InDate="2016-11-10" Indicator="BusinessStandard" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2016-11-11">
<RoomType BookableRate="92.15" Code="A00" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Double or Twin/ 23sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Shower/ Hair Dryer" TotalRate="92.15" TotalRateInclusive="101.37">
<DepositPolicy Required="true"/>
<CancelPolicy Description="No cancel allowed."/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="92.15" Code="A08" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Superior Double or Twin/ 28sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Bath Tub/ Hair Dryer" TotalRate="92.15" TotalRateInclusive="92.15">
<DepositPolicy Required="true"/>
<CancelPolicy Description="No cancel allowed."/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="92.15" Code="A07" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath
Tub/ Hair Dryer For Up To 4" TotalRate="92.15" TotalRateInclusive="92.15">
<DepositPolicy Required="true"/>
<CancelPolicy Description="No cancel allowed."/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
<RatePlan Code="LV0" CommissionableStatus="Commissionable" Description="Daily Rate - Exclud. Breakfast" InDate="2016-11-10" Indicator="Negotiated" MarketingText1="TOP Hotels - Your choice for Europe" OutDate="2016-11-11">
<RoomType BookableRate="97.00" Code="A00" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Double or Twin/ 23sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Shower/ Hair Dryer" TotalRate="97.00" TotalRateInclusive="106.70">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="97.00" Code="A08" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Superior Double or Twin/ 28sqm/ Mini Bar/ Cable-TV/ Safe/ Private Bath/ Bath Tub/ Hair Dryer" TotalRate="97.00" TotalRateInclusive="97.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
<RoomType BookableRate="97.00" Code="A07" NativeCurrency="EUR" RateFrequency="Daily" RoomDescription="Apartment Double or Twin/ 38sqm/ Mini Bar/ Cable-TV/ Safe/ Full Kitchnette/ Private Bath/ Bath Tub/ Hair Dryer For Up To 4" TotalRate="97.00" TotalRateInclusive="97.00">
<GuaranteePolicy Required="true"/>
<CancelPolicy Time="18:00:00.000"/>
<Amenity Code="MP" ExtraCharge="true" OnRequest="true" Room="true"/>
<Amenity Code="SMOKE" Confirmable="true" Room="true"/>
</RoomType>
</RatePlan>
</Rate>
</Property>
</HotelML>

  • Demand Partner to parse the response to identify the negotiated rates 3 Negotiated Rates – 1XX, A0Z and A1C were returned as available.

  • The returned rate plan code will not always be the same as the requested rate plan code.

  • RequestedRatePlanCode="1XX" Status="Open"> is returned by this particular CRS but not all CRSs will return this.

  • If MatchingQualifier value is left out or set to “ExactAndPublic”, both negotiated rates and public rates are If Demand Partner only wants their negotiated rates returned; for chains that support this, MatchingQualifier=”Exact” could be included in the EST request:

  • <RateCriteria NumberOfRooms="1" MatchingQualifier="Exact" ReturnRateChanges="true" VersionCompliance="Enhanced_V1">

  • If Demand Partner wants BOTH Negotiated OR Public, they can use ExactOrPublic which will return public rates if the negotiated rate plan is not available.

Requests for multiple rooms

There are two ways to request and book multiple rooms, depending on the room configuration;

If the room configuration is the same for all rooms, for example two rooms with 2 adults in each room send EST, Rate rules and booking requests for 2 adults with NumberOfRooms=”2”, as below.

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="1285940187599"/>
<Route Destination="00" Source="XX" RequestedAccuracy="CacheOrSource"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="TP;043241"/>
<Property Code="MC;LONCH"/>
<RateCriteria VersionCompliance="Enhanced_V1" NumberOfRooms="2" ReturnRateChanges="true">
<GuestCount Type="Adult" Count="2"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2015-06-20" OutDate="2015-06-21"/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>

Rate rules and booking requests would include the same values as above (2 adults/2 rooms).

If the room configuration is different, for example one room with 1 adult and one room with 2 adults, a separate request must be sent for each configuration as shown below:

<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="1285940187599"/>
<Route Destination="00" Source="XX" RequestedAccuracy="CacheOrSource"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="TP;043241"/>
<Property Code="MC;LONCH"/>
<RateCriteria VersionCompliance="Enhanced_V1" NumberOfRooms="1" ReturnRateChanges="true">
<GuestCount Type="Adult" Count="1"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2015-06-20" OutDate="2015-06-21"/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>
<HotelML xmlns="
http://www.xpegs.com/v2001Q3/HotelML
">
<Head>
<Process DataPath="/HotelML/Form/MultiAvailability" Function="TI_MultiAvailabilityV1_1" Token="1285940187599"/>
<Route Destination="00" Source="XX" RequestedAccuracy="CacheOrSource"/>
</Head>
<Form>
<MultiAvailability>
<Property Code="TP;043241"/>
<Property Code="MC;LONCH"/>
<RateCriteria VersionCompliance="Enhanced_V1" NumberOfRooms="1" ReturnRateChanges="true">
<GuestCount Type="Adult" Count="2"/>
<AgentInfo Number="12345678" Type="TIDS"/>
<DateRange InDate="2015-06-20" OutDate="2015-06-21"/>
</RateCriteria>
</MultiAvailability>
</Form>
</HotelML>

In the same way you would send two separate rate rules and booking requests, it is recommended that bookings for multiple rooms with different room configurations only be allowed for chains that support session control and that session control be used for such bookings. Session control will be discussed in more detail later in this document.

Last updated