Push API - Availability and Inventory

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:

<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:

<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

 

OTA_HotelAvailNotifRS

External channel must respond to the above request by returning an OTA_HotelAvailNotifRS message. The only exception to this is when a SOAP level fault occurs while External channel processes the request.

At this stage the messages are screened for conformance to basic business rules only. Additionally, messages are screened to ensure that the values passed meet the business constraints specified here.

Response messages indicating failures will contain at least one error element. It is possible that more than one error element is returned.

If the request has been received correctly and External channel has screened the messages for consistency, it will return an OTA_HotelAvailNotifRS message with a single Success element. It should be understood that receiving a message successfully does not imply that the updates will be made successfully. Errors could be generated due to business rule or communication failures could result in update failures.

Sample Success Message

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"> <s:Header> <ActivityId CorrelationId="cb97f8b7-3cd8-4cba-8ecf-c6d489ffbd58" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">430e18a5-eda8-4b40-bdfc-313faa065a9e</ActivityId> <a:To s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To> </s:Header> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <OTA_HotelAvailNotifRS EchoToken="5684" TimeStamp="2016-05-12T02:23:22" Target="Production" Version="1.0" xmlns="http://www.opentravel.org/OTA/2003/05"> <Success/> </OTA_HotelAvailNotifRS> </s:Body> </s:Envelope>

Sample Error Message

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

@Success

If included this element will indicate that the request message was successfully processed. Either a Success element or Errors/error element(s) are required in every response.

0..1

Errors

Either a Success element or Errors/Error element are required in every response.

 0..1

Error

Description of cause for a fatal problem during request message processing.

If an Errors element is included, one or more Error elements are required.

1

@Type

This is an enumeration of HTNG approved error types (OTA code list EWT). See appendix for supported values.

 1

 

This is an enumeration of

1

@Code

This is an enumeration of HTNG approved error codes (OTA code list ERR). See appendix for supported values.