# Car rentals API collection – Migrating to v3.2

**This guide helps you migrate your integration to Demand API v3.2 for the Car rental API collection. It summarises the main changes, new features, and required actions to ensure a smooth upgrade from v3.1.**

## Introduction

Version 3.2 introduces structural improvements, naming standardisation, and new payment and booking functionality for Cars.

This release also aligns several schema elements with the Accommodations API collection, simplifying multi-vertical integrations.

* You can now complete the **Search → Look → Book** flow for Cars using the [3.2-Beta version](/demand/docs/open-api/3.2-beta/demand-api/cars/) of /cars/search, /cars/availability, /orders/preview and orders/create endpoints.


![cars in search, look and book flow](/assets/cars-search-book-flow.a9c399b694d2fe2fb6457a8d0190f71b9819dce010bb261d8ca5fb9f3a64af13.8ae80680.png)

* Most /cars endpoints in v3.2 have been standardised and aligned with current [Demand API design conventions](/demand/docs/development-guide/code-conventions).


The only endpoint with breaking structural changes is /cars/search, which has its own [dedicated migration guide](/demand/docs/migration-guide/v3.2/cars/search).

## Cars migration overview (v3.1 → v3.2)

Version 3.2 focuses on consistency, clean-up, and usability improvements across all `/cars` endpoints.

| Endpoint | Change type | Breaking | Action required | Notes |
|  --- | --- | --- | --- | --- |
| /cars/search | Major structural changes | ⚠️ Yes | ✅ Yes | See the [dedicated migration guide](/demand/docs/migration-guide/v3.2/cars/search) for new request and response schema. |
| /cars/availability | New endpoint (v3.2 BETA) | — | ✅ Yes (implement) | Enables real-time availability checks before booking. |
| /cars/depots | Naming and consistency updates | ⚠️ Partial | ✅ Yes (minor) | Field names changed to camelCase; `deskAt` removed. |
| /cars/depots/reviews/scores | No changes | ❌ No | ❌ No | Fully backward compatible. |
| /cars/suppliers | No changes | ❌ No | ❌ No | Functionally identical to v3.1. |
| /cars/constants | Updated `payment_timings` IDs | ⚠️ Partial | ✅ Yes (small) | Update mapping for renamed payment timing IDs. |
| /cars/details | No changes | ❌ No | ❌ No | Continue using your existing integration. |


## Breaking changes

### Payment timings renamed

| v3.2 | Changed | Breaking changes

In version 3.2, payment timing identifiers are standardised to align with Accommodation naming conventions:

| Accommodation | Car rental | Meaning |
|  --- | --- | --- |
| pay_online_now | `pay_online_now` | Traveller pays the full amount online at the time of booking. |
| pay_at_the_property | `pay_at_pickup` | Traveller pays the full amount on location (property, pickup desk, venue, etc.). |
| — (not used) | `pay_partial_online_now` | Traveller pays part of the amount online at the time of booking, and the rest later (usually at pickup). |


If your integration uses these IDs programmatically (e.g., filtering or displaying user-facing labels), you must update them to the new values.

## New endpoints introduced

| v3.2 Beta | New |

New set of endpoints has been has been included as these are needed to complete the Search → Look → Book flow for cars.

| Endpoint | Description | Related guide |
|  --- | --- | --- |
| /cars/availability | Returns real-time availability and price details for selected car offers. | [Check car availability guide](/demand/docs/cars/3.2/check-cars-availability) |
| /cars/terms-and-conditions | Retrieves pre-booking terms and conditions for selected cars. | Cars Terms and Conditions guide |
| /orders/details/cars/terms-and-conditions | Returns post-booking terms and conditions for car rental orders. | Orders Terms and Conditions guide |


### New functionality

* Cars can now be booked directly via /orders/preview and /orders/create using the `offer` and `search_token` fields.
* This completes the **Search → Look → Book** flow for cars.


## Endpoint migration details v3.2

### /cars/depots

The /cars/depots endpoint remains functionally the same in v3.2, but has been cleaned up and aligned with current API conventions.

**No structural changes**, but several **naming and consistency updates** require attention.

#### What’s new in v3.2

| Field | Location | Description |
|  --- | --- | --- |
| `dropoff`, `pickup` | Response → `data` | Replaces `drop_off` and `pick_up` to follow naming conventions across endpoints. |


#### Breaking changes

| Field | Change | Impact |
|  --- | --- | --- |
| `pick_up` → `pickup` | Property name normalised (underscore removed). | Update references to use the new `pickup` key. |
| `drop_off` → `dropoff` | Property name normalised (underscore removed). | Update references to use the new `dropoff` key. |
| `deskAt` → removed | Field removed in v3.2. | Remove any dependencies; use `location.depot_location_type` instead. |


✅ **Tip:** If your integration parses responses dynamically, it may continue to work—but you should still update field names and remove any `deskAt` references for consistency and forward compatibility.

### /cars/depots/reviews/scores

Returns review scores and breakdowns for car rental depots.
The **request and response structure remain identical** between v3.1 and v3.2, with only minor description updates.

✅ **Fully backward compatible — no migration actions required.**

### /cars/suppliers

Returns car rental supplier information.
No changes in v3.2; both request and response schemas remain fully compatible.

✅ **Fully backward compatible — no migration actions required.**

### /cars/constants

Provides localised constants such as **fuel types**, **transmission options**, and **payment timings**.
No structural changes, but payment timing IDs have been renamed (see above).

✅ **Update your logic if mapping or filtering by `payment_timings.id`.**

### /cars/details

Fetches static details such as **capacity, make, model, and specifications**.
No changes between v3.1 and v3.2.

✅ **No migration actions required.**

## Migration checklist

| Step | Action | Required |
|  --- | --- | --- |
| 1 | Update pricing parser to handle `charges[]` | ✅ |
| 2 | Adjust product structure parsing for /cars/availability | ✅ |
| 3 | Update references to renamed `payment_timings` IDs | ✅ |
| 4 | Replace `drop_off` / `pick_up` with `dropoff` / `pickup` in `/cars/depots` | ✅ |
| 5 | Remove any dependency on `deskAt` | ✅ |
| 6 | Test updated Cars order flow (`orders/preview` → `orders/create`) | ✅ |
| 7 | Validate all endpoints against new v3.2 schemas | ✅ |
| 8 | Update label tracking logic | ⚙️ Optional |


## Example migration flow

1. Call /cars/availability (v3.2) → parse `charges[]` and `vehicle_details`
2. Update checkout flow for partial payments (if applicable)
3. Adjust order creation using `/orders/create`
4. Test full booking flow end-to-end


## Need help?

If you have questions about your Cars integration migration, contact your **Booking.com technical account manager**.

By following these guidelines and making the required updates, you can smoothly transition to **Demand API v3.2** and continue to provide a seamless Car rental booking experience for your travellers.

## What's next

* If you use /cars/search, start with the [Cars search migration guide](/demand/docs/migration-guide/v3.2/cars/intro) to update your request and response logic.
* Check the [Cars try out guide](/demand/docs/cars/cars-quick-guide) for basic instructions.
* [Check car availability guide](/demand/docs/cars/3.2/check-cars-availability)
* Refer to [v3.2 cars API reference ](/demand/docs/open-api/3.2/demand-api/cars)for details in fields.
* See the [cars/search guide](/demand/docs/cars/search-for-cars)
* Refer to [cars/search API](/demand/docs/open-api/3.2/demand-api/cars) reference