# Changelog archive

**Find here a comprehensive history of all updates, improvements, and bug fixes across versions.**

Each entry provides a detailed log of changes made to Demand API, including new features, enhancements, and any resolved issues, divided by endpoints and/ or travel services.

This archive serves as a valuable resource for understanding the evolution of the product over time and tracking its progress.

# February 2026

This release focuses on Demand API version 3.2 and 3.2 Beta, with significant updates across car rentals and orders:

div
strong
New fields included:
ul
li
strong
Car rentals – v3.2 / 3.2 Beta:
ul
li
code
credit_card_required
 - boolean added in cars/search and cars/availability to indicate whether a credit card is needed for 
code
pay_at_pickup
 vehicles.
li
code
special_offer
 - field in cars/search, cars/availability and cars/constants to return any promotional features included with a vehicle.
li
code
customer_services
 - field in cars/constants to provide partner-facing customer service contact emails per requested language.
li
code
voucher
 - filter in cars/terms-and-conditions to request only the subset of terms and conditions needed for the booking voucher.
li
strong
Orders/create – v3.2 / 3.2 Beta:
ul
li
code
authentication_response
 - in 3DS payment requests for authentication results.
li
code
subtype
 - field supports dual-branded UnionPay + Visa/MC cards where properties accept UnionPay.
## Car rentals

### Credit card requirements

**|** v3.2 3.2 Beta **|** **New field: credit_card_required** **|**

> The new `credit_card_required` boolean under the price response, indicates whether a credit card is required as a guarantee for `pay_at_pickup` vehicles.
* `true` - Credit card required and passed to supplier.
* `false`- Credit card explicitly not required.
* `null` - Information not available or not applicable.



Available in:

* [/cars/search](/demand/docs/open-api/3.2/demand-api/cars/search)
* [/cars/availability](/demand/docs/open-api/3.2-beta/demand-api/cars/availability)


### Special offers

**|** v3.2 3.2 Beta  **|** **New field: special_offer** **|**

> Returns any promotional or free upgrade features provided by the supplier for a vehicle, including: gps, priority pick up, wifi device, upgrade, one additional driver, etc.


Available in:

* [/cars/search](/demand/docs/open-api/3.2/demand-api/cars/search)
* [/cars/availability](/demand/docs/open-api/3.2-beta/demand-api/cars/availability)
* [/cars/constants](/demand/docs/open-api/3.2/demand-api/cars/constants)


Example in constants response:


```json
  "special_offers": [
      {
        "id": "one_additional_driver",
        "name": {
          "de": "1 zusätzlicher Fahrer inbegriffen",
          "en-gb": "1 additional driver included"
        }
      },
      {
        "id": "two_additional_drivers",
        "name": {
          "de": "2 zusätzliche Fahrer inbegriffen",
          "en-gb": "2 additional drivers included"
        }
```

### Customer service contacts

**|** <span style="background-color:#0070c9; color:white; font-size:0.8rem; padding:0.2rem 0.5rem; border-radius:4px;">v3.2</span> <span style="background-color:#fbbf24; color:white; font-size:0.8rem; padding:0.2rem 0.5rem; border-radius:4px;">3.2 Beta</span>  **|** **New field: customer_services** **|**

> [/cars/constants](/demand/docs/open-api/3.2/demand-api/cars/constants) returns now customer service email addresses per requested language.

Example request:


```json
{
"constants": ["customer_services"],
"languages": [
    "en-gb",
    "fr"

  ]
}
```

Example response:


```json
{
  "request_id": "01kja15bmhz3s8xfe1knejce3x",
  "data": {
    "customer_services": [
      {
        "id": "email",
        "name": {
          "fr": "customer.service-fr@cars.booking.com",
          "en-gb": "customer.service@cars.booking.com"
        }
      }
    ]
  }
}
```

See the Constants guide for examples.

### Voucher filter in post-booking terms and conditions

**|** 3.2 Beta **|** **New field: voucher filter** **|**

> Use the voucher boolean filter in [orders/details/cars/terms-and-conditions](/demand/docs/open-api/3.2-beta/demand-api/cars/terms-and-conditions) to receive only the subset of terms required for the booking voucher.
* `true` - Only the terms needed to recreate the booking voucher content shown on Booking.com are returned.
* `false` (or not provided) - Full set of agreed terms and conditions is returned.



Booking voucher
A "booking voucher" is the confirmation document that travellers present at the car rental desk, including booking details and legally required terms and conditions.

Example of request:


```json
{
  "booker": {
    "country": "gb"
  },
  "language": "en-gb",
  "orders": [
    "765255700"
  ],
  "filters": {
    "voucher": true
  }
}
```

## Orders

### 3DS authentication response

**|** v3.2   **|** **New field: authentication_response** **|**

> The new `authentication_response` is an optional field included in the [orders/create endpoint](/demand/docs/open-api/3.2/demand-api/orders/orders/create), under `payment.card.authentication.3d_secure` object.
It represents the 3D Secure transaction status (transStatus) returned by the 3DS provider.
* Purpose - It maps to the transStatus codes to confirm the status of the authentication transaction (Y: authentication successful, N: Authentication failed, etc.)
* Requirement - It is optional. Partners should only include it if their provider returns it or if a 3DS challenge flow occurred. It is not required if no challenge occurred.



Example request:


```json
"payment": {
  "card": {
    "authentication": {
      "3d_secure": {
        "authentication_value": "AAABBBCCC123=",
        "eci": "05",
        "transaction": "abc123xyz",
        "authentication_response": "Y"
      }
    }
  }
}
```

See the [3D Secure (3DS) Authentication use case](/demand/docs/payments/payments-examples2#3d-secure-3ds-authentication) for details.

### Dual-branded UnionPay cards

**|** v3.2 3.2 Beta  **|** **New field: subtype** **|**

> The subtype field is included in the [orders/create endpoint](/demand/docs/open-api/3.2/demand-api/orders/orders/create) under `payment.card`
* This is used to identify cards that belong to supported special or co-branded programmes (currently only `unionpay_cobrand`)
* It ensures that the payment is routed correctly when the card network cannot be reliably determined by the card number (PAN) alone.



Example request:


```json
  "payment": {
    "card": {
      "cardholder": "Test Name",
      "cvc": "111",
      "expiry_date": "2030-10",
      "number": "23333333333333",
      "subtype": "unionpay_cobrand"
    },
```

See the [Co-branded card payment use case](/demand/docs/payments/payments-examples2#co-branded-cards---card-subtype) for details.

# January 2026

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

div
ul
li
strong
Car rentals – v3.2 Beta:
ul
li
New 
code
orders/details/cars/live
 endpoint provides enriched live order details.
li
Updated price structure removes 
code
prepayment
 field and standardises 
code
display/pay
 format in 
code
cars/availability
.
li
Bug fix for depot IDs in 
code
cars/availability
, now aligned with 
code
cars/search
 response.
li
strong
Accommodations – v3.1:
ul
li
Bundles enhancements available in 
code
accommodations/availability
 using 
code
extras.include_bundle_variants
.
li
strong
Orders – v3.2:
ul
li
code
label
 field now populated for third-party inventory (TPI) properties in order responses.
li
The 
code
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](/demand/docs/accommodations/bundles/about-bundles).

## 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:**


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

**After:**


```json
{
  "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](/demand/docs/open-api/3.2-beta/demand-api/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:**


```json
{
  "depot": 38566
}
```

**After:**


```json
    "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](/demand/docs/orders-api/labels-attributions) for more details.

Example orders/details response:


```json
{
  "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):


```json
{
  "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](/demand/docs/open-api/3.2-beta/demand-api/orders/details/cars/live) 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:


```json
{
  "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:**


```json
     "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:**


```json
 "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"
                }
              },
```

# Previous entries

## [2025](/demand/docs/whats-new/archive-2025)

## [2024](/demand/docs/whats-new/archive-2024)