Taxes for In-Bound and Out-Bound Reservations
At A Glance
On the night of May 19th, SHR will be enhancing the way taxes are processed for Reservations both In-Bound and Out-Bound within the HotelResNotifRQ message.
If you wish to test this new functionality ahead of the update, please reach out to Integ-lead@shr.global no later than May 1st 2021 to schedule.
Highlights
SHR is adding a new flag within the UI to enable the ability to send AmountAfterTax
TaxInclusive will now be included for WSOTA API Interface users
Including AmountBeforeTax and AmountAfterTax within Service Item (Add On) elements
Ability to now read AmountAfterTax on In-Bound Reservations (PMS to CRS)
AmountBeforeTax will still always take precedence over AmountAfterTax
Risks
Anyone not able to support these elements run the risk of not having their reservations successfully post to the PMS
Mismatched tax policies could result in incorrect postings to the PMS and/or CRS
Full Notice
A new flag is being added to the Windsurfer UI to enable sending AmountAfterTax in the RoomRates for reservations from CRS to PMS. AmountBeforeTax will still be present, as well. Based on the tax policies of the hotel within your PMS, please choose the correct value to post and manage any tax amounts accordingly.
Reservation OUT from CRS:
If the Send Reservations Tax Inclusive Checkbox is ticked, then we will send the AmountAfterTax field in RoomRate.
In Case of Inclusive tax, we will send TaxInclusive="true" and the value of AmountBeforeTax and AmountAfterTax will be the same. For the WSOTA (Res Pull Model) interface, this field was not previously used, but will now be added. For other interface types, this field was already included but will now reflect correct information.
In Case of Exclusive tax, we will send TaxInclusive="false" and the value of AmountBeforeTax and AmountAfterTax will be different. For the WSOTA (Res Pull Model) interface, this field was not previously used, but will now be added. For other interface types, this field was already included but will now reflect correct information.
In case of a service item (add on) both AmountBeforeTax and AmountAfterTax will be listed.
Here is the sample of Inclusive Tax with Send Reservations Tax Inclusive enabled from Windsurfer:
<RatePlans>
<RatePlan RatePlanCode="RGWEB" EffectiveDate="2021-04-09" ExpireDate="2021-04-11">
<RatePlanInclusions TaxInclusive="true"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="ROOM1" NumberOfUnits="1" RatePlanCode="RGWEB">
<Rates>
<Rate EffectiveDate="2021-04-09" ExpireDate="2021-04-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="10.18" AmountAfterTax="10.18" CurrencyCode="USD"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
In this example, tax is Exclusive and has a service item:
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResNotifRQ xmlns:xsd=" " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " EchoToken="ELAVON0320210407225004" TimeStamp="2021-04-07T22:50:04.6880256+05:30" Version="3.002" ResStatus="Commit" PrimaryLangID="en-us" xmlns="http://www.opentravel.org/OTA/2003/05">
<POS>
<Source>
<RequestorID Type="22" ID="CRS" ID_Context="CRS"/>
<BookingChannel Type="5" Primary="true">
<CompanyName Code=""/>
</BookingChannel>
</Source>
</POS>
<HotelReservations>
<HotelReservation RoomStayReservation="true" CreateDateTime="2021-04-07T22:50:05.5041802+05:30" CreatorID="Whiteboard" ResStatus="Reserved">
<UniqueID Type="14" ID="SLA74GKE7"/>
<RoomStays>
<RoomStay MarketCode="TS" SourceOfBusiness="">
<RatePlans>
<RatePlan RatePlanCode="RGWEB" EffectiveDate="2021-04-09" ExpireDate="2021-04-10">
<RatePlanInclusions TaxInclusive="false"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="ROOM1" NumberOfUnits="1" RatePlanCode="RGWEB">
<Rates>
<Rate EffectiveDate="2021-04-09" ExpireDate="2021-04-10" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="50.18" AmountAfterTax="55.18" CurrencyCode="USD"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
<TimeSpan Start="2021-04-09" Duration="P1N" End="2021-04-10"/>
<Guarantee GuaranteeCode="XX" GuaranteeType="None">
<GuaranteesAccepted>
<GuaranteeAccepted PaymentTransactionTypeCode="charge"/>
</GuaranteesAccepted>
</Guarantee>
<Total AmountBeforeTax="50.18" AmountAfterTax="55.18" CurrencyCode="USD">
<Taxes Amount="5"/>
</Total>
<BasicPropertyInfo ChainCode="WSD" HotelCode="ELAVON03"/>
<ResGuestRPHs>
<ResGuestRPH RPH="0"/>
</ResGuestRPHs>
</RoomStay>
</RoomStays>
<Services>
<Service ServicePricingType="2" ServiceInventoryCode="SOFTDRINK" Inclusive="false" Quantity="1">
<Price>
<Base AmountBeforeTax="10" AmountAfterTax="15" CurrencyCode="USD"/>
</Price>
<ServiceDetails>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
<TimeSpan Start="2021-04-09" End="2021-04-09"/>
</ServiceDetails>
</Service>
</Services>
<ResGuests>
<ResGuest ResGuestRPH="0" AgeQualifyingCode="10">
<Profiles>
<ProfileInfo>
<UniqueID Type="1" ID="12379826" ID_Context="CRSConfirmNumber"/>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Amar</GivenName>
<Surname>Nibrad</Surname>
</PersonName>
<Telephone PhoneTechType="1" PhoneUseType="3" PhoneNumber="09878963258" FormattedInd="false"/>
<Email ShareMarketInd="Yes" DefaultInd="true">test@test.com</Email>
<Email ShareMarketInd="Yes">test@test.com</Email>
<Address>
<AddressLine>Test Address</AddressLine>
<AddressLine>Test Address</AddressLine>
<CityName>Nagpur</CityName>
<PostalCode>44002</PostalCode>
<CountryName Code="IN"/>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
<InHouseTimeSpan Start="2021-04-09" Duration="P1N" End="2021-04-10"/>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="SLA74GKE7" ResID_Source="CRS" ResID_SourceContext="CrsConfirmNumber" ResID_Date="2021-04-07T17:43:29.6779086+05:30"/>
</HotelReservationIDs>
</ResGlobalInfo>
<TPA_Extensions>
<Success/>
</TPA_Extensions>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
Reservation In to CRS
We are also changing the way we process reservations from PMS to CRS. Today, we only support AmountBeforeTax. After the change, we can support either, based on the following logic:
If AmountBeforeTax is present, then we post AmountBeforeTax values in the room rates.
If AmountAfterTax is present and AmountBeforeTax is not present, then we post AmountAfterTax values in room rates.
If both AmountAfterTax and AmountBeforeTax are present, we will default to post the AmountBeforeTax value in room rate.
Note: In Case of Tax Exclusive Reservation we always need AmountBeforeTax Field.
In this sample, we would post the room rate of $10.18 and would calculate tax amounts based on the tax values entered in the CRS. Values found in the AmountAfterTax field will be ignored:
<RoomRates>
<RoomRate RoomTypeCode="ROOM1" NumberOfUnits="1" RatePlanCode="RGWEB">
<Rates>
<Rate EffectiveDate="2021-04-15" ExpireDate="2021-04-17" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="10.18" AmountAfterTax="15.18" CurrencyCode="USD"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
Other Items of Note
The tax type being used should match in both CRS and PMS and be based on inclusive/exclusive tax for consistent results across the interface.
If the hotel is using exclusive taxes in the PMS, the CRS should have exclusive tax policies as well, and AmountBeforeTax should be used on both In and Out-Bound reservations for posting the room rate. The PMS can either read and post the tax amounts shared, or add based on the configured policy within the PMS. CRS WILL NOT read any tax info and will post taxes based on policy which is listed in the CRS.
If the hotel is using inclusive taxes in the PMS, the CRS should have inclusive tax policies as well. The tax policy in the CRS is then only informational and will not be added to the reservations when posting.
Other Upcoming Updates
Supporting ASync response on RateAmountNotif
Supporting Multiple Restriction Types for same day and message. For example, Master Close and CTA.
Warning and error response updates to fit OTA standards