Skip to content
Last updated

Reporting and post-booking tasks for Third Party Inventory (TPI) orders v3.3

Use the Demand API to retrieve TPI order details, identify Net and Sell rate orders, keep check-in information up to date, and cancel an order when its cancellation terms allow it.


Reporting and post-booking endpoints

Use the reporting endpoints to retrieve order data. The response identifies the inventory source and, for TPI orders, the rate type.

EndpointUse it toIntegration flow
orders/details
  • Retrieve order-level data using a date range, order IDs, reservation IDs or a pagination token.
  • This endpoint can return accommodation orders alongside other travel services.
Reporting and reconciliation. See Reporting and reconciliation
orders/details/accommodations
  • Retrieve detailed information for accommodation orders using order IDs or reservation IDs.
  • Use it to access accommodation and product details, cancellation information and the TPI check-in number.
Post-booking management. See Post-booking management overview.

Identify TPI bookings and rate types

In the response from either endpoint, inspect the accommodation's inventory object:

FieldMeaning
inventory.third_party: trueThe booking uses third-party inventory.
inventory.type: "sell"The TPI booking uses a commissionable Sell rate.
inventory.type: "net"The TPI booking uses a non-commissionable Net rate.

Extract these fields and store them in your reporting system to segment bookings accordingly.

Example orders/details response excerpt:

{
  "data": [
    {
      "id": "509430129718800",
      "accommodations": {
        "inventory": {
          "third_party": true,
          "type": "sell"
        },
        "reservation": "12345678"
      }
    }
  ]
}

The example shows a Sell rate booking. A Net rate booking has "type": "net".

Store inventory.third_party and inventory.type with the order or reservation record. Use these fields to segment reporting; do not infer the inventory source or rate type from the product ID.


Reporting and reconciliation

Retrieve order-level details by date

→ Use orders/details to retrieve data about the order.

For accommodation-only results on supported filters, include services: ["accommodations"].

  • The end filter matches the travel service end date, which is the checkout date for an accommodation. It does not, by itself, guarantee that every returned order has a stayed status.
  • Check the returned status when you need to report only on completed stays.
  • Date-based filters support a maximum range of seven days. Use the endpoint's pagination information to retrieve additional results when present.

Example request:

{
  "end": {
    "from": "2026-08-01",
    "to": "2026-08-07"
  },
  "currency": "EUR",
  "services": ["accommodations"],
  "maximum_results": 100,
  "sort": {
    "by": "updated",
    "direction": "descending"
  }
}

See the orders/details guide for more details.

Reconcile Net and Sell rate bookings

Use inventory.type to distinguish rate types in your reporting.

  • Net rate transactions are not included in the Credit Slip - Reconcile Net rate transactions using the applicable transaction reports for your TPI setup.
  • Sell rate transactions are commissionable - Use Credit Slip data for commissionable transactions.

Post-booking management

Retrieve accommodation details

→ Use the orders/details/accommodations endpoint to retrieve up to 100 order IDs or reservation IDs per request.

Note

orders/details/accommodations does not take a date-range filter.

Example request using reservation IDs:

{
  "reservations": ["12345678", "87654321"],
  "currency": "EUR",
  "extras": ["policies", "extra_charges"]
}
  • The extras field is optional. Use the supported values, such as policies, extra_charges and accommodation_details, when you need those details in the response.

  • Use the Affiliate ID associated with the booking when making post-booking requests.

  • Net rate bookings use the dedicated Affiliate ID configured for your TPI integration; Sell rate bookings use your regular Affiliate ID.

Keep the TPI check-in number current

For TPI bookings, orders/details/accommodations can return third_party_inventory.checkin_number.

  • The check-in number is used by the traveller to confirm the booking at the accommodation.
  • It may change if the supplier updates the reservation.

The number is also included in a successful orders/create response when available.

Important: Use the latest check-in number

Retrieve the latest accommodation order details before check-in and use the latest returned check-in number in traveller-facing information.

The accommodation details response can also include fields such as commission, credit_slip_number, price and status.

Values can be unavailable or null where the schema allows it; do not treat a missing value as zero or as proof that a booking is not TPI.

A useful internal reporting record can include:

FieldPurpose
Order ID and reservation IDLink the reporting record to Demand API order details.
inventory.third_partyIdentify third-party inventory.
inventory.typeSeparate Net and Sell rate transactions.
Check-in and checkout datesGroup transactions by travel period.
status and cancellation detailsTrack booking lifecycle and cancellation outcomes.
Currency, price and commission fieldsSupport financial reporting where returned.
third_party_inventory.checkin_numberProvide the latest check-in reference to the traveller.

Common reporting workflow

A common reporting workflow is:

  1. Call orders/details with a date, order ID, reservation ID or pagination filter.
  2. Identify the accommodation orders in the response and record their order or reservation IDs.
  3. Call orders/details/accommodations with those IDs to retrieve accommodation-level details.
  4. Use inventory.third_party and inventory.type to classify each booking.

Cancel a TPI booking

TPI orders follow the cancellation policies defined by the product.

→ Use orders/cancel to cancel an accommodation reservation. TPI cancellations are subject to the booking's cancellation terms and the reservation's current state.

The cancellation policy is available in the accommodation product's policy details.

In an orders/preview response, review the cancellation schedule.

For an existing booking, use the policy and cancellation details returned by the post-booking endpoints where available.

The cancellation request for an accommodation requires the reservation ID and a reason. The order ID and request_property_approval are optional. Set request_property_approval to true only when you want the accommodation to consider waiving an applicable cancellation fee; approval is not guaranteed.

Example request:

{
  "order": "509430129718800",
  "accommodation": {
    "reservation": "12345678",
    "reason": "The traveller's plans have changed.",
    "request_property_approval": false
  }
}

For accommodation cancellations, a successful response returns data.status: "successful".

  • If the reservation is already cancelled or cannot be cancelled in its current state, the API can return a 409 response. Other errors are described in Error handling.
  • After the cancellation, retrieve the order again with orders/details/accommodations and check its status and cancellation_details.

The cancellation details can include the cancellation time, fee and original total price.

For step-by-step cancellation guidance, see Cancel an order and Cancellation policies.