...
Since the volume of messages exchanged between the Windsurfer and external channel, the mechanisms and constraints described below must be implemented.
Type | Mechanism/Constraint | Description |
Retry | Retry strategy for communication failure and in case of specific errors returned in XML response | Windsurfer CRS and external channel will have a retry mechanism in place for communication errors and business error. |
Concurrency | Simultaneous connections per property <= 1 | Property at any given time for updating the ARI events, and allows only one connection per property at a time for receiving booking notifications. |
Timeout | Time out after 60,000 milliseconds (1 minute) | Idle connections (no packets sent by either side) for more than one minute are closed. These should be considered as incomplete and implement a retry strategy to re-send data. |
Character Set | Support for UTF-8 | All messages exchanged must have UTF-8 encoding |
Hotels | Only data related to one hotel can be sent in a single request message |
|
Date Range | 720 Days | Maximum number of days that a single request message could update must not exceed 720 days |
Operations - Availability and Inventory
This web service operation allows the Windsurfer CRS to request external channel to update the availability status, inventory count and restrictions of a hotels inventory. Two messages are used in this operation:
OTA_HotelAvailNotifRQ: It is the message sent by the OTA to the external channel to notify of any change in availability.
OTA_HotelAvailNotifRS: In response the external channel sends an OTA_HotelAvailNotifRS message (unless a SOAP level error occurs, in which case a SOAP fault message is sent).
Change Inventory Count
The inventory count update has to be sent separately on room type basis. It means there is only room type and no RatePlan information passed in the RQ message.
Sample Message:
Code Block | ||
---|---|---|
| ||
<OTA_HotelAvailNotifRQ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EchoToken="2906892291"
TimeStamp="2020-04-28T13:58:02.6508395-06:00" Target="Production"
Version="1" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessages HotelCode="PSSN">
<AvailStatusMessage BookingLimitMessageType="SetLimit" BookingLimit="17">
<StatusApplicationControl Start="2020-04-28" End="2020-04-28" InvCode="RoomA" />
<UniqueID Type="16" ID="2906892291" />
</AvailStatusMessage>
<AvailStatusMessage BookingLimitMessageType="SetLimit" BookingLimit="18">
<StatusApplicationControl Start="2020-04-29" End="2020-05-08" InvCode="RoomA" />
<UniqueID Type="16" ID="2906892291" />
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ> |
Change in Availability Status and Restrictions
Any change in availability status or restrictions update should include both RoomType and RatePlan information.
Windsurfer CRS sends availability status and restrictions update at Product level (i.e. a RoomType + RatePlan). It is possible that multiple products are associated with a single room type.
Sample Message:
Code Block | ||
---|---|---|
| ||
<OTA_HotelAvailNotifRQ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="2901727514" TimeStamp="2020-01-31T17:00:39.344971-06:00"
Target="Production" Version="1" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessages HotelCode="HTBEN">
<AvailStatusMessage>
<StatusApplicationControl Start="2020-03-31" End="2020-04-30" RatePlanCode="CHK" InvCode="KRO" />
<LengthsOfStay>
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="SetMinLOS" />
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="SetForwardMinStay" />
</LengthsOfStay>
<RestrictionStatus Status="Open" />
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ> |
OTA_HotelAvailNotifRQ XML Usage Specification
...
Element/@Attribute
...
Description
...
Occurrences
...
@TimeStamp
...
Time of the transaction in xml schema date-time format
...
1
...
@EchoToken
...
Unique Identifier to track the RQ/RS message
...
1
...
@Target
...
Always set to “Production”
...
1
...
@Version
...
Always set to “1.0”
...
1
...
AvailStatusMessages
...
Contains list of availability messages (AvailStatusMessage)
...
1
...
@HotelCode
...
The code of the property whose availability is being updated
...
1
...
@HotelName
...
The name of the property whose availability is being updated
...
0..1
...
AvailStatusMessage
...
An availability message. One of the BookingLimit or RestrictionStatus or LengthsOfStay must be included
...
1..n
...
@BookingLimit
...
The number of rooms available. Optional, to be set at Room level
...
0…1
...
@BookingLimitMessageType
...
Always set to “SetLimit”. Mandatory if “BookingLimit” is available
...
0…1
...
StatusApplicationControl
...
The date range, room type code and rate code for which this notification is sent is specified in the element.
...
1
...
@Start
...
The start date for which the availability update is being set
...
1
...
@End
...
The end date for which the availability update is being set
...
1
...
@invCode
...
Identifies the Room type for which the availability is being updated. The room type code + rate code identify a unique product for which this update applies.
...
1
...
@RatePlanCode
...
Identifies the Rate plan for which the availability is being updated. Optional, in case of Inventory count (“BookingLimit”) only.
...
0..1
...
@UniqueID
...
Unique identifier for each availability message
...
1
...
@LengthsOfStay
...
Availability based on length of stay can be set using this. Optional
...
0..1
...
/OTA_HotelAvailNotifRQ/AvailStatusMessages/AvailStatusMessage
LengthOfStay
...
Mandatory if LengthsOfStay is present
...
1
...
@Time
...
Mandatory if LengthOfStay is present. Sets the minimum number of days required for a stay.
...
1
...
@TimeUnit
...
Mandatory if LengthOfStay is present. Always set to “Day”
...
1
...
@MinMaxMessageType
...
Mandatory if LengthOfStay is
present. Stay control type. Can be
any of the options below:
SetMinLOS : To set minimum length
of stay.
SetMaxLOS: To set maximum length
of stay.
...
1
...
RestrictionStatus
...
Availability status assigned to the room rate combination.
...
0..1
...
@Status
...
The restriction status. Mandatory if
RestrictionStatus is present. Can be
any of the options below:
Open: The Sale is open.
Close: The Sale is closed.
ClosedOnArrival: Arrival is closed.
ClosedOnDeparture: Departure is
closed.
OpenOnArrival: Arrival is open.
OpenOnDeparture: Departure is
open.
ClosedOnArrivalDeparture: Both
Arrival & Departure is closed.
MinAdvancedBookingOffset:
Minimum number of days before
the arrival date the hotel is
bookable.
...
1
Page Properties | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
Summary ARI Message Specification | v1.0Revision
|