Availability
The HotelAvailNotif
message contains information about rate availability and allotment conditions. No rate information will be returned except code.
As explained before, Channel-X extracts the product loaded between the Buyer (inventory) and the Channel Managers (availability and rates) into our Inventory tool and sends it to the Buyer's system, to your system. So, in this case, Travelgate will send HotelAvailNotif
requests to your system, and you will respond with either success or error.
HotelAvailNotif Requestβ
In the following examples, you will observe the requests that Travelgate will send you. All the examples presented here are Deltas (smaller product requests).
If you want to explore all possible scenarios of information that may come your way, head over to More Request Examples section; there you will find Full Copy (full product details requests) examples.
- Availability
- Derived RatePlan
- Offers
<s:Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<o:UsernameToken u:Id = "uuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-x">
<o:Username>username</o:Username>
<o:Password Type = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<HotelAvailNotif xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<request>
<POS xmlns="http://www.opentravel.org/OTA/2003/05">
<Source>
<RequestorID ID="Seller Code" />
<BookingChannel>
<CompanyName Code="Buyer Code" />
</BookingChannel>
</Source>
</POS>
<AvailStatusMessages HotelCode="2" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessage BookingLimit="100" BookingSold="4">
<StatusApplicationControl Start="2023-11-10" End="2023-11-14" RatePlanCode="BAR" InvCode="SNG" InvType="ROOM" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
<AvailStatusMessage BookingLimit="100">
<StatusApplicationControl Start="2023-11-22" End="2023-11-24" RatePlanCode="BAR" InvCode="SNG" InvType="ROOM" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="5" TimeUnit="Day" MinMaxMessageType="MinLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
<AvailStatusMessage BookingLimit="100">
<StatusApplicationControl Start="2023-11-22" End="2023-11-24" RatePlanCode="BAR" InvCode="SNG" InvType="ROOM" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="5" TimeUnit="Day" MinMaxMessageType="MinLOS" />
</LengthsOfStay>
<RestrictionStatus Restriction="Arrival" Status="Close" />
</AvailStatusMessage>
<AvailStatusMessage BookingLimit="100">
<StatusApplicationControl Start="2023-11-27" End="2023-11-28" RatePlanCode="BAR" InvCode="SNG" InvType="ROOM" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus Restriction="Departure" Status="Close" />
</AvailStatusMessage>
<AvailStatusMessage BookingLimit="20">
<StatusApplicationControl Start="2024-01-07" End="2024-01-31" RatePlanCode="BAR" InvCode="SNG" InvType="ROOM" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<RestrictionStatus MaxAdvancedBookingOffset="5" MinAdvancedBookingOffset="3" />
</AvailStatusMessage>
</AvailStatusMessages>
</request>
</HotelAvailNotif>
</s:Body>
</s:Envelope>
<s:Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<o:UsernameToken u:Id = "uuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-x">
<o:Username>username</o:Username>
<o:Password Type = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<HotelAvailNotif xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<request>
<POS xmlns="http://www.opentravel.org/OTA/2003/05">
<Source>
<RequestorID ID="PTEST" />
<BookingChannel>
<CompanyName Code="CTEST" />
</BookingChannel>
</Source>
</POS>
<AvailStatusMessages HotelCode="2" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessage>
<StatusApplicationControl Start="2023-11-08" End="2023-11-08" RatePlanCode="BDER" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="true">
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
<AvailStatusMessage>
<StatusApplicationControl Start="2023-11-08" End="2023-11-08" RatePlanCode="BDER" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" />
<LengthsOfStay ArrivalDateBased="true">
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="2" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
</AvailStatusMessages>
</request>
</HotelAvailNotif>
</s:Body>
</s:Envelope>
<s:Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:u = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand = "1" xmlns:o = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<o:UsernameToken u:Id = "uuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-x">
<o:Username>username</o:Username>
<o:Password Type = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<HotelAvailNotif xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<request>
<POS xmlns="http://www.opentravel.org/OTA/2003/05">
<Source>
<RequestorID ID="Seller Code" />
<BookingChannel>
<CompanyName Code="Buyer Code" />
</BookingChannel>
</Source>
</POS>
<AvailStatusMessages HotelCode="2" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessage >
<StatusApplicationControl Start="2023-11-10" End="2023-11-14" RatePlanCode="PCK" PromotionCode="OFFER" Mon="true" Tue="true" Weds="true" Thur="true" Fri="false" Sat="false" Sun="false" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="3" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="4" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
<AvailStatusMessage >
<StatusApplicationControl Start="2023-11-22" End="2023-11-24" RatePlanCode="PCK" PromotionCode="OFFER" Mon="true" Tue="true" Weds="true" Thur="true" Fri="false" Sat="false" Sun="false" />
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="4" TimeUnit="Day" MinMaxMessageType="MinLOS" />
<LengthOfStay Time="5" TimeUnit="Day" MinMaxMessageType="MaxLOS" />
</LengthsOfStay>
<RestrictionStatus />
</AvailStatusMessage>
</AvailStatusMessages>
</request>
</HotelAvailNotif>
</s:Body>
</s:Envelope>
Request Data Breakdownβ
Element | Rel | Type | Description |
---|---|---|---|
HotelAvailNotif | 1 | ||
HotelAvailNotif/request | 1 | ||
request/AvailStatusMessages | 1 | ||
@HotelCode | 1 | String | Hotel code |
AvailStatusMessages/AvailStatusMessage | 1..n | ||
@BookingLimit | 0..1 | Integer | The number of rooms available per Room-RatePlan for the specified dates. In the case of Derivated Rates this element will not be returned. |
@BookingSold | 0..1 | Integer | The number of rooms booked per Room-RatePlan for the specified dates. The available allotment is calculated as the difference between @BookingLimit and @BookingSold. |
AvailStatusMessage/StatusApplicationControl | 1 | ||
@Start | 1 | Date | Start date |
@End | 1 | Date | End date |
@RatePlanCode | 1 | String | |
@InvCode | 0..1 | String | Room code. This field is exclusively used for Basic Rates. |
@InvType | 0..1 | String | ROOM . This field is exclusively used for Basic Rates. |
@PromotionCode | 0..1 | String | OfferCode . This field is exclusively used for Offers. |
@Mon | 0..1 | Boolean | If true or attribute is not present, there is availability on Monday. |
@Tue | 0..1 | Boolean | If true or attribute is not present, there is availability on Tuesday. |
@Weds | 0..1 | Boolean | If true or attribute is not present, there is availability on Wednesday. |
@Thur | 0..1 | Boolean | If true or attribute is not present, there is availability on Thurday. |
@Fri | 0..1 | Boolean | If true or attribute is not present, there is availability on Friday. |
@Sat | 0..1 | Boolean | If true or attribute is not present, there is availability on Saturday. |
@Sat | 0..1 | Boolean | If true or attribute is not present, there is availability on Sunday. |
AvailStatusMessage/LengthsOfStay | 0..1 | ||
@ArrivalDateBased | 0..1 | Boolean | If true, the Minimum and Maximum Stay is checked ONLY the first day of the availability. If false or null, the Minimum and Maximum Stay is checked all the availability days. If both values are needed, two @AvailStatusMessage will be sent. |
LengthsOfStay/LengthOfStay | 1..2 | ||
@Time | 1 | Integer | Indicates the number of @TimeUnit for this stay. When value is 0 or -1, condition should be deleted from the system. |
@TimeUnit | 1 | String | Day |
@MinMaxMessageType | 1 | String | MinLOS (minimum) or MaxLOS (maximum) @LenghtOfSaty. |
AvailStatusMessage/RestrictionStatus | 0..1 | ||
@Restriction | 0..1 | String | Master , Arrival or Departure |
@Status | 0..1 | String | Open or Close |
@MinAdvancedBookingOffset | 0..1 | Integer | Minimum number of days before the check-in date to be available to be booked. This restriction is usually used to offer discounts on early bookings. When value is 0 or -1, condition should be deleted from the system. |
@MaxAdvancedBookingOffset | 0..1 | Integer | Maximum number of days before the check-in date to be available to be booked. This restriction is usually used to offer last minute discounts on unsold inventory. When value is -1, condition should be deleted from the system. |
@SellThroughOpenIndicator | 0..1 | Boolean | Room-RatePlan can be sold with no limit if @Status is 'Open'. This field is exclusively used for Basic Rates. |
More Request Examplesβ
Download the following requests to explore all possible scenarios of information that may come your way.
πFull Copy example 1
πFull Copy example 2
πFull Copy example 3
πFull Copy example 4
πFull Copy example 5
πDerived Rate
πOffer
HotelAvailNotif Responseβ
After each request, a response should be provided from your side. If a HotelAvailNotif
request is received, a corresponding HotelAvailNotif
response should be sent. There are two response options, success or error.
Our system has a timeout of 5000ms. If no response occurs within this timeframe, we won't attempt to resend the request. It is recommended that your system processes our requests with an average handling time of 100ms.
- Success
- Error
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:U="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<s:Header>
<wsse:Security>
<U:Timestamp>
<U:Created>2023-11-10T11:16:19.206</U:Created>
<U:Expires>2023-11-10T11:46:19.206</U:Expires>
</U:Timestamp>
</wsse:Security>
</s:Header>
<s:Body>
<HotelAvailNotifResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelAvailNotifResult Version="0" TransactionIdentifier="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<Success xmlns="http://www.opentravel.org/OTA/2003/05" />
</HotelAvailNotifResult>
</HotelAvailNotifResponse>
</s:Body>
</s:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:U="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<s:Header>
<wsse:Security>
<U:Timestamp>
<U:Created>2023-11-10T11:15:37.445</U:Created>
<U:Expires>2023-11-10T11:45:37.445</U:Expires>
</U:Timestamp>
</wsse:Security>
</s:Header>
<s:Body>
<HotelAvailNotifResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelAvailNotifResult Version="0" TransactionIdentifier="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error ShortText="Validation error" Code="-1" Language="en"/>
</Errors>
</HotelAvailNotifResult>
</HotelAvailNotifResponse>
</s:Body>
</s:Envelope>
Response Data Breakdownβ
Element | Rel | Type | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HotelAvailNotifResult | 1 | ||||||||||||||||||||||
@Version | 1 | String | 0 | ||||||||||||||||||||
@TransactionIdentifier | 1 | String | Transaction Identifier | ||||||||||||||||||||
HotelAvailNotifResult/Success | 0..1 | If SUCCESS | |||||||||||||||||||||
HotelAvailNotifResult/Errors | 0..1 | If ERROR | |||||||||||||||||||||
Errors/Error | 1 | ||||||||||||||||||||||
@ShortText | 1 | String | Error Codes and Description
| ||||||||||||||||||||
@Code | 1 | String | Error Codes and Description
| ||||||||||||||||||||
@Language | 1 | String | Language Codes
|
Frequently Asked Questionsβ
What does LengthsOfStay ArrivalDateBased mean? Whatβs different between the true and false values?
- If ArrivalDateBase is set to true, it checks whether the Min and Max LengthsOfStay conditions are met on the check-in day.
- If ArrivalDateBase is set to false, it checks if the Min and Max LengthsOfStay conditions are met for all the days you are requesting, meaning it ensures that these conditions are met for each of the days of your stay.
Is there a default maximum nights restriction (e.g., max 30 days) in Travelgate if the HotelAvailNotif does not include maximum LengthOfStay (LOS) information?
What does ArrivalClose, DepartureClose and Master mean?
- ArrivalClose: When it's open, you can check in on that day. If it's close, you can still stay but can't check in on that day.
- DepartureClose: When it's open, you can check out on that day. If it's close, you can still stay but can't check out on that day.
- Master: If the master is closed, there's no availability for that day, and you can't check in, check out, or stay.