Transmisson of the prices based on OTA_HotelRateAmountNotifRQ / OTA_HotelRateAmountNotifRS

The OTA_HotelRateAmountNotifRQ / OTA_HotelRateAmountNotifRS 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_HotelRateAmountNotifRQ for occupancy-based pricing
<OTA_HotelRateAmountNotifRQ 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_HotelRateAmountNotifRQ.xsd" TimeStamp="2012-10-12T11:34:05" Target="Test" EchoToken="" Version="1.000">
  <POS>
    <Source>
    <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HOTELCODE">
    <RateAmountMessage>
      <StatusApplicationControl Start="2015-08-25" End="2015-08-31" RatePlanCode="00P551924536469f" InvTypeCode="00P5519245316dc1"/>
      <Rates>
        <Rate>
          <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>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>


Use case 2: OTA_HotelRateAmountNotifRQ for room-based pricing
<OTA_HotelRateAmountNotifRQ 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_HotelRateAmountNotifRQ.xsd" TimeStamp="2012-10-12T11:34:05" Target="Test" EchoToken="" Version="1.000">
  <POS>
    <Source>
    <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13"></RequestorID>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HOTELCODE">
    <RateAmountMessage>
      <StatusApplicationControl Start="2015-08-25" End="2015-08-31" RatePlanCode="00P551924536469f" InvTypeCode="00P5519245316dc1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="38.00" DecimalPlaces="2" CurrencyCode="CHF" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Request structure

OTA_HotelRateAmountNotifRQ

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), RateAmountMessages

 

RateAmountMessages

Parent: OTA_HotelRateAmountNotifRQ

Mandatory: yes

Attributes:

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

Child elements: RateAmountMessage

 

RateAmountMessage

Parent: RateAmountMessages

Mandatory: yes

Attributes: None

Child elements: StatusApplicationControl, Rates


StatusApplicationControl

Parent: Inventory

Mandatory: yes

Attributes:

Name
Mandatory
Description
InvCodeYesThe ID of the room type on the online booking system
RatePlanCodeNoThe ID of the rate plan on the online booking system
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: None

RatePlanCode attribute use scenario

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

 

Rates

Parent: RateAmountMessage

Mandatory: yes

Attributes: None

Child elements: Rate

 

Rate

Parent: Rates

Mandatory: yes

Attributes: None

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

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_HotelAvailNotifRS confirmation
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2015-11-25T17:21:43+01:00" EchoToken="" CorrelationID="" Version="1.0">
  <Success />
</OTA_HotelRateAmountNotifRS>
Use case 2. OTA_HotelAvailNotifRS error notification
<OTA_HotelAvailNotifRS 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_HotelAvailNotifRS>

 

Response structure

OTA_HotelRateAmountNotifRS

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_HotelRateAmountNotifRS

Mandatory: no

Attributes: None

Child elements: None

 

 

Errors

Parent: OTA_HotelRateAmountNotifRS

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