Each XML contains a collection of rate plans describing all possible prices for a given hotel property for a certain period. Each rate plan contains rates for a specific product subject to certain booking rules, listing the rates for all possible room occupancy combinations (e.g. 2 ADT + 1 CHD). A product usually consists of a room type combined with a board type (e.g. a double room with breakfast included).

Basic and Special Rates

The basic rate plan list is divided into the Rates and Supplements sections. Usually, at the end of the rate plan, a list of promotional offers is included which may apply to the basic rates. If a hotel establishes use conditions that apply to all rate plans they are repeated in the booking rules for each rate plan. A common case of use conditions is the requirement of a minimum stay length.

Price type - one of the basic attributes for rate plan is ChargeType. It offers the following values:

For the one Rate Plan, there could be different ChargeType for basic and supplements prices.

Booking Rules

BookingRules are used to specify certain conditions that must be met in order to qualify for these rates.

LengthOfStay defines conditions imposed on the length of stay. MinMaxMessageType indicates the type of condition:

Time and TimeUnit define the value of the LOS (eg. 1 week, 12 days, etc.)

<OTA_HotelRatePlanNotifRQ>
	<RatePlans EssMode="VICTOR" HotelCode="ANDCERVO10">
		<RatePlan EssParam="A000" ChargeType="21">
			<BookingRules>
				<BookingRule End="2020-03-31" Start="2020-01-04">
					<LengthsOfStay>
						<LengthOfStay TimeUnit="Day" Time="3" MinMaxMessageType="SetMinLOS"/>
						<LengthOfStay TimeUnit="Day" Time="14" MinMaxMessageType="SetMaxLOS"/>
					</LengthsOfStay>
				</BookingRule>
			</BookingRules>
				...

Rates

Rates section contains not only amounts, but also some rate conditions:

<Rates>
	<Rate End="2020-02-14" Start="2020-01-04">
		<BaseByGuestAmts>
			<BaseByGuestAmt AmountAfterTax="214.2100" CurrencyCode="PLN" MinAge="13" NumberOfGuests="2"/>
		</BaseByGuestAmts>
	</Rate>
	<Rate End="2020-02-28" Start="2020-02-15">
		<BaseByGuestAmts>
			<BaseByGuestAmt AmountAfterTax="273.6200" CurrencyCode="PLN" MinAge="13" NumberOfGuests="2"/>
		</BaseByGuestAmts>
	</Rate>
	<Rate End="2020-03-13" Start="2020-02-29">
		<BaseByGuestAmts>
			<BaseByGuestAmt AmountAfterTax="214.2100" CurrencyCode="PLN" MinAge="13" NumberOfGuests="2"/>
		</BaseByGuestAmts>
	</Rate>
	<Rate End="2020-04-13" Start="2020-03-14">
		<BaseByGuestAmts>
			<BaseByGuestAmt AmountAfterTax="196.8100" CurrencyCode="PLN" MinAge="13" NumberOfGuests="2"/>
		</BaseByGuestAmts>
	</Rate>
</Rates>

Supplements

Supplements of all types are specified in a Supplement element under the <Supplement> collection. Supplements basically consist of additional payments for:

The Supplement element contains attributes to define the period of validity, the inventory this supplement refers to, the pax type and the amount or percentage of the base value which is charged. - For pax supplements (SupplementType=”Pax”) Percent refers to the basic rate defined in <BaseByGuestAmount>. - For board supplements (SupplementType=”Board”) refers to the respective amount paid by the first adult. - Extra supplements (SupplementType=”Extra”) Percent refers to the respective amount paid by the first adult.

<Supplements>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="13" AgeQualifyingCode="10" Amount="60.0000" SupplementType="Pax" AdditionalGuestNumber="1"/>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="2" AgeQualifyingCode="8" Amount="0.0000" SupplementType="Pax" AdditionalGuestNumber="1" MaxAge="12"/>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="2" AgeQualifyingCode="8" Amount="40.0000" SupplementType="Pax" AdditionalGuestNumber="2" MaxAge="12"/>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="0" AgeQualifyingCode="7" Amount="0.0000" SupplementType="Pax" AdditionalGuestNumber="1" MaxAge="1"/>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="13" AgeQualifyingCode="10" Amount="0.00" SupplementType="Board" InvType="Board" InvCode="H"/>
	<Supplement End="2020-03-03" Start="2020-01-02" CurrencyCode="PLN" MinAge="2" AgeQualifyingCode="8" Amount="0.00" SupplementType="Board" MaxAge="12" InvType="Board" InvCode="H"/>
</Supplements>
Pax Supplements

Supplements for additional pax (3rd adult, 1st child, 2nd child etc.) are defined in Supplement elements with a SupplementType=”Pax”. The pax types referred to are defined by their respective age ranges. The no. of the additional pax of each pax type is specified in the AdditionalGuestNumber attribute. If AdditionalGuestNumber is not specified the supplement applies to all pax of the specified type (adults, child, any, etc.).

Type of pax is defined in the AgeQualifyingCode attribute. It offers the following values:

The supplement can be specified as a percentage value that applies to the basic rate or an amount which replaces the basic rate. In cases where an amount must be added to the basic rate, the attribute AddToBasicRate is set to “true” (otherwise it is assumed to substitute the basic rate).

    Ex.: <Supplement SupplementType="Pax" AdditionalGuestNumber="2" MinAge="16" Amount="60.00" CurrencyCode="EUR"/>
         “2nd additional adult pays 60€”
    Ex.: <Supplement SupplementType="Pax" AdditionalGuestNumber="1" MinAge="2" MaxAge="15" Percent="-40.00"/>
         “1st child gets a 40% reduction on (pays 60% of) the basic rate”
    Ex.: <Supplement SupplementType="Pax" AdditionalGuestNumber="2" MinAge="18" Amount="-20.00" CurrencyCode="EUR" AddToBasicRate="true"/>
         “2nd additional adult pays 20€ less than basic rate”
    Ex: <Supplement MandatoryIndicator="true" AddToBasicRate="true" CurrencyCode="EUR" Amount="7.00" AgeQualifyingCode="10" InvType="Extra" InvCode="EX20" ChargeType="21" End="2020-10-31" Start="2020-06-01" SupplementType="Extra"/>
         “all adults pays 7€ per person extra from 01.06.2020 to 31.10.2020”

Sellable Products

The information about the room and optionally the valid pax combinations for this room is given in the <SellableProducts> section. A typical SellableProducts element consists of:

<SellableProducts>
	<SellableProduct End="2020-10-31" Start="2019-11-22" InvType="ROOM" InvCode="DBP-H">
		<GuestRoom>
			<Quantities MinBillableGuests="2"/>
			<Occupancy InfantsAreCounted="false" MaxOccupancy="4" MinOccupancy="2"/>
			<Occupancy MinAge="13" AgeQualifyingCode="10" MaxOccupancy="3" MinOccupancy="2"/>
			<Occupancy MinAge="2" AgeQualifyingCode="8" MaxAge="12" MaxOccupancy="2" MinOccupancy="0"/>
			<Occupancy MinAge="0" AgeQualifyingCode="7" MaxAge="1" MaxOccupancy="1" MinOccupancy="0"/>
		</GuestRoom>
		<Description>
			<Text Language="PL">Double Room Pool View</Text>
		</Description>
	</SellableProduct>
	<SellableProduct End="2020-10-31" Start="2019-11-22" InvType="BOARD" InvCode="H">
		<Description>
			<Text>Sniadania i obiadokolacje</Text>
		</Description>
	</SellableProduct>
</SellableProducts>

In SellableProduct InvCode in InvType=ROOM contain also board e.g. DBP-H mean Double Room Pool View with Half Board. Also, descriptions of the room and board types could be added in this section of the rate plan.