Pricing and taxes

Currency

  • Every price is in the property's currency. The price object and each extra charge carry an ISO 4217 code ("currency": "EUR"); tax and VAT amounts are in the same currency.
  • There is no currency parameter and no conversion. Convert on your side if you show another currency.
  • With credit-card payments (including virtual cards, VCCs), the hotel charges the card in its own currency.

Offer price (availability and offers)

"price": {
  "currency": "EUR",
  "before_tax": 180,
  "after_tax": 200,
  "total_before_tax": 199,
  "total_amount": 221,
  "total_tax": 2,
  "total_at_property": 20,
  "taxes": [
    { "name": "Service tax", "amount": 2, "charged_at": "booking" },
    { "name": "City tax", "amount": 20, "charged_at": "property" }
  ],
  "vat": { "unit": 18, "extra_charges": 2, "total": 20 },
  "extra_charges": [ { "name": "Breakfast", "before_tax": 19, "after_tax": 21, "currency": "EUR" } ],
  "net_rate": 169.15,
  "breakdown": [
    { "date": "2026-11-02", "currency": "EUR", "before_tax": 90, "after_tax": 100 },
    { "date": "2026-11-03", "currency": "EUR", "before_tax": 90, "after_tax": 100 }
  ]
}

This example shows a 2-night stay with a 15% commission:

  • total_amount (221) = after_tax (200) + breakfast (21).
  • total_amount − total_before_tax (22) = total_tax (2) + vat.total (20).
  • The city tax (20) is paid at the hotel and isn't in total_amount.
FieldMeaning
total_amountTotal for the whole stay, including taxes paid at booking and extra charges. This is the price to charge. If you show the customer a full price, add total_at_property, which they pay at the hotel.
total_before_taxTotal for the whole stay, excluding taxes, including the extra charges' before-tax price.
total_taxTaxes included in the booking price, for the whole stay: the sum of the taxes[] items with charged_at: booking. It doesn't include taxes paid at the property (see total_at_property) or VAT (see vat). Can be 0; see How tax is calculated.
total_at_propertyAmount the guest pays at the hotel, e.g. city tax. Not part of what is charged at booking.
taxes[]Individual tax lines. charged_at is booking (included in the booking price) or property (paid at the hotel). Omitted when there are none.
vatVAT included in the price: on the unit (unit), on the extra charges (extra_charges) and the total. Not part of total_tax.
before_tax / after_taxThe unit's price for the whole stay, excluding / including taxes, without extra_charges. total_before_tax / total_amount add the extra charges on top.
net_rateWhat you pay the hotel before taxes: total_before_tax minus your commission. Only present for rates sold to you as net rates.
extra_charges[]Additional charges attached to the rate, e.g. breakfast or parking. Included in total_amount: total_amount = after_tax + the extra charges' after_tax. Names are free text from the hotel.
breakdown[]Per-night prices of the unit (date, before_tax, after_tax, and net_rate for net rates), without extra charges. Only returned with price_breakdown=true. Use the totals for charging: per-night values are rounded and don't always add up exactly.

The offer also carries commission (your commission as a percentage, e.g. 15, or null if none applies) and rate_type (Reference values).

How tax is calculated

  • total_tax covers the taxes paid at booking. Taxes paid at the hotel are in total_at_property.
  • VAT is reported separately in vat, so total_amount - total_before_tax can be larger than total_tax.
  • Use these fields as they are rather than working them out from each other.
  • total_tax can be 0: when there are no taxes paid at booking, when all taxes are paid at the hotel or reported as VAT, or when the hotel doesn't send tax information. A 0 doesn't necessarily mean the stay is tax-free; check vat, total_at_property and taxes[].

What the hotel charges

  • Your own card / VCC with a sell rate: the hotel charges total_amount. Taxes paid at the property (total_at_property) are paid by the guest at the hotel and aren't in total_amount.

Booking and reservation price

After booking, each reservation has a price:

FieldMeaning
after_tax / before_taxThe reservation total, including / excluding taxes.
amountCurrently the same as after_tax.
currencyProperty currency.

Reservations also list their extra_charges[], and prices_per_night[] gives the price per night (including net_rate for net rates). The booking has a total_price for all its reservations.