Skip to content
Last updated

Retrieve Terms & Conditions for Car rental offers

Learn how to use the /cars/terms-and-conditions endpoint to retrieve structured terms and conditions for a specific car rental offer during the booking flow.


| Pre-booking | 3.2 Beta|

Use the /cars/terms-and-conditions endpoint to retrieve the applicable terms and conditions for a specific car rental offer during the pre-booking process.

This endpoint returns both:

  • Key rental information (such as deposit, mileage, driver requirements).
  • Hierarchical legal terms and conditions.

When to use this endpoint

Use this endpoint during the booking flow, after a user selects a car but before the order creation.

It is mandatory to display terms and conditions at this stage.

Use cases

  • Show mandatory terms during checkout or booking preview.
  • Display key rental conditions (deposit, mileage, insurance, driver rules)
  • Help travellers understand restrictions before confirming a booking.
  • Support compliance with rental supplier requirements.

How it works

  • You provide a car offer ID, along with the search token (that includes the booking context).

  • The API returns:

    • Structured key information.
    • Full terms and conditions tree.
  • Content is returned in the requested language (if supported).

Important notes

  • offer is required and identifies the selected car rental option.
  • search_token is required and links the request to the original search session.
  • currency is required for pricing context.
  • language is optional (defaults to English if not supported)
  • The response includes both summary data (key_info) and full legal structure (terms)

Request body

Field
RequiredTypeDescription
offerintegerUnique identifier of the selected car rental offer.
currencyStringCurrency in ISO 4217 format (e.g. USD, EUR, GBP).
search_tokenstringToken returned by the search endpoint. Links the request to the original search session.
languageOptionalStringLanguage in ISO 639-1 format (e.g., en-us). Used to localise the response if supported. Defaults to English if not specified or unsupported.

Example request:


{
  "offer": 123456789,
  "currency": "USD",
  "language": "en-us",
  "search_token": "eyJkcml2ZXJzQWdlIjozMCwiZHJvcE9mZkRhdGVUaW1lIjo"
}

Response structure

The response includes:

  • request_id – Unique identifier for the request.
  • data – A map of order IDs to their terms and conditions.

Key components

Example:

{
  "request_id": "123456789",
  "data": {
    "765255700": {
      "terms": [ ... ]
    },
    "invalid_order": null
  }
}
Key information (key_info)

Summarised rental conditions used for UI display.

Includes:

  • common – driver age, insurance, payment methods, rental duration.
  • deposit – security deposit requirements and accepted cards.
  • damage_excess – liability and excess coverage.
  • driver_and_license – required documents and conditions.
  • mileage – mileage policy.
  • disclaimers – supplier-level legal notes.

Terms object

Hierarchical legal structure representing the full rental agreement.

  • Each node includes:
    • type (chapter, section, clause, sub_clause, clause_option)
    • title and children
  • Leaf nodes (clause_option) contain the final displayable text in text.

Example response:

{
  "request_id": "01fr9ez700exycb98w90w5r9sh",
  "data": {
    "key_info": {
      "common": {
        "credit_cards_allowed": true,
        "debit_cards_allowed": true,
        "driver_age": 25,
        "insurance_available": true,
        "rental_duration": 3
      },
      "mileage": {
        "title": "Mileage",
        "subtitle": "Distance included",
        "content": "Unlimited mileage included"
      }
    },
    "terms": [
      {
        "type": "chapter",
        "title": "Rental agreement",
        "children": [
          {
            "type": "section",
            "title": "Driver requirements",
            "children": [
              {
                "type": "clause",
                "title": "Age restrictions",
                "children": [
                  {
                    "type": "sub_clause",
                    "children": [
                      {
                        "type": "clause_option",
                        "text": "Driver must be <b>at least 25 years of age</b> to rent this vehicle."
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

Best practices

Always show T&Cs during booking

  • This endpoint is part of the mandatory booking flow UX.

Use key_info for UI-first rendering

  • Use it for summaries, cards, and checkout screens.
  • Do not force users to expand full legal tree by default.

Use terms for legal completeness

  • Preserve full hierarchy.
  • Do not flatten unless required by UI constraints.

Respect structure

  • Only clause_option.text contains final legal text.
  • Other nodes are structural and must be preserved.

Handle HTML safely

  • text may include basic HTML (for example tags).
  • Ensure safe rendering or sanitisation where required.

Integration tips

  • Treat key_info and terms as two complementary layers
  • Prefer a progressive disclosure UI pattern:
    • Summary first (key_info)
    • Full legal details on demand (terms).

Next steps

Curious to know more?