Skip to main content

Availability Retrieval

The HotelAvailRetrieve request message is sent to retrieve a complete breakdown of availability, including details about the Hotels, Rate Plans, and Rooms.

HotelAvailRetrieve Request​

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns1="http://www.opentravel.org/OTA/2003/05">
<s:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</s:Header>
<s:Body>
<ns:HotelAvailRetrieve>
<ns:request PrimaryLangID="EN">
<ns1:POS>
<ns1:Source>
<ns1:RequestorID ID="Seller Code"/>
<ns1:BookingChannel>
<ns1:CompanyName Code="Buyer Code"/>
</ns1:BookingChannel>
<ns1:TPA_Extensions>
<ns1:Param key = "onlyActive" value = "0"/>
</ns1:TPA_Extensions>
</ns1:Source>
</ns1:POS>
<ns1:HotelAvailRequests>
<ns1:HotelAvailRequest>
<ns1:DateRange Start="2023-12-01" End="2023-12-31"/>
<ns1:RatePlanCandidates>
<ns1:RatePlanCandidate RatePlanCode="BAR" PromotionCode="" />
</ns1:RatePlanCandidates>
<ns1:HotelRef HotelCode="2"/>
</ns1:HotelAvailRequest>
</ns1:HotelAvailRequests>
</ns:request>
</ns:HotelAvailRetrieve>
</s:Body>
</s:Envelope>

Request Data Breakdown​

note

During the onboarding process, your username and password will be provided. After each connection is established, you'll receive an email with RequestorID (Seller Code) and CompanyName (Buyer Code) values.

ElementRelTypeDescription
HotelAvailRetrieve1
HotelAvailRetrieve/request1
request/POS1
POS/Source1
Source/TPA_Extensions0..1Optional, if empty only active inventory will be received
TPA_Extensions/Params0..1
Params/Param0..N
@key1StringonlyActive
@value1String1 - You will receive all active inventory data. 0 - Active and deactivated inventory will be received. (Same case as without TPA_Extensions node.)
HotelAvailRequests
HotelAvailRequests/HotelAvailRequest1
HotelAvailRequest/DateRange
@Start1DateStart date to search rates.
@End1DateEnd date to search rates.
HotelAvailRequest/HotelRef1
@HotelCode1StringHotel date to search rates.
HotelAvailRequest/RatePlanCandidates0..1If exists, contains rate filter.
RatePlanCandidates/RatePlanCandidate1..n
@RatePlanCode1StringRate Plan Code to search rates.

HotelAvailRetrieve Response​

After each request, Travelgate will process the data and provide you with a response. Upon receiving a HotelRatePlanRetrieve request, Travelgate will send you a corresponding HotelRatePlanRetrieve response.

The response options include either success or an error. In the event of success, Travelgate will provide you a response in which retrieves a breakdown of availability, including details about the Hotel, Rate Plans, and Rooms.

Success​

<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">
<u:Timestamp u:Id="_0">
<u:Created>2023-11-22T11:11:00.838Z</u:Created>
<u:Expires>2023-11-22T11:16:00.838Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<HotelAvailRetrieveResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelAvailRetrieveResult>
<Success xmlns="http://www.opentravel.org/OTA/2003/05"/>
<AvailStatusMessages HotelCode="2" xmlns="http://www.opentravel.org/OTA/2003/05">
<AvailStatusMessage>
<StatusApplicationControl Start="2023-12-01" End="2023-12-31" RatePlanCode="BARDEV" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true"/>
<RestrictionStatus Status="Open"/>
</AvailStatusMessage>
<AvailStatusMessage BookingLimit="14" BookingSold="0">
<StatusApplicationControl Start="2023-12-20" End="2023-12-22" RatePlanCode="BAR" InvCode="STD3" InvType="ROOM" Mon="false" Tue="false" Weds="true" Thur="true" Fri="true" Sat="false" Sun="false"/>
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="MinLOS"/>
<LengthOfStay Time="28" TimeUnit="Day" MinMaxMessageType="MaxLOS"/>
</LengthsOfStay>
<RestrictionStatus Status="Open" SellThroughOpenIndicator="false" MaxAdvancedBookingOffset="2" MinAdvancedBookingOffset="1"/>
</AvailStatusMessage>
</AvailStatusMessages>
</HotelAvailRetrieveResult>
</HotelAvailRetrieveResponse>
</s:Body>
</s:Envelope>

Success Response Data Breakdown​

ElementRelTypeDescription
HotelAvailRetrieveResult1
HotelAvailRetrieveResult/Success1
HotelAvailRetrieveResult/AvailStatusMessages1
@HotelCode1StringHotel code
AvailStatusMessages/AvailStatusMessage1..n
@BookingLimit0..1IntegerThe number of rooms available per Room-RatePlan for the specified dates. This field is exclusively used for Derived Rates.
@BookingSold0..1IntegerThe number of rooms booked per Room-RatePlan for the specified dates. The available allotment is calculated as the difference between @BookingLimit and @BookingSold. This field is exclusively used for Derived Rates
AvailStatusMessage/StatusApplicationControl1
@Start1DateStart date
@End1DateEnd date
@RatePlanCode1String
@InvCode0..1StringRoom code. This field is exclusively used for Basic Rates.
@InvType0..1StringROOM. This field is exclusively used for Basic Rates.
@PromotionCode0..1StringOfferCode. This field is exclusively used for Offers.
@Mon0..1BooleanIf true or attribute is not present, there is availability on Monday.
@Tue0..1BooleanIf true or attribute is not present, there is availability on Tuesday.
@Weds0..1BooleanIf true or attribute is not present, there is availability on Wednesday.
@Thur0..1BooleanIf true or attribute is not present, there is availability on Thursday.
@Fri0..1BooleanIf true or attribute is not present, there is availability on Friday.
@Sat0..1BooleanIf true or attribute is not present, there is availability on Saturday.
@Sat0..1BooleanIf true or attribute is not present, there is availability on Sunday.
AvailStatusMessage/LengthsOfStay0..1
@ArrivalDateBased0..1BooleanIf 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/LengthOfStay1..2
@Time1IntegerIndicates the number of @TimeUnit for this stay. When value is 0 or -1, condition should be deleted from the system.
@TimeUnit1StringDay
@MinMaxMessageType1StringMinLOS (minimum) or MaxLOS (maximum) @LenghtOfSaty.
AvailStatusMessage/RestrictionStatus0..1
@Status0..1StringOpen or Close
@Restriction0..1StringMaster, Arrival or Departure
@MinAdvancedBookingOffset0..1IntegerMinimum 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.
@MaxAdvancedBookingOffset0..1IntegerMaximum 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.
@SellThroughOpenIndicator0..1BooleanRoom-RatePlan can be sold with no limit if @Status is 'Open'. This field is exclusively used for Basic Rates.

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">
<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">
<u:Timestamp u:Id="_0">
<u:Created>2023-11-22T11:11:00.838Z</u:Created>
<u:Expires>2023-11-22T11:16:00.838Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<HotelAvailRetrieveResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelAvailRetrieveResult>
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error ShortText="Invalid hotel id" Code="10">The hotel id does not exist.</Error>
</Errors>
</HotelAvailRetrieveResult>
</HotelAvailRetrieveResponse>
</s:Body>
</s:Envelope>

Error Response Data Breakdown​

ElementRelTypeDescription
HotelAvailRetrieveResult1
HotelAvailRetrieveResult/Errors0..1
Errors/Error1
@Code1StringError code. TravelGate defines the standardized codes listed below; when the Seller's own system returns a code, it is forwarded as-is (so you may occasionally receive codes outside this list, e.g. 361).
@Type0..1StringOTA Error Warning Type (EWT) categorizing the error. Optional: it appears only when the responding system provides it (TravelGate-generated errors omit it).
@ShortText1StringShort, standardized label of the error.
Error (text)0..1StringDetailed, human-readable description of the error.
Error structure

When the Seller has implemented the Push API, its system returns the error following the OTA standard: @Code, an optional @Type, @ShortText and a descriptive body. When the Seller has not implemented it, TravelGate standardizes the response using the error codes below (without @Type). This is why you may occasionally receive a @Code outside the standardized list (e.g. 361), forwarded from the Seller's own system.

Error codes
Error CodeShortText
-1Unexpected error
1Invalid request
10Invalid hotel id
11Invalid dates
12Invalid rate plan code
13Invalid reservation id
14Invalid derived rate adjust values
15Invalid id
16Invalid amount type
17Invalid supplement type
18Invalid number of hotel
19Invalid rate currency code
20Requestor id not found
21Provider id not found
22Rooms not found
23Rates not found
30Occupation error
31Rate error
32Avail rq error
33Data Base error
37Authorization error
38Authentication error
90Connection time out