GenRMS - Rate Amount Updates
Overview
The Hotel Rate Amount Notification message notifies CRS of changes in the rates charged for a room in a hotel.
When the rate amount of an active (bookable) rate plan changes an update is done through the Rate Amount Notification message, The Status Application Control is used to identify the inventory items and the rate plan (for room products) that the change in rate amount applies to.
The Hotel Rate Amount Message defines the amount of the base rate, as well as the maximum number of adults permitted in a room at the rate, along with the charges for additional adults and children. Tax amounts that apply to the rate are also communicated. In short, the Rate Amount Notification should convey all of the information needed by a reservation system to book a hotel room at the newly established rate amount.
Business Rules
Creating a new room type or rate plan via this message is not supported. If a room type or rate plan can’t be mapped to an existing room type or rate plan in the CRS system, this entire message is ignored.
The max value for NumberOfGuests in the BaseByGuestAmt element is 4
OTA_HotelRateAmountNotifRQ Elements & Attributes
Element | @Attribute | Num | Description/Contents | Origin | Value |
OTA_HotelRateAmountNotifRQ | 1 Â | Root element of the message. Â | Â Â Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1..n | Container element for Rate Amount Messages | Â |
@ChainCode | 1 | Windsurfer chain code | Â |
@HotelCode | 1 | Windsurfer hotel code | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | Element is defined the RateAmountMessage is send and containing the RateamountMessage details. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | The StatusApplicationControl element will repeat if we have more than RateAmountMessage Attributes, in the StatusApplicationControl we have the Value of InvTypeCode(RoomType) and RatePlanCode in which the message will posted from GenRMS to CRS. | Â |
@InvTypeCode | 1 | This field contains the value of the RoomTypecode of the RateAmount update for the specific room. | Â |
@RatePlanCode | 1 | This attribute contains the code of the RatePlancode to update the RateAmount and will allow the update on it. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 1..n | Contains the multiple array elements of the Rates having the value of the rate for the specific daterange. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Contains the multiple Rate elements with having date rage as start and End date to update the Rateamount message and will apply the update of rate for the Date range given. | Â |
@Start | 1 | The start date will be affected to apply the RateAmount message rate update. | Â |
@End | 1 | The Enddate will be affected to apply the RateAmount message rate update. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1..n | The Array element of the BaseByGuestAmts contains the BaseByGuestAmt elements with having value AmountAfter, amountBeforeTax applied for the AgeQualified code =10 as Adult and AgeQualified code =8 as Child. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1 | This BaseByGuestAmt attribute contains the value of the | Â |
@AgeQualifyingCode | 1 | AgeQualifyingCode 8 = child, 10 = Â adult to update the Rate for the specific Adul or Child level. | Â |
@AmountBeforeTax | 1 | This field will take the AmountbeforTax value for the Adult or child and it will be updated the rate from Rate1 upto Rate4. | Â |
@NumberOfGuests | 1 | The NumberOfGuest Attribute indicates what type of rate is being passed – if NumberOfGuests is = 1 then we are transmitting a single rate, if higher than 1 then it is a double or full occupancy rate.Maximum NumberOfGuests is 4 we have. |  |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 1 | Array element AdditionalGuestAmounts contains the data of the AdditionalGuestAmount details for the Adult and Child to send the ExtarAdult and Extra Child rate. | Â |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmount | 1..n | We have AdditionalGuestAmount elements for the Adult ,Child or for the both to hold the Additional Amount for the ExtarAdult and ExtraChild and process to update the same. | Â |
@AgeQualifyingCode | 1 | @AgeQualifyingCode 8 = child, 10 = Â adult. Â | Â |
@Amount | 1 | The rateAmount value will updated with this field for the ExtraAdult When Amount come with the AgeQualifyingCode=10 and send for the ExtraChild when it comes under the AgeQualifyingCode=8 | Â |
OTA_HotelRateAmountNotifRQ Sample
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://www.opentravel.org/OTA/2003/05" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<PayloadInfo RequestId="22d3ac7c-f01e-49c6-8fbd-ae269f39c0ad" RequestorId="TEST" SourceId="RMS" DestinationId="CRS" RetryInd="false">
<Authentication Username="username" Password="Password"/>
<PayloadDescriptor Name="OTA_HotelRateAmountNotifRQ" Version="1.0"/>
</PayloadInfo>
</soap:Header>
<soap:Body>
<OTA_HotelRateAmountNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:ns="http://www.opentravel.org/OTA/2003/05" EchoToken="123456" TimeStamp="2021-07-16T19:58:15.970422+05:30" Target="Test" Version="1" MessageContentCode="8" TransactionIdentifier="6172037375195">
<RateAmountMessages ChainCode="TEST" HotelCode="TEST">
<RateAmountMessage>
<StatusApplicationControl InvTypeCode="KING" RatePlanCode="DD" />
<Rates>
<Rate Start="2021-11-15" End="2021-11-16">
<BaseByGuestAmts>
<BaseByGuestAmt AgeQualifyingCode="10" AmountBeforeTax="1000.00" NumberOfGuests="1"/>
<BaseByGuestAmt AgeQualifyingCode="10" AmountBeforeTax="1000.00" NumberOfGuests="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" AmountBeforeTax="1000.00" NumberOfGuests="3"/>
<BaseByGuestAmt AgeQualifyingCode="10" AmountBeforeTax="1000.00" NumberOfGuests="4"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount AgeQualifyingCode="10" Amount="25.00"/>
<AdditionalGuestAmount AgeQualifyingCode="8" Amount="15.00"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
</soap:Body>
</soap:Envelope>
OTA_HotelRateAmountNotifRS Sample (Success)
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<PayloadInfo RequestId="22d3ac7c-f01e-49c6-8fbd-ae269f39c0ad" SourceId="CRS" DestinationId="RMS"
RetryInd="false"></PayloadInfo>
</soap:Header>
<soap:Body>
<OTA_HotelRateAmountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.00"
xmlns="http://www.opentravel.org/OTA/2003/05">
<Success />
</OTA_HotelRateAmountNotifRS>
</soap:Body>
</soap:Envelope>
OTA_HotelRateAmountNotifRS Sample (Warning)
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<PayloadInfo RequestId="22d3ac7c-f01e-49c6-8fbd-ae269f39c0ad" SourceId="CRS" DestinationId="RMS"
RetryInd="false"></PayloadInfo>
</soap:Header>
<soap:Body>
<OTA_HotelRateAmountNotifRS xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.00"
xmlns="http://www.opentravel.org/OTA/2003/05">
<Warnings>
<Warning>Warning: Unable to map ratecode:BAR1</Warning>
</Warnings>
</OTA_HotelRateAmountNotifRS>
</soap:Body>
</soap:Envelope>
Â