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 supportspayment).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).
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 type | Description | Required fields |
|---|---|---|
created | Retrieve orders created within a specific date and time range (maximum 7 days). | created, currency |
updated | Retrieve orders updated within a specific date and time range (maximum 7 days). | updated, currency |
start | Retrieve orders based on the start date (for example, check-in or pick-up date). | start, currency |
end | Retrieve orders based on the end date (for example, check-out or drop-off date). | end, currency |
orders | Retrieve one or more orders by their unique order IDs (up to 100). | orders, currency |
reservations | Retrieve one or more orders by reservation IDs (up to 100). | reservations, currency |
page | Retrieve the next page of results using a page token from a previous response. | page |
- 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"
]
}'
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 |
|---|---|
orderID | Unique identifier for the order. |
reservation ID | Linked 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 ID | Identifies the partner so that commission can be attributed. |
Currency | The currency used for the disclosed amounts. |
booker | Containing Personally Identifiable Information (PII) - address, email, name and telephone |
| 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_reward | Displays loyalty rewards details, such as amount, eligibility, and fulfilment date. This field is only visible for orders with a loyalty reward. |
price | Includes both the commissionable and total amounts. For more details, refer to the Accommodation pricing section. |
status | Indicates 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:
- Call the orders/details/accommodation endpoint to check further details about the applicable cancellation policies, status, etc.
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 | Cause | Suggested Resolution |
|---|---|---|
| Empty 200 OK response | No orders match the request filters. | Check that the date range, service types, and other filters correspond to existing data. |
| 400 – Invalid date filters | Illogical or malformed dates (e.g., start_date > end_date) | Ensure dates are in ISO 8601 format and logically ordered. |
| 400 – Incompatible service types | Mixed or unsupported service types in a single request. | Limit to supported service type combinations or query them separately. |
| 403 – Restricted PII data | Expecting guest data without proper authorisation. | Confirm PII access has been granted and the proper scopes are used. |
| 404 – Order not found | Order ID doesn’t exist or isn’t accessible to the account. | Make sure the order belongs to your account. |
| Performance degradation | Large 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.
- Learn about accommodation pricing and how you can display them in your application.
- Make yourself familiar with the cancellation process checking the Cancellations guide.