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 |
|---|---|---|
TimeStamp | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Target | Yes | When sending updates to the staging environment "Test" must be used. When sending updates to the production environment "Production" must be used. |
Version | Yes | The default value should be "1.000" |
EchoToken | Yes | This 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 |
|---|---|---|
HotelCode | Yes | The 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 |
|---|---|---|
InvCode | Yes | The ID of the room type on the online booking system |
RatePlanCode | No | The ID of the rate plan on the online booking system |
Start | Yes | The format will respect ISO 8601 2015-11-16 |
End | Yes | The format will respect ISO 8601 2015-11-16 |
Mon | No | Does this update apply to a Monday |
Tue | No | Does this update apply to a Tuesday |
Weds | No | Does this update apply to a Wednesday |
Thur | No | Does this update apply to a Thursday |
Fri | No | Does this update apply to a Friday |
Sat | No | Does this update apply to a Saturday |
Sun | No | Does 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 / AmountBeforeTax | Yes | The new price to apply on the online booking system |
DecimalPlaces | Yes | The number of decimal places that have been transferred with the price |
NumberOfGuests | No | The occupancy for which the transmitted price applies |
CurrencyCode | Yes | The 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 |
|---|---|---|
TimeStamp | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Target | Yes | When sending updates to the staging environment "Test" must be used. When sending updates to the production environment "Production" must be used. |
Version | Yes | The default value should be "1.000" |
EchoToken | Yes | This 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 |
|---|---|---|
Code | Yes | The unique error code assigned by the online booking system |
Type | Yes |
|
Status | Yes | Possible values are:
|
ShortText | Yes | A short textual explanation of the error |
Tag | Yes | Indicates which element and/or attribute provoked the error to occur |
Child elements: None