Rate Push
The HotelRatePlanNotif
request message pushes rate plans for the inventory that has been previously setup.
HotelRatePlanNotif Request
In the following examples, you will see the requests that you need to send in order to Push Rate Plans.
Note that our system works with up to 3 types of prices: per room, per standard occupancy, and per occupancy. To learn how to calculate the price for each case, go to Price Use Cases.
- Price per Room
- Price per Standard Occupancy
- Price per Occupancy
<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:HotelRatePlanNotif>
<ns:request>
<ns1:POS>
<ns1:Source>
<ns1:RequestorID ID="Seller Code"/>
<ns1:BookingChannel>
<ns1:CompanyName Code="Buyer Code"/>
</ns1:BookingChannel>
</ns1:Source>
</ns1:POS>
<ns1:RatePlans HotelCode="2">
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-01-01" End="2024-01-01">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100" Type="25" />
</BaseByGuestAmts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="SNG" InvType="ROOM" />
</SellableProducts>
</RatePlan>
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-01-02" End="2024-01-02">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100" Type="25" />
</BaseByGuestAmts>
</Rate>
</Rates>
<Supplements>
<Supplement AgeQualifyingCode="10" Amount="10" Start="2024-01-02" End="2024-01-02" SupplementType="Board" InvCode="19" />
<Supplement AgeQualifyingCode="8" Amount="5" Start="2024-01-02" End="2024-01-02" SupplementType="Board" InvCode="19" />
<Supplement AgeQualifyingCode="7" Amount="0" Start="2024-01-02" End="2024-01-02" SupplementType="Board" InvCode="19" />
</Supplements>
<SellableProducts>
<SellableProduct InvCode="SNG" InvType="ROOM" />
</SellableProducts>
</RatePlan>
</RatePlans>
</request>
</HotelRatePlanNotif>
</s:Body>
</s:Envelope>
<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:HotelRatePlanNotif>
<ns:request>
<ns1:POS>
<ns1:Source>
<ns1:RequestorID ID="Seller Code"/>
<ns1:BookingChannel>
<ns1:CompanyName Code="Buyer Code"/>
</ns1:BookingChannel>
</ns1:Source>
</ns1:POS>
<ns1:RatePlans HotelCode="2">
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-02-01" End="2024-02-01">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="45" NumberOfGuests="1" />
<BaseByGuestAmt AmountAfterTax="50" NumberOfGuests="2" />
</BaseByGuestAmts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="DRT1" InvType="ROOM" />
</SellableProducts>
</RatePlan>
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-02-02" End="2024-02-02">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="50" NumberOfGuests="2" />
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests="1" AgeQualifyingCode="10" Type="Exclusive" Amount="30" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="DRT1" InvType="ROOM" />
</SellableProducts>
</RatePlan>
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-02-03" End="2024-02-03">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="50" NumberOfGuests="2" />
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests="1" AgeQualifyingCode="10" Type="Exclusive" Amount="30" />
<AdditionalGuestAmount MaxAdditionalGuests="2" AgeQualifyingCode="10" Type="Exclusive" Amount="-10" />
</AdditionalGuestAmounts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="DRT1" InvType="ROOM" />
</SellableProducts>
</RatePlan>
</RatePlans>
</request>
</HotelRatePlanNotif>
</s:Body>
</s:Envelope>
<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:HotelRatePlanNotif>
<ns:request>
<ns1:POS>
<ns1:Source>
<ns1:RequestorID ID="Seller Code"/>
<ns1:BookingChannel>
<ns1:CompanyName Code="Buyer Code"/>
</ns1:BookingChannel>
</ns1:Source>
</ns1:POS>
<ns1:RatePlans HotelCode="2">
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-02-18" End="2024-02-18">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="20" Type="14" Code="1-0-0" />
<BaseByGuestAmt AmountAfterTax="30" Type="14" Code="1-1-1" />
<BaseByGuestAmt AmountAfterTax="50" Type="14" Code="2-0-0" />
<BaseByGuestAmt AmountAfterTax="75" Type="14" Code="2-0-1" />
<BaseByGuestAmt AmountAfterTax="90" Type="14" Code="3-0-0" />
</BaseByGuestAmts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="AMIGO ROOM" InvType="ROOM" />
</SellableProducts>
</RatePlan>
<RatePlan CurrencyCode="EUR" RatePlanCode="BAR" RateReturn="false" FreeChild="false" FreeBaby="false" RatePlanStatusType="Active">
<Rates>
<Rate Start="2024-02-21" End="2024-02-21">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="20" Type="14" Code="1-0-0" />
<BaseByGuestAmt AmountAfterTax="25" Type="14" Code="1-1-0" />
<BaseByGuestAmt AmountAfterTax="50" Type="14" Code="2-0-0" />
<BaseByGuestAmt AmountAfterTax="55" Type="14" Code="2-0-1" />
</BaseByGuestAmts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="AMIGO ROOM" InvType="ROOM" />
</SellableProducts>
</RatePlan>
</RatePlans>
</request>
</HotelRatePlanNotif>
</s:Body>
</s:Envelope>
Request Data Breakdown
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.
Element | Rel | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HotelRatePlanNotif | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HotelRatePlanNotif/request | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
request/RatePlans | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@HotelCode | 1 | String | Hotel code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RatePlans/RatePlan | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@RatePlanCode | 1 | String | Rate plan code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@FreeChild | 1 | Boolean | Indicates if childern are free with this rate plan. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@FreeBaby | 1 | Boolean | Indicates if babies are free with this rate plan. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@RatePlanStatusType | 0..1 | String | Active or Deactivated | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@BaseRatePlanCode | 0..1 | String | Rate code of the base rate plan. This field is exclusively used for Derivated rates. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@CurrencyCode | 0..1 | String | ISO Currency. This field is exclusively used for Basic Rates. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RatePlan/Rates | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rates/Rate | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Start | 1 | Date | Start date of the rate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@End | 1 | Date | End date of the rate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AdjustedPercentage | 0..1 | Decimal | The percentage that needs to be added to the base rate plan in order to calculate the price of the derived rate plan. This field is exclusively used for Derivated Rates. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AdjustedAmount | 0..1 | Decimal | The amount that needs to be added to the base rate plan in order to calculate the price of the derived rate plan. This field is exclusively used for Derivated Rates. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AdjustUpIndicator | 0..1 | Boolean | If true, the adjusted amount or percentage is added to the base rate plan's specified amount to calculate the derived rate amount. If false, the adjusted amount or percentage is subtracted from the base rate plan's specified amount to calculate the derived rate plan amount. This field is exclusively used for Derivated Rates. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rate/BaseByGuestAmts | 0..1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BaseByGuestAmts/BaseByGuestAmt | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AmountAfterTax | 1 | Decimal | Total amount for the @NumberOfGuests indicated per day. This amount doesn’t include tax. When value is -1, price should be deleted from the system. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@NumberOfGuests | 0..1 | Integer | PRICE PER PAX. The maximum @NumberOfGuests is the standard occupancy of the room. If @NumberOfGuests is not provided, then @Type must be specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Type | 0..1 | Integer | @Type 25 PRICE PER ROOM; @Type 14 PRICE PER OCCUPANCY (In the case of 14 , @Code is mandatory and AdditionalGuestAmounts are not allowed). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Code | 0..1 | String | Room scenario codes (adult-child-baby). Mandatory if @Type '14' PRICE PER OCCUPANCY. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rate/AdditionalGuestAmounts | 0..1 | This field is exclusively used for Basic Rates. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AdditionalGuestAmounts/AdditionalGuestAmount | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@MaxAdditionalGuests | 1 | Integer | Number of the additional pax. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AgeQualifyingCode | 1 | Integer | Age Qualifying Codes
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Type | 0..1 | String | Exclusive, if present price is absolute and price tag is @Amount | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Amount | 0..1 | Decimal | Price for each additional pax. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Percent | 0..1 | Decimal | Percent for each additional pax. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RatePlan/Supplements | 0..1 | Present if supplements by board exists. This field is exclusively used for Basic Rates. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Supplements/Supplement | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Start | 1 | Date | Start date of the supplement. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@End | 1 | Date | End date of the supplement. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@AgeQualifyingCode | 0..1 | Integer | Age Qualifying Codes
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@ChargeTypeCode | 0..1 | String | Occupancy supplement board. Only allowed if charging supplement board by occupancy. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Amount | 1 | Decimal | Amount of the supplement. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@SupplementType | 1 | String | Board | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@InvCode | 1 | String | Meal Plan codes
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RatePlan/SellableProducts | 0..1 | This field is exclusively used for Basic Rates. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SellableProducts/SellableProduct | 1..n | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@InvCode | 1 | String | Room code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@InvType | 1 | String | ROOM |
Price Use Cases
Our system works with up to 3 types of prices: per room, per standard occupancy and per occupancy. Although it is unusual that a Channel Manager works with more than one, it can happen. If this is the case, the 3 price types can coexist and the system should always return the lowest one at availability response. Also when more than one price is charged for the same day, the newest price will be returned as available price.
Price per Room
When a price is charged per Room, it means that all occupancies allowed in the room will have the same price. If an AdditionalGuestAmount
is charged for occupancies exceeding the standard occupancy, it will be applied.
Sample scenarios for "Price per Room" price calculations.
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 1-1-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt Type = "25" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
Price:
Occupancy | Price |
---|---|
1-0-0 | 100 |
2-0-0 | 100 |
1-1-0 | 100 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
- 1-1-0
- 3-1-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt Type = "25" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "20.00" AgeQualifyingCode = "10" />
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "10.00" AgeQualifyingCode = "8" Type="Exclusive"/>
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | 100 |
2-0-0 | 100 |
3-0-0 | 100 + (100⁄2 + 20) = 170 |
1-1-0 | 100 |
3-1-0 | 100 + (100⁄2 + 20) + 10 = 180 |
Standard occupancy: 3
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
- 4-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt Type = "25" AmountAfterTax="120.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "20.00" AgeQualifyingCode = "10" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | 120 |
2-0-0 | 120 |
3-0-0 | 120 |
4-0-0 | 120 + (120⁄3 + 20) = 180 |
Price per Pax/Guest (Standard Occupancy)
When a price is charged per Pax means, it means that the price is based on the specified number of guests. If the NumberOfGuests
is equal to or below the standard occupancy, the returned price must be the same as the charged price. If the NumberOfGuests
exceeds the standard occupancy, the price is calculated based on the standard occupancy price and the AdditionalGuestAmount
charged.
Sample scenarios for "Price per Pax/Guest" price calculations.
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "1" AmountAfterTax="100.00"/>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="130.00"/>
</BaseByGuestAmts>
Price:
Occupancy | Price |
---|---|
1-0-0 | 100 |
2-0-0 | 2*(130⁄2) = 130 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "40.00" AgeQualifyingCode = "10"/>
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
3-0-0 | (100⁄2) + (100⁄2) + ((100⁄2) + 40) = 190 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "40.00" AgeQualifyingCode = "10" Type="Exclusive"/>
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
3-0-0 | (100⁄2) + (100⁄2) + 40 = 140 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 2-1-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "40.00" AgeQualifyingCode = "8" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
2-1-0 | (100⁄2) + ((100⁄2) + 40)= 190 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 2-0-1
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "40.00" AgeQualifyingCode = "7" Type="Exclusive"/>
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
2-0-1 | 2*(100⁄2) + 40 = 140 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 2-1-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "-40.00" AgeQualifyingCode = "8" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
2-1-0 | 2*(100⁄2) + ((100⁄2) -40) = 60 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
- 4-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "10.00" AgeQualifyingCode = "10" />
<AdditionalGuestAmount MaxAdditionalGuests = "2" Amount = "-15.00" AgeQualifyingCode = "10" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
3-0-0 | (100⁄2) + (100⁄2) + ((100⁄2) + 10) = 160 |
4-0-0 | (100⁄2) + (100⁄2) + ((100⁄2) + 10) + ((100⁄2) - 15) = 195 |
Standard occupancy: 2
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
- 4-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "2" AmountAfterTax="100.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "-10.00" AgeQualifyingCode = "10" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 2*(100⁄2) = 100 |
3-0-0 | (100⁄2) + (100⁄2) + ((100⁄2) -10) = 140 |
4-0-0 | Ø |
Standard occupancy: 3
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
- 4-0-0
- 5-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests = "3" AmountAfterTax="150.00"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount MaxAdditionalGuests = "1" Amount = "-10.00" AgeQualifyingCode = "10" />
<AdditionalGuestAmount MaxAdditionalGuests = "2" Amount = "15.00" AgeQualifyingCode = "10" />
</AdditionalGuestAmounts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | Ø |
3-0-0 | 3*(150⁄3) = 150 |
4-0-0 | (150⁄3) + (150⁄3) + (150⁄3) + ((150⁄3) - 10) = 190 |
5-0-0 | (150⁄3) + (150⁄3) + (150⁄3) + ((150⁄3) - 10) + ((150⁄3) + 15) = 255 |
Price per Occupancy
When a price is charged per Occupancy means that this price will only be available for the specified occupancy. No AdditionalGuestAmount
are applied.
Sample scenarios for "Price per Occupancy" price calculations.
Room scenarios (adult-child-baby):
- 1-0-0
- 2-0-0
- 3-0-0
Message:
<BaseByGuestAmts>
<BaseByGuestAmt Type = "14" AmountAfterTax="100.00" Code = "2-0-0"/>
</BaseByGuestAmts>
Price:
Occupancy | Price |
---|---|
1-0-0 | Ø |
2-0-0 | 100 |
3-0-0 | Ø |
Room scenarios (adult-child-baby):
- 2-1-0
- 2-0-1
Message:
<BaseByGuestAmts>
<BaseByGuestAmt Type = "14" AmountAfterTax="95.00" Code = "2-1-0"/>
<BaseByGuestAmt Type = "14" AmountAfterTax="80.00" Code = "2-0-1"/>
</BaseByGuestAmts>
Price:
Occupancy | Price |
---|---|
2-1-0 | 95 |
2-0-1 | 80 |
HotelRatePlanNotif Response
After each request, Travelgate will process the data and provide you with a response. Upon receiving a HotelRatePlanNotif
request, Travelgate will send you a corresponding HotelRatePlanNotif
response. The response options include either success or an error.
- 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">
<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:03:26.904Z</u:Created>
<u:Expires>2023-11-22T11:08:26.904Z</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">
<HotelRatePlanNotifResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelRatePlanNotifResult>
<Success xmlns="http://www.opentravel.org/OTA/2003/05"/>
</HotelRatePlanNotifResult>
</HotelRatePlanNotifResponse>
</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">
<u:Timestamp u:Id="_0">
<u:Created>2023-11-22T11:03:26.904Z</u:Created>
<u:Expires>2023-11-22T11:08:26.904Z</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">
<HotelRatePlanNotifResponse xmlns="http://schemas.xmltravelgate.com/hubpush/provider/2012/10">
<HotelRatePlanNotifResult>
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error ShortText="Unexpected error" Code="-1"/>
</Errors>
</HotelRatePlanNotifResult>
</HotelRatePlanNotifResponse>
</s:Body>
</s:Envelope>
Response Data Breakdown
Element | Rel | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HotelRatePlanNotifResult | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HotelRatePlanNotifResult/Success | 0..1 | If SUCESS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
HotelRatePlanNotifResult/Errors | 0..1 | If ERROR | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Errors/Error | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@ShortText | 1 | String | Error Codes and Description
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
@Code | 1 | String | Error Codes and Description
|