Last updated

Check order details

Use the /orders/details/ endpoint to retrieve information about existing orders across all supported travel services — including accommodations, cars, and flights.


/orders/details/

The orders/details endpoint provides access to general information about accommodation and other travel services (such as car rentals) within specific orders, over a defined date range.

You can use this endpoint to:

  • Verify booking, pricing, and payment information.
  • Synchronise order data with internal systems.
  • Retrieve details by ID or within specific date ranges.

How it works

You can query order details using one of several input types. Each input type defines a filtering approach (for example, by creation date, by order ID, or by reservation ID).

Each request must include a currency parameter, and you can optionally include:

  • extras - to request additional information about the order (currently supports payment).
  • services - to limit results to specific verticals (accommodations, cars, or flights).
  • maximum_results - Set the limit on the number of results returned.
  • sort.by - Sort results by creation or update date and specify the direction (ascending/descending).
Important

Note the "services" field is exclusive, hence if you want to retrieve both accommodation and car rental services you should specify the two services: services: ["cars", "accommodations"]

Defining your request

You can request order details using a range of filters:

Input typeDescriptionRequired fields
createdRetrieve orders created within a specific date and time range (maximum 7 days).created, currency
updatedRetrieve orders updated within a specific date and time range (maximum 7 days).updated, currency
startRetrieve orders based on the start date (for example, check-in or pick-up date).start, currency
endRetrieve orders based on the end date (for example, check-out or drop-off date).end, currency
ordersRetrieve one or more orders by their unique order IDs (up to 100).orders, currency
reservationsRetrieve one or more orders by reservation IDs (up to 100).reservations, currency
pageRetrieve the next page of results using a page token from a previous response.page
Date range constraints
  • Orders can only be returned if they were created or updated within 1 year of the call date.
  • The maximum time range for created, updated, start, or end filters is 7 days.
  • Updates are generally reflected in the response shortly after they occur, but it can take up to 2 hours since the order creation.
  • See the Data conventions guide for more details in dates and formats.

Example - Retrieve order details by reservation IDs

Intent: Retrieve details for specific reservations to verify payment and commission.

{
  "currency": "EUR",
  "reservations": [
    "2321873123",
    "4666773123"
  ],
  "sort": {
    "by": "updated",
    "direction": "descending"
  },
  "extras": [
    "payment"
  ]
}

Example - Retrieve all orders created within a date range

Intent: Get all new orders for cars and accommodations created between 1 and 7 September 2025 to sync with an internal CRM.

{
    "created": {
      "from": "2025-09-01T02:00:00+00:00",
      "to": "2025-09-07T02:00:00+00:00"
    },
    "currency": "EUR",
    "maximum_results": 20,
    "sort": {
      "by": "updated",
      "direction": "descending"
    },
    "services": ["cars", "accommodations"],
    "extras": [
      "payment"
    ]
  }'

genius-bulb Use created.from and created.to to build incremental sync logic for systems that regularly update booking data.

Example - Retrieve stayed bookings for loyalty updates

Intent: Get orders with stays completed (end date) between 1 and 7 February 2025 to credit loyalty points.

{
  "end": {
    "from": "2025-02-01",
    "to": "2025-02-07"
  },
  "currency": "EUR",
  "maximum_results": 20,
  "sort": {
    "by": "updated",
    "direction": "descending"
  },
  "extras": [
    "payment"
  ]
}

Handling orders/details responses

A successful response returns a list of matching orders, each including one or more reservations. The fields returned depend on your filters and any requested extras.

Parameter
Description
orderIDUnique identifier for the order.
reservation IDLinked to the travel service the order includes. Each order may have different reservation IDs if multiple services are booked (e.g., accommodation and car rental). This is needed for cancellations or customer service enquiries.
affiliate IDIdentifies the partner so that commission can be attributed.
CurrencyThe currency used for the disclosed amounts.
bookerContaining Personally Identifiable Information (PII) - address, email, name and telephone

commission

Displays the actual commission amount if available, or an estimated value if not.

Note: If an order is cancelled, commission will be returned as 0.

loyalty_rewardDisplays loyalty rewards details, such as amount, eligibility, and fulfilment date. This field is only visible for orders with a loyalty reward.
priceIncludes both the commissionable and total amounts. For more details, refer to the Accommodation pricing section.
statusIndicates whether the order is: booked, cancelled (by accommodation or guest), stayed, or no-show.

The PII fields are only returned if you are authorised to see this information.

Example - Cancelled accommodation reservation

A standard response for a cancelled accommodation order would be:


{
     "id": "xxxxxxxxxxxxxxx",
     "accommodations": {
         "reservation": 1234567890
     },
     "affiliate": 123456,
     "booker": {
         "address": {
             "city": "Amsterdam",
             "country": null
         },
         "email": "xxxxxxx@example.com",
         "name": {
             "first_name": "xxxxxx",
             "last_name": "xxxxxxxxxx"
         },
         "language": "en",
         "platform": "desktop",
         "telephone": "12345678",
         "travel_purpose": "unknown"
     },
     "commission": {
         "actual_amount": 0.00,
         "estimated_amount": null
     },
     "created": "2025-08-25T12:20:30+00:00",
     "currency": "EUR",
     ],
     "price": {
       "commissionable": 0.00,
       "total": 0.00
     },
     "status": "cancelled_by_guest",
     "updated": "2025-08-25T13:42:13+00:00"
},

If an accommodation reservation has been cancelled like in this example, we recommend to:

See the cancellation guide for more information about this use case.

Example - Response with loyalty reward

In case a loyalty reward programme is available, this field will be retrieved.

You can check there the amount and currency, the type of the program, and timelines.

{
  "id": "xxxxxxxxxxxxxxx",
  "accommodations": {
    "reservation": 1234567890
  },
  "affiliate": 123456,
  "booker": {
    "address": {
      "city": "Amsterdam",
      "country": null
    },
    "email": "xxxxxxx@example.com",
    "name": {
      "first_name": "xxxxxx",
      "last_name": "xxxxxxxxxx"
    },
    "language": "en",
    "platform": "desktop",
    "telephone": "12345678",
    "travel_purpose": "unknown"
  },
  "commission": {
    "actual_amount": 17.5,
    "estimated_amount": null
  },
  "created": "2023-08-25T12:20:30+00:00",
  "currency": "EUR",
  "loyalty_reward": [
    {
      "amount": 15,
      "currency": "USD",
      "eligible": true,
      "fulfillment_at": "2023-02-10",
      "fulfillment_by": "partner",
      "loyalty_data": [
        {
          "name": "Email Id",
          "value": "john_doe@booking.com"
        },
        {
          "name": "Loyalty ID",
          "value": "10101010"
        }
      ],
      "type": "point"
    }
  ],
  "price": {
    "commissionable": 180.01,
    "total": 180.01
  },
  "status": "cancelled_by_guest",
  "updated": "2025-08-25T13:42:13+00:00"
}

Considerations

Multi-room statuses

If individual products within an order have different statuses, the "stayed" status takes precedence and is applied to both the accommodation and order statuses.

For example, if one room in an order is marked as "cancelled" while another is marked as "stayed," the "stayed" status will be used for both the accommodation and order.

The status is also displayed in the /orders/details/accommodations endpoint response, both at accommodation and product level.

Handling large orders

If you need to retrieve more than 50,000 orders across all pages, split your request into multiple smaller calls. This ensures the response is manageable.

See the Pagination guide for best practices.

Post-booking tasks

Use the affiliate id, booker details, commission_details, loyalty_reward, price, and status to:

  • Manage cancellations
  • Report commissions to affiliates.
  • Allocate loyalty points or rewards.

Error handling

While the /orders/details endpoint follows general API error conventions, there are several endpoint-specific conditions to be aware of:

Scenario
CauseSuggested Resolution
Empty 200 OK responseNo orders match the request filters.Check that the date range, service types, and other filters correspond to existing data.
400 – Invalid date filtersIllogical or malformed dates (e.g., start_date > end_date)Ensure dates are in ISO 8601 format and logically ordered.
400 – Incompatible service typesMixed or unsupported service types in a single request.Limit to supported service type combinations or query them separately.
403 – Restricted PII dataExpecting guest data without proper authorisation.Confirm PII access has been granted and the proper scopes are used.
404 – Order not foundOrder ID doesn’t exist or isn’t accessible to the account.Make sure the order belongs to your account.
Performance degradationLarge unpaged queries with wide date ranges.Use pagination and segment queries into smaller date intervals.

Travel services details in orders

You can also look at the details of a specific travel service as part of an order.

orders/details/accommodation

Use this endpoint to see all the details of an accommodation reservation.

orders/details/cars

Check all the details of the car rental reservation part of an order.

orders/details/flights

Look at the flight reservation details included in an order.


Curious to know more?