Skip to main content

Inventory

The HotelRatePlanInventoryNotif message contains information about the inventory setup that is followed by the structure: Hotel > Rate Plan > Room.

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 HotelRatePlanInventoryNotif requests to your system, and you will respond with either success or error.

HotelRatePlanInventoryNotif 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.

<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">
<HotelRatePlanInventoryNotif 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 Version="0">
<POS xmlns="http://www.opentravel.org/OTA/2003/05">
<Source>
<RequestorID ID="Seller Code" />
<BookingChannel>
<CompanyName Code="Buyer Code" />
</BookingChannel>
</Source>
</POS>
<RatePlans HotelStatusType="Active" HotelCode="2" xmlns="http://www.opentravel.org/OTA/2003/05">
<RatePlan Start="2023-11-08" End="2023-11-25" CurrencyCode="EUR" PromotionCode="25" RatePlanType="0" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanNotifType="Delta" RatePlanStatusType="Active" YieldableIndicator="false">
<BookingRules>
<BookingRule>
<CancelPenalties>
<CancelPenalty NonRefundable="false" />
<CancelPenalty Start="2023-10-09" End="2023-10-09">
<Deadline OffsetTimeUnit="Day" OffsetUnitMultiplier="2" OffsetDropTime="BeforeArrival" />
<AmountPercent Amount="10" />
</CancelPenalty>
</CancelPenalties>
<Viewerships>
<Viewership>
<LocationCodes LocationCodesInclusive="false">
<LocationCode CountryCode="ES" />
</LocationCodes>
</Viewership>
</Viewerships>
</BookingRule>
</BookingRules>
<Rates>
<Rate>
<AdditionalGuestAmounts>
<AdditionalGuestAmount AgeQualifyingCode="8" MaxAge="12" />
<AdditionalGuestAmount AgeQualifyingCode="7" MaxAge="2" />
</AdditionalGuestAmounts>
<PaymentPolicies>
<GuaranteePayment PaymentCode="DirectPayment">
<AcceptedPayments>
<AcceptedPayment>
<PaymentCard CardCode="VI">
<IsVCC>false</IsVCC>
</PaymentCard>
</AcceptedPayment>
<AcceptedPayment>
<PaymentCard CardCode="CA">
<IsVCC>false</IsVCC>
</PaymentCard>
</AcceptedPayment>
</AcceptedPayments>
</GuaranteePayment>
</PaymentPolicies>
<MealsIncluded MealPlanCodes="14" />
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="SNG" InvType="ROOM" InvNotifType="New" InvStatusType="Active" InvTypeCode="1234">
<GuestRoom>
<Quantities StandardNumBeds="2" />
<Occupancy MinOccupancy="2" MaxOccupancy="2" AgeQualifyingCode="10" />
<Room RoomTypeCode="SNG" />
<Description>
<Text>Single Room Test</Text>
</Description>
</GuestRoom>
</SellableProduct>
</SellableProducts>
<Commission Percent="20" />
<Description>
<Text>BAR</Text>
</Description>
<Taxes>
<Tax Percent="10" ChargeUnit="false" ChargeFrequency="false" Type="Inclusive">
<TaxDescription>
<Text>city</Text>
</TaxDescription>
</Tax>
</Taxes>
<AdditionalDetails>
<AdditionalDetail Code="hola" Type="39">
<DetailDescription>
<Text>hola</Text>
</DetailDescription>
</AdditionalDetail>
</AdditionalDetails>
</RatePlan>
</RatePlans>
</request>
</HotelRatePlanInventoryNotif>
</s:Body>
</s:Envelope>

Request Data Breakdown

ElementRelTypeDescription
HotelRatePlanInventoryNotif1
HotelRatePlanInventoryNotif/request1
request/RatePlans1
@HotelStatusType1StringActive or Deactivated
@HotelCode1StringHotel code
RatePlans/RatePlan0..n
@Start0..1DateThe start date when the product associated with the rate plan becomes available for booking.
@End0..1DateThe end date when booking for the product associated with the rate plan is no longer available.
@CurrencyCode0..1StringISO Currency. This field is exclusively used for Basic Rates.
@PromotionCode0..1String
Senior Rates Codes
Code Description
0 No promotion
25 Senior 55
26 Senior 60
27 Senior 65
If the attribute is not present or its value is 0, there is no promotion.
@RatePlanType0..1String
Rate Rule Codes
Code Description
0 No selected
7 Large Family
8 Public Servant
10 Negotiated
11 Package
34 Canary Resident
35 Balearic Resident
36 Honeymoon
If the attribute is not present and it is a Base Rate, the value is 0; if it is a Derived Rate, the value is the same as the Base Rate.
@RatePlanCode1StringRate code
@RateReturn0..1BooleanIf true, the base rate will be provided to the channel instead of the derived one.
@FreeChild1BooleanIndicates if childern are free with this rate plan.
@FreeBaby1BooleanIndicates if babies are free with this rate plan.
@RatePlanNotifType0..1StringNew, Delta or Remove
@RatePlanStatusType1StringActive or Deactivated
@YieldableIndicator0..1BooleanIf true or it's not returned, the product can be sold below the price. If false, the product cannot be sold below the price.
@BaseRatePlanCode0..1StringBase rate plan code. This field is exclusively used for Derivated Rates, so if this field appears, the @RatePlanCode will always be 'DERIVED'.
RatePlan/BookingRules0..1
BookingRules/BookingRule1..n
@Code0..1StringEmpty if there are viewerships conditions.
BookingRule/CancelPenalties1
CancelPenalties/CancelPenalty1..n
@NonRefundable1BooleanIndicates if a rate is non refundable (true) or refundable (false).
@Start0..1DateThe start date when the cancellation policies will come into effect.
@End0..1DateThe end date when the cancellation policies will cease to be in effect.
CancelPenalty/Deadline1
@OffsetTimeUnit1StringDay
@OffsetUnitMultiplier1IntegerNumber of days before check-in.
@OffsetDropTime1StringBeforeArrival
CancelPenalty/AmountPercent1Only one option will be returned (@NmbrOfNights, @Percent or @Amount).
@NmbrOfNights0..1IntegerNumber of nights that will be charged.
@Percent0..1DecimalThe percentage of the total amount that will be charged in the event of cancellation, in accordance with the current cancellation penalty.
@Amount0..1DecimalAmount that will be charged.
@CurrencyCode0..1StringISO Currency. If the @Amount tag is included, the @CurrencyCode must also be present.
BookingRule/Viewerships0..1
Viewerships/Viewership1..n
Viewership/LocationCodes1
@LocationCodesInclusive1BooleanCan or cannot be requested from this @CountryCode.
/LocationCode0..1If it is missing, applies to all @CountryCode.
@CountryCode1StringCountry ISO2 code.
RatePlan/Rates1
Rates/Rate1..n
Rate/AdditionalGuestAmounts1
AdditionalGuestAmounts/AdditionalGuestAmount1..2
@AgeQualifyingCode1Integer
Age Qualifying Codes
Code Description
7 Baby
8 Child
10 Adult
@MaxAge1IntegerMax age of the additional guest.
Rate/PaymentPolicies1
PaymentPolicies/GuaranteePayment1..n
@PaymentCode1Integer
Payment Type Codes
Code Description
MerchantPayment The customer pays the client and the client will pay the provider
DirectPayment The customer will have to use a credit card as guarantee for the hotel and the payment will be done by the customer at check-in
BookingDatePayment The client will use a credit card with the exact amount of the option so he can pay the provider/hotel. The provider will charge the payment on the reservation day
ArrivalDatePayment The client will use a credit card with the exact amount of the option so he can pay the provider/hotel, the provider will charge the payment on the checking day
GuaranteePayment/AcceptedPayments0..1Only present if @PaymentCode is not 'MerchantPayment'.
AcceptedPayments/AcceptedPayment1..n
AcceptedPayment/PaymentCard1..n
@CardCode1String
Credit Card codes
Code Name
VI Visa
AX American Express
BC BC Card
CA MasterCard
CB Carte Blanche
CU China Union Pay
DS Discover
DC Diners Club
T Carta Si
R Carte Bleue
N Dankort
L Delta
E Electron
JC Japan Credit Bureau
TO Maestro
S Switch
EC Electronic Cash
EU EuroCard
TP Universal air travel card
OP optima
ER Air Canada/RnRoute
XS access
O others
PaymentCard/IsVCC1BooleanIndicates if the card is a Virtual Credit Card.
Rate/MealsIncluded0..1
@MealPlanCodes1Integer
Meal Plan codes
Code Description
1 All inclusive
2 American
3 Bed & breakfast
4 Buffet breakfast
5 Caribbean breakfast
6 Continental breakfast
7 English breakfast
8 European plan
9 Family plan
10 Full board
11 Full breakfast
12 Half board/modified American plan
13 As brochured
14 Room only
15 Self catering
16 Bermuda
17 Dinner bed and breakfast plan
18 Family American
19 Breakfast
20 Modified
255 Full board And Drinks
256 Half board And Drinks
257 All inclusive Premium
258 Gala Dinner
259 All Inclusive Light
260 Bed and breakfast + Half board
261 All Inclusive Limited
262 Bed and Brunch
RatePlan/SellableProducts0..1Room list. If no rooms are listed and it's a derived rate, it will apply to all rooms; otherwise, it will only apply to the listed rooms.
SellableProducts/SellableProduct0..n
@InvCode1StringRoom code
@InvType1StringROOM
@InvNotifType0..1StringNew, Delta or Remove
@InvStatusType1StringActive or Deactivated
@InvTypeCode0..1StringExternal information about the room (own code, own description, etc.).
SellableProduct/GuestRoom1..n
GuestRoom/Quantities1
@StandardNumBeds1IntegerStandard occupation of the room.
GuestRoom/Occupancy1
@MinOccupancy1IntegerMinimum occupancy
@MaxOccupancy1IntegerMaximum occupancy
@AgeQualifyingCode1Integer
Age Qualifying Codes
Code Description
7 Baby
8 Child
10 Adult
GuestRoom/Room1
@RoomTypeCode1StringRoom code
GuestRoom/Description0..1
Description/Text1StringRoom description
RatePlan/Commission0..1
@Percent1DecimalCommission percentage applied.
RatePlan/Description0..1
Description/Text1StringRate description
RatePlan/Taxes0..1
Taxes/Tax1..n
@Amount/Percent1DecimalTax will be applied relative to an amount or a percentage.
@ChargeUnit0..1BooleanTax is applied or not based on the amount of paxes booked.
@ChargeFrequency0..1BooleanTax is applied or not based on the number of nights booked.
@Type0..1StringIf Inclusive is indicated, it means that tax must be added to the final price. If the type is different from Inclusive or is not present, the tax is for informational purposes only.
Tax/TaxDescription1
TaxDescription/Text1StringTax description, tax type.
RatePlan/AdditionalDetails0..1
AdditionalDetails/AdditionalDetail0..n
@Code1StringClient code for whom the rate is offered.
@Type1StringContract/negotiated booking information, allowed only for 39.
AdditionalDetail/DetailDescription1
DetailDescription/Text1StringIf the additional details type is 39, the name of the client for whom the rate is offered will be sent as text.
RatePlan/Offers0..1
Offers/Offer1..n
@OfferCode1StringOffer code
@OfferStatusType1StringActive or Deactivated
@OfferNotifType0..1StringNew, Delta or Remove
Offer/OfferRules1
OfferRules/OfferRule1
OfferRule/DOW_Restrictions1
DOW_Restrictions/AvailableDaysOfWeek1
@Mon1BooleanIf true the offer data applies on Monday.
@Tue1BooleanIf true the offer data applies on Tuesday.
@Weds1BooleanIf true the offer data applies on Wednesday.
@Thur1BooleanIf true the offer data applies on Thursday.
@Fri1BooleanIf true the offer data applies on Friday.
@Sat1BooleanIf true the offer data applies on Saturday.
@Sun1BooleanIf true the offer data applies on Sunday.
OfferRule/Inventories0..1If no Inventories are sent, the offer will apply to all the rooms in the rate.
Intentories/Inventory1..n
@InvCode1StringRoom code to which the offer will apply.
OfferRule/LengthsOfStay1
LengthsOfStay/LengthOfStay1..2
@Time1IntegerIt indicates the number of nights for this stay.
@MinMaxMessageType1StringMinLOS (minimum) or MaxLOS (maximum) @LenghtOfStay for the @Offer.
Offer/Discount1
@NightsDiscounted1StringNights discounted by the offer from the total stay amount.
@DiscountPattern1StringFirst, Last or Cheapest. Booking night(s) the offer will dicount.
Offer/OfferDescription0..1
OfferDescription/Text1StringOffer description
request/TPA_Extensions0..1Only added when a FullCopy or when creating, modifying or deleting a hotel.
TPA_Extensions/Attribute1
@key1StringHotelNotifType
@value1StringFullCopy, New, Delta or Remove

More Request Examples

Download the following requests to explore all possible scenarios of information that may come your way.

sftp.xmltravelgate.com

HotelRatePlanInventoryNotif Response

After each request, a response should be provided from yours side. If a HotelRatePlanInventoryNotif request is received, a corresponding HotelRatePlanInventoryNotif response should be sent. There are two response options, success or error.

caution

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.

<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>
<HotelRatePlanInventoryNotifResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelRatePlanInventoryNotifResult Version="0" TransactionIdentifier="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<Success xmlns="http://www.opentravel.org/OTA/2003/05" />
</HotelRatePlanInventoryNotifResult>
</HotelRatePlanInventoryNotifResponse>
</s:Body>
</s:Envelope>

Response Data Breakdown

ElementRelTypeDescription
HotelRatePlanInventoryNotifResult1
@Version1String0
@TransactionIdentifier1StringTransaction Identifier
HotelRatePlanInventoryNotifResult/Success0..1If SUCESS
HotelRatePlanInventoryNotifResult/Errors0..1If ERROR
Errors/Error1
@ShortText1String
Error Codes and Description
Error Code Error Description
-1 Validation error
1 POS credentials not found
2 HotelCode or RatePlanList not found
3 Rates not found
4 Incomplete Rate values
6 Incomplete AvailStatusMessage StatusApplicationControl Values
7 Incomplete AdditionalGuestAmount values
8 SellableProduct not found
9 Room not found in SellableProduct
@Code1String
Error Codes and Description
Error Code Error Description
-1 Validation error
1 POS credentials not found
2 HotelCode or RatePlanList not found
3 Rates not found
4 Incomplete Rate values
6 Incomplete AvailStatusMessage StatusApplicationControl Values
7 Incomplete AdditionalGuestAmount values
8 SellableProduct not found
9 Room not found in SellableProduct
@Language1String
Language Codes
Code Language
en English
es Spanish
pt Portuguese
it Italian
fr French
de German
br Brazilian

Frequently Asked Questions

How do I know whether it is a Full Copy or a Delta?
Full Copy will transmit significantly more information than a simple Delta. Additionally, it will be indicated in the attribute value as "FullCopy" or "Delta."
What does New, Delta and Remove mean?
Rates can be created, deleted or modified. "New" means a newly added rate, "Delta" is for a changed rate, and "Removed" is used when a rate is deleted.
How can I determine if a rate is a Derived Rate?

To find out if a rate is derived, you should check if the BaseRatePlanCode element is present in the RatePlan node. If it is, then it is a derived rate, which will also be indicated in the Description node.

Go to the Requests section and select Derived RatePlan; you will see that both nodes are underscored.

What happens if a rate is deleted, does Travelgate inform us of this in the Full Copy?
Not in the Full Copy. If a rate is deleted and you run a Full Copy, you'll only receive the currently loaded information. Notification about the removed rate will come through a Delta after its deletion.
In an offer (or derived rate) what does it signify if no rooms are specified or mentioned?

If no rooms are specified in an offer or derived rate, it indicates that the offer or derived rate applies to all rooms.

What does CancelPenalty Start and End dates represent?
The Start and End dates indicate the period during which the cancellation policies will be in effect. Both the start and end days are included in the cancellation policy range.
Can the RatePlanStatusType be set to Deactivated for specific periods?
The RatePlanStatusType set to Deactivated is utilized to deactivate a rate, with the option for either an indefinite deactivation or a specified timeframe. If choosing the latter, you'll need to define the date range (start and end) to signify the specific duration for deactivating the rate.
Why do I only see one meal plan in HotelRatePlanInventoryNotif, and not the different meal plans associated with that rate plan?
Rate plans have only one meal plan associated with them. In the event that additional meal plan options are desired to add for the same rate plan, they are included as supplements to this rate plan, and therefore, they are not part of the core inventory structure, you will find them in RatePlanNotif.