Availability and Restrictions
Sync room inventory and booking restrictions from SiteMinder Platform to your booking channel.
What is Availability and Restrictions?
Availability and Restrictions is an update method where the SiteMinder Platform actively sends room inventory counts and booking restrictions to the booking channel. This integration ensures that the booking channel receive synchronized availability and restriction updates in real-time, preventing overbookings and maintaining accurate inventory control.
The API handles two primary data types:
Availability Updates: Real-time room inventory counts that define how many rooms are available for sale on specific dates.
Restriction Updates: Booking rules and limitations including stop sells, closed to arrival/departure, and minimum/maximum length of stay requirements.
Integration Requirements
Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.
Web Service Endpoint
The booking channel will provide a single global endpoint for all hotels for SiteMinder to push
OTA_HotelAvailNotifRQmessages and receiveOTA_HotelAvailNotifRSresponses indicating success or failure.The endpoint must use a registered domain name.
Direct IP addresses are not supported and cannot be used as endpoints.
Authentication
The booking channel will provide a single username/password for all hotels.
SiteMinder will include authentication credentials within the SOAP Security header of each
OTA_HotelAvailNotifRQ.Credentials must follow a strong password policy: minimum of 12 characters, including a mix of uppercase and lowercase letters, numbers, and at least one special character (e.g.,
!@#?]).Do not use
<>&"'as they can cause issues with the Web Service.
Message Structure
All messages must adhere to the SOAP message format.
OTA message must be encapsulated within the SOAP Body.
Requests must include a SOAP Security Header for authentication.
Responses must be returned in a SOAP envelope with empty SOAP Header.
Content-Type
text/xml; charset=utf-8
Version
SOAP 1.1
Protocol & Security
All communication must occur over HTTPS using TLS 1.2 or higher.
Non-secure (HTTP) connections are not permitted.
Communication is synchronous request/response pairs.
Each message is atomic - processed entirely or not at all.
SiteMinder sends requests over port 443.
IP Whitelisting
Pre-Production IP addresses:
52.13.134.140
34.213.128.113
35.164.250.223
Production IP addresses will be provided during go-live.
Message Exchange Flow
When SiteMinder needs to update room availability or booking restrictions, it sends updates to your booking channels using a synchronous SOAP/HTTPS exchange. Each update triggers a simple request-response cycle.
Availability and Restrictions Update (SiteMinder to booking channel):
OTA_HotelAvailNotifRQDelivers availability counts and/or booking restrictions (stop sells, CTA, CTD, min/max stay) for specific room types and rate plans across defined date ranges.Confirmation Response (booking channel to SiteMinder):
OTA_HotelAvailNotifRSConfirms successful receipt and processing or reports validation errors.
Security Header
The Security Header is a mandatory SOAP header that authenticates every request from SiteMinder to your booking channel endpoint. It contains the username and password credentials that you provide to the SiteMinder during integration setup.
Key Requirements:
Validation: Your endpoint will validate these credentials on every request.
Scope: One set of credentials is used for all properties in your integration.
Security: Credentials are transmitted as plain text within the HTTPS encrypted channel.
Response: Invalid credentials will return a SOAP fault with appropriate error code.
Requests must include a SOAP Security Header for authentication.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security SOAP-ENV:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<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">
<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelAvailNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>Responses must be returned in a SOAP envelope with an empty SOAP Header.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<OTA_HotelAvailNotifRS
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">
<Success/>
<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelAvailNotifRS>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>Multiplicity
In the SOAP Specification tables below M refers to the number of instances or occurrences of an element or attribute that are allowed or required in a given context. It defines how many times a particular component (element or attribute) can appear within a specific structure.
1
The element or attribute must be present exactly once.
0..1
The element or attribute is optional; it can be present zero or one time.
0..n
The element or attribute can be present zero or more times, with no upper limit (where n represents an infinite number of occurrences).
1..n
The element or attribute must be present at least once and can be present any number of times, with no upper limit.
n..m
Specific range, the element or attribute must be present at least n times and no more than m times (where n and m are specific numbers).
1. Availability and Restrictions Update
Each Availability and Restrictions message contains a single AvailStatusMessages element which indicates the hotel to update using the AvailStatusMessages / HotelCode attribute. The AvailStatusMessages / AvailStatusMessage elements will contain the updates to process over a date range. There can be several AvailStatusMessage updates per request; however, each request will be limited to one hotel and one room type.
Key Concepts
Response Behaviour for Stop Sells: If the partner's system does not support stop sells, it is required that the system interpret a RestrictionStatus of "Close" as equivalent to zero availability. This ensures consistency in how availability is communicated between SiteMinder and the booking channel, preventing errors when managing inventory. This behaviour is allowed only if the booking channel supports one rate plan per room type.
Minimum Stay and Maximum Stay: Can be defined as either:
"Stay on Arrival" (based on the arrival date):
SetMinLOSorSetMaxLOS"Stay Through" (covering the entire stay):
SetForwardMinStayorSetForwardMaxStay
The Min/Max Stay Through option is managed at the property level. Once certified, each property can choose their preferred setting.
To enable Min/Max Stay Through, the booking channel must also support Min/Max Stay On Arrival.
<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">
<AvailStatusMessages HotelCode="HOTELCODE">
<AvailStatusMessage BookingLimit="10"> <!-- Availability -->
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Status="Open"/> <!-- Stop Sell -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<LengthsOfStay>
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1"/> <!-- Min Length of Stay -->
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="3"/> <!-- Max Length of Stay -->
</LengthsOfStay>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Restriction="Arrival" Status="Open"/> <!-- Close to Arrival (CTA) -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Restriction="Departure" Status="Open"/> <!-- Close to Departure (CTD) -->
</AvailStatusMessage>
<!-- Additional AvailStatusMessage elements -->
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ><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">
<AvailStatusMessages HotelCode="HOTELCODE">
<AvailStatusMessage BookingLimit="10"> <!-- Availability -->
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Status="Open"/> <!-- Stop Sell -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<LengthsOfStay>
<LengthOfStay MinMaxMessageType="SetForwardMinStay" Time="1"/> <!-- Min Length of Stay -->
<LengthOfStay MinMaxMessageType="SetForwardMaxStay" Time="3"/> <!-- Max Length of Stay -->
</LengthsOfStay>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Restriction="Arrival" Status="Open"/> <!-- Close to Arrival (CTA) -->
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
<RestrictionStatus Restriction="Departure" Status="Open"/> <!-- Close to Departure (CTD) -->
</AvailStatusMessage>
<!-- Additional AvailStatusMessage elements -->
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>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.
AvailStatusMessages
Element
1
Container for availability status messages.
@HotelCode
String
1
Identifier for the hotel.
AvailStatusMessage
Element
1
Single availability status message.
@BookingLimit
Integer
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
1
Identifies the room.
@RatePlanCode
String
1
Identifies the rate.
LengthsOfStay
Element
0..2
Used for Minimum Stay and Maximum Stay.
LengthOfStay
Element
1
Single length of stay information.
@MinMaxMessageType
String
1
Can be one of the following:
SetMinLOS
SetMaxLOS
SetForwardMinStay
SetForwardMaxStay
@Time
Integer
0..1
Specifies the number of days related to a stay. Valid range: 1 to 9999. Minimum Stay: Always included with minimum value of 1. Maximum Stay: When included: Set or update the maximum stay value. When excluded: Remove/clear any existing maximum stay restriction.
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 date.
2. Confirmation Response
<OTA_HotelAvailNotifRS
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">
<Success/>
</OTA_HotelAvailNotifRS><OTA_HotelAvailNotifRS
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">
<Errors>
<Error Type="6" Code="392">Hotel not found for HotelCode=HOTELCODE</Error>
</Errors>
</OTA_HotelAvailNotifRS>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.
Error
Element
1..n
Single error information containing free text.
Common Questions
Help Centre
Last updated
Was this helpful?