Transmission of the prices based on OTA_HotelRatePlanNotifRQ / OTA_HotelRatePlanNotifRS

The OTA_HotelRatePlanNotifRQ / OTA_HotelRatePlanNotifRS can be used to transmit either room-based pricing or occupancy-based pricing. A request will be send every time a change in the prices has been detected on our system.

The Hotel-Spider system will send the following request

Use case 1: OTA_HotelRatePlanNotifRQ for occupancy-based pricing
<OTA_HotelRatePlanNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opentravel.org/OTA/2003/05" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelRatePlanNotifRQ" Version="1.000">
  <POS>
    <Source>
      <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID>
    </Source>
  </POS>
  <RatePlans HotelCode="HOTELCODE">
    <RatePlan RatePlanCode="00P551924536469f">
      <Rates>
        <Rate InvTypeCode="00P5519245316dc1" Start="2015-10-26" End="2015-10-31">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="38.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="10" />
            <BaseByGuestAmt AmountAfterTax="45.00" DecimalPlaces="2" NumberOfGuests="2" CurrencyCode="CHF" AgeQualifyingCode="10" />
            <BaseByGuestAmt AmountAfterTax="52.00" DecimalPlaces="2" NumberOfGuests="3" CurrencyCode="CHF" AgeQualifyingCode="10" />
            <BaseByGuestAmt AmountAfterTax="9.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="7"/>
            <BaseByGuestAmt AmountAfterTax="15.00" DecimalPlaces="2" NumberOfGuests="1" CurrencyCode="CHF" AgeQualifyingCode="8"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="59.00" DecimalPlaces="2" CurrencyCode="EUR" AgeQualifyingCode="8" TaxInclusive="true"/>
            <AdditionalGuestAmount Amount="102.00" DecimalPlaces="2" CurrencyCode="EUR" AgeQualifyingCode="10" TaxInclusive="true"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RatePlan>
  </RatePlans>
</OTA_HotelRatePlanNotifRQ>
Use case 2: OTA_HotelRatePlanNotifRQ for room-based pricing
<OTA_HotelRatePlanNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opentravel.org/OTA/2003/05" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelRatePlanNotifRQ" Version="1.000">
  <POS>
    <Source>
      <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID>
    </Source>
  </POS>
  <RatePlans HotelCode="HOTELCODE">
    <RatePlan RatePlanCode="00P551924536469f">
      <Rates>
        <Rate InvTypeCode="00P5519245316dc1" Start="2015-10-26" End="2015-10-31">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="38.00" DecimalPlaces="2" CurrencyCode="CHF" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RatePlan>
  </RatePlans>
</OTA_HotelRatePlanNotifRQ>

Request structure

OTA_HotelRatePlanNotifRQ

Parent: None (Root element)

Mandatory: yes

Attributes:

Name
Mandatory
Description
TimeStampYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

VersionYesThe default value should be "1.000"
EchoTokenYesThis string should be returned in the response

Child elements: POS (when using POS authentication. See Authentication methods for more information), RatePlans


RatePlans

Parent: OTA_HotelRatePlanNotifRQ

Mandatory: yes

Attributes:

Name
Mandatory
Description
HotelCodeYesThe ID of the hotel on the online booking system

Child elements: RateAmountMessage


RatePlan

Parent: RatePlans

Mandatory: yes

Attributes:

Name
Mandatory
Description
RatePlanCodeNoThe ID of the rate plan on the online booking system
RatePlanCode/RatePlanType/RatePlanIDNo

The ID of the rate plan on the online booking system

By default our system will search for the RatePlanCode atttribute. Should you have been using RatePlanType in a previous development, we can configure our interface to work with RatePlanType. The same goes for the RatePlanID attribute.

Child elements: Rates

RatePlanCode attribute use scenario

The RatePlanCode/RatePlanType/RatePlanID attribute will only be transmitted if the online booking system manages multiple rate plans.


Rates

Parent: RatePlan

Mandatory: yes

Attributes: None

Child elements: Rate


Rate

Parent: Rates

Mandatory: yes

Attributes:

Name
Mandatory
Description
InvCode/InvTypeCode/RoomIDYes

The ID of the room type on the online booking system

By default our system will search for the InvCode attribute. Should you have been using InvTypeCode in a previous development (for example: OTA version of the Booking.com interface ), we can configure our interface to work with InvTypeCode. The same goes for the RoomID attribute.

StartYesThe format will respect ISO 8601 2015-11-16
EndYesThe format will respect ISO 8601 2015-11-16
MonNoDoes this update apply to a Monday
TueNoDoes this update apply to a Tuesday
WedsNoDoes this update apply to a Wednesday
ThurNoDoes this update apply to a Thursday
FriNoDoes this update apply to a Friday
SatNoDoes this update apply to a Saturday
SunNoDoes this update apply to a Friday

Child elements: BaseByGuestAmts


BaseByGuestAmts

Parent: Rates

Mandatory: yes

Attributes: None

Child elements: BaseByGuestAmt


BaseByGuestAmts

Parent: BaseByGuestAmts

Mandatory: yes

Attributes:

Name
Mandatory
Description
AmountAfterTax / AmountBeforeTaxYesThe new price to apply on the online booking system
DecimalPlacesYesThe number of decimal places that have been transferred with the price
NumberOfGuestsNoThe occupancy for which the transmitted price applies
CurrencyCodeYesThe currency in which the price has been transmitted
AgeQualifyingCodeNoSee Age Qualifying Code (AQC) definitions

Child elements: None

NumberOfGuests attribute

When occupancy-based pricing is used by the online booking system, the NumberOfGuests attribute will be transferred in order to provided. Should room-based pricing be used then no NumberOfGuests attribute will be transferred.

From room-based to occupancy-based pricing

Should the hotel be configured to use room-based pricing in the Hotel-Spider system but occupancy-based pricing on the online booking system, then the same price will be transferred for all the possible occupancies on the online booking system.


The online booking system must respond with either of the following formats

Use case 1. OTA_HotelRatePlanNotifRS confirmation
<OTA_HotelRatePlanNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0">
  <Success />
</OTA_HotelRatePlanNotifRS>
Use case 2. OTA_HotelAvailNotifRS error notification
<OTA_HotelRatePlanNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0">
  <Errors>
    <Error Code="3008" Type="13" Status="NotProcessed" ShortText="Processing error" Tag="/">Hotel ID invalid</Error>
  </Errors>
</OTA_HotelRatePlanNotifRS>


Response structure

OTA_HotelRatePlanNotifRS

Parent: None (Root element)

Mandatory: yes

Attributes:

Name
Mandatory
Description
TimeStampYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

VersionYesThe default value should be "1.000"
EchoTokenYesThis string should be returned in the response

Child elements: Success, Errors


Success

Parent: OTA_HotelRatePlanNotifRS

Mandatory: no

Attributes: None

Child elements: None



Errors

Parent: OTA_HotelRatePlanNotifRS

Mandatory: No

Attributes: None

Child elements: Error


Error

Parent: Errors

Mandatory: yes

Attributes:

Name
Mandatory
Description
CodeYesThe unique error code assigned by the online booking system
TypeYes
StatusYes

Possible values are:

  • NotProcessed
  • Incomplete
  • Complete
  • Unknown
ShortTextYesA short textual explanation of the error
TagYesIndicates which element and/or attribute provoked the error to occur

Child elements: None