# Create an order

Use this endpoint to create and confirm an order using a valid order token and payment information when required by the selected offer.

Endpoint: POST /orders/create
Version: 3.2-Beta
Security: BearerAuth

## Header parameters:

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

## Request fields (application/json):

  - `accommodation` (object, required)
    Additional information related to the accommodation order. Only one travel service object can be included in a request.

  - `accommodation.label` (string)
    Custom string defined by the partner to track attribution throughout the booking journey. Use a consistent, parseable format (e.g. brand-market_platform-channel_campaign) to encode campaign, traffic source, platform, language, or other identifiers. Recommended for accurate reporting and analytics. See the [Labels and attributions guide](/demand/docs/orders-api/labels-attributions) for more details.

  - `accommodation.products` (array)
    List of accommodation products returned in /orders/preview that should be included in this order.

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

  - `accommodation.products.bed_configuration` (string)
    Bed configuration ID to select for this product. `Please note that it can not be guaranteed that the selected bed_configuration will be available.`

  - `accommodation.products.guests` (array)
    The guest details for this product.

  - `accommodation.products.guests.email` (string, required)
    The email address of the guest.

  - `accommodation.products.guests.name` (string, required)
    The name of the guest.

  - `accommodation.remarks` (object)
    Optional remarks from the guest.

  - `accommodation.remarks.estimated_arrival_time` (object)
    Estimated arrival time of the guests.

  - `accommodation.remarks.estimated_arrival_time.hour` (integer, required)
    Approximate hour of arrival to the hotel. Allowed values are from 0 to 23. This time should be within the hotel reception hours, or will be ignored otherwise with a warning will be appended to special_requests.

  - `accommodation.remarks.estimated_arrival_time.next_day` (boolean)
    Set this to true, if the hour selected is for the day after checkin.

  - `accommodation.remarks.special_requests` (string)
    Optional comments or requests from the guest. Special requests cannot be guaranteed – but the property will do its best to meet your needs.

  - `booker` (object, required)
    The booker's information for an accommodation order.

  - `booker.address` (object, required)
    The booker's address to be used for creating this order. All fields of this object are required if the /accommodations/details endpoint indicates that the booker's address is necessary by returning booker_address_required=true.

  - `booker.address.address_line` (string)
    The details of this address.

  - `booker.address.city` (string)
    The city for this address.

  - `booker.address.country` (string, required)
    A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling common/locations/countries.
    Example: nl

  - `booker.address.post_code` (string)
    Post code for this address.

  - `booker.company` (string)
    The booker's company name.

  - `booker.email` (string, required)
    The booker's email address.

  - `booker.language` (string)
    A [IETF language tag code](https://en.wikipedia.org/wiki/IETF_language_tag) that uniquely identifies a supported human language or dialect. **Note:** Demand API only accepts lowercase for the language codes. Examples: "nl" for Dutch/Nederlands or "en-us" for English (US). To retrieve the full list of supported languages, call the `/common/languages` endpoint in the same Demand API version you are using.
    Example: en-us

  - `booker.name` (object, required)
    The name of the booker.

  - `booker.name.first_name` (string, required)

  - `booker.name.last_name` (string, required)

  - `booker.telephone` (string, required)
    The booker's telephone number.

  - `order_token` (string, required)
    Token returned by /orders/preview containing the data required to create the order.

  - `payment` (object, required)
    Payment related information for the order.

  - `payment.airplus` (object)
    All information related to airplus payment. `This is required if airplus is selected as payment method.`

  - `payment.airplus.dbi` (object)
    Descriptive billing information(dbi) details to pass to AirPlus.

  - `payment.airplus.dbi.accounting_code` (string)
    Accounting code to pass in descriptive billing information.

  - `payment.airplus.dbi.accounting_unit` (string)
    Accounting unit to pass in descriptive billing information.

  - `payment.airplus.dbi.cost_centre` (string)
    Cost centre to pass in descriptive billing information.

  - `payment.airplus.dbi.department_code` (string)
    Department code to pass in descriptive billing information.

  - `payment.airplus.dbi.employee_number` (string)
    Employee number to pass in descriptive billing information.

  - `payment.airplus.dbi.internal_account` (string)
    Internal account to pass in descriptive billing information.

  - `payment.airplus.dbi.order_number` (string)
    Order number to pass in descriptive billing information.

  - `payment.airplus.dbi.project_number` (string)
    Project number to pass in descriptive billing information.

  - `payment.airplus.number` (string, required)
    12 digit Airplus Number.

  - `payment.business_information` (object)
    All business related information for billing and authorisation form. This must be included for the payments that require authorisation form.

  - `payment.business_information.authorisation_form` (object)
    Information that is relevant for generating an authorisation form.

  - `payment.business_information.authorisation_form.chargeable_items` (array)
    Items which can be charged using a provided virtual credit card.

  - `payment.business_information.billing` (object)
    All information to be used in the invoice.

  - `payment.business_information.billing.address` (object)
    The address to bill this reservation

  - `payment.business_information.billing.address.address_line` (string)
    The details of this address.

  - `payment.business_information.billing.address.city` (string)
    The city for this address.

  - `payment.business_information.billing.address.post_code` (string)
    Post code for this address.

  - `payment.business_information.billing.email` (string, required)
    Email to send the invoice to.

  - `payment.business_information.billing.vat` (string, required)
    VAT number to be used in the invoice.

  - `payment.business_information.company` (string, required)
    Company that will issue an authorisation form for the virtual credit card and used in the invoice.

  - `payment.card` (object)
    Card information for executing the payment.

  - `payment.card.authentication` (object)
    Card authentication information for executing the payment.

  - `payment.card.cardholder` (string, required)
    Name of the cardholder.

  - `payment.card.cvc` (string, required)
    3 or 4 digits card validation code (CVC) of this card.

  - `payment.card.expiry_date` (string, required)
    Card expiry date in YYYY-MM format.

  - `payment.card.number` (string, required)
    Payment card number.

  - `payment.include_receipt` (boolean)
    Set to true to include a payment receipt URL in the response when available.

  - `payment.method` (string)
    The payment method to be used for this order.
    Enum: "airplus", "card", "wallet"

  - `payment.timing` (string, required)
    Payment timing for the order. Use one of the values returned in the corresponding /orders/preview response. Supported values depend on the travel service and payment configuration.
    Enum: "pay_at_pickup", "pay_at_the_property", "pay_online_later", "pay_online_now", "pay_partial_online_now"

  - `car` (object, required)
    Additional information related to the car order. Only one travel service object can be included in a request.

  - `car.driver` (object, required)
    Driver related information for the order.

  - `car.driver.address` (object)
    Driver’s address.

  - `car.driver.address.address_line1` (string, required)
    Driver’s address line 1.

  - `car.driver.address.address_line2` (string)
    Driver’s address line 2.

  - `car.driver.address.city` (string, required)
    Driver’s city.

  - `car.driver.address.country` (string, required)
    Driver’s country.

  - `car.driver.address.postcode` (string, required)
    Driver’s postcode.

  - `car.driver.email` (string, required)
    Driver’s email address.

  - `car.driver.first_name` (string, required)
    Driver’s first name.

  - `car.driver.last_name` (string, required)
    Driver’s last name.

  - `car.driver.telephone` (string, required)
    Driver’s telephone number.

  - `car.driver.title` (string, required)
    Driver’s honorific or title, such as “Mr”, “Ms”, “Mrs”, or “Dr”.

  - `car.label` (string)
    Custom string defined by the partner to track attribution throughout the booking journey. Use a consistent, parseable format (e.g. brand-market_platform-channel_campaign) to encode campaign, traffic source, platform, language, or other identifiers. Recommended for accurate reporting and analytics. See the Labels and attributions guide for more details.

  - `booker` (object, required)
    The booker's information for a car order.

  - `booker.address` (object)
    The booker's address for a car rental order. This property may be omitted only for an eligible pay_at_pickup offer where the selected offer explicitly returns credit_card_required=false, the accepted price has no online payment amounts, and the payment object is omitted. When provided, all address fields are required.

  - `payment` (object, required)
    Payment information for a car rental order. Omit this object only when the selected offer is pay at pickup, has no amount payable online and explicitly returns `credit_card_required=false`. If `credit_card_required=true`, payment and card details are required. Whether payment is required is determined by the selected Cars offer and the accepted price in the order token; `payment.timing` does not override that payment flow.

  - `payment.method` (string, required)
    Payment method for the car rental order. Cars orders that require payment details currently support card payment.
    Enum: "card"

## Response 200 fields (application/json):

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

  - `data` (any)

  - `data.order` (string)
    ID for this order.

  - `data.accommodation` (object, required)
    All accommodation related information for this order.

  - `data.accommodation.pincode` (string)
    Pincode for this accommodation order.

  - `data.accommodation.reservation` (string)
    Reservation ID for this accommodation order.

  - `data.accommodation.third_party_inventory` (object)

  - `data.accommodation.third_party_inventory.checkin_number` (string)
    The number required at the time of check-in. It allows guests to confirm their order at the accommodation.
    Example: 473026811

  - `data.accommodation.third_party_inventory.confirmation_number` (string)
    The confirmation number, when used in conjunction with the pincode, helps verify the customer's order and facilitates efficient support during inquiries or troubleshooting.
    Example: 12365478936925814787

  - `data.payment` (object)
    All payment related information for this order.

  - `data.payment.authorisation_form_url` (string)
    Link to a virtual credit card''s authorisation form, valid for 7 minutes from issue. `This will only the added if the request has authorisation_form.`
    Example: https://secure-admin.booking.com/airplus_auth_form_pdf.html?token=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lang=en

  - `data.payment.receipt_url` (string)
    Link to the payment receipt of the order. `This will only be added if include_receipt is true.`
    Example: https://secure.booking.com/payment_receipt.html?bn=0000000000&pincode=0000&lang=en

  - `data.car` (object, required)
    All car rental related information for this order. This field is only present for car rental orders.

  - `data.car.reservation_id` (string)
    The reservation ID (booking reference) for this car rental order. Use this identifier to retrieve the full, up-to-date booking details and status via the `/orders/details/cars/live` endpoint.
    Example: 89423719

  - `data.car.status` (string)
    This endpoint always returns "Processing", indicating that the booking request has been accepted and is being processed asynchronously. Retrieve the order details using /orders/details/cars/live to obtain its latest status.
    Enum: "Processing"

## Response 400 fields (application/json):

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

  - `errors` (array, required)

  - `errors.id` (string, required)

  - `errors.message` (string, required)

## Response 409 fields (application/json):

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

  - `errors` (array, required)

  - `errors.id` (string, required)

  - `errors.message` (string, required)

  - `errors.reservation` (string)
    The reservation ID associated with the duplicated request. Only returned when a reservation already exists.

## Response 500 fields (application/json):

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

  - `errors` (array, required)

  - `errors.id` (string, required)

  - `errors.message` (string, required)

