OTA_HotelAvailNotifRQ - request sent by PMS with the real-time availability and restrictions.
OTA_HotelAvailNotifRS - response sent by SiteMinder to acknowledge receipt.
Request
Examples
Availability and Restrictions can technically be sent together using the OTA_HotelAvailNotifRQ message; however, we require these to be sent in separate requests for better processing and clarity.
To set the Availability of a room type, use the AvailStatusMessage/@BookingLimit attribute.
Availability is set at the 'Room Type/Category' level (InvTypeCode). For example, if the room type is 'Superior' with 'SUP' as the InvTypeCode, all rates linked to this category will share the same availability pool. Updates will apply to the 'SUP' InvTypeCode.
To update the Stop Sell restriction, use the RestrictionStatus node.
Each restriction type is managed independently, meaning updates for one restriction (e.g., stop sell) do not affect the status of others (e.g., closed to arrival or departure). For example, sending a stop sell update will not modify the closed to arrival or closed to departure settings.
SUP / GLD room rate is stop sold for the specified date range.
To update the Closed to Arrival (CTA) restriction, use the RestrictionStatus node.
Each restriction type is managed independently, meaning updates for one restriction (e.g., stop sell) do not affect the status of others (e.g., closed to arrival or departure). For example, sending a stop sell update will not modify the closed to arrival or closed to departure settings.
SUP / GLD room rate is closed for arrival (check-in)on2025-03-01.
To update the Closed to Departure (CTD) restriction, use the RestrictionStatus node.
Each restriction type is managed independently, meaning updates for one restriction (e.g., stop sell) do not affect the status of others (e.g., closed to arrival or departure). For example, sending a stop sell update will not modify the closed to arrival or closed to departure settings.
SUP / GLD room rate is closed for departure (check-out)on2025-03-01.
Minimum Length of Stay is the minimum number of nights the guest must stay if this date is the requested arrival date.
To set a Minimum Stay, use the LengthsOfStay element, which contains a single LengthOfStay element with two mandatory attributes:
@MinMaxMessageType: Must be set to "SetMinLOS".
@Time: The minimum stay duration in days.
Ensure there is no conflict between MinLOS and MaxLOS values. The system should not allow a minimum stay (MinLOS) to be greater than the maximum stay (MaxLOS) for the same date.
Maximum Length of Stay is the maximum number of nights the guest can stay after the requested arrival date.
To set a Maximum Stay, use the LengthsOfStay element, which includes a single LengthOfStay element with two mandatory attributes:
@MinMaxMessageType: Must be set to "SetMaxLOS".
@Time: The maximum stay duration in days.
Ensure there is no conflicting logic between MaxLOS and MinLOS. The system must prevent hotels from setting a maximum stay (MaxLOS) that is less than the minimum stay (MinLOS) for the same date.
Each AvailStatusMessage can be used to set Availability, Minimum/Maximum Stays, CTA/CTD and Stop Sells either individually or in combination. Each attribute—such as BookingLimit for availability, LengthOfStay for minimum/maximum stays, and RestrictionStatus for stop sells and CTA/CTD—can be updated independently within the same request.
If you choose to send Stop Sell, CTA and CTD on a Room Level (RatePlanCode not present), then all updates (Open and Close) should follow the same rule. The same applies if you choose to send the restrictions at a room rate level (InvTypeCode and RatePlanCode are present). It is not acceptable to send Room-level restriction updates, and then overlay them with Room Rate level updates or vice versa.
Here is an example of an OTA_HotelAvailNotifRQ that updates only Availability for the same room in a single request:
Here is an example of an OTA_HotelAvailNotifRQ that updates only Minimum/Maximum Stay, Stop Sell and CTA/CTD for the same room rate in a single request:
<OTA_HotelAvailNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
<POS>
<Source>
<RequestorID Type="22" ID="PMSCODE"/>
</Source>
</POS>
<AvailStatusMessages HotelCode="HOTEL">
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-01" End="2025-03-14" InvTypeCode="SUP" RatePlanCode="GLD"/>
<LengthsOfStay>
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="2"/> <!-- Min Length of Stay -->
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="5"/> <!-- Max Length of Stay -->
</LengthsOfStay>
<RestrictionStatus Status="Close"/> <!-- Stop Sell -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-01" End="2025-03-14" InvTypeCode="SUP" RatePlanCode="GLD"/>
<RestrictionStatus Restriction="Arrival" Status="Close"/> <!-- Close to Arrival (CTA) -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-01" End="2025-03-14" InvTypeCode="SUP" RatePlanCode="GLD"/>
<RestrictionStatus Restriction="Departure" Status="Close"/>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-15" End="2025-03-31" InvTypeCode="SUP" RatePlanCode="GLD"/>
<LengthsOfStay>
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1"/> <!-- Min Length of Stay -->
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="7"/> <!-- Max Length of Stay -->
</LengthsOfStay>
<RestrictionStatus Status="Open"/> <!-- Stop Sell -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-15" End="2025-03-31" InvTypeCode="SUP" RatePlanCode="GLD"/>
<RestrictionStatus Restriction="Arrival" Status="Open"/> <!-- Close to Arrival (CTA) -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2025-03-15" End="2025-03-31" InvTypeCode="SUP" RatePlanCode="GLD"/>
<RestrictionStatus Restriction="Departure" Status="Open"/> <!-- Close to Departure (CTD) -->
</AvailStatusMessage>
<!-- Additional AvailStatusMessage elements -->
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Specification
Element / @Attribute
Type
M
Description
OTA_HotelAvailNotifRQ
Element
1
Root element for the request.
@xmlns
String
1
Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses.
@TimeStamp
DateTime
1
Time when the request was generated.
@Version
String
1
Specifies the API version. Will be set to 1.0.
POS / Source / RequestorID
1
@Type
1
Fixed at 22 (ESRP)
@ID
String
AvailStatusMessages
Element
1
Container for availability and restriction status messages.
@HotelCode
String
1
Identifier for the hotel.
AvailStatusMessage
Element
1..n
Single availability or restriction status message.
@BookingLimit
Integer ≥ 0
0..1
Sets the number of rooms available for sale.
StatusApplicationControl
Element
1
Contains date and room identification information.
@Start
Date
1
The start date for which the update is being set. This date is inclusive.
@End
Date
1
The end date for which the update is being set. This date is inclusive.
@InvTypeCode
String
0..1
Identifies the room type.
@RatePlanCode
String
0..1
Identifies the rate plan.
Mon, Tue, Weds, Thur, Fri, Sat, Sun
Boolean
0..1
The day of the week indicators are optional. If not specified, all days are assumed to be set to true (enabled).
These indicators are used to indicate which days of the week the update applies to. For example:
Setting Monday, Tuesday, and Wednesday to "1" while setting the other days to "0" will update availability only for those three days.
If any day of the week is included in the message, all day indicators must be sent to ensure clarity in the update.
LengthsOfStay
Element
0..1
Used for Minimum Stay and Maximum Stay.
LengthOfStay
Element
1..2
Single length of stay information.
@MinMaxMessageType
String
1
Can be one of the following: SetMinLOS
SetMaxLOS
@Time
Integer > 0
1
Specifies the number of days related to a stay.
SetMinLOS : Minimum days required for a stay.
SetMaxLOS : Maximum days bookable.
@Time value must be above 0. To removeMaxLOS), set @Time to 999.
RestrictionStatus
Element
0..1
Used to restrict the room for Stop Sell, Closed to Arrivals, and Closed to Departure.
@Status
String
1
Values:
Open (opens room for sale)
Close (closes room for sale)
@Restriction
String
0..1
Values:
Arrival (closes to arrival)
Departure (closes to departure)
If no type is specified, assume a full close or open for the room rate.
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
<Errors>
<Error Type="6">PMS is not authorized to access hotel with HotelCode=XXXX</Error>
</Errors>
</OTA_HotelAvailNotifRS>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
<Errors>
<Error Type="10">Status should be "Close" or "Open"</Error>
</Errors>
</OTA_HotelAvailNotifRS>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
<Errors>
<Error Type="10">Time should be a number between 1 and 9999</Error>
</Errors>
</OTA_HotelAvailNotifRS>
Specification
Element / @Attribute
Type
M
Description
OTA_HotelAvailNotifRS
Element
1
Root element for the response.
@xmlns
String
1
Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses.
@TimeStamp
DateTime
1
Time when the response was generated.
@Version
String
1
Specifies the API version. Must be set to 1.0.
Success
Element
0..1
Indicates successful processing of the request.
Errors
Element
0..1
Indicates an error occurred during the processing of the request.