Skip to content
Last updated

Car modification charges

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.

Rate difference components

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
rateInfoThe rate information you get after the car search API call (i.e., when the traveler searches for a car).
finalRateInfoThe 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_DIFFERENCEThe 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_DIFFERENCEThe 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:

POST /v2/car/price-check
// ... 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.

Calculating the total modification cost

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 carRateComponents with the componentType set to CAR_MODIFY_RATE_DIFFERENCE. The amount displayed here is the change in the rental price.
  • Review the finalRateInfo > additionalDetails array for entries with carAdditionalDetailType set as FEES_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 > amount with componentType set to BASE_RATE_TOTAL and TOTAL_TAX.