Once a car booking has been created, the traveler can modify it to change the car, vendor, pickup or drop-off location, or rental dates. The steps below explain how to modify an existing car booking.
| Step | Name | Endpoint | Details |
|---|---|---|---|
| Get car search results for a booking modification | POST /v2/car/pnrs/{pnrId}/modify-search | Search for available cars when modifying an existing car booking. The traveler can choose a different car, vendor, location, or rental dates as part of the modification. URL path requires: pnrId from step 4 of the creating a car booking workflow.Request body requires: pickup and dropOff parameters. Optionally, you can provide filters, sortOptions, renterAge, and loyaltyCode to refine the results.Response will contain: searchId and a list of available cars. Each car in the response includes the carId, rate information, vendor details, and an isSamePickupLocation flag indicating whether the pickup location is the same as the original booking.Other APIs will use: searchId and carId. | |
| Get car rate details (optional) | POST /v2/car/rate-details | View additional information about the selected car before proceeding with the modification. This includes the pickup and drop-off location details, vendor information, additional rental requirements, and CO2 emission details. Request body requires: searchId and carId from step 1, and isModify set to true to indicate that the request is for modifying an existing booking.Response will contain: pickupLocation, dropOffLocation, vendor, additionalDetails, co2Emission, and isFlightNumberMandatoryForPickup.Note: This step is optional but recommended when you need to display comprehensive car details to the traveler before confirming the modification. | |
| Check car price availability | POST /v2/car/price-check | Verify the price for the selected car before modifying the booking. Car rental prices can change due to demand and availability. This endpoint ensures the latest price is captured before the modification is finalized. Request body requires: searchId and carId from step 1, and isModify set to true to indicate that this price check is part of a modification flow.Response will contain: bookingKey, hasPriceChanged (a boolean flag that indicates if the price has changed since the search was performed), timeoutSeconds (the time in seconds for which the price is held), and the updated finalRateInfo.Other APIs will use: bookingKey. | |
| Modify an existing car booking | POST /v2/car/pnrs/{pnrId}/modify-book | Apply the modification to the existing car booking with the selected car from step 1. URL path requires: pnrId from step 4 of the creating a car booking workflow.Request body requires: bookingKey from step 3, carId from step 1, tripData containing the tripId, a list of travelers, and bookingCharges with the selected payment method. Optionally, provide arrivalFlightNumber, bookingPaymentDetails, and waiveOffInfo, if applicable.Response will contain: pnrId, sourcePnrId, and pnrStatus.Note: Use the same tripId from the original booking. Modifying a car booking does not create a new trip. |