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_key
"/>
</Source>
</POS>
<AvailStatusMessages
HotelCode=" HotelID
">
<AvailStatusMessage
BookingLimit=" integer
">
<StatusApplicationControl
Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon=" boolean
"
Tue=" boolean
"
Weds=" boolean
"
Thur=" boolean
"
Fri=" boolean
"
Sat=" boolean
"
Sun=" boolean
"
InvTypeCode=" RoomID
"/>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl
Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon=" boolean
"
Tue=" boolean
"
Weds=" boolean
"
Thur=" boolean
"
Fri=" boolean
"
Sat=" boolean
"
Sun=" boolean
"
InvTypeCode=" RoomID
"
RatePlanCode=" PackageID
"/>
<LengthsOfStay
FixedPatternLength=" integer
">
<LengthOfStay
Time=" integer
"
TimeUnit="[Day]"
MinMaxMessageType="[SetMaxLOS|SetMinLOS|SetForwardMaxStay|
SetForwardMinStay|FullPatternLOS]">
<LOS_Pattern
FullPatternLOS=" pattern
"/>
</LengthOfStay>
</LengthsOfStay>
<RestrictionStatus
Status="[Close|Open]"
Restriction="[Arrival|Departure|Master]"
MaxAdvancedBookingOffset=" integer_or_duration
"
MinAdvancedBookingOffset=" integer_or_duration
"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Each <OTA_HotelAvailNotifRQ>
message is treated as a delta update.
For each property, date, room, and package specified in <StatusApplicationControl>
, an update to any previously defined restriction
only replaces the value of the same restriction, whereas adding new restriction
does not affect other previously defined restrictions. For example, if a minimum
length of stay for 2 days was previously defined and then a new message
containing only a maximum length of stay for 7 days was updated, then this
action wouldn't erase the previous minimum length of stay value.
Elements and Attributes
The OTA_HotelAvailNotifRQ
message has the following elements and attributes:
a-z
, A-Z
, 0-9
, _
(underscore),
and -
(dash).<POS>
is present. A container for the <RequestorID>
.<POS>
is present. Defines the partner
account.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.
<AvailStatusMessage>
elements.The number of remaining rooms that can be booked for the
date range in <StatusApplicationControl>
. If BookingLimit
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.
InvTypeCode
and rate plan
— RatePlanCode
.start
value.
If start
and end
are equal, the update applies
to that date.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
).
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
).
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
).
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
).
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
).
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
).
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
).
<RoomID>
in a Transactions
(Property Data)
message.<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.
<AvailStatusMessage>
includes the BookingLimit
attribute.FullPatternLOS
. Note:
This attribute must be set when using MinMaxMessageType="FullPatternLOS"
and absent otherwise.
<LengthOfStay>
element, each one must specify a
different MinMaxMessageType
value.<LengthOfStay
Time="0" MinMaxMessageType="SetMaxLOS">
means no maximum
length of stay. Note:
This attribute must be set unless using MinMaxMessageType="FullPatternLOS"
.
"Day"
if not provided. Valid
value is: -
Day
"Day"
unit is equal to 1 night stay.SetMaxLOS
, SetMinLOS
, and FullPatternLOS
are arrival
based. SetForwardMinStay
and SetForwardMaxStay
are stay-through based. Maximum values must be
greater than or equal to minimum values. Note:
Each type of length of stay restriction is
set independently. For example, a message that sets SetMaxLOS
doesn't overwrite a previously defined value
for SetForwardMaxStay
.
Note:
This element must be present when using MinMaxMessageType="FullPatternLOS"
and absent otherwise.
Y
and N
characters indicating
whether each length of stay is allowed, from one night to the value in FixedPatternLength
. Any length of stay greater than FixedPatternLength
inherits the value at the final position. For
example, with FixedPatternLength="4"
and FullPatternLOS="YNYN"
, only lengths of stay 1 and 3 are allowed.<AvailStatusMessage>
includes the BookingLimit
attribute.Restriction
attribute is open or closed. Valid values
are: -
Open
-
Close
Open
and Close
values are compatible with
all values of <Restriction>
element. When Open
and Close
values are used with the Arrival
and Departure
values, they restrict specific dates in the
itinerary for check-in and check-out respectively.
Open
and Close
with Arrival
:
This combination specifies which dates in the itinerary are available
for check-inOpen
and Close
with Departure
:
This combination specifies which dates in the itinerary are available
for check-outThe Arrival
date doesn't restrict the
availability for the nights of stay after the check-in date.
For example, for a stay from April 1st-4th where April 2nd-4th is closed to arrival is still bookable.
Note:
- By default, Google assumes that the
Master
setting for all products isClose
. You can configure this through your "Default availability" in Hotel Center pricing settings . The "Closed" value in Hotel Center corresponds to theClose
value here. - Setting
Master
toClose
is known as a "stop sell".
This attribute is required if Status
is provided.
Valid values are:
-
Arrival:
This value prevents itineraries with a check-in date during theStart
andEnd
date range, inclusive. -
Departure:
This value prevents itineraries with a check-out date during theStart
andEnd
date range, inclusive. -
Master:
This value indicates whether the room rate is available for booking on the date.
Both Arrival
and Departure
are required to
have open availability for the given itinerary. The default value for
both Arrival
and Departure
is Open
, unless a previous message has been sent
indicating that it was closed. Additionally, the room/package
combination must be available for all dates of the itinerary,
excluding the last day of the stay. This availability can be set by
either the default settings in Hotel Center or through the <Status>
or <Restriction> element. If the default setting is Close
, you must send a Status
value
of Open
and a restriction
value of Master
for the relevant dates to re-open availability
for the itinerary dates.
For example, for a three-night stay with an arrival date of
April 1st, the full itinerary is April 1st-4th. The Status
value should be set to Open
and the Restriction
value should be set to Master
for the nightly stay from
April 1st-3rd. The last day of the stay (April 4th) is closed, since
only the nightly stay dates require an Open
status.
Note:
If the Restriction
isn't
specified then the default value is Master
.
Valid value types are:
-
Integer:
The number of days before the arrival date. For example, a value of1
indicates the room rate must be booked at least one day before the arrival date. A value of0
(the default value) indicates no restriction on the latest booking time. -
ISO 8601 Duration (days, hours, and minutes):
The number of days (and optionally hours/minutes) before the arrival date. For example, a value ofP1D
indicates the room rate must be booked one day before the arrival date. A value ofP0DT6H
indicates that booking must occur six hours before the end of the arrival date (i.e. 18:00) or earlier.
Valid value types are:
-
Integer:
The number of days before the arrival date. For example, a value of30
indicates the room rate cannot be booked earlier than 30 days before the arrival date. A value of0
(the default value) indicates no restriction on the earliest booking time. -
ISO 8601 Duration (days, hours, and minutes):
The number of days (and optionally hours/mintes) before the arrival date. For example, a value ofP30D
indicates the room rate cannot be booked earlier than 30 days before the arrival date. A value ofP30DT6H
indicates that booking cannot occur earlier than 18:00, 30 days before the arrival date.
Examples
LoS arrival date
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<LengthsOfStay>
<LengthOfStay
Time="5"
MinMaxMessageType="SetMaxLOS"/>
<LengthOfStay
Time="2"
MinMaxMessageType="SetMinLOS"/>
</LengthsOfStay>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
LoS duration
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<LengthsOfStay>
<LengthOfStay
Time="5"
MinMaxMessageType="SetForwardMaxStay"/>
<LengthOfStay
Time="2"
MinMaxMessageType="SetForwardMinStay"/>
</LengthsOfStay>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Remove LoS restrictions
Setting Time="0" on <LengthOfStay>
indicates that there are no
restrictions for the specified length of stay. For example, <LengthOfStay Time="0" MinMaxMessageType="SetMaxLOS"/>
means there is no
maximum length of stay restriction.
<?xml
version="1.0"
encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2024-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2024-07-26"
End="2024-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<LengthsOfStay>
<LengthOfStay
Time="0"
MinMaxMessageType="SetMaxLOS"/>
</LengthsOfStay>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Departure restriction
Set a closed-to-departure restriction. (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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Close"
Restriction="Departure"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Arrival Restriction
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Close"
Restriction="Arrival"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Open availability dates
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Open"
Restriction="Master"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Close availability dates
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Close"
Restriction="Master"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Advance booking restrictions
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-01-01"
End="2023-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>
Cutoff booking
Apply a cutoff for booking on the arrival date at 18:00 in the hotel's local time.
<?xml
version="1.0"
encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-01-01"
End="2023-06-30"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
MinAdvancedBookingOffset="P0DT6H0M"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Multiple restrictions
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="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Open"
Restriction="Master"/>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Close"
Restriction="Arrival"/>
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<RestrictionStatus
Status="Close"
Restriction="Departure"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
Booking limit
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="2023-07-21T20: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="2023-07-26"
End="2023-07-31"
InvTypeCode="RoomID_1"/>
</AvailStatusMessage>
</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
FullPatternLoS
Set a full pattern length-of-stay restriction.
For a check-in on July 26, 2023, only lengths-of-stay of 2, 4, and 6 are allowed. Lengths of stay 1, 3, 5, and 7+ are unavailable.
<?xml
version="1.0"
encoding="UTF-8"?>
<OTA_HotelAvailNotifRQ
xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2023-07-21T20:50:37-05:00"
Version="3.0">
<AvailStatusMessages
HotelCode="Property_1">
<AvailStatusMessage>
<StatusApplicationControl
Start="2023-07-26"
End="2023-07-26"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<LengthsOfStay
FixedPatternLength="7">
<LengthOfStay
MinMaxMessageType="FullPatternLOS">
<LOS_Pattern
FullPatternLOS="NYNYNYN"/>
</LengthOfStay>
</LengthsOfStay>
</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 and 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 |
OTA_HotelAvailNotifRS / Errors
|
0..1 | Errors | A container for one or more issues encountered while processing the OTA_HotelAvailNotifRQ
message. Either |
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="2023-07-21T20: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="2023-07-21T20:50:37-05:00"
Version="3.0">
<Errors>
<Error
Type="12"
Code="450"
Status="NotProcessed"
ShortText="8001">Example</Error>
</Errors>
</OTA_HotelAvailNotifRS>