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 |
|---|---|---|
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), RatePlans
RatePlans
Parent: OTA_HotelRatePlanNotifRQ
Mandatory: yes
Attributes:
Name | Mandatory | Description |
|---|---|---|
HotelCode | Yes | The ID of the hotel on the online booking system |
Child elements: RateAmountMessage
RatePlan
Parent: RatePlans
Mandatory: yes
Attributes:
Name | Mandatory | Description |
|---|---|---|
RatePlanCode | No | The ID of the rate plan on the online booking system |
RatePlanCode/RatePlanType/RatePlanID | No | 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/RoomID | Yes | 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. |
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: 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 |
AgeQualifyingCode | No | See 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 |
|---|---|---|
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_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 |
|---|---|---|
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