Availability and Restrictions

HotelRunner will receive updates for availability and restrictions via the OTA_HotelAvailNotifRQ message. HotelRunner will add the updates to their queue to process and respond with the OTA_HotelAvailNotifRS as a receipt of success or failure to add queue the request.

OTA_HotelAvailNotifRQ

The OTA_HotelAvailNotifRQ message can be used to update the availability and restrictions for one room type for a single property. Specifically:

  • Room availability
  • Stop sell or 'close out' of a room
  • Closed to arrival
  • Closed to departure
  • Minimum stays

Each OTA_HotelAvailNotifRQ message must contain a single AvailStatusMessages element to indicate the property 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 must be limited to one property.

The basic structure of the message is as follows

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2016-04-01T12:31:47+03:00" Version="1.0" EchoToken="echo-1903">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTEL">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2010-01-01" End="2010-01-14" InvTypeCode="A1K" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1" />
        <!-- Content omitted -->
    </AvailStatusMessage>
    <AvailStatusMessage>
      <StatusApplicationControl Start="2010-01-01" End="2010-01-14" InvTypeCode="A1K" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1" />
        <!-- Content omitted -->
    </AvailStatusMessage>
    <AvailStatusMessage>
      <StatusApplicationControl Start="2010-01-01" End="2010-01-14" InvTypeCode="A1K" Mon="0" Tue="0" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1" />
        <!-- Content omitted -->
    </AvailStatusMessage>
   </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Setting availability

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

Restriction Type How it will be sent
Room is stop sold <RestrictionStatus Status="Close" />
Room is opened for sale <RestrictionStatus Status="Open" />
Room is set as closed to arrival <RestrictionStatus Status="Close" Restriction="Arrival" />
Room is set as open to arrival <RestrictionStatus Status="Open" Restriction="Arrival" />
Room is set as closed to departure <RestrictionStatus Status="Close" Restriction="Departure" />
Room is set as open to departure <RestrictionStatus Status="Open" Restriction="Departure" />

Setting stop sale

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2015/05" Version="1.0" TimeStamp="2017-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTELR">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2017-01-01" End="2017-01-14" InvTypeCode="HRU" RatePlanCode="RCK"/>
      <RestrictionStatus Status="Close" />
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Setting multiple restrictions

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

Setting minimum stay

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTEL">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2017-01-01" End="2017-01-14" InvTypeCode="HRU" RatePlanCode="HRU"/>
      <LengthsOfStay>
        <LengthOfStay MinMaxMessageType="SetMinLOS" Time="2"/>
      </LengthsOfStay>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Updates per channel

<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2017-08-01T09:30:47+08:00" EchoToken="echo-abc123">
  <POS>
    <Source>
      <RequestorID Type="22" ID="PMS1"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HOTEL">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2010-01-01" End="2017-01-14" InvTypeCode="HRU" RatePlanCode="HRU">
        <DestinationSystemCodes>
          <DestinationSystemCode>bookingcom</DestinationSystemCode>
        </DestinationSystemCodes>
      </StatusApplicationControl>
      <RestrictionStatus Status="Close"/>
      <LengthsOfStay>
        <LengthOfStay MinMaxMessageType="SetMinLOS" Time="2"/>
      </LengthsOfStay>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

OTA_HotelAvailNotifRS

This message is returned to the PMS in response to the OTA_HotelAvailNotifRQ message. It notifies whether the OTA_HotelAvailNotifRQ message has been processed successfully.

<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2016-04-01T12:31:47+03:00" EchoToken="echo-abc123">
  <Success/>
</OTA_HotelAvailNotifRS>

or

<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2016-04-01T12:31:47+03:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="392">Cannot finder hotelier HOTEL</Error>
  </Errors>
</OTA_HotelAvailNotifRS>

OTA_HotelAvailNotifRQ Specification

Element  Number  Description
OTA_HotelAvailNotifRQ 1 Root Node
@EchoToken 1 Globally unique identifier for the request, the value will be returned in the response EchoToken.
@TimeStamp 1 Time of the transaction in xml schema dateTime format
OTA_HotelAvailNotifRQ / POS / Source / RequestorID 1  This identifies the system which is sending the reservation. This element must appear in the first Source element.
@Type  1  Fixed at 22
@ID  The ID used will be agreed by the trading partners and remain the same throughout the messages.
@HotelCode  1  The code for the property whose availability is being updated
AvailStatusMessages / AvailStatusMessage  1..n  Contains the availability messages. If there is more than one room type to update, there should be one AvailStatusMessage per room type.
@BookingLimit  0..1  The number of rooms available
AvailStatusMessage / StatusApplicationControl 1  Contains specific info about the room availability
@Start  1  The start date for which the availability update is being set
@End  1  The end date for which the availability update is being set
@InvTypeCode 0..1 Identifies the room type for which the availability is being updated. Must enter RatePlanCode and/or InvTypeCode to identify room
@Mon, Tue, Weds, Thur, Fri, Sat, Sun 0..1  "0" or "1". Optional, if not set all are assumed to be set to true. The day of the week indicators are used to communicate which days of the week the update pertains to. For example, if mon, tue and weds are set to "1", and the other days are set to "0", the availability will only be updated for Mondays, Tuesdays and Wednesdays.  
StatusApplicationControl / DestinationSystemCodes  0..1 Contains a list of BookingAgent/Channel codes that you want to change the values for. This is optional, by default if it is not present the update is assumed to be for all BookingAgents / Channels mapped to the hotel See: Channel List.
DestinationSystemCodes / DestinationSystemCode 1..n  Required if DestinationSystemCodes is present. This is the BookingAgent/Channel code. Please refer to the Channel List provided. If an update is sent for a BookingAgent/Channel that is not mapped to the hotel, it will return a validation error.
LengthsOfStay  0..1  Optional. Used to update minimum and maximum stays.
LengthsOfStay / LengthOfStay 1..2 Mandatory if LengthsOfStay present. One LengthOfStay can be included for each of "SetMinLOS" and "SetMaxLOS".
@MinMaxMessageType 1  Mandatory if LengthsOfStay present. Possible value is "SetMinLOS". SetMaxLOS is not supported
@Time 1  Mandatory if LengthsOfStay present. Sets the minimum or maximum number of days allowed for a stay. Time must be a value above 0. Set Time to 1 to indicate that there is no MinStay requirement, or 999 to indicate no MaxStay requirement.
AvailStatusMessage / RestrictionStatus  0..1  Delfines restrictions like Stop Sell, Close To Arrival (CTA), Close To Departure (CTD)
@Status 1 "Open" or "Close"
@Restriction  1  "Arrival" OR "Departure". If not present the Stop Sell value if updated