# Finalize the given pnr. This endpoint changes the metadata of PNR to finalized and triggers supplier actions if required. Endpoint: POST /v3/trips/{tripId}/pnrs/{pnrId}/finalize Version: v2 Security: Bearer ## Path parameters: - `tripId` (string, required) Trip Id Example: "6926658168" - `pnrId` (string, required) Pnr Id Example: "6926658168" ## Request fields (application/json): - `finalizeIntent` (any) - `finalizeMetadata` (object) Metadata information related to finalize request - `finalizeMetadata.isMandatoryTicketing` (boolean) True for forceful ticketing of PNR. - `finalizeMetadata.mandatorySkipTicketing` (boolean) Override other params and skip ticketing. - `finalizeMetadata.suspendReason` (string) Reason for suspending the pnr Enum: "AIR_PRICE_OPTIMIZATION", "EXCHANGE", "GDS_EXCHANGE" - `finalizeMetadata.taskId` (string) Task Id which needs to be mark completed before finalizing the PNR. - `customFieldV3UserResponses` (array) Custom field user responses for the booking. - `customFieldV3UserResponses.fieldId` (string, required) Custom field id - `customFieldV3UserResponses.fieldName` (string) Name of the custom field - `customFieldV3UserResponses.armId` (string, required) Arm id which is applicable - `customFieldV3UserResponses.includeLocations` (array) Enum: "BOOKING_CONFIRMATION_EMAILS", "APPROVAL_EMAILS", "COMPANY_REPORTS", "CONSOLIDATED_ITINERARY_EMAILS" - `customFieldV3UserResponses.selectedOptions` (array, required) The list of options that are selected by user or auto populated. - `customFieldV3UserResponses.selectedOptions.name` (string, required) Value of the selection - `customFieldV3UserResponses.selectedOptions.description` (string) Description of the selection - `customFieldV3UserResponses.selectedOptions.additionalUserInput` (string) Additional user input - `customFieldV3UserResponses.selectedOptions.additionalInfos` (array) Actual values of the additional infos - `customFieldV3UserResponses.selectedOptions.additionalInfoConfigs` (array) Additional info configs for the selected option - `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.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` (any) - `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.customFieldLocations` (array) Enum: "POLICY_APPROVAL_EMAIL", "PNR_EMAIL", "TRIP_EMAIL" - `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. Enum: "EMPLOYEE", "CONTINGENT", "SEASONAL", "INTERN", "GUEST" - `preBookAnswers.answers.question.matchConditions.travelerConditions.countries` (array) Countries. - `preBookAnswers.answers.question.matchConditions.travelerConditions.legalEntities` (array) Legal entities - `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. Enum: "AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL" - `preBookAnswers.answers.question.matchConditions.travelRegionTypes` (array) Travel region types to match. Enum: "DOMESTIC", "INTERNATIONAL" - `preBookAnswers.answers.question.matchConditions.tripUsageTypes` (array) Trip usage types to match. If empty, all trip usage types will be matched. Enum: "STANDARD", "EVENT" - `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.answers.question.includeInItinerary` (boolean) Whether to include this question in the itinerary related emails. Example: true - `preBookAnswers.preBookQuestionResponseId` (string) The unique id sent back in the pre book questions API response ## 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. ## Response 200 fields