# Car availability

Retrieve details about the availability of a car rental.

Endpoint: POST /cars/availability
Version: 3.2-Beta
Security: BearerAuth

## Header parameters:

  - `X-Affiliate-Id` (integer, required)
    Include here your Affiliate identifier number

## Request fields (application/json):

  - `offer` (integer, required)
    This ID identifies the car rental offer and its associated policies. Include it when calling the /cars/availability endpoint.

  - `search_token` (string, required)
    Encoded string returned by the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.

  - `currency` (string, required)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.

  - `language` (string)
    Optional. Controls the language of insurance documents (IPID and policy document) returned in the response.
If not specified, or selected language not available, documents are returned in English (en-gb) when available.
If insurance documents are not available in English, the insurance object is not returned (since legal documentation is mandatory)
Note: Uses IETF language tag format (for example, fr).

## Response 200 fields (application/json):

  - `request_id` (string)
    Uniquely identifies the request. Please provide this identifier when contacting support.

  - `data` (object)

  - `data.offer` (integer)
    This ID identifies the car rental offer and its associated policies. Include it when calling the /cars/availability endpoint.

  - `data.currency` (string)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.

  - `data.policies` (object)
    The policies that apply to this product.

  - `data.policies.cancellation` (object)
    The cancellation policy that applies to this product.

  - `data.policies.cancellation.details` (object,null)
    Provides the policy details if the cancellation is free. For example: 
 1. duration='PT48H' and context=BEFORE_PICKUP means 'Free cancellation is available up to 48 hrs before pick up'. 
 2. duration='P7D' and context=WITHIN_GIVEN_TIME_PERIOD_OF_BOOKING means 'Free cancellation is available within 7 days of booking'

  - `data.policies.cancellation.details.context` (string)
    The context in which the cancellation policy applies. For example 'before_pickup'
    Enum: "before_pickup", "within_given_time_period_of_booking"

  - `data.policies.cancellation.details.duration` (string)
    The duration until which the cancellation is free. This is in ISO-8601/Duration format.

  - `data.policies.cancellation.type` (string)
    The type of cancellation present. For example 'free_cancellation' or 'non-refundable'.
    Enum: "free_cancellation", "non-refundable"

  - `data.policies.damage_excess` (object)

  - `data.policies.damage_excess.amount` (any)
    The maximum amount a traveller may be charged for damages to the car during the rental period, as specified by the rental agreement.

  - `data.policies.deposit` (object)

  - `data.policies.deposit.amount` (any)
    The amount of money that will be temporarily pre-authorised or blocked on the traveller’s credit card at the rental location as a security deposit, to cover potential damage or extra charges.

  - `data.policies.insurance_package` (string)
    The supplier insurance package that applies to this product.
    Enum: "basic", "inclusive", "zero_excess"

  - `data.policies.fuel` (string)
    The fuel policy that applies to this product.
    Enum: "return_same", "return_same_or_prepay_no_refunds", "return_same_preauth", "free_tank", "prepay_no_refunds", "prepay_part_refunds", "prepay_refunds"

  - `data.policies.mileage` (object)
    The mileage policy that applies to this product.

  - `data.policies.mileage.distance_limit` (integer,null)
    The maximal distance limit allowed for this product before additional fees apply.

  - `data.policies.mileage.distance_unit` (string)
    The unit of measurement for the distance limit. For example 'km' or 'miles'.
    Enum: "kilometers", "miles"

  - `data.policies.mileage.amount` (any)
    The amount that must be paid if the distance limit is exceeded.

  - `data.policies.mileage.currency` (any)
    The currency of the amount that must be paid if the distance limit is exceeded.

  - `data.policies.mileage.type` (string)
    The type of mileage policy applied.
    Enum: "limited", "unlimited"

  - `data.policies.payment` (object)
    The payment policy that applies to this product.

  - `data.policies.payment.timing` (string)
    The applied payment timing. For example 'pay_online_now'.
    Enum: "pay_online_now", "pay_partial_online_now", "pay_at_pickup"

  - `data.policies.theft_excess` (object)

  - `data.policies.theft_excess.amount` (any)
    The maximum amount a traveller may be charged in the event of car theft during the rental period, as outlined in the rental agreement.

  - `data.price` (object)
    The price that applies to this vehicle.

  - `data.price.base` (number)
    The base price of the vehicle.

  - `data.price.credit_card_required` (boolean,null)
    Indicates whether a credit card is required as a guarantee for this vehicle.

- true: A credit card must be provided and will be passed to the supplier for guarantee purposes. Applies to vehicles with 'payment.timing = pay_at_pickup'.
- false: A credit card is explicitly not required.
- null: Information not available or not applicable (for example, pay-online-now vehicles where credit card requirements are currently unknown).

  - `data.price.total` (number)
    The total price of the vehicle.

  - `data.price.extra_charges` (array)
    The charge breakdown. Includes taxes and fees included in the drive away price.

  - `data.price.extra_charges.charge` (string)
    The type of this charge.

  - `data.price.extra_charges.total_amount` (number)
    The total price for this charge.

  - `data.products` (array)

  - `data.products.id` (string)
    The id of the product.

  - `data.products.type` (string)
    Specifies the product type. Use one of the predefined values to indicate the extra, feature, or service associated with the booking. For example, gps for a navigation system, baby_seat for a child seat, or wifi_router for mobile internet. See the full list of supported values below.
    Enum: "additional_driver", "baby_seat", "bluetooth_handsfree_kit", "booster_seat", "child_booster_seat", "child_seat", "child_seat_isofix", "etc_card_electronic_toll_collection_card", "excess_protection", "fast_track", "gps", "infant_seat", "luggage_rack", "personal_travel_assistant", "queue_jump", "roof_rack", "ski_box", "ski_rack", "skierized_equipment", "snow_chains", "snow_tyres", "wifi_mobile", "wifi_router"

  - `data.products.maximum_available` (number)
    The maximum number of this product available.

  - `data.products.mode` (string)
    Specifies how the product is priced. Use one of the predefined values to indicate whether the cost applies per day or for the entire rental. For example, per_day for a daily charge, or per_rental for a one-off fee for the whole booking.
    Enum: "each_per_day", "each_per_rental", "per_day", "per_rental"

  - `data.products.price` (object)
    The price of this product.

  - `data.products.price.unit_amount` (object)
    The price for a single unit of this product. Use mode to determine if it’s per day or per rental.

  - `data.products.price.unit_amount.display` (object)
    The price displayed to the traveller, including applicable taxes or fees.

  - `data.products.price.unit_amount.display.value` (number)
    The numeric value of the amount.

  - `data.products.price.unit_amount.display.currency` (string)
    The currency code.

  - `data.products.price.unit_amount.pay` (object)
    The actual payment amount and timing. Indicates whether the amount is paid online now, partially online, or at pickup.

  - `data.products.price.unit_amount.pay.value` (number)
    The numeric value of the amount.

  - `data.products.price.unit_amount.pay.currency` (string)
    The currency code.

  - `data.products.price.unit_amount.pay.timing` (string)
    The payment timing.
    Enum: "pay_online_now", "pay_partial_online_now", "pay_at_pickup"

  - `data.deal` (object,null)
    This specifies the deal tagging for the product.

  - `data.deal.discount_percentage` (integer)
    Discount percentage of the applied deals.

  - `data.deal.public_price` (number)
    Original price of this product, before applying any discounts.

  - `data.deal.tags` (array)
    The tags of all the applied deals.
    Enum: "black_friday", "getaway_deal", "mobile_rate"

  - `data.special_offer` (string,null)
    The special offer included with this product, if any. This can be an additional service, a free upgrade, or a promotional feature provided by the supplier. If no special offer applies, the value will be null.
    Enum: "one_additional_driver", "two_additional_drivers", "three_additional_drivers", "all_additional_drivers", "gps", "baby_or_child_seat", "priority_pickup", "wifi_device", "sim_card", "upgrade"

  - `data.supplier` (number)
    The ID of the supplier.

  - `data.route` (object)
    Defines the actual route associated with the product.

  - `data.route.dropoff` (object)
    Defines the product drop off route point.

  - `data.route.dropoff.depot` (integer)
    The identifier of the depot used for pick up or drop off.

  - `data.route.dropoff.depot_location_type` (string)
    The type of location for the depot.
    Enum: "in_terminal", "car_rental_centre", "outside_terminal", "airport_hotel", "shuttle_bus", "meet_greet", "trainstation", "downtown"

  - `data.route.pickup` (object)
    Defines the product pick up route point.

  - `data.route.pickup.depot` (integer)
    The identifier of the depot used for pick up or drop off.

  - `data.route.pickup.depot_location_type` (string)
    The type of location for the depot.
    Enum: "in_terminal", "car_rental_centre", "outside_terminal", "airport_hotel", "shuttle_bus", "meet_greet", "trainstation", "downtown"

  - `data.insurance` (object,null)
    Detailed third-party insurance quote for this car rental. Returned only for eligible partner configurations (e.g., partners with a signed insurance contract), and when insurance is available for the selected offer (null if not available).
This object represents a bookable insurance product and includes pricing, coverage, and policy documentation.

  - `data.insurance.quote_reference` (string, required)
    Unique reference for this insurance quote. Expires after 90 minutes.

  - `data.insurance.name` (string, required)
    The display name of the insurance product.

  - `data.insurance.id` (string, required)
    The identifier for the type of insurance product.

  - `data.insurance.price` (object, required)
    The price of the insurance product for the full rental period.

  - `data.insurance.price.display` (object)
    The price displayed to the traveller, including applicable taxes or fees.

  - `data.insurance.price.display.value` (number)
    The numeric value of the amount.

  - `data.insurance.price.display.currency` (string)
    The currency code.

  - `data.insurance.price.pay` (object)
    The actual payment amount and timing. Indicates whether the amount is paid online now, partially online, or at pickup.

  - `data.insurance.price.pay.value` (number)
    The numeric value of the amount.

  - `data.insurance.price.pay.currency` (string)
    The currency code.

  - `data.insurance.price.pay.timing` (string)
    The payment timing.
    Enum: "pay_online_now", "pay_partial_online_now", "pay_at_pickup"

  - `data.insurance.coverage_amount` (object)
    The maximum coverage amount provided by the insurance product.

  - `data.insurance.coverage_amount.value` (number)
    The numeric value of the maximum coverage.

  - `data.insurance.coverage_amount.currency` (string)
    The currency of the coverage amount.

  - `data.insurance.policy_document_url` (string, required)
    URL to the full policy document (PDS). Contains the complete terms and conditions of the insurance policy. Present when available.

  - `data.insurance.ipid_document_url` (string,null)
    URL to the Insurance Product Information Document (IPID). Provides a standardised summary of the insurance coverage, exclusions, and obligations. Only available for EEA and UK countries. Null if not applicable.

## Response 400 fields (application/json):

  - `request_id` (string, required)
    Uniquely identifies the request. Please provide this identifier when contacting support.

  - `errors` (array, required)

  - `errors.id` (string, required)

  - `errors.message` (string, required)

## Response 500 fields (application/json):

  - `request_id` (string, required)
    Uniquely identifies the request. Please provide this identifier when contacting support.

  - `errors` (array, required)

  - `errors.id` (string, required)

  - `errors.message` (string, required)


