Availability and Restrictions

Message Exchange Workflow

  • OTA_HotelAvailNotifRQ - request sent by PMS with the real-time availability and restrictions.

  • OTA_HotelAvailNotifRS - response sent by pmsXchange to acknowledge receipt.

Request

Examples

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.

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTEL">
    <AvailStatusMessage BookingLimit="10">
      <StatusApplicationControl Start="2025-01-01" End="2025-01-14" InvTypeCode="SUP"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Update Multiple Values Examples

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.

Here is an example of an OTA_HotelAvailNotifRQ that updates Closed to Arrival (CTA), Closed to Departure (CTD), and sets a Stop Sell for a room in a single request:

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2025-02-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTEL">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2025-03-01" End="2025-03-14" InvTypeCode="SUP" RatePlanCode="GLD"/>
      <RestrictionStatus Restriction="Arrival" Status="Close" />
    </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-01" End="2025-03-14" InvTypeCode="SUP" RatePlanCode="GLD"/>
      <RestrictionStatus Status="Close" />
    </AvailStatusMessage>
  </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.

Response

Examples

<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2025-07-06T15:27:41+00:00" Version="1.0">
    <Success/>
</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.

Error

Element

1..n

Single error information containing free text.

@Type

Integer

1

Type of error. Refer to Error Warning Types (EWT).

@Code

Integer

0..1

Code representing the error. Refer to Error Codes (ERR).

Last updated