Last updated

Changelog

Stay up to date with the latest enhancements to the Demand API.


January 2026

This release brings mainly updates to Demand API version 3.2 Beta being car rentals the main focus:

  • Car rentals – v3.2 Beta:
    • New orders/details/cars/live endpoint provides enriched live order details.
    • Updated price structure removes prepayment field and standardises display/pay format in cars/availability.
    • Bug fix for depot IDs in cars/availability, now aligned with cars/search response.
  • Accommodations – v3.1:
    • Bundles enhancements available in accommodations/availability using extras.include_bundle_variants.
  • Orders – v3.2:
    • label field now populated for third-party inventory (TPI) properties in order responses.
    • The taxis service is now returned in order details responses.

Accommodations

| 3.1 | New | Bundles and value added services |

  • Bundles and value added services are automatically available across accommodation and orders endpoints.
  • However for version 3.1 you must include extras.include_bundle_variants in the availability request.
  • This ensures the response includes all bookable products with bundles, instead of returning only non-bundled products.

See all details in the bundles guide.


Car rentals

| 3.2 Beta | Replace “Prepayment” field in cars/availability |

The prepayment field under price has been replaced by the new price structure that includes the unit_amount, display and pay.
This aligns the response with the cars/search data model.

Before:

{
  "price": {
    "amount": 33.98,
    "prepayment": false
  }
}

After:

{
  "price": {
    "unit_amount": {
      "display": {
        "value": 33.98,
        "currency": "GBP"
      },
      "pay": {
        "value": 33.98,
        "currency": "GBP",
        "timing": "pay_at_pickup"
      }
    }
  }
}

Bug fix in cars/availability

| 3.2 Beta | Bug fix – depot IDs in cars/availability |

The depot IDs returned in the /3.2/cars/search response and depotID returned in the /3.2/cars/availability endpoint were different values.

  • /cars/availability was returning the Location ID of the depot incorrectly. To fix this inconsistency, both endpoints now return the route object, that includes the same depot IDs as in /cars/search.
Benefits

This fix ensures /cars/availability gives the same understanding of where the car will be picked up and dropped off from. Drop off was previously missing here.

Before:

{
  "depot": 38566
}

After:

    "route": {
      "dropoff": {
        "depot": 14443,
        "depot_location_type": "shuttle_bus"
      },
      "pickup": {
        "depot": 14443,
        "depot_location_type": "shuttle_bus"
      }
    }

Orders

Labels for TPI products

| 3.1 | v3.2 | "Label" supported for Third-Party Inventory (TPI) products |

  • The existing label field is now also populated for properties with third-party inventory (TPI) rates in Demand API order responses.
  • Endpoints impacted:
    • /orders/details
    • /orders/details/accommodation
    • /orders/create

What this means

  • Partners can apply a single label taxonomy across both Booking.com-sourced and third-party inventory.
  • Labels can be used to attribute bookings to specific TPI providers, programmes, or commercial constructs.

This improves post-booking reporting and reconciliation for mixed inventory portfolios that combine Booking.com and TPI rates.

See the Labels and attributions guide for more details.

Example orders/details response:

{
  "request_id": "01k9exampletpi0000000000000",
  "data": [
    {
      "id": "509430129718799",
      "accommodation": 123456,
      "third_party_inventory": true,
      "inventory": {
        "third_party": true,
        "type": "sell"
      },
      "label": "tpi-partner-x"
    }
  ]
}

Taxi service in orders/details

| v3.2 | "Taxis" available in orders/details |

The /orders/details endpoint now supports taxi orders. You can retrieve detailed information about taxi bookings alongside other travel services such as accommodations, cars, flights, and attractions.

What’s included per taxi leg:

  • Pickup and dropoff locations (address, city, country)
  • Start and end date-time.
  • Leg identifier.
  • Reservation identifier (shared across legs in the same taxi order).
  • Leg-level status.
  • Currencies.
  • Leg-level commission.
  • Leg-level price (total and commissionable)
  • Created and updated timestamps.

Example orders/details response (minimal):

{
  "request_id": "01htaxi9ez700example",
  "data": [
    {
      "id": "880045112233",
      "affiliate": 111111,
      "taxis": [
        {
          "leg": "607244787653565",
          "reservation": "916957580",
          "status": "booked",
          "start": "2026-03-10T08:00:00Z",
          "end": "2026-03-10T09:00:00Z",
          "pickup_location": { "city": "Amsterdam", "country": "nl" },
          "dropoff_location": { "city": "Utrecht", "country": "nl" },
          "price": {
            "total": { "booker_currency": 50.0, "product_currency": 50.0 }
          }
        }
      ],
      "start": "2026-03-10T08:00:00Z",
      "end": "2026-03-10T09:00:00Z",
      "status": "booked",
      "currencies": { "booker": "EUR", "product": "EUR" }
    }
  ],
  "metadata": { "next_page": null, "total_results": 1 }
}

New endpoint

| 3.2 Beta | New | New endpoint: orders/details/cars/live |

  • The orders/details/cars/live endpoint provides enriched, live car order details, including driver information, supplier, pricing breakdown, payment timing, and operational pick-up/drop-off instructions.
  • Currently, requests are limited to a single reservation ID.

This endpoint will merge into /orders/details/cars in v3.3.

Example response:

{
  "request_id": "123456789",
  "data": {
    "reservation_id": "ABC123",
    "driver": { "name": "John Doe", "age": 35 },
    "supplier": { "id": 3486, "name": "Premium Cars" },
    "price": {
      "unit_amount": { "display": { "value": 150, "currency": "EUR" }, "pay": { "value": 150, "currency": "EUR", "timing": "pay_online_now" } },
      "total_amount": { "display": { "value": 180, "currency": "EUR" }, "pay": { "value": 180, "currency": "EUR", "timing": "pay_online_now" } }
    },
    "route": {
      "pickup": { "depot": 243816, "depot_location_type": "meet_greet" },
      "dropoff": { "depot": 243816, "depot_location_type": "meet_greet" }
    }
  }
}

"Prepayment" removal

| 3.2 Beta | Removal of “Prepayment” field in orders/preview |

The prepayment field under the price object is no longer needed, as payment timing is already included in price.

Before:

     "products": [
          {
            "id": "10000000006012",
            "type": "baby_seat",
            "selected_quantity": 1,
            "mode": "per_rental",
            "price": {
              "unit_amount": {
                "display": {
                  "value": 25,
                  "currency": "EUR"
                },
                "pay": {
                  "value": 25,
                  "currency": "EUR",
                  "timing": "pay_online_now"
                }
              },
              "total_amount": {
                "display": {
                  "value": 25,
                  "currency": "EUR"
                },
                "pay": {
                  "value": 25,
                  "currency": "EUR",
                  "timing": "pay_online_now"
                }
              },
              "prepayment": true
            }
          },

After:

 "products": [
          {
            "id": "10000000006012",
            "type": "baby_seat",
            "selected_quantity": 1,
            "mode": "per_rental",
            "price": {
              "unit_amount": {
                "display": {
                  "value": 25,
                  "currency": "EUR"
                },
                "pay": {
                  "value": 25,
                  "currency": "EUR",
                  "timing": "pay_online_now"
                }
              },
              "total_amount": {
                "display": {
                  "value": 25,
                  "currency": "EUR"
                },
                "pay": {
                  "value": 25,
                  "currency": "EUR",
                  "timing": "pay_online_now"
                }
              },

References

v3.2 API reference

Check the 3.2 version specifications and give them a try in the console to return the new fields.

Check now

Beta API reference

Check the Beta API collections. You need specific credentials to test them out - Contact your Booking Account Manager if interested.

Check now