# Check car price availability

Check if the price for a selected car is still available before proceeding with the booking.

Endpoint: POST /v2/car/price-check
Version: v2
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer

## Request fields (application/json):

  - `searchId` (string, required)
    SearchID of the selected car.
    Example: 1cf76aba18e4015f

  - `carId` (string, required)
    CarId of the car to be booked.
    Example: EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP

  - `tripId` (string)
    Trip ID
    Example: 1234567890

  - `isModify` (boolean)
    Indicates if this API call is a part of modify search and book.
    Example: false

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `timeoutSeconds` (integer)
    Time in seconds for which the price is held.
    Example: 3900

  - `hasPriceChanged` (boolean, required)
    Indicates if the price has changed from the details.
    Example: true

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

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

  - `rateInfo.carRateComponents` (array)

  - `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"

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

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

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

  - `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

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

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

  - `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"

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

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

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

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

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

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

  - `rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassNumber` (string)
    Flight pass number
    Example: FP123456789

  - `rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassAmounts` (object)
    Fare breakdown for the flight pass booking.

  - `rateInfo.carRateComponents.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassAmounts.taxBreakdown` (array)
    Breakdown of taxes by code (e.g. GST_HST, QST, OTHER).

  - `rateInfo.carRateComponents.mileageAllowance` (object)
    Specifies the length or a distance.

  - `rateInfo.carRateComponents.mileageAllowance.length` (number, required)
    Distance from search point.
    Example: 150

  - `rateInfo.carRateComponents.mileageAllowance.unit` (string, required)
    Unit of measure being applied.
    Enum: "UNKNOWN_UNIT", "KM", "MILE", "CENTIMETER", "METER"

  - `rateInfo.carExtras` (array)

  - `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"

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

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

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

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

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

  - `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"

  - `preferences` (array)

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

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

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

  - `bookingKey` (string)
    Booking key used to make booking.

  - `supplierRequiredFields` (array)
    Booking-time fields the supplier's live quote marked as needing a value (e.g. EHI's per-contract "AdditionalInfoField"). id/label are opaque and supplier/contract-specific, not a fixed enum -- render generically and echo the answer back on create_pnr's supplierFieldValues, keyed by id.

  - `supplierRequiredFields.id` (string)
    Opaque supplier-issued field identifier.
    Example: 18903794122757

  - `supplierRequiredFields.label` (string)
    Supplier-issued display label for this field.
    Example: Team

  - `supplierRequiredFields.required` (boolean)
    Whether the supplier rejects the booking without a value for this field.
    Example: true

## 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.

