Table of Contents |
---|
...
PmsXchange receive updates for rates via the OTA_HotelRateAmountNotifRQ message. PmsXchange will process the updates and respond with the OTA_HotelRateAmountNotifRS message as a receipt of success or failure.
OTA_HotelRateAmountNotifRQ
The OTA_HotelRateAmountNotifRQ message is used to update the rates for one or more room types for a single hotel. Specifically:
...
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2005-08-01T09:30:47-05:00" Version="1.0" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <RateAmountMessages HotelCode="ABC"> <RateAmountMessage> <StatusApplicationControl InvTypeCode="A1K" RatePlanCode="BAR"/> <Rates> <Rate CurrencyCode="AUD" Start="2010-01-01" End="2010-01-14" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1"> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="123.00"/> </BaseByGuestAmts> <RateDescription> <Text>Room Inclusion Text</Text> </RateDescription> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <!-- Content omitted --> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ> |
StatusApplicationControl
This element must appear once in each RateAmountMessage element. The StatusApplicationControl element is used to specify the room type and rate code for which the update applies.
The @InvTypeCode attribute is required and the @RatePlanCode attribute is optional. It is possible to have 1 or more PmsXchange room types linked to the same InvTypeCode/RatePlanCode combination and the update will be applied to all room types found with matching values.
Rate
The Rate element is used to determine the dates for which the update applies. The dates affected by the update are controlled by the mandatory Rate@Start and Rate@End attributes. Use the Mon, Tue, Wed, Thur, Fri, Sat or Sun attributes to apply an update to specific days of the week. If any of these day of week attributes is present, then they must all be present. For example it is not possible to specify just the Mon and Fri attribute and not include the other 5.
Setting Rates
Rates should be sent through in the BaseByGuestAmt element. Either @AmountAfterTax or @AmountBeforeTax must be included and must contain the rate as a positive decimal value (i.e. a rate of 200 should be 200.00). In order to set Rates it is mandatory to specify the @CurrencyCode. At present PmsXchange DOES NOT perform currency conversion and the Rate amount specified will be applied directly to SiteMinder.
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2005-08-01T09:30:47-05:00" Version="1.0" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <RateAmountMessages HotelCode="ABC"> <RateAmountMessage> <StatusApplicationControl InvTypeCode="A1K" RatePlanCode="BAR"/> <Rates> <Rate CurrencyCode="AUD" Start="2010-01-01" End="2010-01-14" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1"> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="123.00"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ> |
Setting Inclusions
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2005-08-01T09:30:47-05:00" Version="1.0" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <RateAmountMessages HotelCode="ABC"> <RateAmountMessage> <StatusApplicationControl InvTypeCode="A1K" RatePlanCode="BAR"/> <Rates> <Rate Start="2010-01-01" End="2010-01-14" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1"> <RateDescription> <Text>Room Inclusions Text</Text> </RateDescription> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ> |
...
Note |
---|
Either Rate or RateDescription must be present. |
Choosing a Destination Booking Agent
To specify which booking agent a rate update is for use the DestinationSystemCodes node. The example below is limiting the update to Expedia and LateRooms. To see the list of booking agent codes, please see Booking Agent Code Table.
...
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2005-08-01T09:30:47-05:00" Version="1.0" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <RateAmountMessages HotelCode="ABC"> <RateAmountMessage> <StatusApplicationControl InvTypeCode="A1K" RatePlanCode="BAR"> <DestinationSystemCodes> <DestinationSystemCode>EXP</DestinationSystemCode> <DestinationSystemCode>LRW</DestinationSystemCode> </DestinationSystemCodes> </StatusApplicationControl> <Rates> <Rate CurrencyCode="AUD" Start="2010-01-01" End="2010-01-14" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1"> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="123.00"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <!-- Content omitted --> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ> |
OTA_HotelRateAmountNotifRQ Specification
Info |
---|
Elements and attributes marked with Number=1 or more will always be sent. 0 means that the element or attribute is optional, while a second numeric value or 'n' indicates the element or attribute can repeat (where n = no limit)" |
Element | Number | Description |
---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Root node |
@EchoToken | 1 | Globally unique identifier for the request, the value will be returned in the response EchoToken. |
@Version | 1 | Current version is 1.0 |
@Timestamp | 1 | Timestamp of the request in xml dateTime format. Format like yyyy-MM-dd'T'HH:mm:ssZZ, (i.e '2021-03-09T20:05:52+08:00') |
OTA_HotelRateAmountNotifRQ / POS / Source / RequestorID | 1 | This identifies the system which is sending the Rates. This element must appear in the first Source element. |
@Type | 1 | Fixed at 22 (ESRP) |
@ID | 1 | The ID used will be agreed by the trading partners and remain the same throughout the messages. |
OTA_HotelRateAmountNotifRQ / | 1 | Contains rates for a given hotel |
@HotelCode | 1 | Hotel code of the property whose rate is being updated |
RateAmountMessages / RateAmountMessage | 1..n | Rates to be updated |
RateAmountMessage / StatusApplicationControl | 1 | Contains room identification information |
@RatePlanCode | 0..1 | Identifies the rate to be updated |
@InvTypeCode | 1 | Identifies the room to be updated |
StatusApplicationControl / DestinationSystemCodes | 0..1 | Contains a list of BookingAgent/Channel codes that you want to change the rates or inclusions for. |
DestinationSystemCodes / DestinationSystemCode | 1..n | Required if DestinationSystemCodes is present. This is the BookingAgent/Channel code. Please refer to the code table provided. |
RateAmountMessage / Rates / Rate | 1..n | Contains the timespan the update applies to and the currency code if this is a rate update |
@CurrencyCode | 0..1 | Required if BaseByGuestAmts is present, ie if you are updating the rate amount. |
@Start, @End | 1 | The start and end date of the rate plan in xml date format. End date is inclusive. |
@ Sun, Mon, Tue, Weds, Thur, Fri, Sat | 0..1 | "0" or "1". Optional, if not set all are assumed to be set to true |
Rate / BaseByGuestAmts | 0..1 | Optional. Contains information about the rates. Can be omitted if the update is only for inclusions. |
BaseByGuestAmts / BaseByGuestAmt | 1 | Contains the rate amounts per room |
@AmountAfterTax | 0..1 | One and only one of @AmountAfterTax and @AmountBeforeTax must be included if BaseByGuestAmts is present. Must be a positive decimal value. i.e. a rate of 200 should be 200.00 |
@AmountBeforeTax | 0..1 | One and only one of @AmountAfterTax and @AmountBeforeTax must be included if BaseByGuestAmts is present. Must be a positive decimal value. i.e. a rate of 200 should be 200.00 |
RateDescription / Text | 0..1 | Inclusions. If available this is a description of the rate being uploaded. Max Length is 255 characters. |
OTA_HotelRateAmountNotifRS
This message is returned to the rms in response to the OTA_HotelRateAmountNotifRQ message. It notifies whether the OTA_HotelRateAmountNotifRQ message has been processed successfully.
Example of Success Response
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2005-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <Success/> </OTA_HotelRateAmountNotifRS> |
...
Code Block | ||
---|---|---|
| ||
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2005-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <Errors> <Error Type="3" Code="392">Cannot find hotelier ABC</Error> </Errors> </OTA_HotelRateAmountNotifRS> |
OTA_HotelRateAmountNotifRS Specification
Element | Number | Description |
---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Root element |
@EchoToken | 1 | Return the EchoToken from the request message. |
@Version | 1 | Current version is 1.0 |
@TimeStamp | 1 | Time of the transaction. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Will only be present if the request processed successfully. The Errors node will not be present if the Success node is present |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Contains a list of errors if the request failed to process. |
Errors / Error | 1..n | Will be at least one node if there is an Errors Node. |
@Type | 1 | Mandatory if Error present. 3: Biz rule (The business rules for the request message were not met) |
@Code | 0..1 |
...