GenHTNG - Restriction and Availability Messages

Overview

The Availability Notification messages notify the CRS of the status of availability at the hotel property. These messages include a complex set of controls that indicate whether the hotel has inventory available for sale: closed or open. If a hotel is open, status messages communicate the rate at which bookings can be made. In addition, booking restrictions that apply to each individual rate, such as a minimum length of stay (LOS), must also be communicated to the CRS so that hotel guests are informed of all the rules and policies that apply to their reservation.

Inventory is generally considered a physical count whereas availability is a commitment to sell a room at a specific rate or plan. The physical inventory is the basis by which counts are assigned to the availability. But availability may also depend upon rate plans, as a system may carry a discrete inventory or an inventory count in association with different rates. Thus, the superset of the inventory may be greater than the physical count, with the actual number of rooms counted down when they are sold. The status messages in the Availability Notification message also communicate inventory (booking) limits set by PMS such as the number of reservations that can be taken for a certain day, and the threshold at which the hotel is closed.

The Availability Notification message uses the StatusApplicationControl to set the status for an inventory block, a rate plan or an inventory code. The attribute RatePlanCodeType determines whether the message involves a single code, or a grouping of codes.

The CRS is the target of this message. The CRS does not send out status messages to other target systems.

Supported Operations

  • PMS updates CRS for length of stay restrictions

  • PMS updates CRS for Open / Close restrictions

  • PMS updates CRS for Sell Limit

  • PMS updates CRS for FPLOS

  • RMS updates PMS for oversell counts

Business Rules

  • This message is only sent from the PMS to the CRS.

  • If RatePlanCode and RatePlanType both exist, then RatePlanType will be ignored.

  • InvBlockCode is only used to identify a group block.

  • Sell Limit can be assigned to a RatePlanCode+InvCode level.

  • Sell Limit can’t be assigned to Service Items

  • Length of Stay and Open/Close can be assigned to Property, RatePlanCode, RatePlanCodeGroup, InvTypeCode levels

  • Length of Stay can’t be assigned to Service Items

OTA_HotelAvailNotifRQ Elements & Attributes

Element | @Attribute

Num

Description/Contents

Origin | Value

OTA_HotelAvailNotifRQ

 1  

Root element of the message.  

   

@EchoToken  

 0..1  

Optional

 

@TimeStamp  

 1  

Time of the transaction.  

   

@Version  

 1  

Version is a mandatory attribute in OTA; therefore, it must remain Mandatory in
HTNG to be able to use the same
message.

 1.00 

@TransactionIdentifier  

 0..1  

Optional. If the availability update is the result of a reservation upload, the reservation number should be indicated in this field.

   

@MessageContentCode  

 1  

The attribute refers to OTA code list MCC which includes RateAvail, RoomAvail, RoomRateAvail, SegmentAvail, SegmentRoomAvail, HouseAvail, and HurdleRateUpdate. For room type availability this should be set to 1. For rate availability this should be set to 2. For room rate availability this should be set to 3.

   

** OTA_HotelAvailNotifRQ / AvailStatusMessages  

 1  

Must be sent for the message to have a meaning

   

@HotelCode  

 1  

This is the code of the property whose availability is being updated.

   

** OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / UniqueID

 1  

   

   

@Type

 1  

Refers to OTA code list UIT – nr 16 = Reference. This is used to identify each single availability status message for error reporting purposes.

   

@ID  

 1  

A unique incremental number for each availability message that identifies that specific message.

   

** OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl

1

Element defining application of controls being sent.

 

@Start, @End  

 1  

The first and last dates for which the availability update is being sent

Start: Start Date  

End: End Date

@Mon,@Tue,@Weds,@Thur,@Fri,@Sat,@Sun

 0..1  

The day of the week indicators are used to communicate which days of the week the update pertains to. If one is sent, they must all be sent.

   

@InvTypeCode  

 0..1  

This is the room type code for which the update is being sent.

Room Type, if present. Mandatory for MessageContentCode=”1” or “3”

@RatePlanCategory  

 0..1  

This is the category or segment to which the rate whose availability is being updated belongs  

RateCode, if present. Mandatory for MessageContentCode=”2”

@RatePlanCode  

 0..1  

This is the rate plan whose availability is being updated  

RateCode, if present. Mandatory for MessageContentCode=”2” or “3”. For a house update, MessageContentCode=”6”, none of the above should be present.

** OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage

 0..n  

Optional. Although all restrictions are optional, at least one should be sent for the message to have any meaning. Upper limit to be defined by trading partners.

Create 1 element for the “Master” restriction which can also include SetMinLOS if minimum to arrive is defined. Create an element for “Arrival” restriction if Restriction Status is missing or not “CL” and Closed to
arrival, is true. Create an element for “Departure”
restriction if Restriction Status, is missing or not “CL” and Closed to departure, is true.

@BookingLimit  

 0..1  

This is the maximum number of rooms for the InvTypeCode sent that can be booked. Although all restrictions are Optional, at least one should be sent for the message to have any meaning.

   

@BookingLimitMessageType  

 0..1  

Enumerated values are used to indicate whether the booking limit sent in the transmission is used to set, adjust, or delete the booking limit (SetLimit, AdjustLimit, RemoveLimit).

   

** OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus

 0..1  

Optional. If no BookingLimit or Length of Stay restriction is sent, then the Status field must be sent for the message to be meaningful.

   

@Restriction  

 1  

Enumeration; possible values =”Master”, “Arrival”, “Departure.” Works in conjunction with @Status.
If one of the partners implementing the message does not support all the enumerations, the enumerations that are not supported should be mapped to supported enumerations by the receiving
system. An unsupported enumeration would be ignored by the receiving system; therefore, the type of status messages must be agreed upon implementation between the two partners.

 

@Status  

 1  

Enumeration; possible values ="Open", "Close",
"OnRequest". Works in conjunction with @Restriction. If one of the partners implementing the
message does not support all the enumerations, the enumerations that are not supported should be mapped to supported enumerations by the receiving
system. An unsupported enumeration would be ignored by the receiving system; therefore, the type of status messages must be agreed upon implementation between the two partners.

 

** OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay  

 0..1  

Optional. If no BookingLimit or Status restriction is sent, then the LengthsOfStay field must be sent with some LOS restrictions for the message to be meaningful.

 

@FixedPatternLength

 0..1  

Optional. If both partners agree to send the Full Pattern LOS then this field is set to the length of the pattern string further inside the message. For example, this would be set to 7 when the string has
seven characters, from LOS1 to LOS7+.

 

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay / LengthOfStay  

 0..n  

Conditionally Mandatory. If LengthsOfStay is sent then there must be at least one LengthOfStay element.

 

@MinMaxMessageType  

 0..1  

MinMaxLengthOfStay set = SetMinLOS when sending
MinLOS, the default setting. It can be set = FullPatternLOS if both partners support the Full Pattern Length of Stay as available in the OTA message. Other values could be used based on partner agreement.

 

@Time, @TimeUnit  

 0..1  

If sending MinLOS then TimeUnit set = Day and Time set to the MinLOS value.

 

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay /
LengthOfStay / LOS_Pattern

0..1

 

 

@FullPatternLOS

0..1

This is set to the string with ‘Y’ for the LOS that are open and ‘N’ for the LOS that are closed. The length of the string is indicated in @FixedPatternLength described above. For example, to open the odd LOS (LOS1, LOS3, LOS5, and LOS7) and close the even LOS (LOS2, LOS4, and LOS6) then the string would be “YNYNYNY”.

 

OTA_HotelAvailNotifRQ Sample Availability and Restriction Messages

The table below details the statuses sent in the example below.

From Date

To Date

Level

Status

Amount

 5/11/2010  

 5/11/2010  

 Property  

 Closed to Arrival  

   

 5/12/2010  

 5/12/2010  

 Rate Plan BAR  

 Closed to Departure  

   

 5/13/2010  

 5/13/2010  

 Room type KATY  

 Closed  

   

 5/14/2010  

 5/14/2010  

 Property  

 Set Limit Closed to Arrival  

 6  

 5/15/2010  

 5/15/2010  

 Room type KATY, Rate Plan TEST  

 Set Limit Closed to Arrival  

 8  

 5/16/2010  

 5/16/2010  

 Room type TEX, Rate Plan BAR  

 Set Limit Open  

 21  

 5/20/2010  

 5/20/2010  

 Property  

 Minimum length of stay  

 2  

 5/21/2010  

 5/21/2010  

 Property  

 Maximum length of stay  

 2  

 5/22/2010  

 5/22/2010  

 Property  

 Remove minimum length of stay  

 2  

 

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.0"> <AvailStatusMessages ChainCode="TS" HotelCode="TSDDN" HotelName="Test Property"> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-11" End="2010-05-11"/> <RestrictionStatus Restriction="Arrival" Status="Close"/> </AvailStatusMessage> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-12" End="2010-05-12" RatePlanCode="BAR"/> <RestrictionStatus Restriction="Departure" Status="Open"/> </AvailStatusMessage> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-13" End="2010-05-13" InvTypeCode="KATY"/> <RestrictionStatus Status="Close"/> </AvailStatusMessage> <AvailStatusMessage BookingLimit="6" BookingLimitMessageType="SetLimit"> <StatusApplicationControl Start="2010-05-14" End="2010-05-14"/> <RestrictionStatus Restriction="Arrival" Status="Close"/> </AvailStatusMessage> <AvailStatusMessage BookingLimit="8" BookingLimitMessageType="SetLimit"> <StatusApplicationControl Start="2010-05-15" End="2010-05-15" InvTypeCode="KATY" RatePlanCode="TEST"/> <RestrictionStatus Restriction="Arrival" Status="Close"/> </AvailStatusMessage> <AvailStatusMessage BookingLimit="21" BookingLimitMessageType="SetLimit"> <StatusApplicationControl Start="2010-05-16" End="2010-05-16" InvTypeCode="TEX" RatePlanCode="BAR"/> <RestrictionStatus Status="Open"/> </AvailStatusMessage> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-20" End="2010-05-20" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true"/> <LengthsOfStay ArrivalDateBased="1"> <LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="SetMinLOS"/> </LengthsOfStay> </AvailStatusMessage> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-21" End="2010-05-21" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true"/> <LengthsOfStay ArrivalDateBased="1"> <LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="SetMaxLOS"/> </LengthsOfStay> </AvailStatusMessage> <AvailStatusMessage> <StatusApplicationControl Start="2010-05-22" End="2010-05-22" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true"/> <LengthsOfStay ArrivalDateBased="1"> <LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="RemoveMinLOS"/> </LengthsOfStay> </AvailStatusMessage> </AvailStatusMessages> </OTA_HotelAvailNotifRQ>

Sample for Oversell Posting from Wave RMS

<OTA_HotelAvailNotifRQ 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" EchoToken="6172037375195" TimeStamp="2021-12-10T09:40:40.4577583-06:00" Version="1" TransactionIdentifier="6172037375195"> <AvailStatusMessages HotelCode="CMBTEST"> <AvailStatusMessage BookingThreshold="5"> <StatusApplicationControl Start="2022-01-15" End="2022-01-15" InvTypeCode="KING" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true"/> <UniqueID Type="16" ID="1"/> </AvailStatusMessage> </AvailStatusMessages> <MessageContentCode>6</MessageContentCode> </OTA_HotelAvailNotifRQ>

 

OTA_HotelAvailNotifRS Elements & Attributes

Element | @Attribute

Num

Description/Contents

Origin | Value

OTA_HotelAvailNotifRQ

 1  

Root element of the message.  

   

@EchoToken  

 0..1  

Optional

 

@TimeStamp  

 1  

Time of the transaction.

 

@Version  

 1  

Version is a mandatory attribute in OTA; therefore, it must remain Mandatory in HTNG to be able to use the same message.

 

@MessageContentCode

 1  

The attribute refers to OTA code list MCC which includes RateAvail, RoomAvail, RoomRateAvail, SegmentAvail, SegmentRoomAvail, HouseAvail, and
HurdleRateUpdate.

 

OTA_HotelAvailNotifRS / Success

 

This is the annotation that the availability status message batch was received successfully. It could be combined with warning messages if some of the
messages in the batch had issues.

 

OTA_HotelAvailNotifRS / Warnings  

 1..n  

Optional

 

OTA_HotelAvailNotifRS / Warnings / Warning

1..99

Mandatory if parent level is present.

 

@ Type  

 1  

Refers to OTA EWT list (error warning type).

 

@ Code  

 0..1  

Optional. Refers to OTA list ERR. Should be used wherever possible  

 

@ RecordID

 0..1  

If the receiving system can identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be
reported here.

 

OTA_HotelAvailNotifRS / Errors  

 1  

Optional. Errors are returned if the request was unable to be processed.

 

OTA_HotelAvailNotifRS / Errors / Error

1..99

Mandatory if parent level is present.

 

@ Type

 1  

Mandatory in OTA. Refers to OTA EWT list (error warning type).  

 

@ Code

 0..1  

Optional. Refers to OTA list ERR. Should be used wherever possible

 

@ RecordID

0..1

If the receiving system can identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here.

 

OTA_HotelAvailNotifRS Sample Availability and Restriction Response Message

<OTA_HotelAvailNotifRS 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_HotelInvCountNotifRS.xsd" TimeStamp="2004-05-01T06:39:09" Target="Production" Version="1.002"> <Success/> </OTA_HotelAvailNotifRS>