# Get car search results for a booking modification

Get the available car search results when you're modifying an existing booking.

Endpoint: POST /v2/car/pnrs/{pnrId}/modify-search
Version: v2
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer

## Path parameters:

  - `pnrId` (string, required)
    Pnr Id of the Pnr to be modified.

## Request fields (application/json):

  - `pickup` (object, required)
    Search Parameter including location and datetime for a given search.

  - `pickup.location` (object, required)
    Car Search location parameters.

  - `pickup.location.airportCode` (string)
    IATA code for AIRPORT
    Example: SFO

  - `pickup.location.cityCode` (string)
    City Code.
    Example: JFK

  - `pickup.location.coordinates` (object)
    Latitude and Longitude for a Location

  - `pickup.location.coordinates.latitude` (number, required)
    Latitude of the Location
    Example: 77.1025

  - `pickup.location.coordinates.longitude` (number, required)
    Longitude of the Location
    Example: 28.7041

  - `pickup.datetime` (object, required)
    Local date and time in ISO 8601 format.

  - `pickup.datetime.iso8601` (string, required)
    Example: 2017-07-21T17:32

  - `pickup.searchQuery` (string)
    Search query provided for the search.
    Example: London

  - `pickup.address` (object)
    Postal Address Details

  - `pickup.address.addressLines` (array, required)
    Address lines

  - `pickup.address.administrativeArea` (string)
    Code of administrative area. For example: DL for Delhi, India.
Highest administrative subdivision which is used for postal
addresses of a country or region.
For example, this can be a state, a province, an oblast, or a prefecture.
Specifically, for Spain this is the province and not the autonomous
community (e.g. "Barcelona" and not "Catalonia").
Many countries don't use an administrative area in postal addresses. E.g.
in Switzerland this should be left unpopulated.
    Example: CA

  - `pickup.address.administrativeAreaName` (string)
    Name of administrative area. This is full name corresponding to administrativeArea. 
Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
    Example: California

  - `pickup.address.description` (string)
    Address description
    Example: San Francisco Home

  - `pickup.address.isDefault` (boolean)
    Whether this address is default address in case multiple addresses are specified.
    Example: true

  - `pickup.address.languageCode` (string)
    BCP-47 language code of the contents of this address (if known). This is often the UI 
language of the input form or is expected to match one of the languages used in the 
address' country/region, or their transliterated equivalents.
This can affect formatting in certain countries, but is not critical to the correctness 
of the data and will never affect any validation or other non-formatting related operations.
Examples: "zh-Hant", "ja", "ja-Latn", "en".
    Example: en

  - `pickup.address.locality` (string)
    Generally refers to the city/town portion of the address.
    Example: San Francisco

  - `pickup.address.locationCode` (string)
    IATA 3-letter location code. See https://www.iata.org/en/services/codes.
    Example: LAX

  - `pickup.address.organization` (string)
    The name of the organization at the address.
    Example: Spotnana

  - `pickup.address.postalCode` (string)
    Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
    Example: 94130

  - `pickup.address.continentCode` (string)
    2 letter continent code of the continent this address falls in.
    Example: AF

  - `pickup.address.recipients` (array)
    The recipient at the address.

  - `pickup.address.regionCode` (string, required)
    Region code of the country/region of the address.
    Example: US

  - `pickup.address.regionName` (string)
    Region name of the country/region of the address.
    Example: America

  - `pickup.address.revision` (integer)
    Example: 1

  - `pickup.address.sortingCode` (string)
    Additional, country-specific, sorting code. This is not used
in most regions. Where it is used, the value is either a string like
"CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
alone, representing the "sector code" (Jamaica), "delivery area indicator"
(Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
    Example: Jamaica

  - `pickup.address.sublocality` (string)
    Sublocality of the address. This can be neighborhoods, boroughs, districts.

  - `pickup.address.timezone` (string)
    Time zone of the address.
    Example: America/Los_Angeles

  - `filters` (object)
    Filters for car search.

  - `filters.carTypes` (array)
    Filter based on car type. Ex. MINI/CONVERTIBLE.

  - `filters.numPassengers` (object)

  - `filters.numPassengers.min` (integer)
    Minimum value - inclusive.

  - `filters.numPassengers.max` (integer)
    Maximum value - inclusive.

  - `filters.vendors` (array)
    Filter based on car vendor code.
    Example: ["ZI","ZD"]

  - `filters.excludeTransmissions` (array)
    Exclude a list of Transmission types.

  - `filters.engineTypes` (array)
    Filter based on engine type. Ex. DIESEL/PETROL.

  - `filters.hasAirConditioning` (boolean)
    filter to filter out cars with Air Conditioning
    Example: true

  - `filters.carExtraTypes` (array)
    Filter based on car extras. Ex. CHILD_SEAT_TODDLER/BICYCLE_RACK.

  - `filters.preferredOnly` (boolean)
    Include cars that are from preferred vendors.

  - `filters.price` (object)
    SimpleMoney range containing minimum and maximum amount.

  - `filters.price.min` (object)
    Money object containing just amount and currency code.

  - `filters.price.min.amount` (number, required)
    Amount
    Example: 510

  - `filters.price.min.currencyCode` (string, required)
    The 3-letter currency code defined in ISO 4217.
    Example: GBP

  - `filters.paymentTypes` (array)
    Filter out the results for which only a certain payment type can be applied.

  - `filters.fareTypes` (array)
    Filter based on fare types.

  - `sortOptions` (object)
    Car sorting option parameters.

  - `sortOptions.sortBy` (string)
    Enum: "PRICE", "DISTANCE"

  - `sortOptions.sortOrder` (string)
    Enum: "ASCENDING", "DESCENDING"

  - `renterAge` (integer)
    Age of the renter
    Example: 30

  - `citizenCountryCode` (string)
    Citizen code of the renter
    Example: US

  - `pickupCountryCode` (string)
    Country code of the pick up location
    Example: US

  - `loyaltyCode` (array)
    Loyalty codes to be applied

  - `loyaltyCode.vendor` (string, required)
    Vendor code
    Example: ZI

  - `loyaltyCode.code` (string, required)
    Loyalty code
    Example: 1924047077

  - `loyaltyCode.type` (string, required)
    Loyalty type
    Enum: "PROMOTIONAL_COUPON"

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `searchId` (string)
    Unique searchID associated to the car search
    Example: 9585821762922174

  - `cars` (array)

  - `cars.carId` (string)
    Unique car ID representing a particular car.
    Example: EgRDWE1SGgM0MEkiAlpJKgoKA1NUThIDU1ROMgoKA1NUThIDU1RO

  - `cars.pickupParams` (object)

  - `cars.pickupParams.pickupLocation` (object)
    Pickup and drop-off location info.

  - `cars.pickupParams.pickupLocation.address` (object, required)
    Postal Address Details

  - `cars.pickupParams.pickupLocation.address.addressLines` (array, required)
    Address lines

  - `cars.pickupParams.pickupLocation.address.administrativeArea` (string)
    Code of administrative area. For example: DL for Delhi, India.
Highest administrative subdivision which is used for postal
addresses of a country or region.
For example, this can be a state, a province, an oblast, or a prefecture.
Specifically, for Spain this is the province and not the autonomous
community (e.g. "Barcelona" and not "Catalonia").
Many countries don't use an administrative area in postal addresses. E.g.
in Switzerland this should be left unpopulated.
    Example: CA

  - `cars.pickupParams.pickupLocation.address.administrativeAreaName` (string)
    Name of administrative area. This is full name corresponding to administrativeArea. 
Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
    Example: California

  - `cars.pickupParams.pickupLocation.address.description` (string)
    Address description
    Example: San Francisco Home

  - `cars.pickupParams.pickupLocation.address.isDefault` (boolean)
    Whether this address is default address in case multiple addresses are specified.
    Example: true

  - `cars.pickupParams.pickupLocation.address.languageCode` (string)
    BCP-47 language code of the contents of this address (if known). This is often the UI 
language of the input form or is expected to match one of the languages used in the 
address' country/region, or their transliterated equivalents.
This can affect formatting in certain countries, but is not critical to the correctness 
of the data and will never affect any validation or other non-formatting related operations.
Examples: "zh-Hant", "ja", "ja-Latn", "en".
    Example: en

  - `cars.pickupParams.pickupLocation.address.locality` (string)
    Generally refers to the city/town portion of the address.
    Example: San Francisco

  - `cars.pickupParams.pickupLocation.address.locationCode` (string)
    IATA 3-letter location code. See https://www.iata.org/en/services/codes.
    Example: LAX

  - `cars.pickupParams.pickupLocation.address.organization` (string)
    The name of the organization at the address.
    Example: Spotnana

  - `cars.pickupParams.pickupLocation.address.postalCode` (string)
    Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
    Example: 94130

  - `cars.pickupParams.pickupLocation.address.continentCode` (string)
    2 letter continent code of the continent this address falls in.
    Example: AF

  - `cars.pickupParams.pickupLocation.address.recipients` (array)
    The recipient at the address.

  - `cars.pickupParams.pickupLocation.address.regionCode` (string, required)
    Region code of the country/region of the address.
    Example: US

  - `cars.pickupParams.pickupLocation.address.regionName` (string)
    Region name of the country/region of the address.
    Example: America

  - `cars.pickupParams.pickupLocation.address.revision` (integer)
    Example: 1

  - `cars.pickupParams.pickupLocation.address.sortingCode` (string)
    Additional, country-specific, sorting code. This is not used
in most regions. Where it is used, the value is either a string like
"CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
alone, representing the "sector code" (Jamaica), "delivery area indicator"
(Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
    Example: Jamaica

  - `cars.pickupParams.pickupLocation.address.sublocality` (string)
    Sublocality of the address. This can be neighborhoods, boroughs, districts.

  - `cars.pickupParams.pickupLocation.address.timezone` (string)
    Time zone of the address.
    Example: America/Los_Angeles

  - `cars.pickupParams.pickupLocation.address.coordinates` (object)
    Latitude and Longitude for a Location

  - `cars.pickupParams.pickupLocation.address.coordinates.latitude` (number, required)
    Latitude of the Location
    Example: 77.1025

  - `cars.pickupParams.pickupLocation.address.coordinates.longitude` (number, required)
    Longitude of the Location
    Example: 28.7041

  - `cars.pickupParams.pickupLocation.counterLocation` (string)
    Rental car counter location.
    Enum: "UNKNOWN_COUNTER", "NON_AIRPORT_LOCATION", "IN_TERMINAL", "OFF_AIRPORT_RENTAL_SHUTTLE", "IN_TERMINAL_RENTAL_SHUTTLE", "ON_AIRPORT_RENTAL_SHUTTLE", "ON_AIRPORT_AIRPORT_SHUTTLE", "CALL_FOR_SHUTTLE", "TWO_SHUTTLES_AIRPORT_AND_RENTAL"

  - `cars.pickupParams.pickupLocation.operatingSchedule` (object)
    Operating schedule of vendor

  - `cars.pickupParams.pickupLocation.operatingSchedule.interval` (object, required)

  - `cars.pickupParams.pickupLocation.operatingSchedule.interval.min` (object)
    Local date and time in ISO 8601 format.

  - `cars.pickupParams.pickupLocation.operatingSchedule.interval.min.iso8601` (string, required)
    Example: 2017-07-21T17:32

  - `cars.pickupParams.pickupLocation.operatingSchedule.dayOfWeek` (string)
    Day of the week for which operating schedule is valid
    Example: SUN

  - `cars.pickupParams.pickupLocation.weeklyOperatingSchedule` (array)
    Weekly operating schedule of vendor

  - `cars.pickupParams.pickupLocation.contactInfo` (object)
    Contact info of the location

  - `cars.pickupParams.pickupLocation.contactInfo.phone` (array)

  - `cars.pickupParams.pickupLocation.contactInfo.fax` (array)

  - `cars.pickupParams.pickupLocation.contactInfo.email` (array)

  - `cars.pickupParams.pickupLocation.contactInfo.emergencyPhone` (array)

  - `cars.pickupParams.pickupDistance` (object)
    Specifies the length or a distance.

  - `cars.pickupParams.pickupDistance.length` (number, required)
    Distance from search point.
    Example: 150

  - `cars.pickupParams.pickupDistance.unit` (string, required)
    Unit of measure being applied.
    Enum: "UNKNOWN_UNIT", "KM", "MILE", "CENTIMETER", "METER"

  - `cars.dropOffParams` (object)

  - `cars.rateInfo` (object)
    Car Rate information and breakdown

  - `cars.rateInfo.rateType` (string)
    Enum: "UNKNOWN", "GUARANTEED", "PREPAID", "NO_PREPAYMENT"

  - `cars.rateInfo.carRateComponents` (array)

  - `cars.rateInfo.carRateComponents.componentType` (string, required)
    Rate type.
    Enum: "UNKNOWN_TYPE", "DROP_OFF_CHARGE", "EXTRA_DAY", "EXTRA_HOUR", "BASE_RATE", "BASE_RATE_TOTAL", "SUBTOTAL_EXCLUDING_MANDATORY_CHARGES", "DAILY_CHARGES_TOTAL", "HOURLY_CHARGES_TOTAL", "MANDATORY_CHARGES", "MANDATORY_CHARGES_TOTAL", "APPROXIMATE_TOTAL_PRICE", "CAR_EXTRA_TOTAL_CHARGE", "APPROXIMATE_BASE_FARE", "TOTAL_TAX", "PUBLISHED_BASE_FARE", "PUBLISHED_TOTAL_TAX", "APPROXIMATE_DAILY_AVERAGE_TOTAL", "APPROXIMATE_DAILY_AVERAGE_BASE", "APPROXIMATE_DAILY_AVERAGE_TAX", "PUBLISHED_DAILY_TOTAL", "PUBLISHED_DAILY_BASE_FARE", "PUBLISHED_DAILY_TOTAL_TAX", "CAR_MODIFY_RATE_DIFFERENCE", "CAR_MODIFY_AVERAGE_RATE_DIFFERENCE"

  - `cars.rateInfo.carRateComponents.amount` (object, required)
    Money object containing details such as the amount, the currency code, and the converted amount.

  - `cars.rateInfo.carRateComponents.amount.amount` (number, required)
    The numeric value for the amount of money.
    Example: 510

  - `cars.rateInfo.carRateComponents.amount.currencyCode` (string, required)
    The 3-letter currency code for the money amount (defined using ISO 4217 standard).
    Example: GBP

  - `cars.rateInfo.carRateComponents.amount.convertedAmount` (number)
    The converted currency and amount that has been converted (if a currency conversion has been requested).
For example, if the call requests that money be sent in a specified currency (because the frontend requested
the backend to send money in the user's preferred currency).
    Example: 715.42

  - `cars.rateInfo.carRateComponents.amount.convertedCurrency` (string)
    The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
    Example: USD

  - `cars.rateInfo.carRateComponents.amount.otherCoinage` (array)
    List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.coinageCode` (string)
    Payment method
    Enum: "PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER", "NO_PREPAYMENT"

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.amount` (number)
    Example: 1000

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.conversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.preferredCurrencyConversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata` (any)
    Metadata to store additional information related to the payment method

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata.metadataType` (string)
    Discriminator field for polymorphic deserialization
    Enum: "FlightPassPaymentMetadata"

  - `cars.rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata` (object, required)
    Metadata specific to Flight Pass payment method in OtherCoinage.

  - `cars.rateInfo.carExtras` (array)

  - `cars.rateInfo.carExtras.carExtraType` (string)
    Enum: "UNKNOWN_TYPE", "RENTER_AGE", "ADDITIONAL-DRIVER", "BABY-STROLLER", "CHILD-SEAT-BOOSTER", "BICYCLE-RACK", "CARGO-BARRIER-BACK", "CARGO-BARRIER-FRONT", "BOOSTER-SEAT-UP-TO-AGE-12", "COLLISION-DAMAGE-WAIVER", "CHILD-SEAT-UP-TO-AGE-3", "CHILD-SEAT-INFANT", "SATELLITE-RADIO", "CHILD-SEAT-TODDLER", "REAR-SEAT-DVD-PLAYER", "FLAG-HOLDER", "HAND-CONTROL-LEFT", "HAND-CONTROL-RIGHT", "MOTORCYCLE-HELMET", "SECURITY-DEVICES", "JERRY-CAN", "LOSS-DAMAGE-WAIVER", "LUGGAGE-ROOF-CASE", "LUGGAGE-TRAILER", "LUGGAGE-RACK", "NAVIGATIONAL-SYSTEM", "NAVIGATIONAL-SYSTEM-BUILT-IN", "PERSONAL-ACCIDENT-INSURANCE", "MOBILE-PHONE", "ROAD-CONGESTION-PAYMENT-SCHEME", "SEAT-BELT-EXTENSION", "SNOW-BOARD-RACKS", "SKI-BOX", "SKI-RACK-ONLY", "SKI-RACK-OR-BOX", "SKI-EQUIPPED-VEHICLE", "SNOW-CHAINS", "SNOW-PACKS", "SNOW-TIRES", "SPINNER-KNOB", "SURF-RACK", "SCOOTER-TOP-CASE", "SNOW-WINTER-TIRES", "TOLL-PAYMENT-TAG-PASS", "SPARE-TIRE", "WHEEL-CHAIR-ACCESS-RAMP", "WHEEL-CHAIR", "WIFI-ACCESS"

  - `cars.rateInfo.carExtras.carExtraRateUnit` (string)
    Enum: "UNKNOWN_RATE_UNIT", "DAILY", "WEEKEND", "WEEKLY", "MONTHLY", "BUNDLED", "TOTAL"

  - `cars.rateInfo.refundable` (string)
    Enum: "UNKNOWN_REFUNDABLE", "REFUNDABLE", "NON_REFUNDABLE"

  - `cars.rateInfo.fareType` (string)
    Enum: "PUBLISHED", "CORPORATE", "SPOTNANA", "UNKNOWN", "TMC"

  - `cars.rateInfo.allowedPaymentTypes` (array)
    Indicates the restriction on which payment method types can be used to make the booking.

  - `cars.rateInfo.dailyRates` (array)
    Contains daily rates for each day of the rental duration.

  - `cars.rateInfo.supplier` (string)
    Enum: "UNKNOWN_SOURCE", "SABRE", "TRAVEL_FUSION", "AVIA", "NDC", "TRAINLINE", "ATPCO_NDC", "FARELOGIX_NDC", "OFFLINE", "CONNEXUS", "ROUTEHAPPY", "AMADEUS", "GIATA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE", "ENTERPRISE", "HYATT", "HILTON", "EUROSTAR", "NATIONAL", "ALAMO", "AVIS", "BUDGET", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "AMADEUS_NDC", "SIXT"

  - `cars.cancellationPolicy` (array)

  - `cars.cancellationPolicy.penalty` (object)

  - `cars.cancellationPolicy.penalty.carCancellationAmountPercent` (number)
    Example: 10

  - `cars.cancellationPolicy.deadline` (object)

  - `cars.cancellationPolicy.deadline.carCancellationDeadlineHoursBefore` (integer)
    Example: 2

  - `cars.carSpec` (object)
    Car spec.

  - `cars.carSpec.airConditioning` (string)
    Whether air conditioning is available.
    Enum: "UNKNOWN_AC", "AC_AVAILABLE", "AC_NOT_AVAILABLE"

  - `cars.carSpec.amenities` (object)
    Car amenities.

  - `cars.carSpec.amenities.numDoors` (integer)
    Number of doors.
    Example: 4

  - `cars.carSpec.amenities.numLargeBags` (integer)
    Number of large bags.
    Example: 2

  - `cars.carSpec.amenities.numSeatBelts` (integer)
    Number of seats belts.
    Example: 5

  - `cars.carSpec.amenities.numSeats` (integer)
    Number of seats.
    Example: 5

  - `cars.carSpec.amenities.numSmallBags` (integer)
    Number of small bags.
    Example: 5

  - `cars.carSpec.type` (string, required)
    Car type.
    Enum: "OTHER", "MINI", "ECONOMY", "COMPACT", "MID_SIZE", "STANDARD", "FULL_SIZE", "PREMIUM", "LUXURY", "CONVERTIBLE", "MINIVAN", "SUV", "VAN", "PICKUP", "SPORTS", "SPECIAL", "RECREATIONAL_VEHICLE", "WAGON"

  - `cars.carSpec.displayName` (string)
    Car display name.
    Example: Economy

  - `cars.carSpec.engineType` (string)
    Engine types.
    Enum: "UNKNOWN_ENGINE", "PETROL", "DIESEL", "ELECTRIC", "CNG", "HYBRID", "HYDROGEN", "MULTI_FUEL", "ETHANOL"

  - `cars.carSpec.imageGroups` (array)
    Collection of car images.

  - `cars.carSpec.imageGroups.caption` (string)
    Caption for the image.
    Example: Exterior

  - `cars.carSpec.imageGroups.images` (array, required)
    List of images.

  - `cars.carSpec.imageGroups.images.data` (string)
    Example: 6935813e12584abda0e43d71cd2ea260

  - `cars.carSpec.imageGroups.images.dimensions` (object)
    Image dimensions ie width and height.

  - `cars.carSpec.imageGroups.images.dimensions.height` (integer)
    Example: 120

  - `cars.carSpec.imageGroups.images.dimensions.width` (integer)
    Example: 240

  - `cars.carSpec.imageGroups.images.url` (string)
    Example: https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp

  - `cars.carSpec.imageGroups.images.metadata` (object)
    Metadata associated with an image.

  - `cars.carSpec.imageGroups.images.metadata.variant` (string)
    Image variant.
    Enum: "LIGHT", "DARK"

  - `cars.carSpec.transmission` (string)
    Transmission types.
    Enum: "UNKNOWN_TRANSMISSION", "MANUAL_UNSPECIFIED_DRIVE", "MANUAL_4WD", "MANUAL_AWD", "AUTO_UNSPECIFIED_DRIVE", "AUTO_4WD", "AUTO_AWD"

  - `cars.policyInformation` (object)
    Policy Info applicable for the associated itinerary

  - `cars.policyInformation.policies` (array)
    List of policies applied to the itinerary.

  - `cars.policyInformation.policies.id` (string, required)
    Policy id

  - `cars.policyInformation.policies.version` (string, required)
    version of the policy

  - `cars.policyInformation.policies.policyName` (string)
    Name of the policy applied.

  - `cars.policyInformation.policies.approvalType` (string)
    Enum: "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL"

  - `cars.policyInformation.policies.policyType` (string)
    Enum: "GLOBAL", "DEFAULT", "GROUP"

  - `cars.policyInformation.ruleResultInfos` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.predicateString` (string)

  - `cars.policyInformation.ruleResultInfos.violationInfos.predicate` (string)
    This contains the enum mentioning the policy rule which was violated.
    Enum: "UNKNOWN_PREDICATE_STRING", "MAX_FARE_PER_TRAVELLER_VIOLATION", "FARE_MORE_THAN_MINIMUM", "FARE_MORE_THAN_MEDIAN", "FARE_LESS_THAN_MEDIAN", "FARE_MORE_THAN_LLF", "MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX", "MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX", "HOTEL_PAYMENT_OPTIONS_VIOLATION", "RAIL_BOOKING_WINDOW_GAP_VIOLATION", "RAIL_TRAVEL_CLASS_VIOLATION", "RAIL_TICKET_REFUNDABLE_VIOLATION", "RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX", "RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX", "HOTEL_RESTRICTED_KEYWORDS_VIOLATION", "RESTRICTED_LOCATION_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION", "ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW", "HOTEL_IN_ALLOWED_HOTEL_LIST", "PAYMENT_ACCESS_VIOLATION", "AIRPORT_IN_ALLOWED_AIRPORT_LIST", "ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES", "PAYMENT_AIR_ADDON_VIOLATION", "MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX", "MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX", "AIR_NUM_TRAVELERS_ALLOWED", "PREFERRED_VENDOR_VIOLATION", "SEAT_ADDON_VIOLATION", "BAGGAGE_ADDON_VIOLATION", "EARLY_BIRD_ADDON_VIOLATION", "WIFI_ADDON_VIOLATION", "RESTRICTED_BOOKING_VIOLATION", "HIGHEST_ALLOWED_CABIN_VIOLATION", "LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION", "AIR_RESTRICTED_FARES_VIOLATION", "AIR_ANCILLARY_VIOLATION"

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue` (object)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.displaySuffix` (string)
    Optional display suffix for the policy const value

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.i` (integer)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.l` (integer)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.s` (string)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.d` (number)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.b` (boolean)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.iList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.dList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.sList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId` (object)
    User and user's organization information.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId.organizationAgencyId` (object)
    Agency id for the organization.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId.organizationId` (object, required)
    Organization id for traveler.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId.userId` (object, required)
    User identifier

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId.tmcInfo` (object)
    TMC config information.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgId.tmcBasicInfo` (object)
    TMC related basic information.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.legalEntityId` (object)
    The ID of the legal entity.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.legalEntityId.id` (string, required)
    Example: fc1ccbce-8413-4fe9-b233-a324dfbe7421

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.officeId` (object)
    The unique ID of the office.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.officeId.id` (string, required)
    The value of the unique ID for the office.
    Example: 531ccbce-8413-4fe9-b233-a324dfbe7421

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.userOrgIdList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.legalEntityIdList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.officeIdList` (array)
    A list of office IDs.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.rating` (number)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.percentage` (number)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.iRange` (object)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.iRange.min` (integer)
    Minimum value - inclusive.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.iRange.max` (integer)
    Maximum value - inclusive.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.dRange` (object)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.dRange.min` (number)
    Minimum value - inclusive.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.dRange.max` (number)
    Maximum value - inclusive.

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.persona` (string)
    Persona of the user
    Enum: "UNKNOWN_PERSONA", "EMPLOYEE", "GUEST", "PERSONAL", "RELATIVE", "ADHOC"

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.personaList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.railTravelClass` (string)
    Rail Travel classes in hierarchy numbering higher to keep scope for future additions in 
between.
    Enum: "UNKNOWN", "STANDARD", "COACH", "STANDARD_PREMIUM", "BUSINESS", "BUSINESS_PREMIUM", "FIRST", "SLEEPER"

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.keywordWithReasonList` (object)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.keywordWithReasonList.keywords` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.workerType` (string)
    The type of worker.
    Enum: "EMPLOYEE", "CONTINGENT", "SEASONAL", "INTERN", "GUEST"

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.workerTypeList` (array)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.airRestrictedFaresParams` (object)

  - `cars.policyInformation.ruleResultInfos.violationInfos.expectedValue.airRestrictedFaresParams.airRestrictedKeywords` (array)
    List of keywords grouped by airline

  - `cars.policyInformation.ruleResultInfos.subViolationInfos` (array)
    In case of complex rules this will contain extra information as to how the rule was 
calculated.

  - `cars.policyInformation.ruleResultInfos.actions` (array)
    Followed actions if rule was satisfied else violated actions.

  - `cars.policyInformation.ruleResultInfos.actions.flag` (object)

  - `cars.policyInformation.ruleResultInfos.actions.flag.message` (string)

  - `cars.policyInformation.ruleResultInfos.actions.hide` (boolean)

  - `cars.policyInformation.ruleResultInfos.actions.alertOnSelection` (object)

  - `cars.policyInformation.ruleResultInfos.actions.alertOnSelection.message` (string)

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval` (object)

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.numHierarchyLevels` (integer)
    How many levels of hierarchy should approval be taken? If it's just immediate manager, 
this value would be 1. If it's manager and their manager, this would ge 2 and so on.

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.positionTitles` (array)
    What position in the cost center or department. For eg, any business class upgrade 
might require VP approval.

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.userOrgIds` (array)
    The specific users from whom to take approval. For eg, say for a company, all approvals
go through Adam.

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.allRequired` (boolean)
    This tells whether all the people above needs to approve or if any of these approve, 
it is sufficient.

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.hardApprovalRequired` (boolean)
    Whether to take soft approval (false) or hard approval (true).

  - `cars.policyInformation.ruleResultInfos.actions.takeApproval.approvalType` (string)
    Type of APPROVAL
    Enum: "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL", "PRE_APPROVAL"

  - `cars.policyInformation.ruleResultInfos.actions.preventBooking` (object)
    Whether to allow booking if a rule is violated.

  - `cars.policyInformation.ruleResultInfos.actions.preventBooking.prevent` (boolean)
    True if booking is to be blocked if rule is violated, else false

  - `cars.policyInformation.ruleResultInfos.actions.preventBooking.reason` (string)
    Reason describing why was that specific itinerary not allowed to book.

  - `cars.policyInformation.ruleResultInfos.actions.splitPayment` (object)
    Split payment details for claiming reimbursements.

  - `cars.policyInformation.ruleResultInfos.actions.splitPayment.isAmountReimbursable` (boolean)
    If the in policy amount is reimbursable or not.

  - `cars.preferences` (array)

  - `cars.preferences.preferredType` (string, required)
    Preference type.
    Enum: "NOT_PREFERRED", "COMPANY_PREFERRED", "SPOTTERS_CHOICE", "COMPANY_BLOCKED", "TMC_PREFERRED"

  - `cars.preferences.blockedReason` (string)
    Reason for blocking the leg, hotel or car.

  - `cars.preferences.label` (string)
    The label assigned to a specific tier of preference.

  - `cars.vendor` (object)
    Car vendor.

  - `cars.vendor.code` (string, required)
    Vendor code.
    Example: ZE

  - `cars.vendor.name` (string, required)
    Vendor name.
    Example: HERTZ

  - `cars.vendor.email` (string)
    Vendor email.
    Example: abc@xyz.com

  - `cars.vendor.phone` (object)
    Properly formatted phone number.

  - `cars.vendor.phone.countryCode` (integer)
    two digit country code
    Example: 91

  - `cars.vendor.phone.countryCodeSource` (string)
    Enum: "UNSPECIFIED", "FROM_NUMBER_WITH_PLUS_SIGN", "FROM_NUMBER_WITH_IDD", "FROM_NUMBER_WITHOUT_PLUS_SIGN", "FROM_DEFAULT_COUNTRY"

  - `cars.vendor.phone.extension` (string)
    phone number extension
    Example: 222

  - `cars.vendor.phone.isoCountryCode` (string)
    ISO alpha-2 code
    Example: IN

  - `cars.vendor.phone.italianLeadingZero` (boolean)
    Example: true

  - `cars.vendor.phone.nationalNumber` (integer)
    Example: 8150

  - `cars.vendor.phone.numberOfLeadingZeros` (integer)
    Example: 1

  - `cars.vendor.phone.preferredDomesticCarrierCode` (string)
    Example: 7

  - `cars.vendor.phone.rawInput` (string)
    Example: 77777

  - `cars.vendor.phone.type` (string)
    Enum: "UNKNOWN_TYPE", "MOBILE", "LANDLINE"

  - `cars.co2Emission` (object)
    The CO2 emission detail for car.

  - `cars.co2Emission.co2EmissionValue` (number, required)
    The CO2 emission value in kgs for car.
    Example: 0.01

  - `cars.isSamePickupLocation` (boolean)
    Indicates whether the car pickup location is same as the original booking, used only in modify search flow.

  - `cars.dcStatus` (string)
    Whether a car is offered for delivery & collection.
Present only on cars that came back from a delivery & collection
search; absent means the car is an ordinary counter rental. A merged
result set carries both, so filter on DC_AVAILABLE rather than on the
field being set: ON_REQUEST and NOT_AVAILABLE are diagnostic values
and neither is sellable.
    Enum: "DC_STATUS_UNKNOWN", "DC_AVAILABLE", "DC_ON_REQUEST", "DC_NOT_AVAILABLE"

  - `cars.dcInfo` (object)
    Where the car is delivered to and collected from.
Both legs travel together. A car delivered but never collected is not a
sellable arrangement, and at least one supplier rejects a half-filled
block outright, so omitting collection means "same as delivery" rather
than "no collection". With neither leg there is nothing to deliver, so
`delivery` is required whenever the block is sent at all.

  - `cars.dcInfo.delivery` (object, required)
    One leg of a delivery & collection arrangement.

  - `cars.dcInfo.delivery.instructions` (string)
    Free-text note for the driver, entered at checkout. Sent per leg, so
identical delivery and collection notes still travel twice.
Suppliers truncate beyond their own limits.
    Example: Deliver to reception desk

  - `metadata` (object)

  - `metadata.availableVendors` (array)

  - `metadata.showOnlyBaseFare` (boolean)
    Toggles behaviour on whether we show the fare as base amount or total amount depending on service location and legalEntity.

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

## Response 404:

  - `404` (unknown)
    The specified resource was not found.

## Response 404 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

