# Get PNR exchange details This endpoint gets exchange details of all the tickets present in the given PNR ID of the given trip ID. Endpoint: GET /v2/air/pnrs/{pnrId}/exchange-details Version: v2 Security: Bearer ## Path parameters: - `pnrId` (string, required) Spotnana PNR ID. Example: "6926658168" ## Response 200 fields (application/json): - `pnrId` (string, required) PNR ID for the booking. Example: "1234567890" - `ticketToExchangeInfos` (array) List of tickets and their exchange info. - `ticketToExchangeInfos.ticketNumber` (string) Ticket number. For non-ticketed PNRs, this field will not be present. Example: "0111234567890" - `ticketToExchangeInfos.exchangeState` (string) Current exchange state for this ticket. Enum: "EXCHANGEABLE_BY_OBT", "EXCHANGEABLE_BY_SUPPORT" - `ticketToExchangeInfos.isRefundable` (boolean) A flag to indicate if ticket is refundable or not. - `ticketToExchangeInfos.exchangeNotSupportedReasons` (array) Reasons why exchange is not supported via OBT. Enum: "EXCHANGE_NOT_SUPPORTED_REASON_UNKNOWN", "FLIGHT_CHECKED_IN", "NON_EXCHANGEABLE", "AUTOMATED_EXCHANGE_NOT_SUPPORTED", "MULTI_PAX_EXCHANGE_NOT_SUPPORTED", "EXCHANGE_NOT_SUPPORTED_FOR_MARKUP_FARES", "REWARDS_EXCHANGE_NOT_ENABLED", "FARE_RULES_UNKNOWN", "ALL_FLIGHTS_USED", "MISSING_PQ", "AIRLINE_TICKET", "AIRLINE_CONTROL", "SOURCE_NOT_IMPLEMENTED", "SCHEDULE_CHANGE_PENDING", "APPROVAL_PENDING", "APPROVAL_DENIED", "EXCHANGE_NOT_ALLOWED_WITHIN_24_HRS_TICKETING" - `ticketToExchangeInfos.supplierPreferredEnabledFields` (object) Contains the information of the options that are allowed to exchange. - `ticketToExchangeInfos.supplierPreferredEnabledFields.travelDate` (boolean) If true it means Airline allows to change the date. - `ticketToExchangeInfos.supplierPreferredEnabledFields.route` (boolean) If true it means Airline allows to change the route. - `ticketToExchangeInfos.supplierPreferredEnabledFields.addLeg` (boolean) If true it means Airline allows to add new leg to the existing itinerary. - `ticketToExchangeInfos.supplierPreferredEnabledFields.removeLeg` (boolean) If true it means Airline allows to remove leg from the existing itinerary. - `ticketToExchangeInfos.supplierPreferredEnabledFields.modifyPartialItinerary` (boolean) If true it means Airline allows to modify partial itinerary. - `ticketToExchangeInfos.supplierPreferredEnabledFields.sameEndpointRestriction` (boolean) If true it means Airline allows to change the endpoint across legs for the return itinerary. - `ticketToExchangeInfos.userOrgId` (object) User org ID of associated traveler. - `ticketToExchangeInfos.userOrgId.organizationId` (object, required) Organization id for traveler. - `ticketToExchangeInfos.userOrgId.organizationId.id` (string, required) - `ticketToExchangeInfos.userOrgId.userId` (object, required) User identifier - `ticketToExchangeInfos.userOrgId.tmcBasicInfo` (object) TMC related basic information. - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc` (object, required) Contracting TMC is the TMC the user/organization contracted. - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.id` (object, required) Company ID - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.name` (string) - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo` (object) Company logo - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo.data` (string) Example: "6935813e12584abda0e43d71cd2ea260" - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions` (object) Image dimensions ie width and height. - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.height` (integer) Example: 120 - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.width` (integer) Example: 240 - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.contractingTmc.logo.url` (string) Example: "https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp" - `ticketToExchangeInfos.userOrgId.tmcBasicInfo.bookingTmc` (object, required) Booking TMC is the TMC used for the bookings for the user/organization. - `ticketToExchangeInfos.userOrgId.organizationAgencyId` (object) Agency id for the organization. - `ticketToExchangeInfos.userOrgId.tmcInfo` (object) TMC config information. - `ticketToExchangeInfos.userOrgId.tmcInfo.id` (object, required) TMC id. - `ticketToExchangeInfos.userOrgId.tmcInfo.primaryServiceProviderTmc` (object, required) Primary service provider TMC for the TMC. - `ticketToExchangeInfos.userOrgId.tmcInfo.primaryServiceProviderTmc.tmcId` (object, required) Id of the service provider TMC. - `ticketToExchangeInfos.userOrgId.tmcInfo.secondaryServiceProviderTmcs` (array) Secondary service provider TMCs for the TMC. - `ticketToExchangeInfos.userOrgId.tmcInfo.secondaryServiceProviderTmcs.supplier` (string, required) Supplier for which this service provider should be used. Enum: "SABRE", "AMADEUS", "TRAVEL_FUSION", "FARELOGIX_NDC", "ATPCO_NDC", "TRAINLINE", "AVIA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "NDC", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE" - `ticketToExchangeInfos.userOrgId.tmcInfo.secondaryServiceProviderTmcs.travelType` (string, required) Travel type for which this service provider should be used. Enum: "AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL" - `ticketToExchangeInfos.userOrgId.tmcInfo.partnerTmcId` (object) Useful to identify the clients onboarded by a PARTNER_TMC - `ticketToExchangeInfos.travelerInfo` (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 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.