Skip to content

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 enables:

  • Financial reconciliation and reporting.
  • Attribution tracking and analysis.
  • Operational monitoring and system synchronisation 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 details and transaction status.
  • 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.
Synchronise 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

Call the orders/details endpoint using one of the supported filter types.

You must provide only one filter type per request. Combining filters (for example, created + orders) is not supported.

Supported filters

Filter type
Description
Identifiers - If you wish to check a specific list of orders.
  • orders (max 100)
  • reservations (max 100)
Date range - Use it for reporting or reconciliation.
  • created (max 7 days)
  • updated (max 7 days)
  • start (checkin, pickup)
  • end (checkout, dropoff)
Pagination
  • Retrieve the next page of results:
  • page — use the token from metadata.next_page.
Date range constraints
  • 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.

Required fields

  • All requests require:
    • currency — three-letter ISO 4217 code (e.g. EUR, USD)
  • Exception - page requests do not require currency.

Optional fields

You can also include:

  • extras — Request additional information (Currently supports payment)
  • services — Limit results to selected travel services.
  • maximum_results — Limit the number of results returned.
  • sort.by and sort.direction — Sort results by creation or update date and specify the direction (ascending/descending).
Services filter is exclusive

The services 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"
    ]
  }

Syncing order data

To build incremental sync logic for regularly updating systems:

  • Use created.from and created.to retrieve newly created orders.
  • Use the updated filter with small rolling windows (e.g. every 30–60 minutes) to keep your system in sync with Booking.com changes.

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
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.
label (v3.2)Custom 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
statusAggregated order status (booked, cancelled, no-show, etc)
start / endAggregated service dates.
Travel service blocksService-specific booking data see below.
metadata.next_pageToken used to retrieve the next page via the page filter.

Payment details

The payment object is returned only when requested via extras=["payment"].

It includes:

  • method → airplus, card, wallet.
  • timingpay_at_the_property, pay_online_later, pay_online_now for accommodation.
  • paid → completed transactions.
  • pending→ upcoming or scheduled transactions.

Accommodation payments may also include:

  • authorisation_form
  • receipt_url

(See the [Payments section](/demand/docs/payments/overview for details)


Travel service details

Each order may include multiple services if booked together. Each service block (accommodations, cars, flights, attractions, taxis) is returned as:

  • An object if present.
  • null if the service has not been booked as part of the order.

Supported travel services

Travel servicev3.1v3.2
accommodations
cars
flights
attractions
taxis

Key travel service fields

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
accommodationsAccommodation-specific details:
  • reservation → reservation ID
  • name, location (address, city, country)
  • number_of_guests
  • inventory (third_party, type) → net or sell rates
  • stay_probability → optional likelihood score (0 = high cancellation risk, 1 = high stay probability)
carsCar rental-specific details:
  • reservation → reservation ID
  • pickup_location, dropoff_location (address, city, country)
  • payment.timing → indicates whether payment is online or at pickup.
attractionsAttraction-specific details:
  • reservation → reservation ID
  • name, location (city, country)
flightsFlight-specific details:
  • reservation → reservation ID
  • itineraries → departure and arrival (airport, date_time)

taxis

Taxi orders may include multiple legs:

  • Each leg has a different reservation ID.
  • Order-level fields (price, status) are aggregated.
  • Inspect each leg for accurate tracking, status, start, end, and pricing.

⚠️ For accurate tracking, always inspect individual taxi legs.

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
  }
}

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
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.

Post-booking - Specific travel service details

Use each orders/details/*service endpoint for granulard details on a specific travel service so you can perform post-booking tasks such as:

Travel service details 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.


Curious to know more?