# Preview an order

This endpoint returns the total final price with final charges, as well as the price breakdown and payment/cancellation policies for each product passed in the input.

Endpoint: POST /orders/preview
Version: 3.1
Security: BearerAuth

## Header parameters:

  - `X-Affiliate-Id` (integer, required)
    Include here your Affiliate identifier number

## Request fields (application/json):

  - `booker` (object, required)
    The booker's information.

  - `booker.country` (string, required)
    The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.

  - `booker.platform` (string, required)
    The booker platform for showing the platform based deals and prices.
    Enum: "android", "desktop", "ios", "mobile", "tablet"

  - `booker.travel_purpose` (string)
    The travel purpose of the booker.
    Enum: "business", "leisure"

  - `booker.user_groups` (array)
    The user groups that the booker is a member of.
    Enum: "authenticated"

  - `currency` (string)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.
    Example: "EUR"

  - `accommodation` (object, required)
    Input parameter with the checkin and checkout date and all the accommodation products to be ordered.

  - `accommodation.id` (integer)
    A signed integer number that uniquely identifies an accommodation property. The full list can be obtained by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).

  - `accommodation.checkin` (string)
    The checkin date. Must be within 500 days in the future and in the format yyyy-mm-dd.

  - `accommodation.checkout` (string)
    The checkout date. Must be later than {checkin}. Must be between 1 and 90 days after {checkin}. Must be within 500 days in the future and in the format yyyy-mm-dd.

  - `accommodation.products` (array)

  - `accommodation.products.id` (string)
    Unique ID of the product.

  - `accommodation.products.allocation` (object)
    The exact allocation of guests to a room.

  - `accommodation.products.allocation.children` (array)
    The children ages for this room.

  - `accommodation.products.allocation.number_of_adults` (integer, required)
    The number of adults for this room.

## Response 200 fields (application/json):

  - `request_id` (string)
    Uniquely identifies the request. Please provide this identifier when contacting support.

  - `data` (object)

  - `data.accommodation` (object)
    The products to order related to an accommodation

  - `data.accommodation.id` (integer)
    A signed integer number that uniquely identifies an accommodation property. The full list can be obtained by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).

  - `data.accommodation.currency` (object)

  - `data.accommodation.currency.accommodation` (string)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.
    Example: "EUR"

  - `data.accommodation.currency.booker` (string)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.
    Example: "EUR"

  - `data.accommodation.general_policies` (object)

  - `data.accommodation.general_policies.payment` (object)

  - `data.accommodation.general_policies.payment.pay_online_now` (object,null)

  - `data.accommodation.general_policies.payment.pay_online_now.dates` (array)
    Schedule specifying the instalments for paying the order for the "pay_online_now" option. For each,entry in the schedule, a charge will be made at the time of that entry.

  - `data.accommodation.general_policies.payment.pay_online_now.dates.at` (string)
    The date at which this instalment will be charged.

  - `data.accommodation.general_policies.payment.pay_online_now.dates.price` (object)
    The amount charged in this instalment.

  - `data.accommodation.general_policies.payment.pay_online_now.dates.price.accommodation_currency` (number)

  - `data.accommodation.general_policies.payment.pay_online_now.dates.price.booker_currency` (number)

  - `data.accommodation.general_policies.payment.pay_online_now.method_required` (boolean)
    Whether a payment method is required for this payment timing.

  - `data.accommodation.general_policies.payment.pay_online_now.methods` (object,null)
    The payment methods available for the payment timing selected.

  - `data.accommodation.general_policies.payment.pay_online_now.methods.airplus` (boolean)
    Whether airplus can be used as a payment method for this order.

  - `data.accommodation.general_policies.payment.pay_online_now.methods.cards` (array)
    The cards available to pay.

  - `data.accommodation.general_policies.payment.pay_online_now.methods.wallet` (boolean)
    Whether wallet can be used as a payment method for this order.

  - `data.accommodation.general_policies.payment.pay_online_later` (object,null)

  - `data.accommodation.general_policies.payment.pay_online_later.dates` (array)
    Schedule specifying the instalments for paying the order for this product for the "pay_online_later" option.  For each entry in the schedule, a charge will be made at the time of that entry.

  - `data.accommodation.general_policies.payment.pay_online_later.dates.at` (string)
    The date at which this instalment will be charged.

  - `data.accommodation.general_policies.payment.pay_online_later.dates.price` (object)
    The amount charged in this instalment.

  - `data.accommodation.general_policies.payment.pay_online_later.dates.price.accommodation_currency` (number)

  - `data.accommodation.general_policies.payment.pay_online_later.dates.price.booker_currency` (number)

  - `data.accommodation.general_policies.payment.pay_online_later.method_required` (boolean)
    Whether a payment method is required for this payment timing.

  - `data.accommodation.general_policies.payment.pay_online_later.methods` (object,null)
    The payment methods available for the payment timing selected.

  - `data.accommodation.general_policies.payment.pay_online_later.methods.airplus` (boolean)
    Whether airplus can be used as a payment method for this order.

  - `data.accommodation.general_policies.payment.pay_online_later.methods.cards` (array)
    The cards available to pay.

  - `data.accommodation.general_policies.payment.pay_online_later.methods.wallet` (boolean)
    Whether wallet can be used as a payment method for this order.

  - `data.accommodation.general_policies.payment.pay_at_the_property` (object,null)

  - `data.accommodation.general_policies.payment.pay_at_the_property.dates` (array)
    Schedule specifying the instalments for paying the order for this product for the "pay_at_the_property" option.  For each entry in the schedule, a charge will be made at the time of that entry.

  - `data.accommodation.general_policies.payment.pay_at_the_property.dates.at` (string)
    The date at which this instalment will be charged.

  - `data.accommodation.general_policies.payment.pay_at_the_property.dates.price` (object)
    The amount charged in this instalment.

  - `data.accommodation.general_policies.payment.pay_at_the_property.dates.price.accommodation_currency` (number)

  - `data.accommodation.general_policies.payment.pay_at_the_property.dates.price.booker_currency` (number)

  - `data.accommodation.general_policies.payment.pay_at_the_property.method_required` (boolean)
    Whether a payment method is required for this payment timing.

  - `data.accommodation.general_policies.payment.pay_at_the_property.methods` (object,null)
    The payment methods available for the payment timing selected.

  - `data.accommodation.general_policies.payment.pay_at_the_property.methods.airplus` (boolean)
    Whether airplus can be used as a payment method for this order.

  - `data.accommodation.general_policies.payment.pay_at_the_property.methods.cards` (array)
    The cards available to pay.

  - `data.accommodation.general_policies.payment.pay_at_the_property.methods.wallet` (boolean)
    Whether wallet can be used as a payment method for this order.

  - `data.accommodation.price` (object)
    The price components of all the products selected summed

  - `data.accommodation.price.base` (object)
    The sum base price of all products selected. Does not include any extra charges.

  - `data.accommodation.price.base.accommodation_currency` (number)

  - `data.accommodation.price.base.booker_currency` (number)

  - `data.accommodation.price.chargeable_online` (object)
    The price that will be charged by Booking.com when online payments are used. This field does not apply to the "pay_at_the_property" timing.

  - `data.accommodation.price.chargeable_online.accommodation_currency` (number)

  - `data.accommodation.price.chargeable_online.booker_currency` (number)

  - `data.accommodation.price.total` (object)
    The total sum price. Includes all extra charges of all products.

  - `data.accommodation.price.total.accommodation_currency` (number)

  - `data.accommodation.price.total.booker_currency` (number)

  - `data.accommodation.price.extra_charges` (any)
    The sum of charges for all products selected, grouped by charge type.

  - `data.accommodation.products` (array)

  - `data.accommodation.products.id` (string)
    Unique ID of the product.

  - `data.accommodation.products.bundle` (integer)
    The bundle ID of the product comprising of value added products.

  - `data.accommodation.products.deal` (object,null)
    This specifies the deal tagging for the product.

  - `data.accommodation.products.deal.discount_percentage` (integer)
    Discount percentage of the applied deal.

  - `data.accommodation.products.deal.public_price` (number)
    Original price of this product, before applying any discounts.

  - `data.accommodation.products.deal.tags` (array)
    The tags of all the applied deals.
    Enum: "black_friday", "limited_time_deal", "logged_in_deal", "mobile_rate", "seasonal_deal"

  - `data.accommodation.products.inventory` (object)

  - `data.accommodation.products.inventory.third_party` (boolean)
    Boolean value is "true" if the product is facilitated by a Booking.com partner company and "false" otherwise.

  - `data.accommodation.products.inventory.type` (string)
    Type of inventory - either net or sell rates.
    Enum: "net", "sell"

  - `data.accommodation.products.policies` (object)
    The policies for this product.

  - `data.accommodation.products.policies.cancellation` (array)
    The cancellation policy schedule for this product.

  - `data.accommodation.products.policies.cancellation.from` (any)
    The time from which this cancellation fee applies. now means from booking time.

  - `data.accommodation.products.policies.cancellation.price` (object)
    The cancellation fee.

  - `data.accommodation.products.policies.cancellation.price.accommodation_currency` (number)

  - `data.accommodation.products.policies.cancellation.price.booker_currency` (number)

  - `data.accommodation.products.policies.meal_plan` (object)
    The meal plan policy for this product.

  - `data.accommodation.products.policies.meal_plan.meals` (array)
    The meals included in the meal plan.
    Enum: "breakfast", "dinner", "lunch"

  - `data.accommodation.products.policies.meal_plan.plan` (string)
    The meal plan included in this product.
    Enum: "all_inclusive", "breakfast_included", "full_board", "half_board", "no_plan"

  - `data.accommodation.products.price` (object)
    The price components of this product. 'base' and 'extra_charges' are returned only when explicitly requested (via 'extras=extra_charges').

  - `data.accommodation.products.price.base` (object)
    The base price. It does not include any extra charges.

  - `data.accommodation.products.price.base.accommodation_currency` (number)

  - `data.accommodation.products.price.base.booker_currency` (number)

  - `data.accommodation.products.price.chargeable_online` (object)
    The price that will be charged by Booking.com when online payments are used. This field does not apply to the "pay_at_the_property" timing.

  - `data.accommodation.products.price.chargeable_online.accommodation_currency` (number)

  - `data.accommodation.products.price.chargeable_online.booker_currency` (number)

  - `data.accommodation.products.price.extra_charges` (object)
    The charge breakdown. Includes taxes and fees.

  - `data.accommodation.products.price.extra_charges.conditional` (array)
    Charges that might apply under a specific condition.

  - `data.accommodation.products.price.extra_charges.conditional.charge` (integer)
    A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling accommodations/constants.

  - `data.accommodation.products.price.extra_charges.conditional.condition` (integer,null)
    A signed integer number that uniquely identifies the condition ID. Find the full list in the Pricing guidelines.

  - `data.accommodation.products.price.extra_charges.conditional.mode` (string)
    The mode of this charge. Determines how the price is calculated.
    Enum: "calculated_amount", "percentage", "per_day", "per_night", "per_person_per_day", "per_person_per_night", "per_person_per_stay", "per_stay"

  - `data.accommodation.products.price.extra_charges.conditional.percentage` (number,null)
    The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.

  - `data.accommodation.products.price.extra_charges.conditional.total_amount` (object)
    The total price for this charge.

  - `data.accommodation.products.price.extra_charges.conditional.total_amount.accommodation_currency` (number)

  - `data.accommodation.products.price.extra_charges.conditional.total_amount.booker_currency` (number)

  - `data.accommodation.products.price.extra_charges.conditional.unit_amount` (object,null)
    The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'.

  - `data.accommodation.products.price.extra_charges.conditional.unit_amount.accommodation_currency` (number)

  - `data.accommodation.products.price.extra_charges.conditional.unit_amount.booker_currency` (number)

  - `data.accommodation.products.price.extra_charges.non_conditional` (array)
    All non-conditional charges that will necessarily be paid

  - `data.accommodation.products.price.extra_charges.non_conditional.charge` (integer)
    A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling accommodations/constants.

  - `data.accommodation.products.price.extra_charges.non_conditional.chargeable_online` (boolean)
    Whether this charge is chargeable online or not. Not applicable to "pay_at_the_property" timing.

  - `data.accommodation.products.price.extra_charges.non_conditional.mode` (string)
    The mode of this charge. Determines how the price is calculated.
    Enum: "calculated_amount", "incalculable", "percentage", "per_day", "per_night", "per_person_per_day", "per_person_per_night", "per_person_per_stay", "per_stay"

  - `data.accommodation.products.price.extra_charges.non_conditional.percentage` (number,null)
    The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.

  - `data.accommodation.products.price.extra_charges.non_conditional.total_amount` (object)
    The total price for this charge.

  - `data.accommodation.products.price.extra_charges.non_conditional.total_amount.accommodation_currency` (number)

  - `data.accommodation.products.price.extra_charges.non_conditional.total_amount.booker_currency` (number)

  - `data.accommodation.products.price.extra_charges.non_conditional.unit_amount` (object,null)
    The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'.

  - `data.accommodation.products.price.extra_charges.non_conditional.unit_amount.accommodation_currency` (number)

  - `data.accommodation.products.price.extra_charges.non_conditional.unit_amount.booker_currency` (number)

  - `data.accommodation.products.price.total` (object)
    The total price. Includes all extra charges.

  - `data.accommodation.products.price.total.accommodation_currency` (number)

  - `data.accommodation.products.price.total.booker_currency` (number)

  - `data.accommodation.products.room` (number,null)
    A signed long number that uniquely identifies an accommodation property room. The full list can be obtained by calling [accommodations/details](#/accommodations/details).

  - `data.accommodation.products.third_party_inventory` (boolean)
    Boolean value is "true" if the product is facilitated by a Booking.com partner company and "false" otherwise.

  - `data.accommodation.products.occupancy_mismatch` (object,null)
    Details any mismatch between the requested occupancy and the product's capacity. 
-When one or more guests cannot be accommodated, the object contains those that can be accommodated (allocated) and those that cannot (unallocated). 
-If all requested guests fit, the object is null.
    Example: {"allocated":{"number_of_adults":1,"children":null},"unallocated":{"number_of_adults":1,"children":null}}

  - `data.accommodation.products.occupancy_mismatch.allocated` (object, required)
    The guests from the original request that the product can accommodate.
    Example: {"number_of_adults":1,"children":null}

  - `data.accommodation.products.occupancy_mismatch.allocated.number_of_adults` (integer, required)
    The number of adults.
    Example: 1

  - `data.accommodation.products.occupancy_mismatch.allocated.children` (array,null, required)
    The ages of the children. Null or absent if no children fit.

  - `data.accommodation.products.occupancy_mismatch.unallocated` (object, required)
    The guests from the original request that could not be accommodated by this product.
    Example: {"number_of_adults":1,"children":null}

  - `data.accommodation.products.occupancy_mismatch.unallocated.number_of_adults` (integer, required)
    The number of adults.
    Example: 1

  - `data.accommodation.products.occupancy_mismatch.unallocated.children` (array,null, required)
    The ages of the children. Null or absent if no children fit.

  - `data.order_token` (string)
    A token containing the necessary data to be used on subsequent requests to [orders/create].


