# Create a new car booking Create a new car PNR. Endpoint: POST /v2/car/create-pnr Version: v2 Security: Bearer ## Request fields (application/json): - `bookingKey` (string, required) Booking Key from car price check response. Example: "ChBjMmRlYjdhNzJiM2RjMzE1EhBmNDA3MzZlYjFiZDRmYWU5" - `carId` (string, required) CarId of the car to be booked. Example: "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP" - `tripData` (object, required) Trip data for the booking. - `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 the trip. - `tripData.tripId.id` (string, required) Id. Example: "2783425534" - `travelers` (array, required) List of travelers for the booking. - `travelers.travelerId` (object, required) The ID of the traveler. - `travelers.travelerId.id` (string, required) - `travelers.name` (object) Name of the traveler. - `travelers.name.family1` (string, required) Last (family) name. Example: "Gandas" - `travelers.name.family2` (string) Example: "FamilyTwo" - `travelers.name.given` (string, required) First (given) name. Example: "Vichitr" - `travelers.name.middle` (string) Middle name. Example: "Kumar" - `travelers.name.suffix` (string) Suffix used with the name. For example SR or JR. Enum: "NAME_SUFFIX_UNKNOWN", "SR", "JR", "MD", "PHD", "II", "III", "IV", "DO", "ATTY", "V", "VI", "ESQ", "DC", "DDS", "VM", "JD", "SECOND", "THIRD" - `travelers.name.preferred` (string) Informal preferred name added by traveler. This is not used on any PNR or tickets Example: "Don" - `travelers.dob` (object) Date of birth of the traveler. - `travelers.dob.iso8601` (string, required) Example: "2017-07-21" - `travelers.phoneNumber` (object) Phone number of the traveler. - `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 of the traveler. - `travelers.loyaltyInfo.appliedTo` (array) Example: ["TAJ"] - `travelers.loyaltyInfo.issuedBy` (string, required) Example: "firstIssuedBy" - `travelers.loyaltyInfo.linked` (boolean) Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types. - `travelers.blockLoyalty` (boolean) If true, hides the loyalty program input on the checkout page for this traveler. - `bookingContact` (object) Contact information for the booking. - `bookingContact.emailAddress` (string) Email address of the booking contact Example: "mail@mail.com" - `bookingContact.phoneNumber` (object) Properly formatted phone number. - `bookingCharges` (array, required) List of charges for the booking. - `bookingCharges.amount` (object) The amount to be charged for this payment method. This is optional if there's only one payment method provided for the booking. - `bookingCharges.amount.base` (object, required) Base fare 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" - `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.tax` (object, required) Tax amount. - `bookingCharges.amount.taxBreakdown` (array) Breakdown of tax amounts. - `bookingCharges.amount.taxBreakdown.amount` (object, required) Tax amount - `bookingCharges.amount.taxBreakdown.taxCode` (string) Tax code Example: "VAT" - `bookingCharges.amount.taxBreakdown.percentage` (number) Tax amount to total amount Example: 9 - `bookingCharges.paymentMethod` (any) - `customFieldUserResponses` (array) Custom field responses for the booking. - `customFieldUserResponses.fieldId` (string, required) Custom field id - `customFieldUserResponses.fieldName` (string) Name of the custom field - `customFieldUserResponses.armId` (string, required) Arm id which is applicable - `customFieldUserResponses.includeLocations` (array) Enum: "BOOKING_CONFIRMATION_EMAILS", "APPROVAL_EMAILS", "COMPANY_REPORTS", "CONSOLIDATED_ITINERARY_EMAILS" - `customFieldUserResponses.selectedOptions` (array, required) The list of options that are selected by user or auto populated. - `customFieldUserResponses.selectedOptions.name` (string, required) Value of the selection - `customFieldUserResponses.selectedOptions.translatedName` (string) Translated value of the selection - `customFieldUserResponses.selectedOptions.description` (string) Description of the selection - `customFieldUserResponses.selectedOptions.translatedDescription` (string) Translated description of the selection - `customFieldUserResponses.selectedOptions.additionalUserInput` (string) Additional user input - `customFieldUserResponses.selectedOptions.additionalInfos` (array) Actual values of the additional infos - `customFieldUserResponses.selectedOptions.additionalInfoConfigs` (array) Additional info configs for the selected option - `postPaymentVerificationInfo` (any) ## Response 200 fields (application/json): - `pnrId` (string) Spotnana PNR ID. Example: "2267585596" - `sourcePnrId` (string) Source PNR ID. Example: "LRXQXA" - `pnrStatus` (string) Status of the PNR after creation. 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` (any) ## 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 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 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.