Pricing in /accommodations
Learn how to retrieve product price information and display it on search results and property pages.
How to request price information
Use the /accommodations/search and /accommodations/availability endpoints to obtain detailed pricing information for the searched products included in the response.
Your application must present this information to travellers in a clear and consistent manner, adhering to all relevant laws and regulations, enabling them to make informed decisions before placing their orders.
For more details about how to request the price information that you want in a particular call, follow the Search an acommodation guide.
Price information in the response
For each product, the products.price
response object returns the following price components and their values:
Field | Description |
---|---|
base price | The basic price -- This price excludes all extra_charges . |
| Additional costs that are applied to the base price - for example, city taxes, value added tax (VAT), cleaning fees or additional parking fees. These charges are categorised as:
|
book price | The price that the traveller must pay to reserve this product.
|
total price | The final amount the traveller must definitely pay for the product even when paying up-front.
|
- The traveller may have to pay additional conditional or incalculable charges in addition to the
total
price. - The
price
object defines what the traveller will or might have to pay, but does not define when or how they must pay. For more details, see Payments.
Example
Here's an example of an /accommodations/availability response.
{ ... "currency": "GBP", ... "products": [ "id": "xxxxxxxxx_xxxxxxxxx_x_x_x", "price": { "base": 153.40, "book": 167.21, "extra_charges": { "conditional": [{ "charge": 3, "condition": 28 "mode": "per_stay", "percentage": null, "total_amount": 25.00, "unit_amount": 25.00 }], "excluded": [{ "charge": 10, "mode": "incalculable", "percentage": null, "total_amount": null, "unit_amount": null } { "charge": 22, "mode": "percentage", "percentage": 1.00, "total_amount": 1.53, "unit_amount": null }], "included": [{ "charge": 21, "mode": "percentage", "percentage": 9.00, "total_amount": 13.81, "unit_amount": null }] }, "total": 168.74 }, ... }
In this examples, you can see the different price components:
base price: £153.40. The basic price of the product.
book price: £167.21. What the traveller must pay to reserve this product:
- There is an
included
extra charge, which is VAT ("charge": 21
) with a total cost of ("total_amount": 13.81
). book
price is therefore £153.40 + £13.81 = £167.21.
- There is an
total price: £168.74. What the traveller must definitely pay for this product:
- There is an
excluded
extra charge with a defined value, which is a city tax ("charge": 22
) with a total cost of ("total_amount": 1.53
). total
price is therefore £167.21 + £1.53 = £168.74.
- There is an
Additional charges: Travellers may need to pay conditional or incalculable charges, such as a cleaning fee or water usage fee, on top of the total price.
- There is a
conditional
extra charge, which is a cleaning fee ("charge": 3
) with a total cost of ("total_amount": 25.00
). The traveller will pay an extra £25.00 if they do not clean the room before they leave ("condition": 28
). - There is an
excluded
extra charge with an undefined value ("mode": "incalculable"
and"total_amount": null
), which is a water usage fee (charge
=10
). The traveller will have to pay some extra amount based on the amount of water they use during their stay.
- There is a
→ Call the accommodations/constants endpoint to see the full list of charge type IDs so you can identify each charge.
Extra charges
Travellers may need to pay conditional or incalculable charges, such as a cleaning fee or water usage fee, on top of the total price.
Conditional charges
These are charges that apply only under specific conditions.
Some examples of conditional charges can be:
Cleaning fee: A cleaning fee might be charged if the guest does not clean the room before checking out.
Pet fee: A charge might be applied if the guest brings a pet. This fee is conditional on the presence of a pet during the stay.
Smoking fee: A fee might be charged if the guest smokes in a non-smoking room. This charge is only applied if the guest violates the non-smoking policy.
Late check-out fee: A fee might be charged if the guest checks out later than the agreed time. This charge is conditional on the guest's check-out time.
Damage fee: A fee might be applied if there is damage to the property during the guest's stay. This charge is conditional on the occurrence of damage.
When there is a conditional charge, the condition
field is displayed under the charge breakdown and identifies the sort of condition.
Conditional charges are always excluded from the base
, book
and total
prices, as (if applicable) they are typically paid by the traveller at checkout.
Included and excluded charges
Different countries have different legal requirements on how prices should be shown to consumers - for example, whether value-added tax (VAT) should be included or excluded.
To ensure compliance with all applicable requirements, Booking.com determines whether each non-conditional charge should be included
or excluded
when returning price information. The decision takes into account the countries in which both the traveller and the requested products are located. Note that, as a result:
- A charge on a product may appear as
included
when you expect it to appear asexcluded
, or vice versa. - The
book
price for the same product, with the same request criteria, may vary depending on the origin of the request.
Example - VAT included/ excluded
If a traveller in the EU requests a product, VAT ("charge": 21
) is included in the book price. For the same product requested from the US, VAT is excluded.
The following fragments show how the response can differ, depending on which country the traveller is in when they make the request (taken from the booker.country
value).
If the call originates from the Netherlands ("booker": {"country": "nl"}
), EU law applies so the VAT charge is included in the book price:
{ "products": [ "id": "xxxxxxxxx_xxxxxxxxx_x_x_x", "price": { "base": 153.40, "book": 167.21, "extra_charges": { "conditional": [], "excluded": [], "included": [ { "charge": 21, "mode": "percentage", "percentage": 9.00, "total_amount": 13.81, "unit_amount": null }, ... ] }, "total": 167.21 },
If the call originates from the US ("booker": {"country": "us"}
), the VAT charge is excluded, resulting in a lower book
price.
{ ... "products": [ "id": "xxxxxxxxx_xxxxxxxxx_x_x_x", "price": { "base": 153.40, "book": 153.40, "extra_charges": { "conditional": [], "excluded": [ { "charge": 21, "mode": "percentage", "percentage": 9.00, "total_amount": 13.81, "unit_amount": null }, ... ] "included": [] }, "total": 167.21 }, ... }
Note that the base
and total
prices remain the same in both cases.
Charge breakdown
Each charge type is defined in the appropriate category under extra_charges
. Below are the fields used to describe each charge, including its purpose, amount, and calculation method.
Field | Description |
---|---|
charge | Unique id of the charge type.Use /accommodations/constants to obtain the charge name associated with this id . |
condition | Unique id of the condition that applies to this conditional charge . See Condition ids for the description of the condition. Note: This field is only displayed for conditional charges. |
mode | The basis for applying the charge, such as percentage or per night. See Charge modes. |
percentage | If mode is percentage , this is the percentage value at which the charge is applied (against the price.base value),If mode is any other value, this value is null . |
unit_amount | If mode is per_night , per_person_per_night , or per_person_per_stay , this value is the price per unit for the charge,If mode is any other value, this value is null . |
total_amount | The total amount to be paid for the charge. It is always defined for excluded and included charges, but it is null for incalculable charges. |
Charge calculation modes
The charge_mode
value identifies the basis on which the charge is applied, and how the total_amount
for the charge is calculated.
charge_mode value | total_amount value |
---|---|
calculated_amount | Value of the charge |
incalculable | null Note: An incalculable charge always appears in the extra_charges.excluded category. |
percentage | Calculated as percentage x base price |
per_night | Calculated as unit_amount x number of nights |
per_person_per_night | Calculated as unit_amount x number of guests x number of nights |
per_person_per_stay | Calculated as unit_amount x number of guests |
per_stay | Value of the charge |
Condition ids
The following table shows the condition
ids that can be returned in each charge breakdown, along with their description and the charges that they can be applied to.
condition id | Description | Applies to charge_types (ids) |
---|---|---|
5 | A fee is applicable if you do not bring your own items. | TOWELFEE (4), BEDLINEN (6), LINENPACKAGEFEE (100), KITCHENLINNENFEE (103) |
28 | A cleaning fee will be charged if you don't clean before checking out. | CLEANINGFEE (3) |
29 | A cleaning fee is applicable, per pet, if you bring your pet to the accommodation. | CLEANINGFEE (3) |
30 | A cleaning fee is applicable if you smoke in the accommodation. | CLEANINGFEE (3) |
35 | A fee is applicable if you use a credit card of any type. | CREDITCARDFEE (116) |
37 | A fee is applicable if you use a credit card of a specific type. | CREDITCARDFEE (116) |
39 | A fee is applicable if you use a credit card of a list of types. | CREDITCARDFEE (116) |
126 | An internet fee is applicable if you use it, per hour of use. | INTERNETFEE (118) |
136 | Parking fee - start time to end time | PARKINGFEE (119) |
142 | Parking fee - day of week | PARKINGFEE (119) |
210 | Mandatory Israel VAT for domestic users | VAT (21) |
211 | Optional Israel VAT for all users | VAT (21) |
215 | A fee is applicable if you use the indicated facility. | SPA (180), SAUNA (181), HOTTUB (182), GOLFCOURSE (199), SUNBED (200), POOL (204) |
504 | A city tax is applicable. Business travellers can be exempt from this charge under certain conditions. Please check the city's official website for details prior to arrival. | CITYTAX (22) |
542 | A city tax is applicable if you are an adult. | CITYTAX (22) |
543 | A city tax is applicable for a maximum of n consecutive nights. Further consecutive nights at the same accommodation are exempt. | CITYTAX (22) |
Charge examples
Example - Incalculable charge
This is an example for incalculable
water usage fee (charge
=10
).
... "excluded": [ { "charge": 10, "mode": "incalculable", "percentage": null, "total_amount": null, "unit_amount": null } ] ...
Example - Value Added Tax
In this example the Value Added Tax (charge
=21
) is charged at 9% of the base
price, giving a total_amount
of 12.47
.
... { "price": { "base": 138.56, ... "extra_charges": { ... { "charge": 21, "mode": "percentage", "percentage": 9.00, "total_amount": 12.47, "unit_amount": null }, ...
Example - Tourism fee
When the request specifies that 3 people are staying for 2 nights, and there is an extra charge for tourism fee, the response displays:
... { "charge": 142, "mode": "per_person_per_night", "percentage": null, "total_amount": 15.42, "unit_amount": 2.57 } ...
- The tourism fee (
charge
=142
) is charged on aper_person_per_night
basis. - As the request specified that 3 people are staying for 2 nights, the
total_amount
is calculated as (3 people) x (2 nights) x (unit_amount
=2.57
) =15.42
.
Example - Cleaning fee (conditional)
In this example, a cleaning fee (charge
=3
) is charged on a per_stay
basis, at a cost of 25.00
. The fee will only be charged if the guests do not clean the room before checking out (condition
=28
).
... "conditional": [ { "charge": 3, "condition": 28, "mode": "per_stay", "percentage": null, "total_amount": null, "unit_amount": 25.00 } ] ...
Currencies
All prices are shown in the currency
defined in the response. For example:
{ ... "currency": "GBP", ... "products": [ "id": "xxxxxxxxx_xxxxxxxxx_x_x_x", "price": { "base": 153.40, "book": 167.21, ...
The currency
value is either:
- The accommodation currency, which is the currency used by the provider of the returned product, and the currency the traveller will pay in. This is the default option.
- The booker currency, which is the currency requested by the traveller performing the search (in the request
currency
field).
If the two currencies are different, the booker currency value shows the converted value of the accommodation currency, based on the current exchange rate available to Booking.com. If the exchange rate changes before the traveller completes the order, they will pay a different price to the one shown.
Displaying price information
Your application must display price information to travellers clearly, consistently and in accordance with all relevant laws and regulations.
The following sections provide some advice on how to do this on search results and property pages.
Prices display
- Display the price of a product or product group using the appropriate
book
price. - If you display a
book
price that is discounted because a deal is available, you can show details of the deal. See How to display deal information. - Clearly indicate whether a
book
price includes taxes and charges, and whether any additional charges will or might apply. For example, label the price with a short message such as "Includes taxes and charges" or 'Additional charges may apply". For example:
Excluded charges display
If you show details of excluded
charges:
- Display details of each
excluded
charge individually. Do not combine them into your own categories. - For each charge, display the charge
name
(from /accommodations/constants) andmode
, and either thepercentage
value, or thetotal_amount
andcurrency
, as appropriate. - Do not display specific details for any
incalculable
charges.
For example (on a property page):
Conditional charges display
If you show details of conditional
charges, either provide a detailed explanation for each charge individually, or simply include them as part of an "Additional charges may apply" message.
Application flow consistency
Make sure that the information you display is consistent across each stage of your integration flow:
- If you redirect travellers to Booking.com from a search results or property page, your information must be consistent with the page that you redirect the user to.
- If your application handles the order process itself, your information must be consistent with what you show on your orders page. See Prices (/orders).
Different price in availability and orders
If your application also handles the order process, note that the /orders
endpoints return price information slightly differently to the /accommodations
endpoints.
- It might be the case that the price presented in the /accommodations/availability response is a bit different of that included in preview/order endpoint.
- Refer to Prices in orders page for more details about these pricing differences.
- For more information on setting up search and availability requests, explore the Search for accommodation section.
- Refer to the Orders section for examples and instructions on how to create an order and return the order prices.