---
title: "Edit PNR"
method: POST
path: "/v2/air/pnrs/{pnrId}/update"
tags: ["Air"]
---

# Edit PNR

`POST /v2/air/pnrs/{pnrId}/update`

Edit specific traveler information in an existing PNR.
This API allows you to edit and modify Special Service Requests (SSR), 
seat selection, loyalty number, ancillaries, redress number, Known Traveler Number (KTN), 
check-in preferences, and Other Service Information (OSI).

## Path parameters

- `pnrId` string, required

## Request body

- AirEditPnrRequest
  - `pnrRemarks` PnrNoteRemark[] — Note remarks to be added for pnr at time of pnr update
    - `remark` RemarkObject, required — Note remark for seat selection.
      - `remarkType` string, required — Type of remark. Always set to SEAT_SELECTION_REMARK.
      - `remarkIdentifier` SeatRemarkIdentifier, required — Identifier for seat remark.
        - `legIndex` integer, required — Index referencing the leg for which the changes are requested.
        - `flightIndex` integer, required — Index referencing the flight for which the changes are requested.
        - `seatIdentifier` string, required — Selected seat number for the flight.
        - `travelerInfo` UserOrgId — User and user's organization information.
          - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
            - `id` string, required
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `userId` UserId, required — User identifier
            - `id` string, uuid, required
          - `tmcInfo` TmcInfo — TMC config information.
            - `id` CompanyId, required — Company ID
              - …
            - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
              - …
            - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
              - …
            - `partnerTmcId` CompanyId — Company ID
              - …
          - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
            - `contractingTmc` CompanyRef, required — Basic information about a company.
              - …
            - `bookingTmc` CompanyRef, required — Basic information about a company.
              - …
      - `remark` Remark, required — Object for storing remark information.
        - `text` string, required — Remark text.
  - `pnrId` string, required — PNR ID created by Spotnana for the booking.
  - `travelerInfo` TravelerUpdateInfo[], required — Traveler information.
    - `traveler` AirTravelerInfo, required — Traveler details
      - `travelerId` string — Unique ID for traveler
      - `travelerInfo` Traveler — Traveler details.
        - `travelerPersonalInfo` TravelerPersonalInfo — Traveler personal information.
          - `loyaltyInfos` LoyaltyInfo[]
            - `appliedTo` string[]
            - `id` string, required
            - `issuedBy` string, required
            - `type` 'UNKNOWN_TYPE' | 'AIR' | 'HOTEL' | 'CAR' | 'RAIL', required
            - `linked` boolean — Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
            - `tier` string — Loyalty membership tier name echoed from the supplier.
          - `travelPref` TravelPref — Travel preferences.
            - `airPref` AirPref — Travel preferences related to air travel.
              - …
            - `preferredCurrency` string
            - `railCards` RailCard[]
              - …
            - `railPref` RailPref — Travel preferences related to rail station.
              - …
            - `carPref` CarPref — Travel preferences related to car.
              - …
            - `hotelPref` HotelPref — Travel preferences related to hotel.
              - …
          - `blockLoyalty` boolean — If true, hides the loyalty program input on the checkout page for this traveler.
        - `user` User — User details.
          - `addresses` PostalAddress[]
            - `addressLines` string[], required — Address lines
            - `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.
            - `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.
            - `description` string — Address description
            - `isDefault` boolean — Whether this address is default address in case multiple addresses are specified.
            - `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".
            - `locality` string — Generally refers to the city/town portion of the address.
            - `locationCode` string — IATA 3-letter location code. See https://www.iata.org/en/services/codes.
            - `organization` string — The name of the organization at the address.
            - `postalCode` string — Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
            - `continentCode` string — 2 letter continent code of the continent this address falls in.
            - `recipients` string[] — The recipient at the address.
            - `regionCode` string, required — Region code of the country/region of the address.
            - `regionName` string — Region name of the country/region of the address.
            - `revision` integer
            - `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).
            - `sublocality` string — Sublocality of the address. This can be neighborhoods, boroughs, districts.
            - `timezone` string — Time zone of the address.
            - `coordinates` Latlng — Latitude and Longitude for a Location
              - …
          - `dob` DateModel — Date in ISO 8601 standard.
            - `iso8601` string, required
          - `email` string, email
          - `emergencyContactInfo` EmergencyContactInfo — Emergency contact information.
            - `address` PostalAddress — Postal Address Details
              - …
            - `designation` string
            - `email` string, email, required
            - `name` Name — Full name containing first, middle, last (family) names, and suffix.
              - …
            - `phoneNumber` PhoneNumber — Properly formatted phone number.
              - …
            - `userOrgId` UserOrgId — User and user's organization information.
              - …
          - `emergencyContact` EmergencyContact — Emergency contact information.
            - `name` string, required — Full name of contact.
            - `email` string, email — Email address of contact.
            - `designation` string — Job title of contact.
            - `relation` 'RELATION_UNKNOWN' | 'SPOUSE' | 'PARENT' | 'SIBLING' | 'CHILD' | 'FRIEND' | 'RELATIVE' | 'COLLEAGUE' | 'OTHER' — Relation of contact to user.
            - `phoneNumbers` PhoneNumber[], required — Phone numbers of contact.
              - …
            - `preferredLanguage` string — Language preferred by user.
          - `gender` 'MALE' | 'FEMALE' | 'UNSPECIFIED' | 'UNDISCLOSED' | 'GENDER_REDACTED'
          - `identityDocs` IdentityDocument[] — List of user identity documents.
            - union — Identity document details. Currently supported documents are passport, immigration document, known traveler number, redress number and national document.
              - …
          - `name` Name — Full name containing first, middle, last (family) names, and suffix.
            - `family1` string, required — Last (family) name.
            - `family2` string
            - `given` string, required — First (given) name.
            - `middle` string — Middle name.
            - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
            - `preferred` string — Informal preferred name added by traveler. This is not used on any PNR or tickets
          - `paymentInfos` PaymentInfo[]
            - `applicableTo` string[]
            - `card` Card, required — User card info
              - …
            - `accessType` 'UNKNOWN_TYPE' | 'CENTRALISED' | 'INDIVIDUAL' | 'PERSONAL' | 'TMC' | 'APPLICATION' | 'ITINERARY' | 'EVENTS' | 'TRAVEL_ARRANGER_MANAGED' | 'COMPANY_TRAVEL_ARRANGER_MANAGED' | 'EVENT_TEMPLATE' — Identifies the different ways the card can be used across an organization
            - `access` CreditCardAccess — Access type for cards to check who in the organization has permission to use it
              - …
          - `phoneNumbers` PhoneNumber[]
            - `countryCode` integer — two digit country code
            - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
            - `extension` string — phone number extension
            - `isoCountryCode` string — ISO alpha-2 code
            - `italianLeadingZero` boolean
            - `nationalNumber` integer
            - `numberOfLeadingZeros` integer
            - `preferredDomesticCarrierCode` string
            - `rawInput` string
            - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
          - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
            - `data` string, byte
            - `dimensions` Dimensions — Image dimensions ie width and height.
              - …
            - `url` string
          - `nationality` string — Nationality of user
          - `title` 'TITLE_UNKNOWN' | 'MR' | 'MS' | 'MRS' | 'MX' | 'MASTER' | 'MISS' | 'DR' | 'PROFESSOR' | 'CAPTAIN' | 'REVEREND' | 'HONOURABLE' | 'SIR' | 'LADY' | 'AMBASSADOR' | 'LORD' | 'BRIGADIER' | 'SENATOR' | 'DAME' | 'JUSTICE' | 'UK' | 'TITLE_REDACTED'
        - `userBusinessInfo` UserBusinessInfo — User business information.
          - `department` Department — Department details.
            - `id` DepartmentId, required — Department id.
              - …
            - `name` string, required
            - `externalId` string — External id of the department
            - `employeeCount` integer — Count of employees in the department
          - `designation` string
          - `email` string, email, required
          - `employeeId` string, required — Unique employee id. Can use email if a company don't use employee ids.
          - `grade` Grade — Grade details.
            - `employeeCount` integer — Count of employees in the grade
            - `id` GradeId, required — Grade id.
              - …
            - `name` string, required
          - `legalEntityId` LegalEntityId, required — The ID of the legal entity.
            - `id` string, required
          - `managerBasicInfo` UserBasicInfo — Basic user information.
            - `userOrgId` UserOrgId — User and user's organization information.
              - …
            - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
            - `email` string, email
            - `name` Name — Full name containing first, middle, last (family) names, and suffix.
              - …
            - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
              - …
            - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
            - `phoneNumber` PhoneNumber — Properly formatted phone number.
              - …
            - `employeeId` string — Employee id of the user
            - `isActive` boolean — Whether user profile is active or not.
          - `office` Office — Office details.
            - `address` PostalAddress — Postal Address Details
              - …
            - `id` OfficeId, required — The unique ID of the office.
              - …
            - `name` string, required
            - `latlng` Latlng — Latitude and Longitude for a Location
              - …
            - `taxId` string
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `phoneNumbers` PhoneNumber[]
            - `countryCode` integer — two digit country code
            - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
            - `extension` string — phone number extension
            - `isoCountryCode` string — ISO alpha-2 code
            - `italianLeadingZero` boolean
            - `nationalNumber` integer
            - `numberOfLeadingZeros` integer
            - `preferredDomesticCarrierCode` string
            - `rawInput` string
            - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
          - `userCostCenter` CostCenter — Cost center details.
            - `id` CostCenterId, required
              - …
            - `name` string, required
            - `externalId` string
          - `designatedApproverInfos` UserBasicInfo[] — A list of user basic info for designated approvers.
            - `userOrgId` UserOrgId — User and user's organization information.
              - …
            - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
            - `email` string, email
            - `name` Name — Full name containing first, middle, last (family) names, and suffix.
              - …
            - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
              - …
            - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
            - `phoneNumber` PhoneNumber — Properly formatted phone number.
              - …
            - `employeeId` string — Employee id of the user
            - `isActive` boolean — Whether user profile is active or not.
          - `designatedApproverUserIds` UserId[] — A list of userId for designated approvers.
            - `id` string, uuid, required
          - `authorizerEmail` string — Email address to be used as approval authorizer, when a manager is not present.
        - `userOrgId` UserOrgId — User and user's organization information.
          - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
            - `id` string, required
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `userId` UserId, required — User identifier
            - `id` string, uuid, required
          - `tmcInfo` TmcInfo — TMC config information.
            - `id` CompanyId, required — Company ID
              - …
            - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
              - …
            - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
              - …
            - `partnerTmcId` CompanyId — Company ID
              - …
          - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
            - `contractingTmc` CompanyRef, required — Basic information about a company.
              - …
            - `bookingTmc` CompanyRef, required — Basic information about a company.
              - …
        - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
        - `isActive` boolean — A boolean flag to show if traveler is active.
        - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
        - `adhocUserInfo` AdhocUserInfo — Basic information related to ad-hoc traveler profile.
          - `profileOwner` ProfileOwner, required — Basic information about the owner of the ad-hoc user.
            - `userId` UserId, required — User identifier
              - …
          - `isSaved` boolean — A boolean flag to show if ad-hoc traveler is visible in search. While updating the user if client tries to update this field, it will throw exception.
        - `externalId` string — External id of this user.
      - `adhocTravelerInfo` union — The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding the adhoc travelers.
        - object — Wrapper over UserId object to be used as an identifier in a oneOf case
          - `userId` UserId — User identifier
            - `id` string, uuid, required
        - object — Wrapper over AdhocTravelerInfo object to be used as an identifier in a oneOf case.
          - `adhocTravelerInfo` AdhocTravelerInfo — Describes an adhoc traveler.
            - `registrarUserId` UserId — User identifier
              - …
            - `externalId` string — External Id of user
    - `seats` SeatDetail[]
      - `flightIndex` integer, required — Index referencing the flight for which the changes are requested.
      - `seatNumber` string, required — Selected seat number for the flight.
    - `seatPreference` 'AISLE' | 'WINDOW' — In case seat is not selected for the traveler, this field can be used to set the seat preference and reserve seat if it is free of cost
    - `otherAncillaries` OtherAncillaryDetail[]
      - `ancillaryType` 'EARLY_BIRD' | 'WIFI' | 'CARBON_OFFSET', required — Type of ancillary
      - `flightIndex` integer, required — Index referencing the flight for which the changes are requested.
      - `legIndex` integer, required — Index referencing the leg for which the changes are requested.
    - `specialServiceRequests` SpecialServiceRequestInfo[] — List of all Special Service Requests (SSR) for the traveler.
      - `indexes` SSRIndexes — Indexes for the flight and leg for which the changes are requested.
        - `legIndex` integer, required — Index referencing the flight leg for which the SSR should be added. Should be used in conjunction with the flight Index.
        - `flightIndex` integer, required — Index referencing the flight for which the SSR should be added. Should be used in conjunction with the leg Index.
      - `flightIndex` integer — Index referencing the flight for which the changes are requested.
      - `code` string, required — Unique 4-letter code for the Special Service Request (SSR).
      - `info` string — Free text field for adding additional details about the Special Service Request (SSR).
    - `editSpecialServiceRequests` SpecialServiceRequestOperations — Operations to perform on Special Service Requests (SSR) for the traveler.
      - `add` SpecialServiceRequestInfo[] — List of SSRs to add for the traveler.
        - `indexes` SSRIndexes — Indexes for the flight and leg for which the changes are requested.
          - `legIndex` integer, required — Index referencing the flight leg for which the SSR should be added. Should be used in conjunction with the flight Index.
          - `flightIndex` integer, required — Index referencing the flight for which the SSR should be added. Should be used in conjunction with the leg Index.
        - `flightIndex` integer — Index referencing the flight for which the changes are requested.
        - `code` string, required — Unique 4-letter code for the Special Service Request (SSR).
        - `info` string — Free text field for adding additional details about the Special Service Request (SSR).
      - `delete` SpecialServiceRequestInfo[] — List of SSRs to delete for the traveler.
        - `indexes` SSRIndexes — Indexes for the flight and leg for which the changes are requested.
          - `legIndex` integer, required — Index referencing the flight leg for which the SSR should be added. Should be used in conjunction with the flight Index.
          - `flightIndex` integer, required — Index referencing the flight for which the SSR should be added. Should be used in conjunction with the leg Index.
        - `flightIndex` integer — Index referencing the flight for which the changes are requested.
        - `code` string, required — Unique 4-letter code for the Special Service Request (SSR).
        - `info` string — Free text field for adding additional details about the Special Service Request (SSR).
    - `updateTypes` string[], required
  - `seatMapResponseId` string — The `seatMapResponseId` generated using the [Get flight seat map](#operation/airSeatMap) API. This field is only required if the seat selection is being changed for the traveler.
  - `preSearchAnswers` object — Contains a list of custom fields or pre search answers.
    - `answers` EntityAnswer[]
      - `entityId` string — The unique ID for the question.
      - `userInput` string — The text input given by user (if any).
      - `itemIds` integer[] — The id/enum value corresponding to the option chosen by the user as answer.
      - `answers` AnswerPair[]
        - `item` string — The option selected from the list of available choices.
        - `value` string — The additional input provided (by the user) while selecting one of the options.
        - `description` string — Description of the selected option.
      - `customFieldType` 'QUESTION' | 'MEETING' | 'BUDGET' | 'BREX_TOKEN' — The type of custom field.
      - `questionDisplayText` string — The question text to be displayed to the user.
      - `question` Question — The message defines the format of a question which can be asked to a user in any kind of workflows.
        - `id` string, uuid, required
        - `name` string, required — Question display name that the user will see. For eg, 'Choose the purpose of your trip'.
        - `questionFormat` 'INPUT_BOX' | 'RADIO_BUTTON' | 'CHECKBOX' | 'CHECKBOX_WITH_PERCENTAGE' — 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.
        - `optionInfo` OptionInfo — Options related information for the question.
          - `source` 'MANUAL' | 'COMPANY_CONFIG', required — Option source
          - `sourceMetadata` OptionSourceMetadata — Wrapper for option source company config.
            - `companyConfig` CompanyConfigSource — For this option source, options would be auto generated based on specified parameter.
              - …
          - `totalNumOptions` integer — Total number of options
          - `options` Option[] — Available options for the question. This will contain only max 10 options if only summary is requested.
            - `displayCode` string, required — The code which is sent in answer response.
            - `displayValue` string — The text to be displayed to the user beside this option.
        - `isRequired` boolean, required — Whether its compulsory to answer the question or not.
        - `isDisabled` boolean, required — Whether the question is disabled or not. If true, this should not be asked.
        - `includeInItinerary` boolean — Whether to include this question in the itinerary related emails.
        - `customFieldLocations` CustomFieldLocation[]
        - `matchConditions` CustomFieldMatchConditions — Conditions to select the custom field for given context.
          - `travelerConditions` TravelerMatchConditions — Matching conditions for traveler.
            - `workerTypes` WorkerType[] — Worker types. Users belonging to any of these would match.
            - `countries` string[] — Countries.
            - `legalEntities` Reference[] — Legal entities
              - …
            - `departments` Reference[] — Departments
              - …
            - `costCenters` Reference[] — Cost centers
              - …
            - `offices` Reference[] — Offices
              - …
          - `travelTypes` TravelType[] — Travel types to match.
          - `travelRegionTypes` TravelRegionType[] — Travel region types to match.
          - `tripUsageTypes` TripUsageType[] — Trip usage types to match. If empty, all trip usage types will be matched.
        - `questionType` QuestionType — Question type.
          - `preSearchQuestionType` 'UNKNOWN_SEARCH_QUESTION_TYPE' | 'PURPOSE_OF_TRIP' — Types of pre-search questions. PURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.
          - `preCheckoutQuestionType` 'UNKNOWN_CHECKOUT_QUESTION_TYPE' | 'USER_DEFINED_QUESTION' | 'OOP_REASON_CODE' — 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.
  - `pnrUpdateTypes` string[]
  - `otherServiceInformationItems` OtherServiceInformation[] — The list of all Other Service Information (OSI) to be included in the PNR.
    - `info` string, required — Free text field for adding Other Service Information.
    - `flightIndex` integer — Index referencing the flight for which the changes are requested.
  - `bookingPaymentDetails` BookingPaymentDetails — Payment details used for booking.
    - `bookingTravelerPaymentDetails` BookingTravelerPaymentDetails[], required
      - `selectedFormOfPayments` SelectedFormOfPayment[], required
        - `paymentItems` PaymentItem[], required
          - `itemType` 'SERVICE_FEE' | 'TRAVEL_TICKET' | 'SEAT' | 'BAGGAGE' | 'EARLY_BIRD' — Type of payment item eligible for this fop rule
          - `fareComponent` FareComponent[]
        - `selectedPaymentSources` SelectedPaymentSource[], required
          - `paymentSourceId` string, uuid — Unique identifier identifying this payment source.
          - `rawPaymentSource` union — Raw Details of the Payment Source
            - object — Object to pass through dpan payment source details through the api call.
              - …
            - object
              - …
          - `postPaymentRedirectionUrl` string — Url for post payment redirection if payment source navigates user to a third party url
          - `cvv` string — CVV associated with associated payment source, if any.
          - `amount` Money — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — 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).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
  - `postPaymentVerificationInfo` union — Payment information sent after the verification of payment method.
    - object — Wrapper for post stripe verification info object.
      - `postStripeVerificationInfo` PostStripeVerificationInfo — Object to indicate successful stripe verification and provide payment information for next steps.
        - `paymentMethodId` string — Stripe's payment method id for which the verification was performed.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for post url based verification info object.
      - `postUrlBasedVerificationInfo` PostUrlBasedVerificationInfo
        - `pnrId` string — Pnr Id, to continue with the booking flow/check the status of the pnr.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for amadeus checkout verification info object
      - `amadeusCheckoutVerificationInfo` AmadeusCheckoutVerificationInfo
        - `paymentActionTokens` AmadeusPaymentActionToken[], required
          - `paymentRequestId` string, required — Initial payment id generated by checkout SDK to initiate payment
          - `actionToken` string, required — Token returned by checkout SDK to create/validate FOP in PSS order
        - `paymentRequestId` string — Initial payment id generated by checkout SDK to initiate payment
        - `actionToken` string — Token returned by checkout SDK to create/validate FOP in PSS order
        - `confirmPayment` boolean — Flag which indicates that the payment confirmation is now required (after 3ds or redirection)
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for 3DS2 post verification info object
      - `threeDSecure2PostVerificationInfo` ThreeDSecure2PostVerificationInfo — Result of 3DS2 verification.
        - `results` ThreeDSecure2VerificationResultItem[], required — List of 3DS2 verification results.
          - `cardId` string, required — Card id for which the verification was performed.
          - `sessionId` string, required — session id of the payment service provider.
          - `success` boolean, required — Whether the 3DSecure2 authentication was successful.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for post razorpay verification info object.
      - `postRazorpayVerificationInfo` RazorpayPostVerificationInfo — Object to indicate successful stripe verification and provide payment information for next steps.
        - `paymentId` string, required — Razorpay payment id for which the verification was performed.
        - `orderId` string — Razorpay order id in which the payment was added.
        - `signature` string — Razorpay signature to validate the payment.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
  - `waiveOffInfo` WaiveOffInfo — Waive off info.
    - `waiveOffInfoPerModules` WaiveOffInfoPerModule[] — Waive off info per module.
      - `moduleId` 'BOOKING' | 'AGENT' — Module id
      - `waiveOffFeeReason` WaiveOffFeeReason — Fee waive off reason info.
        - `reasonCode` string — Fee waive off reason code.
        - `reason` string — Fee waive off reason description.

## Response `200`

Success

- AirEditPnrResponse — Air edit pnr response.
  - `paymentVerificationInfo` union — VerificationInfo required for the payment operation.
    - object — Wrapper for stripe verification Info.
      - `stripeVerificationInfo` StripeVerificationInfo — Verification information required for card stripe verification.
        - `stripeCardTokens` StripeCardTokens — Stripe card tokens used by clients in authorizing newly added cards.
          - `paymentProcessor` string, required — Payment processor involved.
          - `paymentMethodId` string, required — Stripe's payment-method-id for the card.
          - `setupIntentClientSecret` string, required — Stripe client secret for attaching the card to the setup-intent.
          - `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.
          - `publishableKey` string — Publishable key of the Stripe platform account.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for stripe verification Info.
      - `urlVerificationInfo` UrlVerificationInfo — Verification information required for url based payment verification.
        - `ccVerificationUrl` string — Verification url for the payment source.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for 3DS2 verification Info.
      - `threeDSecure2VerificationInfo` ThreeDSecure2VerificationInfo — Verification information required for 3DS2 authentication.
        - `verificationInfoList` ThreeDSecure2VerificationInfoItem[], required — List of 3DS2 verification info.
          - `cardId` string, required — Card id for which the verification was performed.
          - `sessionId` string, required — session id of the payment service provider.
          - `redirectUrl` string, required — 3DS2 verification redirect url.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for Razorpay verification Info.
      - `razorPayVerificationInfo` RazorpayVerificationInfo — Verification information required when card is tokenized via Razorpay for Indian markets.
        - `paymentProcessor` string, required — Payment processor involved.
        - `paymentAuthUrl` string — URL for authorizing the payment on the card.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — The specified resource was not found.

---

[API](https://skmtc.net/spotnana/apis/air-api.md) · [All operations](https://skmtc.net/spotnana/apis/air-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spotnana/air-api/revisions/4dd80446ce32/schema)
