Following the most recent update of the California Law:
California Resort Fee Bill (AB 537) and Consumer Legal Remedies Act (SB 478)
You may be wondering on how to properly identify fees and taxes that are to be paid at the destination, and here we would like to provide a brief extract/example on how may this be done within the Juniper API:
You will be able to identify this by looking into any direct payment supplements that may be available within your results, and next we would like to provide you with examples for the different API versions that you might be implementing:
API Reference: https://api-edocs.ejuniper.com/api/jp/hotel-api
<HotelOption RatePlanCode = "2+RZLQZBVM+8lY3E5xVuPuFc5Y..." Status = "OK" NonRefundable = "true" PackageContract = "false">
<Board Type = "SA">Room Only</Board>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Gross = "514.11" Nett = "514.11">
<Service Amount = "445.21"/>
<ServiceTaxes Included = "false" Amount = "68.9"/>
</TotalFixAmounts>
</Price>
</Prices>
<HotelRooms>
<HotelRoom Units = "1" Source = "1">
<Name>Room, 1 King Bed, City View (Social)</Name>
</HotelRoom>
</HotelRooms>
<AdditionalElements>
<HotelSupplements>
<HotelSupplement Code = "1" DirectPayment = "true" Amount = "4.73" Currency = "EUR">
<Name>Mandatory Tax</Name>
<Description>Payment at destination</Description>
</HotelSupplement>
<HotelSupplement Code = "2" DirectPayment = "true" Amount = "32.12" Currency = "EUR">
<Name>Mandatory Fee</Name>
<Description>Payment at destination</Description>
</HotelSupplement>
</HotelSupplements>
</AdditionalElements>
</HotelOption>
On which, on the HotelSupplements node (found within the AdditionalElements node of the applicable result (HotelOption)), you will be able to identify HotelSupplement's labeled as DirectPayment = "true" (implying that they will need to be paid at the desintation, and that they are not currently included in the total price), from which you would also be able to identify their respective @Amount and @Currency (as to propertly represent how much would these direct payment supplemnts cost), along with their respective Name and (if available) Description, from which you will also be able to identify and to describe the supplements in question.
API Reference: https://api-edocs.ejuniper.com/en/api/legacy/ota/hotel-api
<RoomRate RatePlanCode = "2+RZLQZBVM+8lY3E5xV..." RatePlanCategory = "Room Only" AvailabilityStatus = "AvailableForSale">
<Rates>
<Rate NumberOfUnits = "1" RateMode = "Room" RateSource = "1">
<Total AmountAfterTax = "1518.51" DecimalPlaces = "2"/>
<RateDescription>
<Text>Family Room, 1 King Bed and 2 Double Beds</Text>
</RateDescription>
<TPA_Extensions>
<RoomType xmlns = "">324573927</RoomType>
<Mealplan xmlns = "">3</Mealplan>
</TPA_Extensions>
</Rate>
</Rates>
<Total AmountAfterTax = "1518.51" CurrencyCode = "EUR" DecimalPlaces = "2"/>
<TPA_Extensions>
<MandatoryBookingRule xmlns = "">1</MandatoryBookingRule>
<Mealplan Category = "SA" id = "3" xmlns = "">3</Mealplan>
<NonRefundable xmlns = "">1</NonRefundable>
<PackageContract xmlns = "">0</PackageContract>
<Elements xmlns = "">
<Element Class = "DIRECT_PAYMENT" Price = "4.73" PriceWithTax = "" Currency = "EUR">
<Name>Mandatory Tax</Name>
<Description>Payment at destination</Description>
</Element>
<Element Class = "DIRECT_PAYMENT" Price = "32.12" PriceWithTax = "" Currency = "EUR">
<Name>Mandatory Fee</Name>
<Description>Payment at destination</Description>
</Element>
</Elements>
</TPA_Extensions>
</RoomRate>
On which, on the Elements node (found within the TPA_Extensions node of the applicable result (RoomRate)), you will be able to identify Element's labeled as Class = "DIRECT_PAYMENT" (implying that they will need to be paid at the desintation, and that they are not currently included in the total price), from which you would also be able to identify their respective @Price and @Currency (as to propertly represent how much would these direct payment supplemnts cost), along with their respective Name and (if available) Description, from which you will also be able to identify and to describe the supplements in question.
The above example represents that you would have sent the ShowCatalogueData TPA_Extension on your previous availability request, alternatively, if you were not currently implementing this option (heavily recommendable for you to end up implementing it at some point), you would be receiving this (the same example/result) under the following format:
<RoomRate RatePlanCode = "2+RZLQZBVM+8lY3E5xV..." RatePlanCategory = "Room Only" AvailabilityStatus = "AvailableForSale">
<Rates>
<Rate NumberOfUnits = "1" RateMode = "Room" RateSource = "1">
<Total AmountAfterTax = "1518.51" DecimalPlaces = "2"/>
<RateDescription>
<Text>Family Room, 1 King Bed and 2 Double Beds</Text>
</RateDescription>
<TPA_Extensions>
<RoomType xmlns = "">324573927</RoomType>
<Mealplan xmlns = "">3</Mealplan>
</TPA_Extensions>
</Rate>
</Rates>
<Features>
<Feature RoomViewCode = "DIRECT_PAYMENT">
<Description Name = "VALUE">
<Text>Mandatory Tax</Text>
</Description>
<Description Name = "DESC">
<Text>Payment at destination</Text>
</Description>
<Description Name = "PRICE">
<Text>4.73</Text>
</Description>
<Description Name = "CURRENCY">
<Text>EUR</Text>
</Description>
</Feature>
<Feature RoomViewCode = "DIRECT_PAYMENT">
<Description Name = "VALUE">
<Text>Mandatory Fee</Text>
</Description>
<Description Name = "DESC">
<Text>Payment at destination</Text>
</Description>
<Description Name = "PRICE">
<Text>32.12</Text>
</Description>
<Description Name = "CURRENCY">
<Text>EUR</Text>
</Description>
</Feature>
</Features>
<Total AmountAfterTax = "1518.51" CurrencyCode = "EUR" DecimalPlaces = "2"/>
<TPA_Extensions>
<MandatoryBookingRule xmlns = "">1</MandatoryBookingRule>
<NonRefundable xmlns = "">1</NonRefundable>
<PackageContract xmlns = "">0</PackageContract>
</TPA_Extensions>
</RoomRate>