Run order reports
Use the /orders/details endpoint to retrieve detailed information for existing orders across all travel services — including accommodations, cars, flights, attractions and taxis. It provides a single consolidated data source for financial reporting and reconciliation, without needing to query multiple endpoints.
/orders/details/
The orders/details endpoint supports financial reconciliation, attribution tracking, and operational reporting from a single data source, without needing to combine responses from multiple service-specific endpoints.
It returns consolidated order data across travel services, including:
- Pricing and totals.
- Payment and payment status information.
- Commissions and attribution data.
- Loyalty rewards (where applicable)
- Service-specific booking details.
Use this endpoint when you need consistent, cross-service reporting data in a single response.
Use cases
You can use this endpoint to:
| ✓ | Generate consolidated reports across all booked travel services in a single request. |
| ✓ | Run financial reconciliation using pricing, payment, and commission data. |
| ✓ | Syncrhronise order changes directly with your internal systems. |
| ✓ | Validate booking and payment details per order or reservation. |
| ✓ | Track order attribution to analyse specific touchpoints and measure conversion performance. |
You can retrieve orders by providing order IDs, reservation IDs, or supported date range filters, and receive a unified response structure across services.
How it works
Send a POST request using one of these filters plus the requied currency field:
Filter type | Description | ||
|---|---|---|---|
| Identifiers - If you wish to check a specific list of bookings. |
| Date range - Use it for reporting or reconciliation. |
|
- Orders can only be returned if created or updated within 1 year of the request date.
- Maximum allowed range for any date filter is 7 days.
- Updates may take up to 2 hours to appear in the response.
- See the Data conventions guide for correct date/time formats.
Optional fields
You can also include:
extras— Request additional information (Currently supportspayment)services— Limit results to selected travel services.maximum_results— Limit the number of results returned.sort.byandsort.direction— Sort results by creation or update date and specify the direction (ascending/descending).
Theservices field is exclusive — include all travel services you want returned. Example: services: ["cars", "accommodations"]
Examples
Retrieve order details by reservation IDs
Scenario: Retrieve details for specific reservations to verify payment and commission.
{
"currency": "EUR",
"reservations": [
"2321873123",
"4666773123"
],
"sort": {
"by": "updated",
"direction": "descending"
},
"extras": [
"payment"
]
}Retrieve all orders created within a date range
Scenario: Get all new orders for cars and accommodations created between 1 and 7 December 2025 to sync with an internal Customer Relationship Management tool (CRM).
{
"created": {
"from": "2025-12-01T02:00:00+00:00",
"to": "2025-12-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.
See the Order details - use cases for more examples.
Response structure overview
The API returns matching orders in a standardised response format. Each order object includes:
Field | Description |
|---|---|
id | Order identifier |
affiliate | Affiliate ID |
booker |
|
created/ updated | Date when the order was created and last updated. |
commission | Commission values. |
currencies |
|
label (v3.2) | Custom partner string for tracking and attribution. |
| Displays loyalty rewards details, such as amount, eligibility, and fulfilment date. (Only visible for orders with a loyalty reward). |
| Payment-specific details:
(See the Payments section) |
price | Total and commissionable amounts. See Pricing guide |
status | Aggregated order status (booked, cancelled, stayed, no-show, etc) |
start / end | Aggregated service dates. |
| Travel service blocks | Service-specific booking data. |
Minimal response example
{
"request_id": "req_123",
"data": [
{
"id": "880045112233",
"affiliate": 111111,
"status": "booked",
"start": "2026-03-10T08:00:00Z",
"end": "2026-03-12T10:00:00Z",
"currencies": {
"booker": "EUR",
"product": "EUR"
},
"price": {
"total_price": {
"booker_currency": 420,
"product_currency": 420
}
},
"accommodations": [
{
"reservation": "ABC123"
}
]
}
],
"metadata": {
"next_page": null,
"total_results": 1
}
}Travel service specific details
Orders may include multiple travel services if booked together (null if the service has not been booked as part of the order. )
| Travel service | Demand API v3.1 | v3.2 |
|---|---|---|
accommodations | ✓ | ✓ |
cars | ✓ | ✓ |
flights | ✓ | ✓ |
attractions | ✗ | ✓ |
taxis | ✗ | ✓ |
Key parameters
A reservation ID identifies each travel service that is part of the order.
- Each order may have different reservation IDs if multiple services are booked (for example, accommodation and car rental).
- This field is required for cancellations or customer service enquiries.
v3.2 Parameter | Description |
|---|---|
accommodations | Accommodation-specific details:
|
cars | Car rental-specific details:
|
attractions | Attraction-specific details:
|
flights | Flight-specific details:
|
taxis | List of taxi legs with pickup/drop-off times and locations.
|
Example – Attraction reservation details (v3.2)
{
"order_id": "509430129718801",
"attractions": {
"reservation": 567890123,
"name": "Eiffel Tower Guided Tour",
"location": {"city": "Paris", "country": "fr"}
},
"affiliate": 111111,
"booker": {
"address": {"city": "Amsterdam", "country": "nl"},
"email": "janedoe@booking.com",
"name": {"first_name": "Jane", "last_name": "Doe"},
"platform": "desktop",
"telephone": "+100000001",
"language": "en-gb",
"travel_purpose": "leisure"
},
"commission": {"actual_commission_amount": {"booker_currency": 5.0, "product_currency": 6.0}},
"currencies": {"booker": "EUR", "product": "EUR"},
"price": {"commissionable_price": {"booker_currency": 50, "product_currency": 60}, "total_price": {"booker_currency": 55, "product_currency": 66}},
"status": "booked",
"start": "2026-07-10T09:00:00+00:00",
"end": "2026-07-10T12:00:00+00:00",
"created": "2025-11-28T02:00:00+00:00",
"updated": "2025-11-28T02:00:00+00:00"
}Example – Taxi reservation details (v3.2)
Scenario: Retrieve taxi order details including multiple legs.
{
"request_id": "03fr9fz702lmnop12w34x5y6z",
"data": [
{
"id": "709430129718801",
"affiliate": 333333,
"taxis": [
{
"reservation": "TX987654321",
"pickup_location": { "city": "Paris", "country": "fr" },
"dropoff_location": { "city": "Lyon", "country": "fr" },
"start": "2026-07-10T09:00:00+00:00",
"end": "2026-07-10T14:00:00+00:00"
},
{
"reservation": "TX987654322",
"pickup_location": { "city": "Lyon", "country": "fr" },
"dropoff_location": { "city": "Marseille", "country": "fr" },
"start": "2026-07-12T10:00:00+00:00",
"end": "2026-07-12T15:00:00+00:00"
}
],
"booker": {
"name": { "first_name": "Bob", "last_name": "Brown" },
"email": "bob.brown@example.com",
"telephone": "+33123456789",
"language": "fr",
"platform": "mobile",
"travel_purpose": "leisure",
"address": { "city": "Paris", "country": "fr" }
},
"commission": {...},
"currencies": { "booker": "EUR", "product": "EUR" },
"price": {
"commissionable_price": { "booker_currency": 375, "product_currency": 400 },
"total_price": { "booker_currency": 400, "product_currency": 425 }
},
"start": "2026-07-10T09:00:00+00:00",
"end": "2026-07-12T15:00:00+00:00",
"status": "booked",
"created": "2026-02-01T08:00:00+00:00",
"updated": "2026-02-02T10:00:00+00:00"
}
],
"metadata": {...}
}See all travel services examples in Orders details - Use cases guide.
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. |
Post-booking - Specific travel service details
Use each orders/details/*service endpoint for granulated details on a specific travel service so you can perform post-booking tasks such as:
- Managing cancellations or modifications.
- Reporting commissions to affiliates.
- Allocating loyalty points or rewards.
Guides
orders/details/accommodation
Learn how to use this endpoint to retrieve all the details of an accommodation reservation for post-booking flows.
orders/details/cars
Follow this guide to retrieve all the details of a car rental reservation for post-booking tasks.
orders/details/flights
Check how to use this endpoint to retrieve all the details of a flight reservation for post-booking flows.
- Orders details use cases
- Orders — Labels and attribution guide.
- See the Pagination guide for best practices handling large results sets.
- Demand API v3.2 Orders migration guide