Skip to content

Run order reports v3.2

Use the /orders/details endpoint to retrieve reporting and reconciliation data for existing orders across supported travel services from a single endpoint. It provides a consolidated view of order, pricing, payment, commission, attribution, and service-specific booking data without requiring separate requests to each travel service.


/orders/details/

The /orders/details endpoint is designed for reporting, synchronisation, and operational workflows across multiple travel services.

Typical use cases include:

  • Financial reconciliation and reporting.
  • Attribution tracking and performance analysis.
  • Synchronising Booking.com order data with internal systems.
  • Validating booking, payment, and commission information.
  • Retrieving consolidated order information across supported travel services.

Use /orders/details when you need consistent reporting or operational data across multiple travel services in a single response.

When to use this endpoint

Use /orders/details when you need to:

✓Generate consolidated reports across multiple travel services from a single request.
✓Reconcile bookings, payments, and commissions.
✓Synchronise order changes directly with your internal systems.
✓Track attribution using partner labels.
✓Retrieve booking information for one or more existing orders.

If you require detailed post-booking operations for a specific travel service (for example, cancellations or modifications), use the corresponding /orders/details/{service} endpoint instead.


How it works

Call orders/details endpoint using one supported filter type.

Only one filter type can be used per request. Combining identifier filters with date filters (for example orders and created) is not supported.

Supported filters

Filter type
Description
IdentifiersRetrieve specific orders or reservations.
  • orders (max 100)
  • reservations (max 100)
Date-based reportingRetrieve orders matching reporting windows.
  • created (max 7 days)
  • updated (max 7 days)
  • start (checkin, pickup)
  • end (checkout, dropoff)

Date filter limits

  • Date ranges cannot exceed 7 days.
  • created and updated can retrieve orders from the previous 12 months.
  • start and end can retrieve orders up to 1 year in the past and 500 days in the future.
  • Updates may take up to 2 hours to become available.
  • Dates must use ISO 8601 format. See the Data conventions guide for details.

Required parameters

All requests require:

  • currency - three-letter ISO 4217 code.

The only exception is requests using page, where the pagination token already preserves the original query context.

See Conventions and Pagination guides for details.

Optional parameters

You can also include:

  • extras — Request additional information. Currently supports payment.
  • services — Restrict results to one or more travel services.
  • maximum_results — Limit the number of results returned for date-based requests.
  • sort.by and sort.direction — Sort results by created or updated, in ascending or descending order.

Filtering by travel services

The services parameter acts as an inclusion filter. Use the optional services field to limit results to specific travel services, for example:

"services": ["accommodations", "cars"]

Default behaviour when services is omitted:

The default behaviour depends on the filter type:

  • Identifier-based requests (orders or reservations): if services is omitted, only accommodation orders are returned.
  • Date-based requests (created, updated, start, or end): if services is omitted, all travel services available to your account are returned.

To ensure predictable behaviour, explicitly specify services whenever you want to control which travel services are included.

Important notes for developers

  • Do not assume ID-based requests return all travel services.
  • Use date-based filters when building:
    • dashboards.
    • reconciliation pipelines.
    • CRM synchronisation.
  • Always explicitly set services when you need a reduced dataset in reporting flows.
  • Expect different payload shapes depending on the specific travel service returned (e.g., accommodations vs cars).

Common use cases

Retrieve specific reservations

Scenario: Retrieve payment, pricing, or commission details for known reservations.

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

Retrieve recently created orders

Scenario: Synchronise newly created accommodation and car bookings for a certain period.

{
    "created": {
      "from": "2025-12-01T02:00:00+00:00",
      "to": "2025-12-07T02:00:00+00:00"
    },
    "currency": "EUR",
    "services": ["cars", "accommodations"],
    "extras": [
      "payment"
    ]
  }

Retrieve orders ending within a date range

Scenario: Retrieve orders across all travel services available to the partner that end between 5 and 8 June 2026, for synchronisation with an internal CRM system.

{
    "end": {
      "from": "2026-06-05",
      "to": "2026-06-08"
    },
    "currency": "EUR",
    "sort": {
      "by": "updated",
      "direction": "descending"
    },
    "extras": [
      "payment"
    ]
  }

Building synchronisation jobs

To build incremental sync logic for regularly updating systems:

  • Use created.from and created.to to retrieve newly created orders.
  • Use updated with small rolling windows (for example, every 30–60 minutes) to detect changes to existing orders.
  • Use pagination (metadata.next_page) when processing large result sets.

See the Order details - use cases for more examples.


Response overview

Each returned order contains common reporting fields regardless of travel service.

Field
Description
idOrder identifier
affiliateAffiliate ID
booker
  • Containing Personally Identifiable Information (PII) (returned only if authorised)
  • address, email, name and telephone, language, platform and travel_purpose.
created/ updatedDate when the order was created and last updated.
commissionCommission details (actual and estimated).
currencies
  • booker - Currency shown to the booker.
  • product - Currency in which the product is priced.
labelCustom partner string for tracking and attribution.
loyalty_rewardDisplays loyalty rewards details (if applicable), such as amount, eligibility, and fulfilment date.
paymentPayment details (only when extras=["payment"]).
priceTotal and commissionable amounts. See Pricing guide
statusOverall order status. Possible values depend on the travel service.
start / endAggregated service dates.
Travel service blocksService-specific booking data.
metadata.next_pageToken used to retrieve the next page via the page filter.

Payment information

When extras includes payment, the response may contain:

  • method
  • timing
  • paid → completed transactions.
  • pending→ upcoming or scheduled transactions.

Accommodation payments may also include:

  • authorisation_form
  • receipt_url

See the Payments section for details

Travel service objects

Each returned order contains the travel-service object corresponding to that order. Other travel-service fields are returned as null.

Possible service objects include:

  • accommodations
  • cars
  • flights
  • attractions
  • taxis (transfers from v3.3)

Supported travel services

Travel service
v3.1v3.2Key information
accommodations✓✓Includes reservation details, property information, guest counts, inventory type, and stay probability.
cars✓✓Includes reservation information, pickup and drop-off locations, and payment timing.
flights✓✓Includes reservation information and itinerary details, including departure and arrival airports and times.
attractions✗✓Includes reservation information together with attraction name and location.
taxis✗✓Taxi orders may contain multiple legs.

Taxi orders

Taxi orders may contain multiple legs.

  • The order-level price, start, end, and status are aggregated across all legs.
  • All legs belonging to the same taxi order share the same reservation identifier.
  • Each leg has its own leg identifier and lifecycle.
  • If different legs have different statuses, the order-level status may be unknown.

For accurate tracking and reporting, always inspect taxis[].status and the individual taxi legs.

Minimal response example

{
  "request_id": "req_123",
  "data": [
    {
      "id": "880045112233",
      "affiliate": 111111,
      "status": "booked",
      "start": "2026-12-10T08:00:00Z",
      "end": "2026-12-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
  }
}

Example – Attraction reservation details

{
  "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

{
  "taxis": [
    {
      "leg": "607244787653565",
      "reservation": "916957580",
      "status": "booked",
      "start": "2026-06-05T09:00:00Z",
      "end": "2026-06-05T10:15:00Z",
      "pickup_location": {
        "address": "Amstel 51, 1018 EH Amsterdam, Netherlands",
        "city": "Amsterdam",
        "country": "nl"
      },
      "dropoff_location": {
        "address": "Stationsplein 9, 3511 CE Utrecht",
        "city": "Utrecht",
        "country": "nl"
      }
    },
    {
      "leg": "607244787653566",
      "reservation": "916957580",
      "status": "cancelled",
      "start": "2026-06-08T16:00:00Z",
      "end": "2026-06-08T17:15:00Z",
      "pickup_location": {
        "address": "Stationsplein 9, 3511 CE Utrecht",
        "city": "Utrecht",
        "country": "nl"
      },
      "dropoff_location": {
        "address": "Amstel 51, 1018 EH Amsterdam, Netherlands",
        "city": "Amsterdam",
        "country": "nl"
      }
    }
  ]
}

See all travel services examples in Orders details - Use cases guide.


Error handling

In addition to the general API error conventions, consider the following conditions when using /orders/details:

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 filtersInvalid or malformed date ranges, for example when to is earlier than from.Ensure dates are in ISO 8601 format and logically ordered.
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 issuesLarge result sets.Queries returning many orders may require pagination. Use metadata.next_page to retrieve subsequent pages.

When to use service-specific endpoints

Use /orders/details for reporting, reconciliation, and synchronisation.

Use /orders/details/{service} endpoints instead, when you need travel-service-specific functionality, including:

  • Managing cancellations.
  • Processing modifications.
  • Retrieving detailed booking information.
  • Supporting customer service workflows.
  • Performing service-specific post-booking operations.

These endpoints provide additional information specific to each travel service and are recommended for operational booking management.

Travel service details guides for post-booking tasks

orders/details/accommodations

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.


Curious to know more?