Hotel surcharge vocabulary
Search and quote responses expose optional surcharges[] on each option. Each line uses:
category:TAX,FEE,DEPOSIT,OTHER, orSURCHARGE_CATEGORY_UNSPECIFIEDcode: stable snake_case token (preferred for UI labels and analytics)included:trueif the amount is already in the displayed total;falseif typically due at the propertyprice: amount and currency for that line
Integrations only need to forward the provider's raw label as Surcharge.type (e.g. "City Tax", "Resort Fee") and the boolean included flag. The aggregator derives the canonical code (snake_case) and category from that label so vocabulary knowledge stays in a single place.
Codes by category
category | Example code values |
|---|---|
TAX | mandatory_tax, city_tax, tourism_fee, vat, sales_tax |
FEE | property_fee, resort_fee, cleaning_fee, tax_and_service_fee |
DEPOSIT | deposit (reimbursable deposit semantics depend on provider) |
OTHER | Any provider-specific fee not in the table above |
MandatoryFee.name in static hotel content should reuse the same code values where possible for consistency between content and live shopping.
Display notes
- Do not parse long
Remarktext for numeric tax/fee whensurcharges[]is present. - For legal copy around bundled “taxes and fees”, follow your product’s existing disclaimer pattern for the jurisdiction you sell in.