Requests
Syntax
TheTaxFeeInfo
message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="timestamp" id="message_ID" partner="partner_account_name"> <Property> <ID>HotelID</ID> <Taxes> <Tax> <RoomTypes> <RoomType id="RoomID_1"/> <RoomType id="RoomID_2"/> </RoomTypes> <RatePlans> <RatePlan id="PackageID_1"/> <RatePlan id="PackageID_2"/> </RatePlans> <BookingDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </BookingDates> <CheckinDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </CheckinDates> <CheckoutDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </CheckoutDates> <StayDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </StayDates> <Type>[percent|amount]</Type> <Basis>[room|person]</Basis> <Period>[stay|night]</Period> <Currency>currency_code</Currency> <Amount>tax_amount</Amount> <ApplicableNights max="integer" excluded="integer"/> <LengthOfStay min="integer" max="integer"/> </Tax> </Taxes> <Fees> <Fee> <RoomTypes> <RoomType id="RoomID_1"/> <RoomType id="RoomID_2"/> </RoomTypes> <RatePlans> <RatePlan id="PackageID_1"/> <RatePlan id="PackageID_2"/> </RatePlans> <BookingDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </BookingDates> <CheckinDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </CheckinDates> <CheckoutDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </CheckoutDates> <StayDates> <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/> </StayDates> <Type>[percent|amount]</Type> <Basis>[room|person]</Basis> <Period>[stay|night]</Period> <Currency>currency_code</Currency> <Amount>fee_amount</Amount> <ApplicableNights max="integer" excluded="integer"/> <LengthOfStay min="integer" max="integer"/> </Fee> </Fees> </Property> </TaxFeeInfo>
Elements & Attributes
The TaxFeeInfo message has the following elements and attributes:Element / @Attribute | Occurrences | Type | Description |
---|---|---|---|
TaxFeeInfo | 1 | Complex element | The root element for a message defining taxes and fees for a single property. |
TaxFeeInfo / @timestamp | 1 | DateTime | The creation date and time of this message. |
TaxFeeInfo / @id | 1 | String | A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash). |
TaxFeeInfo / @partner | 1 | String | The partner account for this message. This string value is the
"Partner key" value listed on
the
Account settings page in Hotel Center.
Note: If you have a backend that provides feeds for
multiple accounts, this value needs to match the |
TaxFeeInfo / Property | 1..n | Property | A container for defining taxes and fees for a single property. |
TaxFeeInfo / Property / ID | 1 | String | The unique identifier for the property. This value must match the Hotel ID specified using <id> in the <listing> element in the Hotel List Feed. The Hotel ID is also listed in Hotel Center. |
TaxFeeInfo / Property / Taxes | 0..1 | Taxes | Container for one or more <Tax> elements. |
TaxFeeInfo / Property / Taxes / Tax | 1..n | Tax | An individual tax that applies to the property. |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes | 0..1 | RoomTypes | Container for a list of room types to which the tax applies.
The tax is applied to each <RoomType>
specified. If <RoomTypes> isn't specified, the
tax applies to all rooms. |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType | 1..n | RoomType | Specifies a room type. A room type is defined in a
<RoomData> element in a
Transaction (Property Data) message, and as
identified using its RoomID. (Its
<RoomID> value is also referenced by the
InvTypeCode attribute in OTA_HotelRateAmountNotifRQ
messages.) |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id | 1 | String | The unique identifier for the inventory (room type). This value maps
to <RoomID> in a Transaction
(Property Data) message. The maximum number of characters allowed is
50. |
TaxFeeInfo / Property / Taxes / Tax / RatePlans | 0..1 | RatePlans | Container for a list of rate plans to which the tax applies.
If <RatePlans> isn't specified, the tax
applies to all rate plans. |
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan | 1..n | RatePlan | Specifies a rate plan. A rate plan is defined by a combination of package, rates, and availability, as defined in Transaction (Property Data), OTA_HotelRateAmountNotifRQ, and OTA_HotelAvailNotifRQ messages, and as identified by the PackageID. |
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id | 1 | String | The unique identifier for the rate plan. This value maps to the
PackageID value in <PackageData>
in a Transaction (Property Data) message, and
in the RatePlanCode attribute in
<StatusApplicationControl> in both
<OTA_HotelRateAmountNotifRQ> and
<OTA_HotelAvailNotifRQ> messages.
The maximum number of characters allowed is 50. |
TaxFeeInfo / Property / Taxes / Tax / BookingDates | 0..1 | BookingDates | A container for one or more date ranges that define when booking must occur in order for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange | 1..99 | DateRange | A date range specifying when booking must occur for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start | 0..1 | Date | The starting date (based on the property's time zone), inclusive, of
the date range. This date must be before, or the same as, the
end date. If start isn't specified, the date
range is effectively unlimited in terms of a start date. |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end | 0..1 | Date | The ending date (based on the property's time zone), inclusive, of the
date range. This date must be the same as, or after, the start
date. If end isn't specified, the date
range is effectively unlimited in terms of an end date. |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week | 0..1 | String | The days of the week that are allowed in the date range. If not specified, all days are allowed in the date range. Each character in the string specifies a day. For example, "MTWHF" specifies that weekdays are allowed in the date range. Valid characters are:
Any character combination is valid. |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates | 0..1 | CheckinDates | A container for one or more date ranges that define when check-in must occur for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange | 1..20 | DateRange | A date range specifying when check-in must occur for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start | 0..1 | Date | The starting date (based on the property's time zone), inclusive, of
the date range. This date must be before, or the same as, the
end date. If start isn't specified, the date
range is effectively unlimited in terms of a start date. |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end | 0..1 | Date | The ending date (based on the property's time zone), inclusive, of the
date range. This date must be the same as, or after, the start
date. If end isn't specified, the date
range is effectively unlimited in terms of an end date. |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week | 0..1 | String | The days of the week that are allowed in the date range. If not specified, all days are allowed in the date range. Each character in the string specifies a day. For example, "MTWHF" specifies that weekdays are allowed in the date range. Valid characters are:
Any character combination is valid. |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates | 0..1 | CheckoutDates | A container for one or more date ranges that define when check-out must occur for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange | 1..20 | DateRange | A date range specifying when check-out must occur for the tax to be applied. |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start | 0..1 | Date | The starting date (based on the property's time zone), inclusive, of
the date range. This date must be before, or the same as, the
end date. If start isn't specified, the date
range is effectively unlimited in terms of a start date. |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end | 0..1 | Date | The ending date (based on the property's time zone), inclusive, of the
date range. This date must be the same as, or after, the start
date. If end isn't specified, the date
range is effectively unlimited in terms of an end date. |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week | 0..1 | String | The days of the week that are allowed in the date range. If not specified, all days are allowed in the date range. Each character in the string specifies a day. For example, "MTWHF" specifies that weekdays are allowed in the date range. Valid characters are:
Any character combination is valid. |
TaxFeeInfo / Property / Taxes / Tax / StayDates | 0..1 | StayDates | A container for one or more date ranges that determine whether the tax is applied (for example, to accommodate seasonal taxes):
|
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange | 1..99 | DateRange | A date range specifying dates when the tax is to be applied. |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start | 0..1 | Date | The starting date (based on the property's time zone), inclusive, of
the date range. This date must be before, or the same as, the
end date. If start isn't specified, the date
range is effectively unlimited in terms of a start date. |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end | 0..1 | Date | The ending date (based on the property's time zone), inclusive, of the
date range. This date must be the same as, or after, the start
date. If end isn't specified, the date
range is effectively unlimited in terms of an end date. |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week | 0..1 | String | The days of the week that are allowed in the date range. If not specified, all days are allowed in the date range. Each character in the string specifies a day. For example, "MTWHF" specifies that weekdays are allowed in the date range. Valid characters are:
Any character combination is valid. |
TaxFeeInfo / Property / Taxes / Tax / Type | 1 | Enum | Valid values are:
|
TaxFeeInfo / Property / Taxes / Tax / Basis | 1 | Enum | Valid values are:
|
TaxFeeInfo / Property / Taxes / Tax / Period | 1 | Enum |
Valid values are:
|
TaxFeeInfo / Property / Taxes / Tax / Currency | 0..1 | String | The three-letter currency code for the tax (for example: USD). |
TaxFeeInfo / Property / Taxes / Tax / Amount | 1 | Float | The value of the percent or amount of the tax. |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights | 0..1 | ApplicableNights | This value only applies if <Type > is set to
amount and <Period > is set to
night.
Constrains the number of nights for which a tax can be applied. Specify either |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max | 0..1 | Int | The maximum number of nights for which this tax can be applied.
For example, if the tax should be applied for a maximum of 3 nights, set max to 3. If max is greater than or equal to the length of stay, the tax is applied on each night of the itinerary. |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded | 0..1 | Int | This tax can be applied for (LOS - excluded ) nights,
where LOS is the length of stay.
For example, if the tax should not be applied on the check-in date, set excluded to 1. If excluded is greater than or equal to the length of stay, no tax is applied. |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay | 0..1 | LengthOfStay | Defines length of stay limits within which this tax can be applied. The tax is not applied when length of stay is outside of the min and max limits. |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min | 0..1 | Integer | The minimum nights allowed in the stay for the tax to be applied. If this isn't specified, there is no minimum. |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max | 0..1 | Integer | The maximum nights allowed in the stay for the tax to be applied. If this isn't specified, there is no maximum. |
TaxFeeInfo / Property / Fees | 0..1 | Fees | Container for one or more <Fee> elements. |
TaxFeeInfo / Property / Fees / Fee | 1..n | Fee | An individual fee that applies to the property. All child elements of |
Examples
Example 1
The following example showns a basic TaxFeeInfo
message:
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_account_name"> <Property> <ID>Property_1</ID> <Taxes> <Tax> <Type>percent</Type> <Basis>room</Basis> <Period>night</Period> <Currency>USD</Currency> <Amount>10.00</Amount> </Tax> </Taxes> <Fees> <Fee> <Type>amount</Type> <Basis>room</Basis> <Period>stay</Period> <Currency>USD</Currency> <Amount>5.00</Amount> </Fee> </Fees> </Property> </TaxFeeInfo>
Responses
Syntax
TheTaxFeeInfoResponse
message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfoResponse timestamp="timestamp" id="message_ID" partner="partner_account_name"> <!-- Either Success or Issues will be populated. --> <Success/> <Issues> <Issue code="issue_code" status="issue_type">issue_description</Issue> </Issues> </TaxFeeInfoResponse>
Elements & Attributes
TheTaxFeeInfoResponse
message has the following
elements and attributes:
Element / @Attribute | Occurrences | Type | Description |
---|---|---|---|
TaxFeeInfoResponse | 1 | Complex element | The root element indicating the success or issues for a received TaxFeeInfo request message. |
TaxFeeInfoResponse / @timestamp | 1 | DateTime | The creation date and time of this message. |
TaxFeeInfoResponse / @id | 1 | String | The unique identifier from the associated TaxFeeInfo message. |
TaxFeeInfoResponse / @partner | 1 | String | The partner account for this message. |
TaxFeeInfoResponse / Success | 0..1 | Success | Indicates that the TaxFeeInfo message was processed successfully
without warnings, errors, or failures.
Either |
TaxFeeInfoResponse / Issues | 0..1 | Issues | A container for one or more issues encountered while processing the
TaxFeeInfo message.
Either |
TaxFeeInfoResponse / Issues / Issue | 1..n | Issue | The description of a warning, error, or failure encountered while processing the TaxFeeInfo message. Details on these issues can be found in Feed Status Error Messages. |
TaxFeeInfoResponse / Issues / Issue / @code | 1 | Integer | The identifier for the issue. |
TaxFeeInfoResponse / Issues / Issue / @status | 1 | Enum | The type of issue encountered. Valid values are warning, error, and failure. |
Examples
Success
The following is a response to a successfully processed TaxFeeInfo message.
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfoResponse timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_account_name"> <Success/> </TaxFeeInfoResponse>
Issues
The following is a response to a TaxFeeInfo message not processed due to errors.
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfoResponse timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_account_name"> <Issues> <Issue code="1001" status="error">Example</Issue> </Issues> </TaxFeeInfoResponse>