When a traveler modifies an existing car booking (e.g., the pickup or drop-off location, or rental dates), the price of the booking may change. The Car APIs display these price differences as structured rate components on the price check API response, while vendor-imposed change fees may appear as free-text descriptions in the same API.
When modifying a car booking, if the new price is cheaper than the existing booking, a refund may also be applicable based on the vendor's policies.
This guide explains how to identify modification charges in the API response and how to interpret them.
The check car price endpoint returns the rate breakdown for the selected car in the rateInfo and finalRateInfo fields.
The two fields capture the rate at different points in the flow:
| Field | Description |
|---|---|
rateInfo | The rate information you get after the car search API call (i.e., when the traveler searches for a car). |
finalRateInfo | The supplier-confirmed rate when using the check car price endpoint. This is the final price the traveler will be charged. This is useful to identify if any price change has occurred since the original search was performed but before checkout occurs. |
If hasPriceChanged is true, compare the two rate breakdowns to identify what changed and display the difference to the traveler before they confirm.
When the request is part of a modification flow (i.e., isModify is set to true in the request body), two additional rate component types may appear in finalRateInfo.carRateComponents:
| Field | Description |
|---|---|
CAR_MODIFY_RATE_DIFFERENCE | The total price difference between the original booking and the modified one. A positive amount indicates that the traveler will pay more for the new booking, while a negative amount indicates a credit or reduced charge. |
CAR_MODIFY_AVERAGE_RATE_DIFFERENCE | The average daily rate difference between the original booking and the modified one. Useful when the rental duration spans multiple days and the daily cost has changed. |
Each component in carRateComponents contains a componentType and an amount object (with the numeric amount value and a currencyCode).
Here's a sample response excerpt from the check car price endpoint when isModify is true and the modified booking is more expensive than the original:
// ... payload truncated for focus
{
"hasPriceChanged": true,
"finalRateInfo": {
"carRateComponents": [
{
"componentType": "BASE_RATE_TOTAL",
"amount": {
"amount": 320.00,
"currencyCode": "USD"
}
},
{
"componentType": "TOTAL_TAX",
"amount": {
"amount": 48.00,
"currencyCode": "USD"
}
},
{
"componentType": "CAR_MODIFY_RATE_DIFFERENCE",
"amount": {
"amount": 75.00,
"currencyCode": "USD"
}
},
{
"componentType": "CAR_MODIFY_AVERAGE_RATE_DIFFERENCE",
"amount": {
"amount": 15.00,
"currencyCode": "USD"
}
}
]
}
}In the example above, the modified booking costs USD 75 more in total than the original, with an average daily increase of USD 15.
Use the following parameters in the APIs to identify the total booking modification cost:
- In the check car price API response, locate the entry in the
carRateComponentswith thecomponentTypeset toCAR_MODIFY_RATE_DIFFERENCE. Theamountdisplayed here is the change in the rental price. - Review the
finalRateInfo>additionalDetailsarray for entries withcarAdditionalDetailTypeset asFEES_INFORMATION. Display the text field value to the traveler as a supplementary fee notice. - The total amount the traveler will be charged is displayed in
finalRateInfo>carRateComponents>amountwithcomponentTypeset toBASE_RATE_TOTALandTOTAL_TAX.