# Modify an existing car booking

Make modifications to an existing car booking.

Endpoint: POST /v2/car/pnrs/{pnrId}/modify-book
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):

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

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

  - `tripData` (object, required)
    Trip data to book a PNR.

  - `tripData.approverEmail` (string)
    Email address of the approver who should receives approval email for the current booking.

  - `tripData.approverName` (string)
    Name of the approver.

  - `tripData.hardApprovalRequired` (boolean)
    Whether the current booking requires hard approval or soft approval.
This flag should be used only if valid approver is present.

  - `tripData.outOfPolicy` (boolean)
    If the given booking is out of policy.

  - `tripData.policyId` (string)
    Policy Id for which violation is done.

  - `tripData.policyVersion` (integer)
    Version of policy.

  - `tripData.tripId` (object, required)
    Id of trip.

  - `tripData.tripId.id` (string, required)
    Id.
    Example: 2783425534

  - `preBookAnswers` (object)

  - `preBookAnswers.answers` (array)

  - `preBookAnswers.answers.entityId` (string)
    The unique ID for the question.

  - `preBookAnswers.answers.userInput` (string)
    The text input given by user (if any).

  - `preBookAnswers.answers.itemIds` (array)
    The id/enum value corresponding to the option chosen by the user as
answer.

  - `preBookAnswers.answers.answers` (array)

  - `preBookAnswers.answers.answers.item` (string)
    The option selected from the list of available choices.

  - `preBookAnswers.answers.answers.value` (string)
    The additional input provided (by the user) while selecting one of the options.

  - `preBookAnswers.answers.answers.description` (string)
    Description of the selected option.

  - `preBookAnswers.answers.customFieldType` (string)
    The type of custom field.
    Enum: "QUESTION", "MEETING", "BUDGET", "BREX_TOKEN"

  - `preBookAnswers.answers.questionDisplayText` (string)
    The question text to be displayed to the user.

  - `preBookAnswers.answers.question` (object)
    The message defines the format of a question which can be asked to a user in any kind of workflows.

  - `preBookAnswers.answers.question.id` (string, required)

  - `preBookAnswers.answers.question.name` (string, required)
    Question display name that the user will see. For eg, 'Choose the purpose of your trip'.

  - `preBookAnswers.answers.question.questionFormat` (string)
    Question types. INPUT_BOX will make user enter a free flowing text.
RADIO_BUTTON will have multiple options, user can select only one.
CHECKBOX questions contain the possible set of options, from which the user can choose multiple options.
CHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.
    Enum: "INPUT_BOX", "RADIO_BUTTON", "CHECKBOX", "CHECKBOX_WITH_PERCENTAGE"

  - `preBookAnswers.answers.question.optionInfo` (object)
    Options related information for the question.

  - `preBookAnswers.answers.question.optionInfo.source` (string, required)
    Option source
    Enum: "MANUAL", "COMPANY_CONFIG"

  - `preBookAnswers.answers.question.optionInfo.sourceMetadata` (object)
    Metadata information for the option source.

  - `preBookAnswers.answers.question.optionInfo.sourceMetadata.companyConfig` (object)
    For this option source, options would be auto generated based on specified parameter.

  - `preBookAnswers.answers.question.optionInfo.sourceMetadata.companyConfig.optionsParam` (string, required)
    Parameter to form options for the custom field.
    Enum: "COST_CENTER", "LEGAL_ENTITY", "OFFICE", "DEPARTMENT"

  - `preBookAnswers.answers.question.optionInfo.totalNumOptions` (integer)
    Total number of options

  - `preBookAnswers.answers.question.optionInfo.options` (array)
    Available options for the question. This will contain only max 10 options if only 
summary is requested.

  - `preBookAnswers.answers.question.optionInfo.options.displayCode` (string, required)
    The code which is sent in answer response.

  - `preBookAnswers.answers.question.optionInfo.options.displayValue` (string)
    The text to be displayed to the user beside this option.

  - `preBookAnswers.answers.question.isRequired` (boolean, required)
    Whether its compulsory to answer the question or not.
    Example: true

  - `preBookAnswers.answers.question.isDisabled` (boolean, required)
    Whether the question is disabled or not. If true, this should not be asked.
    Example: true

  - `preBookAnswers.answers.question.includeInItinerary` (boolean)
    Whether to include this question in the itinerary related emails.
    Example: true

  - `preBookAnswers.answers.question.customFieldLocations` (array)

  - `preBookAnswers.answers.question.matchConditions` (object)
    Conditions to select the custom field for given context.

  - `preBookAnswers.answers.question.matchConditions.travelerConditions` (object)
    Matching conditions for traveler.

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.workerTypes` (array)
    Worker types. Users belonging to any of these would match.

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.countries` (array)
    Countries.

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.legalEntities` (array)
    Legal entities

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.legalEntities.id` (string, required)
    Example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.legalEntities.name` (string)
    Example: Name

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.departments` (array)
    Departments

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.costCenters` (array)
    Cost centers

  - `preBookAnswers.answers.question.matchConditions.travelerConditions.offices` (array)
    Offices

  - `preBookAnswers.answers.question.matchConditions.travelTypes` (array)
    Travel types to match.

  - `preBookAnswers.answers.question.matchConditions.travelRegionTypes` (array)
    Travel region types to match.

  - `preBookAnswers.answers.question.matchConditions.tripUsageTypes` (array)
    Trip usage types to match. If empty, all trip usage types will be matched.

  - `preBookAnswers.answers.question.questionType` (object)
    Question type.

  - `preBookAnswers.answers.question.questionType.preSearchQuestionType` (string)
    Types of pre-search questions.
PURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.
    Enum: "UNKNOWN_SEARCH_QUESTION_TYPE", "PURPOSE_OF_TRIP"

  - `preBookAnswers.answers.question.questionType.preCheckoutQuestionType` (string)
    Types of pre-checkout questions.
USER_DEFINED_QUESTION the default question type for all pre checkout questions which have been created from UI.
OOP_REASON_CODE is kept separate so that existing OOP flow doesn't break.
    Enum: "UNKNOWN_CHECKOUT_QUESTION_TYPE", "USER_DEFINED_QUESTION", "OOP_REASON_CODE"

  - `preBookAnswers.preBookQuestionResponseId` (string)
    The unique id sent back in the pre book questions API response

  - `bookingCharges` (array, required)

  - `bookingCharges.amount` (object)
    Fare amount including base fare and tax.

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

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

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

  - `bookingCharges.amount.base.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

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

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

  - `bookingCharges.amount.base.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"

  - `bookingCharges.amount.base.otherCoinage.amount` (number)
    Example: 1000

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

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

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

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

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

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

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

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

  - `bookingCharges.amount.taxBreakdown` (array)

  - `bookingCharges.amount.taxBreakdown.taxCode` (string)
    Tax code
    Example: VAT

  - `bookingCharges.amount.taxBreakdown.percentage` (number)
    Tax amount to total amount
    Example: 9

  - `bookingCharges.amount.taxBreakdown.description` (string)
    Tax name or Tax Description
    Example: AIR TRAVELLERS SECURITY CHARGE

  - `bookingCharges.paymentMethod` (object)
    Selected payment method for the booking.

  - `bookingCharges.paymentMethod.selectedPaymentSource` (object)
    Describes the selected payment source for the booking.

  - `bookingCharges.paymentMethod.selectedPaymentSource.paymentSourceId` (string)
    Unique identifier identifying this payment source.
    Example: f49d00fe-1eda-4304-ba79-a980f565281d

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource` (object)
    Raw Details of the Payment Source

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.type` (string, required)
    Payment source type. Should be set to DPAN for card details.
    Enum: "DPAN"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails` (object, required)
    Card Details

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails.company` (string, required)
    The issuing company of card
    Enum: "NONE", "VISA", "MASTERCARD", "AMEX", "DISCOVER", "AIR_TRAVEL_UATP", "CARTE_BLANCHE", "DINERS_CLUB", "JCB", "BREX", "UNION_PAY", "EURO_CARD", "ACCESS_CARD", "ELO_CARD"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails.token` (string, required)
    Tokenized Card Number
    Example: 4111111111111111

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails.expiry` (object, required)
    Contains the expiry of a Card.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails.expiry.tokenizedExpiry` (object)
    Contains the tokenized expiry of a Card.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.cardDetails.expiry.expiry` (object)
    Contains the expiry of a Card.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.type` (string, required)
    Payment source type. Should be set to CREDIT for unused credit details.
    Enum: "CREDIT"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.pnrOwningPcc` (string, required)
    PCC the PNR was created on.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.unusedCreditPcc` (string, required)
    PCC the credit was issued on.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.departureCountry` (string)
    3 letter country code of the departure country associated with the original ticket.
    Example: USA

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.arrivalCountry` (string)
    3 letter country code of the arrival country associated with the original ticket.
    Example: USA

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.ticketType` (string, required)
    Type of credit.
    Enum: "TICKET_TYPE_UNKNOWN", "ETICKET", "MCO"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.departureDate` (object)
    ISO8601 UTC Date Time

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.departureDate.iso8601` (string, required)
    Example: 2017-07-21T17:32Z

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.segmentsAvailable` (string)
    Whether all segments are unused or some have already been used.
    Enum: "UNKNOWN", "ALL_OPEN", "PARTIAL", "OTHER"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.traveler` (object)
    The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding
the adhoc travelers.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.traveler.userId` (object)
    User identifier

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.traveler.userId.id` (string, required)

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.traveler.adhocTravelerInfo` (object)
    Describes an adhoc traveler.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.traveler.adhocTravelerInfo.externalId` (string)
    External Id of user
    Example: qwert123

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName` (object)
    Full name containing first, middle, last (family) names, and suffix.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.family1` (string, required)
    Last (family) name.
    Example: Gandas

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.family2` (string)
    Example: FamilyTwo

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.given` (string, required)
    First (given) name.
    Example: Vichitr

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.middle` (string)
    Middle name.
    Example: Kumar

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.suffix` (string)
    Suffix for name
    Enum: "NAME_SUFFIX_UNKNOWN", "SR", "JR", "MD", "PHD", "II", "III", "IV", "DO", "ATTY", "V", "VI", "ESQ", "DC", "DDS", "VM", "JD", "SECOND", "THIRD"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.passengerName.preferred` (string)
    Informal preferred name added by traveler. This is not used on any PNR or tickets
    Example: Don

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.airlineInfo` (object, required)
    Detailed information about the airline.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.airlineInfo.airlineCode` (string, required)
    IATA code for airline.
    Example: AA

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.airlineInfo.airlineName` (string)
    Airline name
    Example: American Airlines

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.source` (string, required)
    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"

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.sourcePnr` (string, required)
    PNR number corresponding to third party through which booking was made.
    Example: MC5ONS

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.flightIds` (array)
    ID of the flights on which this credit applies.

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.ticketNumber` (string, required)
    Ticket number for the ticket that was converted into an unused credit.
    Example: 5267779139217

  - `bookingCharges.paymentMethod.selectedPaymentSource.rawPaymentSource.travelerIndex` (integer)
    credit associated to the traveler having this index in the air search request. If not passed, credit will be associated in order of the travelers
    Example: 2

  - `bookingCharges.paymentMethod.selectedPaymentSource.postPaymentRedirectionUrl` (string)
    Url for post payment redirection if payment source navigates user to a third party url
    Example: https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d

  - `bookingCharges.paymentMethod.selectedPaymentSource.cvv` (string)
    CVV associated with associated payment source, if any.

  - `travelers` (array, required)

  - `travelers.dob` (object)
    Date in ISO 8601 standard.

  - `travelers.dob.iso8601` (string, required)
    Example: 2017-07-21

  - `travelers.phoneNumber` (object)
    Properly formatted phone number.

  - `travelers.phoneNumber.countryCode` (integer)
    two digit country code
    Example: 91

  - `travelers.phoneNumber.countryCodeSource` (string)
    Enum: "UNSPECIFIED", "FROM_NUMBER_WITH_PLUS_SIGN", "FROM_NUMBER_WITH_IDD", "FROM_NUMBER_WITHOUT_PLUS_SIGN", "FROM_DEFAULT_COUNTRY"

  - `travelers.phoneNumber.extension` (string)
    phone number extension
    Example: 222

  - `travelers.phoneNumber.isoCountryCode` (string)
    ISO alpha-2 code
    Example: IN

  - `travelers.phoneNumber.italianLeadingZero` (boolean)
    Example: true

  - `travelers.phoneNumber.nationalNumber` (integer)
    Example: 8150

  - `travelers.phoneNumber.numberOfLeadingZeros` (integer)
    Example: 1

  - `travelers.phoneNumber.preferredDomesticCarrierCode` (string)
    Example: 7

  - `travelers.phoneNumber.rawInput` (string)
    Example: 77777

  - `travelers.phoneNumber.type` (string)
    Enum: "UNKNOWN_TYPE", "MOBILE", "LANDLINE"

  - `travelers.email` (string)
    Email of the traveler.
    Example: example@email.com

  - `travelers.loyaltyInfo` (object)
    Loyalty Info details.

  - `travelers.loyaltyInfo.appliedTo` (array)

  - `travelers.loyaltyInfo.id` (string, required)
    Example: firstId

  - `travelers.loyaltyInfo.issuedBy` (string, required)
    Example: firstIssuedBy

  - `travelers.loyaltyInfo.type` (string, required)
    Enum: "UNKNOWN_TYPE", "AIR", "HOTEL", "CAR", "RAIL"

  - `travelers.loyaltyInfo.linked` (boolean)
    Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
    Example: false

  - `travelers.loyaltyInfo.tier` (string)
    Loyalty membership tier name echoed from the supplier.
    Example: GOLD

  - `travelers.blockLoyalty` (boolean)
    If true, hides the loyalty program input on the checkout page for this traveler.
    Example: false

  - `customFieldV3Responses` (array)
    Custom field responses for the booking.

  - `customFieldV3Responses.fieldId` (string, required)
    Custom field id

  - `customFieldV3Responses.fieldName` (string)
    Name of the custom field

  - `customFieldV3Responses.armId` (string, required)
    Arm id which is applicable

  - `customFieldV3Responses.includeLocations` (array)

  - `customFieldV3Responses.selectedOptions` (array, required)
    The list of options that are selected by user or auto populated.

  - `customFieldV3Responses.selectedOptions.name` (string, required)
    Value of the selection

  - `customFieldV3Responses.selectedOptions.translatedName` (string)
    Translated value of the selection

  - `customFieldV3Responses.selectedOptions.description` (string)
    Description of the selection

  - `customFieldV3Responses.selectedOptions.translatedDescription` (string)
    Translated description of the selection

  - `customFieldV3Responses.selectedOptions.additionalUserInput` (string)
    Additional user input

  - `customFieldV3Responses.selectedOptions.additionalInfos` (array)
    Actual values of the additional infos

  - `customFieldV3Responses.selectedOptions.additionalInfoConfigs` (array)
    Additional info configs for the selected option

  - `customFieldV3Responses.selectedOptions.additionalInfoConfigs.type` (string, required)
    Enum: "VARIABLE", "EXPRESSION"

  - `customFieldV3Responses.selectedOptions.additionalInfoConfigs.name` (string, required)
    Name of the variable.
    Enum: "PUBLISHED_FARE", "LLF", "ADD_COLLECT_AMOUNT", "SELECTED_FARE", "SPLIT_PAYMENT_FARE"

  - `customFieldV3Responses.selectedOptions.additionalInfoConfigs.formatExpression` (string, required)
    The expression must be of format : `<any_text> ${expression} <any_text>`.The expression
can consist of a combination of variables and mathematical operations.
Variable names must be same as VariableName Enum.
To define mathematical operations, the operation name should follow the format
`math.<math_op>(arg1, arg2)`. Both `arg1` and `arg2` can be variables or constants.
The supported math operations (math_op) include: `add, mul, div, sub, min, and max`. All keywords, such as `<math_op>, math, and var` must be written in lowercase.
    Example: Result:  ${math.mul(LLF,5)}  ${ADD_COLLECT_AMOUNT}

  - `customFieldV3Responses.selectedOptions.additionalInfoConfigs.variables` (array)
    Reference names of the variables present in the expression.

  - `waiveOffInfo` (object)
    Waive off info.

  - `waiveOffInfo.waiveOffInfoPerModules` (array)
    Waive off info per module.

  - `waiveOffInfo.waiveOffInfoPerModules.moduleId` (string)
    Module id
    Enum: "BOOKING", "AGENT"

  - `waiveOffInfo.waiveOffInfoPerModules.waiveOffFeeReason` (object)
    Fee waive off reason info.

  - `waiveOffInfo.waiveOffInfoPerModules.waiveOffFeeReason.reasonCode` (string)
    Fee waive off reason code.
    Example: WA05

  - `waiveOffInfo.waiveOffInfoPerModules.waiveOffFeeReason.reason` (string)
    Fee waive off reason description.
    Example: Customer goodwill

  - `arrivalFlightNumber` (object)
    Flight number and airline code.

  - `arrivalFlightNumber.num` (string, required)
    Flight number.
    Example: 321

  - `arrivalFlightNumber.airlineCode` (string, required)
    Two-letter IATA airline code.
    Example: AA

  - `bookingKey` (string)
    Booking Key from car price check response.
    Example: ChBjMmRlYjdhNzJiM2RjMzE1EhBmNDA3MzZlYjFiZDRmYWU5

  - `bookingPaymentDetails` (object)
    Payment details used for booking.

  - `bookingPaymentDetails.bookingTravelerPaymentDetails` (array, required)

  - `bookingPaymentDetails.bookingTravelerPaymentDetails.selectedFormOfPayments` (array, required)

  - `bookingPaymentDetails.bookingTravelerPaymentDetails.selectedFormOfPayments.paymentItems` (array, required)

  - `bookingPaymentDetails.bookingTravelerPaymentDetails.selectedFormOfPayments.paymentItems.itemType` (string)
    Type of payment item eligible for this fop rule
    Enum: "SERVICE_FEE", "TRAVEL_TICKET", "SEAT", "BAGGAGE", "EARLY_BIRD"

  - `bookingPaymentDetails.bookingTravelerPaymentDetails.selectedFormOfPayments.paymentItems.fareComponent` (array)

  - `bookingPaymentDetails.bookingTravelerPaymentDetails.selectedFormOfPayments.selectedPaymentSources` (array, required)

  - `supplierFieldValues` (object)
    See CarCreatePnrRequest.supplierFieldValues -- same shape and purpose.
    Example: {"18903794122757":"Engineering"}

  - `postPaymentVerificationInfo` (object)
    Payment information sent after the verification of payment method.

  - `postPaymentVerificationInfo.paymentKey` (string)
    Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.

  - `postPaymentVerificationInfo.postStripeVerificationInfo` (object)
    Object to indicate successful stripe verification and provide payment information for next steps.

  - `postPaymentVerificationInfo.postStripeVerificationInfo.paymentMethodId` (string)
    Stripe's payment method id for which the verification was performed.
    Example: pm_1HzKDPI3bT9GUjvoUkRQooN3

  - `postPaymentVerificationInfo.postUrlBasedVerificationInfo` (object)

  - `postPaymentVerificationInfo.postUrlBasedVerificationInfo.pnrId` (string)
    Pnr Id, to continue with the booking flow/check the status of the pnr.

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo` (object)

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.paymentActionTokens` (array, required)

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.paymentActionTokens.paymentRequestId` (string, required)
    Initial payment id generated by checkout SDK to initiate payment

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.paymentActionTokens.actionToken` (string, required)
    Token returned by checkout SDK to create/validate FOP in PSS order

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.paymentRequestId` (string)
    Initial payment id generated by checkout SDK to initiate payment

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.actionToken` (string)
    Token returned by checkout SDK to create/validate FOP in PSS order

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.confirmPayment` (boolean)
    Flag which indicates that the payment confirmation is now required (after 3ds or redirection)

  - `postPaymentVerificationInfo.amadeusCheckoutVerificationInfo.saveCardForFutureUse` (boolean)
    Flag to indicate that card can be saved for future use.

  - `postPaymentVerificationInfo.threeDSecure2PostVerificationInfo` (object)
    Result of 3DS2 verification.

  - `postPaymentVerificationInfo.threeDSecure2PostVerificationInfo.results` (array, required)
    List of 3DS2 verification results.

  - `postPaymentVerificationInfo.threeDSecure2PostVerificationInfo.results.cardId` (string, required)
    Card id for which the verification was performed.
    Example: 550e8400-e29b-41d4-a716-446655440000

  - `postPaymentVerificationInfo.threeDSecure2PostVerificationInfo.results.sessionId` (string, required)
    session id of the payment service provider.
    Example: sid_7q3lpqopuwmuxct3l3rkz225ae

  - `postPaymentVerificationInfo.threeDSecure2PostVerificationInfo.results.success` (boolean, required)
    Whether the 3DSecure2 authentication was successful.
    Example: true

  - `postPaymentVerificationInfo.postRazorpayVerificationInfo` (object)
    Object to indicate successful stripe verification and provide payment information for next steps.

  - `postPaymentVerificationInfo.postRazorpayVerificationInfo.paymentId` (string, required)
    Razorpay payment id for which the verification was performed.
    Example: pay_Ot3t93Xwmh2hOg

  - `postPaymentVerificationInfo.postRazorpayVerificationInfo.orderId` (string)
    Razorpay order id in which the payment was added.
    Example: order_OshJ61KRRSzb2Q

  - `postPaymentVerificationInfo.postRazorpayVerificationInfo.signature` (string)
    Razorpay signature to validate the payment.
    Example: f2c0494b77cb067a0ac76973d65cdce8c9de593a55ef2f81969cbabbe7ce493d

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `pnrId` (string)
    Spotnana PNR ID.
    Example: 2267585596

  - `sourcePnrId` (string)
    Source PNR ID.
    Example: LRXQXA

  - `pnrStatus` (string)
    Status of PNR
    Enum: "UNKNOWN", "INITIATED", "CANCELLED", "CONFIRMED", "GROUP_BOOKING_ON_REQUEST", "WAITLISTED", "PENDING", "AIRLINE_UPGRADE", "WAITLIST_CONFIRMED", "BOOKING_DENIED_CONTACT_SUPPORT", "NO_SHOW", "CONTACT_SUPPORT", "STATUS_CHANGED_CONTACT_SUPPORT", "SCHEDULE_CHANGE", "SEGMENT_REQUEST", "SCHEDULE_CHANGE_WAITLISTED_BOOKING", "REQUEST_PENDING", "WAITLISTED_NOT_CONFIRMED", "SCHEDULE_CHANGE_NOT_CONFIRMED", "SCHEDULE_CHANGE_PENDING_STATUS", "MIS_CONNECTION", "REQUESTED", "TICKETED", "VOIDED", "CANCELLED_BY_VENDOR", "CANCELLATION_IN_PROGRESS", "REINSTATED", "BOOKING_ON_HOLD", "AIRLINE_CONTROL", "MODIFIED", "PAYMENT_DECLINED", "INOPERATIVE", "UNCONFIRMED"

  - `paymentVerificationInfo` (object)
    VerificationInfo required for the payment operation.

  - `paymentVerificationInfo.gatewayIdentifier` (object)

  - `paymentVerificationInfo.gatewayIdentifier.gatewayId` (string)
    Gateway Id for which the payment method should be verified.

  - `paymentVerificationInfo.gatewayIdentifier.gatewayType` (string)
    Gateway Type for of the verification gateway.
    Enum: "PAYMENT_GATEWAY_UNKNOWN", "STRIPE", "BREX", "RAZORPAY"

  - `paymentVerificationInfo.paymentKey` (string)
    Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.

  - `paymentVerificationInfo.stripeVerificationInfo` (object)
    Verification information required for card stripe verification.

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens` (object)
    Stripe card tokens used by clients in authorizing newly added cards.

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens.paymentProcessor` (string, required)
    Payment processor involved.
    Example: STRIPE

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens.paymentMethodId` (string, required)
    Stripe's payment-method-id for the card.
    Example: pm_1HzKDPI3bT9GUjvoUkRQooN3

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens.setupIntentClientSecret` (string, required)
    Stripe client secret for attaching the card to the setup-intent.
    Example: seti_1IBwEiKXFM6BpWYhfdCGZ7sg_secret_InXJDifWGBcVqekJvhAxidON6vHAvfS

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens.connectedAccountId` (string)
    Account Id of the connected account in which above payment-method and setup-intent exist. This is populated only when a connected account is used.
    Example: acct_1NT8oyCZnFgI0lFY

  - `paymentVerificationInfo.stripeVerificationInfo.stripeCardTokens.publishableKey` (string)
    Publishable key of the Stripe platform account.
    Example: pk_test_51Hx7XyI3bT9GUjvoUkRQooN3

  - `paymentVerificationInfo.urlVerificationInfo` (object)
    Verification information required for url based payment verification.

  - `paymentVerificationInfo.urlVerificationInfo.ccVerificationUrl` (string)
    Verification url for the payment source.

  - `paymentVerificationInfo.threeDSecure2VerificationInfo` (object)
    Verification information required for 3DS2 authentication.

  - `paymentVerificationInfo.threeDSecure2VerificationInfo.verificationInfoList` (array, required)
    List of 3DS2 verification info.

  - `paymentVerificationInfo.threeDSecure2VerificationInfo.verificationInfoList.cardId` (string, required)
    Card id for which the verification was performed.
    Example: 550e8400-e29b-41d4-a716-446655440000

  - `paymentVerificationInfo.threeDSecure2VerificationInfo.verificationInfoList.sessionId` (string, required)
    session id of the payment service provider.
    Example: sid_7q3lpqopuwmuxct3l3rkz225ae

  - `paymentVerificationInfo.threeDSecure2VerificationInfo.verificationInfoList.redirectUrl` (string, required)
    3DS2 verification redirect url.
    Example: https://api.checkout.com/sessions-interceptor/sid_7q3lpqopuwmuxct3l3rkz225ae

  - `paymentVerificationInfo.razorPayVerificationInfo` (object)
    Verification information required when card is tokenized via Razorpay for Indian markets.

  - `paymentVerificationInfo.razorPayVerificationInfo.paymentProcessor` (string, required)
    Payment processor involved.
    Example: RAZORPAY

  - `paymentVerificationInfo.razorPayVerificationInfo.paymentAuthUrl` (string)
    URL for authorizing the payment on the card.

  - `dcDetails` (object)
    What the supplier actually confirmed for a booking's delivery &
collection, as opposed to CarDeliveryCollectionInfo (what the
traveller asked for). Present on a create/modify booking response
only when that booking carried dc_info.

  - `dcDetails.status` (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"

  - `dcDetails.servingBranch` (string)
    The branch the supplier will actually deliver from and collect to,
which the pickup/dropOff location on this same PNR already shows --
this is the same value, offered separately for a caller that wants
just the branch code without parsing a full location.
    Example: ABZT50

  - `dcDetails.chargesMayApply` (boolean)
    The supplier warned that delivery/collection may carry an extra fee
it does not quote up front. Not a price -- suppliers who do quote a
fee include it in the rate instead, so this is only ever a warning.

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

