OTA_HotelAvailNotifRQ

Requests

Syntax

The OTA_HotelAvailNotifRQ message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="message_ID"
                       TimeStamp="timestamp"
                       Version="3.0">
  <POS>
    <Source>
      <RequestorID ID="partner_account_name"/>
    </Source>
  </POS>
  <AvailStatusMessages HotelCode="HotelID">
    <AvailStatusMessage BookingLimit="integer">
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"/>
    </AvailStatusMessage>
    <AvailStatusMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"/>
      <LengthsOfStay>
        <LengthOfStay Time="integer"
                      TimeUnit="[Day]"
                      MinMaxMessageType="[SetMaxLOS|SetMinLOS|SetForwardMaxStay|
                      SetForwardMinStay]"/>
      </LengthsOfStay>
      <RestrictionStatus Status="[Close|Open]"
                         Restriction="[Arrival|Departure|Master]"
                         MaxAdvancedBookingOffset="integer_or_duration"
                         MinAdvancedBookingOffset="integer_or_duration"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Elements & Attributes

The OTA_HotelAvailNotifRQ message has the following elements and attributes:
Element / @Attribute Occurrences Type Description
OTA_HotelAvailNotifRQ 1 Complex element The root element for a message that defines room rate availability.
OTA_HotelAvailNotifRQ / @xmlns 0..1 String (URI) The XML namespace.
OTA_HotelAvailNotifRQ / @EchoToken 1 String A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash).
OTA_HotelAvailNotifRQ / @TimeStamp 1 DateTime The creation date and time of this message.
OTA_HotelAvailNotifRQ / @Version 1 Decimal The OpenTravel message version.
OTA_HotelAvailNotifRQ / POS 0..1 POS A container for specifying the partner account for this message (typically used if your backend provides price feeds for multiple partner accounts).
OTA_HotelAvailNotifRQ / POS/ Source 1 Source Required if <POS> is present. A container for the <RequestorID>.
OTA_HotelAvailNotifRQ / POS / RequestorID 1 RequestorID Required if <POS> is present. Defines the partner account.
OTA_HotelAvailNotifRQ / POS / RequestorID / @ID 1 String The partner account for this message. This string value is the "Partner key" value listed on the Account settings page in Hotel Center.

Note: If you have a backend that provides feeds for multiple accounts, this value needs to match the partner attribute value of your Transaction (Property Data) message and the ID attribute value in the <RequestorID> element of your <OTA_HotelRateAmountNotifRQ> message for the same account.

OTA_HotelAvailNotifRQ / AvailStatusMessages 1 AvailStatusMessages A container for one or more <AvailStatusMessage> elements.
OTA_HotelAvailNotifRQ / AvailStatusMessages / @HotelCode 1 String The unique identifier for the property. This value must match the Hotel ID specified using <id> in the <listing> element in the Hotel List Feed. The Hotel ID is also listed in Hotel Center.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage 1..n AvailStatusMessage Defines room rate availability and restrictions for different time ranges for a single property.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / @BookingLimit 1 Int

Note: The OTA_HotelInvCountNotifRQ message is preferred over setting this attribute.

The number of remaining rooms that can be booked for the date range in <StatusApplicationControl>. If BooklingLimit is specified, <StatusApplicationControl> must specify InvTypeCode, and the <AvailStatusMessage> cannot contain <LengthOfStay> or <RestrictionStatus>. Must be equal to or greater than 0. Defaults to 0 if negative or not provided.

Note: To establish room availability for a given <StatusApplicationControl> setting, the BookingLimit attribute must be set at least once.

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl 1 StatusApplicationControl Defines the date range, as well as the identifiers for the room type (InvTypeCode) and rate plan (RatePlanCode).
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Start 1 Date The starting date of the date range.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @End 1 Date The ending date of the date range. Must be equal or greater than the start value. If start and end are equal, the update applies to that date.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Mon 0..1 Boolean Set to true or 1 to explicitly include Mondays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Tue 0..1 Boolean Set to true or 1 to explicitly include Tuesdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Weds 0..1 Boolean Set to true or 1 to explicitly include Wednesdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Thur 0..1 Boolean Set to true or 1 to explicitly include Thursdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Fri 0..1 Boolean Set to true or 1 to explicitly include Fridays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Sat 0..1 Boolean Set to true or 1 to explicitly include Saturdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Sun 0..1 Boolean Set to true or 1 to explicitly include Sundays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @InvTypeCode 1 String The unique identifier for the inventory (room type). This value maps to <RoomID> in a Transactions (Property Data) message.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @RatePlanCode 0..1 String A unique identifier for the rate plan. This identifier maps to the value of the <PackageID> in a Transaction (Property Data) message. The rate plan is further defined and referred to in <StatusApplicationControl> in both <OTA_HotelRateAmountNotifRQ> and <OTA_HotelAvailNotifRQ> messages.

The RatePlanCode attribute is not applicable, and must not be specified, when <AvailStatusMessage> contains the BookingLimit attribute. Must be specified if <RestrictionStatus> or <LengthOfStay> is specified.

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay 0..1 LengthsOfStay A container for defining LOS restrictions. Must not be present if <AvailStatusMessage> includes the BookingLimit attribute.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay / LengthOfStay 1..n LengthOfStay Defines restrictions on the length of stay. When using more than one <LengthOfStay> element, each one must specify a different MinMaxMessageType value.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay / LengthOfStay / @Time 1 Int Unit value of the length of stay measurement. Note that a value of zero is treated as no restriction. For example, <LengthOfStay Time="0" MinMaxMessageType="SetMaxLOS"/> means no maximum length of stay.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay / LengthOfStay / @TimeUnit 0..1 Enum

The time unit. Defaults to "Day" if not provided. Valid values are:

  • Day
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / LengthsOfStay / LengthOfStay / @MinMaxMessageType 1 Enum Various types of length of stay restrictions. SetMaxLOS and SetMinLOS are arrival based. SetForwardMinStay and SetForwardMaxStay are stay-through based. Maximum values must be greater than or equal to minimum values.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus 0..1 RestrictionStatus Defines itinerary restrictions. Must not be present if <AvailStatusMessage> includes the BookingLimit attribute.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus / @Status 0..1 Enum

Indicates whether the type of restriction specified by the Restriction attribute is open or closed. Valid values are:

  • Open
  • Close

Note: To establish room and rate availability for a given <StatusApplicationControl> setting, the Status attribute must be set to Open and the Restriction attribute must be set to Master at least once. Alternatively, partners can request Google to configure their account to default the Status attribute to Open when they've given us a rate and BookingLimit is greater than 0.

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus / @Restriction 0..1 Enum

This attribute is required if Status is provided.

Valid values are:

  • Arrival: This value prevents itineraries with a check-in date during the Start and End date range, inclusive.
  • Departure: This value prevents itineraries with a check-out date during the Start and End date range, inclusive.
  • Master: This value indicates whether the room rate is available for booking on the date.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus / @MinAdvancedBookingOffset 0..1 Int or Duration Minimum duration before the arrival date for which this room rate can be booked.

Valid value types are:

  • Integer: The number of days before the arrival date. For example, a value of 1 indicates the room rate must be booked at least one day before the arrival date. A value of 0 (the default value) indicates that booking can occur up to and including the arrival date.
  • ISO 8601 Duration (days and hours): The number of days (and optionally hours) before the arrival date. For example, a value of P1D indicates the room rate must be booked one day before the arrival date. A value of P0DT6H indicates that booking must occur six hours before the end of the arrival date (i.e. 18:00) or earlier.
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus / @MaxAdvancedBookingOffset 0..1 Int or Duration Maximum duration before the arrival date for which this room rate can be booked.

Valid value types are:

  • Integer: The number of days before the arrival date. For example, a value of 30 indicates the room rate cannot be booked earlier than 30 days before the arrival date. A value of 0 (the default value) indicates no restriction on the earliest booking time.
  • ISO 8601 Duration (days and hours): The number of days (and optionally hours) before the arrival date. For example, a value of P30D indicates the room rate cannot be booked earlier than 30 days before the arrival date. A value of P30DT6H indicates that booking cannot occur earlier than 18:00 30 days before the arrival date.

Examples

Example 1

Set minimum and maximum lengths of stay (based on arrival date).

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <LengthsOfStay>
        <LengthOfStay Time="5" MinMaxMessageType="SetMaxLOS"/>
        <LengthOfStay Time="2" MinMaxMessageType="SetMinLOS"/>
      </LengthsOfStay>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 2

Set minimum and maximum lengths of stay (based on stay-through).

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <LengthsOfStay>
        <LengthOfStay Time="5" MinMaxMessageType="SetForwardMaxStay"/>
        <LengthOfStay Time="2" MinMaxMessageType="SetForwardMinStay"/>
      </LengthsOfStay>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 3

Set a closed-to-departure retriction. (This prevents itineraries with check-out on specified dates.)

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Close" Restriction="Departure"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 4

Set a closed-to-arrival restriction. (This prevents itineraries with check-in on specified dates.)

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Close" Restriction="Arrival"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 5

Open availability for a room type and rate plan on specified dates.

Note: nightly rates are also needed, along with an inventory count greater than 0 for the room type, before prices are completely available.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Open" Restriction="Master"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 6

Close availability for a room type and rate plan on specified dates. (This is also known as a "stop sell.")

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Close" Restriction="Master"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 7

Set minimum and maximum advanced booking window restrictions, applied only on weekends.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-01-01"
                                End="2020-06-30"
                                Mon=”false”
                                Tue=”false”
                                Weds=”false”
                                Thur=”false”
                                Fri=”false”
                                Sat=”true”
                                Sun=”true”
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus MaxAdvancedBookingOffset="30"
                         MinAdvancedBookingOffset="2"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 8

Set multiple restrictions over the same dates for a room type and rate plan.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Open" Restriction="Master"/>
    </AvailStatusMessage>
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Close" Restriction="Arrival"/>
    </AvailStatusMessage>
    <AvailStatusMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <RestrictionStatus Status="Close" Restriction="Departure"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Example 9

Set inventory counts for a room type over specified dates.

Note: The OTA_HotelInvCountNotifRQ message is preferred over setting this attribute.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <AvailStatusMessages HotelCode="Property_1">
    <AvailStatusMessage BookingLimit="5">
      <!-- Note: RatePlanCode must not be specified here when setting inventory counts. -->
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"/>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>

Responses

Syntax

The OTA_HotelAvailNotifRS message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       TimeStamp="timestamp"
                       EchoToken="echo_token"
                       Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelAvailNotifRS>

Elements & Attributes

The OTA_HotelAvailNotifRS message has the following elements and attributes:
Element / @Attribute Occurrences Type Description
OTA_HotelAvailNotifRS 1 Complex element The root element for a response to an availability message.
OTA_HotelAvailNotifRS / @TimeStamp 1 DateTime The creation date and time of this message.
OTA_HotelAvailNotifRS / @EchoToken 1 String The unique identifier from the associated OTA_HotelAvailNotifRQ message.
OTA_HotelAvailNotifRS / Success 0..1 Success Indicates that the OTA_HotelAvailNotifRQ message was processed successfully.

Either <Success> or <Errors> is present in each message.

OTA_HotelAvailNotifRS / Errors 0..1 Errors A container for one or more issues encountered while processing the OTA_HotelAvailNotifRQ message.

Either <Success> or <Errors> is present in each message.

OTA_HotelAvailNotifRS / Errors / Error 1..n Error The description of an error encountered while processing the OTA_HotelAvailNotifRQ message. Details on these errors can be found in Feed Status Error Messages.
OTA_HotelAvailNotifRS / Errors / Error / @Type 1 Integer The OpenTravel Alliance EWT (Error Warning Type) associated with the error. Only the value 12 (Processing exception) is used.
OTA_HotelAvailNotifRS / Errors / Error / @Code 1 Integer The OpenTravel Alliance ERR (Error Code) associated with the error. Only the value 450 (Unable to process) is used.
OTA_HotelAvailNotifRS / Errors / Error / @Code 1 Enum The status of the original request. Only the value NotProcessed is used.
OTA_HotelAvailNotifRS / Errors / Error / @ShortText 1 String The Google identifier for the issue. Details on these errors can be found in Feed Status Error Messages.

Examples

Success

The following is a response to a successfully processed OTA_HotelAvailNotifRQ message.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelAvailNotifRS>

Errors

The following is a response to a OTA_HotelAvailNotifRQ message not processed due to errors.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelAvailNotifRS>