Last updated

Prices (/orders)

Learn how to get information about product prices and display it on orders pages


The /orders/preview endpoint returns price information about the products contained in the response. Your application must display this price information to travellers clearly, consistently and in accordance with all relevant laws and regulations, so that they can decide if they are happy to proceed and place the order.

Note

The /orders/preview endpoint returns price information slightly differently to the /accommodations endpoints, as follows:

  • extra_charges: The exclusive or inclusive categories used in the /accommodations/* responses are not relevant to the order process. Instead, all exclusive or inclusive charges are defined as non-conditional.
  • book price is not returned.
  • All prices and amounts are shown in both the accommodation_currency and the booker_currency. (If currency is not included in the request, the booker_currency value is null.)

See Prices (/accommodations) for more information.

Price information in the response

The price response object returns the following values for the price of the order:

  • base: The basic price. This price excludes all extra_charges.
  • extra_charges: Costs that are added to the base price. Each charge is assigned to one of the following categories:
    • non-conditional: Charges that must be unconditionally paid and are included in the total price. (Exception: incalculable charges are excluded from the total price).
    • conditional: Charges that only apply in certain conditions. These are always excluded from the base and total prices.
  • total: The price that the traveller must definitely pay for this product. This equals the book price plus non-conditional extra_charges.

For example:

{
...
"accommodation": {
            "id": xxxxxxxx,
            "currency": {
                "accommodation": "EUR",
                "booker": "GBP"
            },
            "price": {
                "base": {
                    "accommodation_currency": 82.57,
                    "booker_currency": 70.85
                },
                "extra_charges": {
                    "conditional": [],
                    "non_conditional": [
                        {
                            "charge": 21,
                            "total_amount": {
                                "accommodation_currency": 7.43,
                                "booker_currency": 6.38
                            }
                        },
                        {
                            "charge": 22,
                            "total_amount": {
                                "accommodation_currency": 2.00,
                                "booker_currency": 1.72
                            }
                        }
                    ]
                },
                "total": {
                    "accommodation_currency": 92.00,
                    "booker_currency": 78.95
                }

The products.price response object returns the same information for the price of each product in the order, but provides (under extra_charges) a per-charge breakdown of each charge. For example:

{
...
"products": [
    "id": "xxxxxxxxx_xxxxxxxxx_x_x_x",
        "price": {
            "base": {
                "accommodation_currency": 178.79,
                "booker_currency": 153.40
            },
            "extra_charges": {
                "conditional": [],
                "non-conditional": [
                    {
                        "charge": 21,
                        "mode": "percentage",
                        "percentage": 9.00,
                        "total_amount": {
                            "accommodation_currency": 16.10,
                            "booker_currency": 13.81
                        },
                        "unit_amount": null
                    },
                    ...
                ]
            },
            "total": {
                "accommodation_currency": 194.88,
                "booker_currency": 167.21
            },
        },
    ...

How to display price information on an order preview page

Prices, charges and currency

  • Display the price of the order using the price.total price.
  • Clearly indicate whether the price includes taxes and charges, and whether any additional charges may apply.
  • Display details of each non_conditional charge that applies to the order (using the data from the prices.extra_charges.non-conditional object). Do not combine charges into your own categories.
  • If the booker_currency and accommodation_currency are different:
    • Show the price clearly in both currencies.
    • Clearly state that if the exchange rate changes before the traveller completes the booking, they will pay a different price to the one shown.

For example:

Price Display

Deals

If you display a price that is discounted because a deal is available, you must show details of the deal. For example:

Deals Display

Note that, currently, you cannot obtain deal information from the orders/preview endpoint; you must obtain it from /accommodations/search or /accommodations/availability. (See Deals)

Conditional or incalculable charges

If the order includes either conditional charges, or incalculable non_conditional charges:

  • Show each charge explicitly with an appropriate explanation.
  • Indicate clearly that the price is not the total price.

For example:

Conditional Charges

How to display price information on an order details page

Commissionable Price

Price over which Booking.com would calculate affiliate commission. This price is the sum of net_price and all commissionable extra charges.

  • This price is not the total price as it may not contains all the extra charges.
  • There are no simple rule to explain which charges are commissionable.

Example:

ChargeValueCommissionable
net_price60YES
city_tax10YES
vat20YES
service charge10NO



commissionable_price90
total_price100