Avail & Rates Search

OTA Message Pair: OTA_HotelAvailRQ / OTA_HotelAvailRS

Modelviewer: RQ / RS

Schema: RQ / RS

Description

The OTA_HotelAvailRQ message is a request for current live availability, rates and restrictions from a single property.

In order to use this service, a live connection to Levart along with a valid username and password are required (HTTP  Basic Authentication)

When a client application sends a correctly-formatted OTA_HotelAvailRQ message Levart will respond with an OTA_HotelAvailRS message containing the property availability.

The request must contain a valid HotelCode (gained from the OTA_HotelSearch messages) and a valid Start and End dates in the StayDateRange element.

The response will list all the available RoomRates and availability data.

Please don't publish the property availability (NumberOfUnits) data to the public.

Request

<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="dsfausdg6ss4sbax7" TimeStamp="2016-01-28T15:15:00+08:00">
  <AvailRequestSegments>
    <AvailRequestSegment>
      <HotelSearchCriteria>
        <Criterion>
          <HotelRef HotelCode="www.property.com.au"/>
          <StayDateRange Start="2016-02-17" End="2016-02-27"/>
        </Criterion>
      </HotelSearchCriteria>
    </AvailRequestSegment>
  </AvailRequestSegments>
</OTA_HotelAvailRQ>

 

 

The results provided in the OTA_HotelAvailRS response are a representation of actual property rates and inventory, not a list of directly bookable options by themselves. The StayDateRange Start and End dates should not be used as a check-in and check-out dates merely a range to search for Inventory, Rates and Restrictions data. You will need to take into account all restrictions including the daily MinLOS (Minimum Length of Stay), Closed to Arrival and Closed to Departure restrictions when determining if a guest can stay in a particular set of dates.

 

OTA_HotelAvailRQ Specification

ElementNumDescription
OTA_HotelAvailRQ1Root element
@Version1Current Version 1.0
@EchoToken0..1EchoToken string unique ID
@TimeStamp1Date and time of the transaction in ISO 8601 format. e.g. 2016-01-28T15:15:00+08:00
AvailRequestSegments / AvailRequestSegment / HotelSearchCriteria / Criterion1Availability Search Criterion element
HotelRef1HotelRef element
@HotelCode1

The Levart hotel code for which the information is being requested.

The value is similar to a web address i.e. www.property.com.au

StayDateRange1HotelStayDateRange element
@Start1Start Date i.e. 2016-01-01 (inclusive)
@End1End Date i.e. 2016-02-01 (inclusive)

 

Response (Success)

<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="dsfausdg6ss4sbax7" TimeStamp="2016-01-28T15:15:00+08:00">
  <Success/>
  <RoomStays>
    <RoomStay AvailabilityStatus="AvailableForSale">
      <RoomTypes>
        <RoomType RoomTypeCode="190">
          <RoomDescription Name="Onslow Room"/>
        </RoomType>
      </RoomTypes>
      <RoomRates>
        <RoomRate RoomTypeCode="190" RatePlanCode="1569" Availability="AvailableForSale">
          <Rates>
            <Rate EffectiveDate="2016-02-17" ExpireDate="2016-02-18" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="230.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
            <Rate EffectiveDate="2016-02-19" ExpireDate="2016-02-19" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="232.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
              <TPA_Extensions>
                <Restrictions ClosedToArrival="True"/>
              </TPA_Extensions>
            </Rate>
            <Rate EffectiveDate="2016-02-21" ExpireDate="2016-02-21" NumberOfUnits="8" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="234.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="30.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="20.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
            <Rate EffectiveDate="2016-02-22" ExpireDate="2016-02-22" NumberOfUnits="1" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="235.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
              <TPA_Extensions>
                <Restrictions ClosedToDeparture="True"/>
              </TPA_Extensions>
            </Rate>
            <Rate EffectiveDate="2016-02-23" ExpireDate="2016-02-23" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="236.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
            <Rate EffectiveDate="2016-02-24" ExpireDate="2016-02-24" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="237.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
            <Rate EffectiveDate="2016-02-25" ExpireDate="2016-02-25" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="2">
              <Base AmountAfterTax="238.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
            <Rate EffectiveDate="2016-02-26" ExpireDate="2016-02-27" NumberOfUnits="20" MaxGuestApplicable="2" MinLOS="1">
              <Base AmountAfterTax="230.00" CurrencyCode="AUD"/>
              <!--The AgeQualifyingCode attribute is present if the extra pax rate applies to a specific guest type. 10 = adult, 8 = child. See OTA AQC code types.-->
              <AdditionalGuestAmounts>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10">
                  <Amount AmountAfterTax="10.00"/>
                </AdditionalGuestAmount>
                <AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="8">
                  <Amount AmountAfterTax="5.00"/>
                </AdditionalGuestAmount>
              </AdditionalGuestAmounts>
            </Rate>
          </Rates>
          <RoomRateDescription Name="Internet Rate"/>
        </RoomRate>
      </RoomRates>
    </RoomStay>
  </RoomStays>
  <Criteria>
    <Criterion>
      <HotelRef HotelCode="www.property.com.au"/>
      <StayDateRange Start="2016-02-17" End="2016-02-27"/>
    </Criterion>
  </Criteria>
</OTA_HotelAvailRS>

Note that Rate element effective for the 20th is not present. This represents that the room type and rate type combination is not available for this day.

A daily MinLOS (Minimum Length of Stay) of X represents that if this date is included in a booking the total stay must be longer than X nights. e.g. A single night booking will not be possible on the 25th with the current results due to the MinLOS of 2.

Representation of Response

Date17/0218/0219/0220/0221/0222/0223/0224/0225/0226/0227/02
Rate$230.00$230.00$232.00$0.00$234.00$235.00$236.00$237.00$238.00$230.00$230.00
Availability2020200812020202020
Room Rate up to2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX
Max Additional Guests2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX2 PAX
Extra Adult Rate$10.00$10.00$10.00$0.00$30.00$10.00$10.00$10.00$10.00$10.00$10.00
Extra Child Rate$5.00$5.00$5.00$0.00$20.00$5.00$5.00$5.00$5.00$5.00$5.00
Min LOS11111111211
Closed ArrivalsFalseFalseTrueFalseFalseFalseFalseFalseFalseFalseFalse
Closed DeparturesFalseFalseFalseFalseFalseTrueFalseFalseFalseFalseFalse

 

Response (Error)

<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" EchoToken="dsfausdg6ss4sbax7" TimeStamp="2016-01-28T15:15:00+08:00">
  <Errors>
    <Error>Could not find property</Error>
  </Errors>
</OTA_HotelAvailRS>

 

Response Specification

 

ElementNumDescription
OTA_HotelAvailRS1Root element
@Version1Current Version 1.0
@EchoToken0..1EchoToken attribute response
@TimeStamp1Date and time of the transaction in ISO 8601 format. e.g. 2016-01-28T15:15:00+08:00
Success0..1Successful transaction if exists
Errors / Error0..nError messages
RoomStays / RoomStay1..nAvailability Search Criterion element
@AvailabilityStatus1Should always equal AvailableForSale
RoomTypes / RoomType1RoomType element of the current RoomStay
@RoomTypeCode1Code of the room e.g. 1404
RoomDescription1RoomDescription element
@Name1Text description of the room. e.g. 1 Bedroom Aparrment
RoomRates / RoomRate1..nRoomRate element. 1 per Room Type and Rate Type (Plan) combination.
@RoomTypeCode1Room Type Code
@RatePlanCode1Rate Plan Code
@Availability1Always 'AvailableForSale'
Rates / Rate1..nRate element
@EffectiveDate1Start date of current rate period e.g. 2016-05-05 (inclusive)
@ExpireDate1End date of current rate period e.g. 2016-05-10 (inclusive)
@NumberOfUnits1Current availability (Remainder) of rooms within the Rate / Room type
@MaxGuestApplicable1

Maximum guests that are applicable for the Room Rate specified in /Base/@AmountAfterTax

Any guests in addition to this need to be priced in as an AdditionalGuestAmount (If rate supports additional guests)

@MinLOS1Minimum length of stay restriction in days
Base1Base pricing element
@AmountAfterTax1The daily price for the room for the night
@CurrencyCode13 letter currency code defined in ISO 4217 e.g. AUD for Australian Dollar

AdditionalGuestAmounts

0..1Defined if over the room rate applies for

AdditionalGuestAmount

1..nAdditionalGuestAmount element
@AgeQualifyingCode1Code is 8 for Child or 10 for Adult. Refer to the OTA Age Qualifying Code (AQC) Table

@MaxAdditionalGuests

1Maximum PAX that the AdditionalGuestAmount can be used on top of the base MaxGuestApplicable
Amount Amount Element
@AmountAfterTax1Per PAX additional person charge.
TPA_Extensions0..1TPA_Extensions element is Included if restrictions element required
Restrictions1Restrictions element

@ClosedToArrival

0..1If ClosedToArrival attribute is set to True if the room is currently closed to all guest arrivals.
@ClosedToDeparture0..1If ClosedToDeparture attribute is set to True if the room is currently closed to all guest departures.
RoomRate / RoomRateDescription1RoomRateDescription element
@Name1Name of the current Rate Type (of the RoomStay).
Criteria / Criterion1Search Criterion element (Repeated from Request message)
HotelRef1HotelRef element
@HotelCode1

The Levart hotel code for which the information was requested.

StayDateRange1HotelStayDateRange element
@Start1Start Date i.e. 2016-01-01
@End1End Date i.e. 2016-02-01

 

OTA Age Qualifying Code (AQC) Table

CodeDescription
1Over 21
2Over 65
3Under 2
4Under 12
5

Under 17

6

Under 21

7Infant
8Child
9Teenager
10

Adult

11Senior
12Additional occupant with adult
13Additional occupant without adult
14

Free child

15Free adult
16Young driver
17Younger driver
18Under 10
19Junior

*Only Adult and Child supported by Levart