{"openapi":"3.0.0","paths":{"/auth/token":{"post":{"description":"Send your partner API key in the `x-api-key` request header; no body. Returns a JWT to send as `Authorization: Bearer` on every other endpoint. Request a new token when `expires_in` lapses.","operationId":"issueToken","parameters":[],"responses":{"200":{"description":"Seller access token","content":{"application/json":{"schema":{"type":"object","required":["access_token","token_type","expires_in"],"properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer"}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["message","errorKey","error","requestId"],"properties":{"message":{"type":"string"},"errorKey":{"type":"string","enum":["Unauthenticated"]},"error":{"type":"object","required":["code","title","description"],"properties":{"code":{"type":"string","enum":["ERR-8000"]},"title":{"type":"string","enum":["Authentication required"]},"description":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}}}},"requestId":{"type":"string"}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["message","errorKey","error","requestId"],"properties":{"message":{"type":"string"},"errorKey":{"type":"string","enum":["Forbidden"]},"error":{"type":"object","required":["code","title","description"],"properties":{"code":{"type":"string","enum":["ERR-8001"]},"title":{"type":"string","enum":["Access denied"]},"description":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}}}},"requestId":{"type":"string"}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["message","errorKey","error","requestId"],"properties":{"message":{"type":"string"},"errorKey":{"type":"string","enum":["AuthUnavailable"]},"error":{"type":"object","required":["code","title","description"],"properties":{"code":{"type":"string","enum":["ERR-8002"]},"title":{"type":"string","enum":["Authentication service unavailable"]},"description":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}}}},"requestId":{"type":"string"}}}}}}},"security":[{"x-api-key":[]}],"summary":"Exchange an API key for a short-lived seller access token (Bearer JWT)","tags":["Auth"]}},"/json/{version}/offers":{"post":{"description":"Searches flights and returns priced offers as a flat list.","operationId":"createOffersFlat","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"originDestinations":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"origin":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"destination":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"departureDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD; must not be before today (UTC-12)"}},"required":["origin","destination","departureDate"],"additionalProperties":false},"description":"One entry per direction in travel order; departure dates must be non-decreasing"},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"Client-chosen passenger ID, unique within the request; defaults to {PTC}-{ordinal} (e.g. ADT-1) when omitted","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]},"description":"Infant (INF) count must not exceed adult (ADT) count"},"cabinTypeCode":{"type":"string","description":"IATA cabin type code: Y, C, W, or F"},"currency":{"description":"3-letter ISO 4217 currency code for offer pricing","type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["originDestinations","passengers"],"additionalProperties":false},"examples":{"example":{"value":{"originDestinations":[{"origin":"SLC","destination":"CHS","departureDate":"2030-09-15"}],"passengers":[{"paxId":"PX1","type":"ADT"}],"cabinTypeCode":"Y"}}}}}},"responses":{"201":{"description":"Offers created (`data.view` is `flat`)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["view","pax","offers"],"properties":{"view":{"type":"string","enum":["flat"]},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"}},"title":"Pax"}},"promotions":{"type":"array","items":{"type":"object","required":["promotionId"],"properties":{"promotionId":{"type":"string"},"ownerName":{"type":"string"},"remarks":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"title":"Promotion"}},"paymentFunctions":{"type":"array","items":{"type":"object","required":["paymentTypeCode"],"properties":{"paymentTypeCode":{"type":"string"},"paymentBrandCode":{"type":"string"},"paymentMethodCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"paymentRedirectionInd":{"type":"boolean"}},"title":"PaymentFunction"}},"offers":{"type":"array","items":{"type":"object","required":["offerId","ownerCode","totalPrice","offerItems"],"properties":{"offerId":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"expiresAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"offerItems":{"type":"array","items":{"type":"object","required":["offerItemId","totalPrice","flight","fare","passengerPrices"],"properties":{"offerItemId":{"type":"string"},"legIndex":{"type":"integer","description":"Index of the request originDestination this item covers"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"flight":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","stops","segments","flightNumbers"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}},"flightNumbers":{"type":"array","items":{"type":"string"}}},"title":"Flight"},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"},"passengerPrices":{"type":"array","items":{"type":"object","required":["ptc","count","paxRefIds","price"],"properties":{"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"count":{"type":"integer"},"paxRefIds":{"type":"array","items":{"type":"string"},"description":"paxIds this price applies to"},"price":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"}},"title":"PassengerPrice"}},"seatsRemaining":{"type":"integer","maximum":9,"description":"Seats left in this fare on this leg, capped at 9. Absent when upstream availability carries no count"}},"title":"OfferItemSummary"}}},"title":"OfferSummary"}}},"title":"CreateOffersFlatData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Offers created (`data.view` is `flat`)","value":{"data":{"view":"flat","pax":[{"paxId":"PX1","ptc":"ADT"}],"paymentFunctions":[{"paymentTypeCode":"CC","paymentBrandCode":"AX"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"VI"}],"offers":[{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","ownerCode":"MX","expiresAt":"2030-09-15T12:00:00.000Z","description":"","totalPrice":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":7.5,"currency":"USD"}}],"fees":[]},"offerItems":[{"offerItemId":"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0","totalPrice":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":7.5,"currency":"USD"}}],"fees":[]},"flight":{"journeyId":"JOU-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx","origin":"SLC","destination":"CHS","departureDateTime":"2030-09-15T08:00:00","arrivalDateTime":"2030-09-15T12:00:00","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx","marketingCarrier":"MX","marketingFlightNumber":"101","origin":"SLC","destination":"CHS","departureDateTime":"2030-09-15T08:00:00","arrivalDateTime":"2030-09-15T12:00:00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y"}],"flightNumbers":["MX101"]},"fare":{"fareBasisCode":"Y","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["PX1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]},"passengerPrices":[{"ptc":"ADT","count":1,"paxRefIds":["PX1"],"price":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[],"fees":[]}}]}]}]},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005); Invalid origin or destination (ERR-1006)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}},"ERR-1006":{"summary":"Invalid origin or destination","value":{"data":null,"error":{"code":"ERR-1006","title":"Invalid origin or destination","description":"The requested origin or destination is not valid for offer and order processing."}}}}}}},"500":{"description":"Availability processing failed (ERR-2002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-2002":{"summary":"Availability processing failed","value":{"data":null,"error":{"code":"ERR-2002","title":"Availability processing failed","description":"Availability could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Create offers (flat layout)","tags":["JSON"]}},"/json/{version}/offers/byJourney":{"post":{"description":"Same search as `POST /json/{version}/offers`, with results grouped by direction and journey.","operationId":"createOffersByJourney","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"originDestinations":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"origin":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"destination":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"departureDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD; must not be before today (UTC-12)"}},"required":["origin","destination","departureDate"],"additionalProperties":false},"description":"One entry per direction in travel order; departure dates must be non-decreasing"},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"Client-chosen passenger ID, unique within the request; defaults to {PTC}-{ordinal} (e.g. ADT-1) when omitted","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]},"description":"Infant (INF) count must not exceed adult (ADT) count"},"cabinTypeCode":{"type":"string","description":"IATA cabin type code: Y, C, W, or F"},"currency":{"description":"3-letter ISO 4217 currency code for offer pricing","type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["originDestinations","passengers"],"additionalProperties":false},"examples":{"example":{"value":{"originDestinations":[{"origin":"SLC","destination":"CHS","departureDate":"2030-09-15"}],"passengers":[{"paxId":"PX1","type":"ADT"}],"cabinTypeCode":"Y"}}}}}},"responses":{"201":{"description":"Offers created (`data.view` is `byJourney`)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["view","pax","directions"],"properties":{"view":{"type":"string","enum":["byJourney"]},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"}},"title":"Pax"}},"promotions":{"type":"array","items":{"type":"object","required":["promotionId"],"properties":{"promotionId":{"type":"string"},"ownerName":{"type":"string"},"remarks":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"title":"Promotion"}},"paymentFunctions":{"type":"array","items":{"type":"object","required":["paymentTypeCode"],"properties":{"paymentTypeCode":{"type":"string"},"paymentBrandCode":{"type":"string"},"paymentMethodCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"paymentRedirectionInd":{"type":"boolean"}},"title":"PaymentFunction"}},"directions":{"type":"array","items":{"type":"object","required":["legIndex","origin","destination","departureDate","journeys"],"properties":{"legIndex":{"type":"integer","description":"Index of the request originDestination this direction covers"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDate":{"type":"string","format":"date"},"journeys":{"type":"array","items":{"type":"object","required":["flight","options"],"properties":{"flight":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","stops","segments","flightNumbers"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}},"flightNumbers":{"type":"array","items":{"type":"string"}}},"title":"Flight"},"options":{"type":"array","items":{"type":"object","required":["offerId","offerItemId","totalPrice","fare","passengerPrices"],"properties":{"offerId":{"type":"string"},"offerItemId":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"},"passengerPrices":{"type":"array","items":{"type":"object","required":["ptc","count","paxRefIds","price"],"properties":{"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"count":{"type":"integer"},"paxRefIds":{"type":"array","items":{"type":"string"},"description":"paxIds this price applies to"},"price":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"}},"title":"PassengerPrice"}},"seatsRemaining":{"type":"integer","maximum":9,"description":"Seats left in this fare on this leg, capped at 9. Absent when upstream availability carries no count"}},"title":"OfferOption"}}},"title":"JourneyGroup"}}},"title":"Direction"}}},"title":"CreateOffersByJourneyData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Offers created (`data.view` is `byJourney`)","value":{"data":{"view":"byJourney","pax":[{"paxId":"PX1","ptc":"ADT"}],"directions":[{"legIndex":0,"origin":"SLC","destination":"CHS","departureDate":"2030-09-15","journeys":[]}],"paymentFunctions":[{"paymentTypeCode":"CC","paymentBrandCode":"AX"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"VI"}]},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005); Invalid origin or destination (ERR-1006)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}},"ERR-1006":{"summary":"Invalid origin or destination","value":{"data":null,"error":{"code":"ERR-1006","title":"Invalid origin or destination","description":"The requested origin or destination is not valid for offer and order processing."}}}}}}},"500":{"description":"Availability processing failed (ERR-2002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-2002":{"summary":"Availability processing failed","value":{"data":null,"error":{"code":"ERR-2002","title":"Availability processing failed","description":"Availability could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Create offers (by-journey layout)","tags":["JSON"]}},"/json/{version}/offers/price":{"post":{"description":"Prices a selected offer and returns the final amounts. Offer items reference the top-level `journeys` via `journeyRefIds`.","operationId":"priceOffer","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"selections":{"minItems":1,"type":"array","items":{"type":"object","properties":{"offerId":{"type":"string","minLength":1,"description":"Offer ID from the offers response"},"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Offer item IDs within this offer; must be unique"}},"required":["offerId","offerItemIds"]},"description":"Offers to price; offer IDs must be unique within the request"},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"Client-chosen passenger ID, unique within the request; defaults to {PTC}-{ordinal} (e.g. ADT-1) when omitted","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]}}},"required":["selections","passengers"]},"examples":{"example":{"value":{"selections":[{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"]}],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"201":{"description":"Offer priced","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["pax","offer","journeys"],"properties":{"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"}},"title":"Pax"}},"promotions":{"type":"array","items":{"type":"object","required":["promotionId"],"properties":{"promotionId":{"type":"string"},"ownerName":{"type":"string"},"remarks":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}},"title":"Promotion"}},"paymentFunctions":{"type":"array","items":{"type":"object","required":["paymentTypeCode"],"properties":{"paymentTypeCode":{"type":"string"},"paymentBrandCode":{"type":"string"},"paymentMethodCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"paymentRedirectionInd":{"type":"boolean"}},"title":"PaymentFunction"}},"offer":{"type":"object","required":["offerId","ownerCode","totalPrice","items"],"properties":{"offerId":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"expiresAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["offerItemId","totalPrice","journeyRefIds","fare","passengerPrices"],"properties":{"offerItemId":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"journeyRefIds":{"type":"array","items":{"type":"string"},"description":"journeyIds in the top-level journeys array covered by this item"},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"},"passengerPrices":{"type":"array","items":{"type":"object","required":["ptc","count","paxRefIds","price"],"properties":{"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"count":{"type":"integer"},"paxRefIds":{"type":"array","items":{"type":"string"},"description":"paxIds this price applies to"},"price":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"}},"title":"PassengerPrice"}}},"title":"PricedOfferItem"}}},"title":"PricedOffer"},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}}},"title":"PriceOfferData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Offer priced","value":{"data":{"pax":[{"paxId":"PX1","ptc":"ADT"}],"paymentFunctions":[{"paymentTypeCode":"CC","paymentBrandCode":"AX"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"VI"}],"offer":{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","ownerCode":"MX","expiresAt":"2030-09-15T12:00:00.000Z","description":"","totalPrice":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":7.5,"currency":"USD"}}],"fees":[]},"items":[{"offerItemId":"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0","totalPrice":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":7.5,"currency":"USD"}}],"fees":[]},"journeyRefIds":["JOU-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx"],"fare":{"fareBasisCode":"Y","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["PX1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]},"passengerPrices":[{"ptc":"ADT","count":1,"paxRefIds":["PX1"],"price":{"total":{"amount":99,"currency":"USD"},"base":{"amount":91.5,"currency":"USD"},"taxes":[],"fees":[]}}]}]},"journeys":[{"journeyId":"JOU-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx","origin":"SLC","destination":"CHS","departureDateTime":"2030-09-15T08:00:00","arrivalDateTime":"2030-09-15T12:00:00","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx","marketingCarrier":"MX","marketingFlightNumber":"101","origin":"SLC","destination":"CHS","departureDateTime":"2030-09-15T08:00:00","arrivalDateTime":"2030-09-15T12:00:00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","legs":[{"legId":"LEG-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx","origin":"SLC","destination":"CHS","departureDateTime":"2030-09-15T08:00:00","arrivalDateTime":"2030-09-15T12:00:00"}]}]}]},"error":null}}}}}},"400":{"description":"Offer item not found (ERR-3002); Offer selection mismatch (ERR-3003); OrderQuote required (ERR-3004)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3002":{"summary":"Offer item not found","value":{"data":null,"error":{"code":"ERR-3002","title":"Offer item not found","description":"One or more referenced offer items could not be found on the offer."}}},"ERR-3003":{"summary":"Offer selection mismatch","value":{"data":null,"error":{"code":"ERR-3003","title":"Offer selection mismatch","description":"The selected offer items do not form a valid offer selection."}}},"ERR-3004":{"summary":"OrderQuote required","value":{"data":null,"error":{"code":"ERR-3004","title":"OrderQuote required","description":"This offer was returned from OrderReshop and must be priced with OrderQuote, not OfferPrice."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Offer expired (ERR-3001); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-3001":{"summary":"Offer expired","value":{"data":null,"error":{"code":"ERR-3001","title":"Offer expired","description":"The referenced offer has expired and can no longer be priced or ordered."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Unexpected upstream response (ERR-9001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9001":{"summary":"Unexpected upstream response","value":{"data":null,"error":{"code":"ERR-9001","title":"Unexpected upstream response","description":"The request could not be processed because an upstream response was unexpected."}}}}}}},"503":{"description":"Offer cache unavailable (ERR-9002); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9002":{"summary":"Offer cache unavailable","value":{"data":null,"error":{"code":"ERR-9002","title":"Offer cache unavailable","description":"Offers cannot be retrieved or stored at this time."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Price a selected offer","tags":["JSON"]}},"/json/{version}/orders":{"post":{"description":"Creates an order from a previously priced offer. Requires `book` access.","operationId":"createOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerId":{"type":"string","minLength":1,"description":"Priced offer ID from POST /json/{version}/offers/price"},"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Offer item IDs to book"},"offerItemSelections":{"minItems":1,"type":"array","items":{"type":"object","properties":{"offerItemId":{"type":"string","minLength":1},"passengerIds":{"description":"passengerIds taking this item; seat items require exactly one","type":"array","items":{"type":"string","minLength":1}}},"required":["offerItemId"]}},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"passengerId":{"type":"string","minLength":1,"description":"Unique passenger ID; referenced by offerItemSelections and infantPassengerId"},"type":{"type":"string","enum":["ADT","CHD","INF"]},"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"residenceCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"loyaltyProgram":{"type":"object","properties":{"programCode":{"description":"Loyalty program code (MX for Breeze Rewards)","type":"string","minLength":1},"memberId":{"type":"string","minLength":1,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress"]},"documentNumber":{"type":"string","minLength":1},"issuingCountry":{"description":"ISO 3166-1 alpha-2; required on every travel document","type":"string","minLength":2,"maxLength":2},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"expirationDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"issuedDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1},"placeOfIssue":{"type":"string","minLength":1},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]}},"required":["documentType","documentNumber","issuingCountry"]}},"contact":{"type":"object","properties":{"name":{"description":"Contact person; required by Navitaire when replacing the primary contact","type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"]},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"additionalProperties":false},"infantPassengerId":{"description":"passengerId of the lap infant (INF) travelling with this adult","type":"string","minLength":1}},"required":["passengerId","type","name"]}},"contact":{"type":"object","properties":{"name":{"description":"Contact person; required by Navitaire when replacing the primary contact","type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"]},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"required":["emailAddress"],"additionalProperties":false,"description":"Required primary booking contact"},"agencyContact":{"description":"Optional agency (type A) contact stored alongside the primary contact","type":"object","properties":{"name":{"type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"],"description":"Contact person; required on every contact write"},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"required":["name","emailAddress"],"additionalProperties":false},"remarks":{"type":"array","items":{"type":"string","minLength":1}},"payment":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"Hold"}},"required":["type"],"description":"Create the order as an unpaid hold; paymentTimeLimit applies"},{"type":"object","properties":{"type":{"type":"string","const":"TokenizedCard"},"token":{"type":"string","minLength":1},"cardType":{"type":"string","minLength":1},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227)"},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}},"required":["line1","city","stateProvince","postalCode","countryCode"]}},"required":["name","postalAddress"]},"statedAmount":{"type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Amount the caller agrees to pay; the request is rejected with ERR-3006 (Price changed) when the live amount due differs"}},"required":["type","token","cardType","expiryDate"]},{"type":"object","properties":{"type":{"type":"string","const":"CreditCard"},"cardType":{"type":"string","minLength":1},"cardNumber":{"type":"string","minLength":1},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227)"},"securityCode":{"type":"string","minLength":1},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}},"required":["line1","city","stateProvince","postalCode","countryCode"]}},"required":["name","postalAddress"]},"statedAmount":{"type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Amount the caller agrees to pay; the request is rejected with ERR-3006 (Price changed) when the live amount due differs"}},"required":["type","cardType","cardNumber","expiryDate","payer"]}]},"organizationCredit":{"type":"object","properties":{"amount":{"type":"number","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Fixed-amount draw against the seller organization credit account, independent of payment. Requires a seller with a validated Navitaire agencyCode."},"expectedTotal":{"description":"Expected order total — the only price agreement a Hold can carry","type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"]}},"required":["offerId","offerItemIds","offerItemSelections","passengers","contact"]},"examples":{"card":{"value":{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"],"offerItemSelections":[{"offerItemId":"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"}],"passengers":[{"passengerId":"PX1","type":"ADT","name":{"givenName":"Jane","surname":"Doe"}}],"contact":{"emailAddress":"jane@example.com"},"payment":{"type":"Hold"}}},"organizationCredit":{"value":{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"],"offerItemSelections":[{"offerItemId":"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"}],"passengers":[{"passengerId":"PX1","type":"ADT","name":{"givenName":"Jane","surname":"Doe"}}],"contact":{"emailAddress":"jane@example.com"},"organizationCredit":{"amount":250,"currency":"USD"}}},"splitPayment":{"value":{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"],"offerItemSelections":[{"offerItemId":"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"}],"passengers":[{"passengerId":"PX1","type":"ADT","name":{"givenName":"Jane","surname":"Doe"}}],"contact":{"emailAddress":"jane@example.com"},"payment":{"type":"CreditCard","cardType":"VI","cardNumber":"4111111111111111","expiryDate":"1230","payer":{"name":{"givenName":"Jane","surname":"Doe"},"postalAddress":{"line1":"123 Main St","city":"Los Angeles","stateProvince":"California","postalCode":"90210","countryCode":"US"}}},"organizationCredit":{"amount":100,"currency":"USD"}}}}}}},"responses":{"201":{"description":"Order created","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["order","services","pax","journeys","payments","tickets"],"properties":{"order":{"type":"object","required":["orderId","ownerCode","creationDateTime","totalPrice","items"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"creationDateTime":{"type":"string","format":"date-time"},"lastModifiedDateTime":{"type":"string","format":"date-time"},"paymentTimeLimit":{"type":"string","format":"date-time","description":"Deadline to pay a held order"},"balanceDue":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Outstanding amount to collect"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["itemId","totalPrice","paxRefIds","segmentRefIds","fare"],"properties":{"itemId":{"type":"string"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefIds":{"type":"array","items":{"type":"string"}},"segmentRefIds":{"type":"array","items":{"type":"string"}},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"}},"title":"OrderFlightItem"}}},"title":"OrderHeader"},"services":{"type":"array","items":{"type":"object","required":["itemId","serviceId","code","name","category","ownerCode","totalPrice","paxRefId"],"properties":{"itemId":{"type":"string"},"serviceId":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["seat","baggage","meal","priority","lounge","other"]},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","WAITLISTED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"WAITLISTED mirrors the referenced segment status; ONHOLD/PENDING/CLOSED are richer than the NDC service code list"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefId":{"type":"string"},"segmentRefIds":{"type":"array","items":{"type":"string"}},"attributes":{"anyOf":[{"title":"SeatAttributes","type":"object","required":["unitDesignator"],"properties":{"unitDesignator":{"type":"string","description":"Seat designator","example":"12A"},"row":{"type":"integer"},"column":{"type":"string","pattern":"^[A-Z]$"}}},{"title":"BaggageAttributes","type":"object","required":[],"properties":{"pieceCount":{"type":"integer"},"weightKg":{"type":"number"}}},{"title":"MealAttributes","type":"object","required":["mealCode"],"properties":{"mealCode":{"type":"string"},"description":{"type":"string"}}}],"title":"ServiceAttributes"}},"title":"OrderService"}},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc","name"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"name":{"type":"object","required":["givenName","surname"],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}},"title":"OrderPaxName"},"dateOfBirth":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"residenceCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"infantPaxRefId":{"type":"string","description":"paxId of the lap infant associated with this adult"},"loyaltyProgram":{"type":"object","required":["programCode","memberId"],"properties":{"programCode":{"type":"string"},"memberId":{"type":"string"}},"description":"Loyalty membership stored on the booking"},"identityDocs":{"type":"array","items":{"type":"object","required":["documentNumber","documentTypeCode"],"properties":{"documentNumber":{"type":"string"},"documentTypeCode":{"type":"string","enum":["PT","NI","KT","R"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress"},"issuingCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"expiryDate":{"type":"string","format":"date"},"givenName":{"type":"string"},"surname":{"type":"string"},"birthdate":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"}},"title":"OrderIdentityDoc"}},"contactRefId":{"type":"string"},"contact":{"type":"object","required":[],"properties":{"emailAddress":{"type":"string"},"phoneNumber":{"type":"string"}},"description":"The passenger's own stored contact, distinct from booking-level contacts"}},"title":"OrderPax"}},"contacts":{"type":"array","items":{"type":"object","required":["contactId","contactTypeCode"],"properties":{"contactId":{"type":"string"},"contactTypeCode":{"type":"string"},"contactTypeName":{"type":"string"},"emailAddress":{"type":"string"},"phoneNumbers":{"type":"array","items":{"type":"object","required":["number"],"properties":{"number":{"type":"string"},"type":{"type":"string"}}}},"postalAddress":{"type":"object","required":[],"properties":{"line1":{"type":"string"},"line2":{"type":"string"},"line3":{"type":"string"},"city":{"type":"string"},"stateProvince":{"type":"string"},"postalCode":{"type":"string"},"countryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"}}},"name":{"type":"object","required":[],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}}}},"title":"OrderContact"}},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}},"payments":{"type":"array","items":{"type":"object","required":["paymentId","amount","method"],"properties":{"paymentId":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"statusCode":{"type":"string","enum":["SUCCESSFUL","AUTHORIZED","REFUNDED","FAILED","PENDING"],"description":"Richer than the NDC wire (SUCCESSFUL/FAILED/PENDING only): AUTHORIZED and REFUNDED are collapsed there"},"processedAt":{"type":"string","format":"date-time"},"method":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["CreditCard"]},"cardBrandCode":{"type":"string"},"maskedCardId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["TokenizedCard"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Voucher"]},"voucherId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Cash"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["AgencyAccount"]}}},{"type":"object","required":["type","paymentTypeCode"],"properties":{"type":{"type":"string","enum":["Settlement"]},"paymentTypeCode":{"type":"string"}}},{"type":"object","required":["type","programCode"],"properties":{"type":{"type":"string","enum":["Points"]},"programCode":{"type":"string"},"pointsAmount":{"type":"number"}}}],"title":"OrderPaymentMethod"}},"title":"OrderPayment"}},"tickets":{"type":"array","items":{"type":"object","required":["paxRefId","segmentRefId","origin","destination","ticketNumber","couponNumber"],"properties":{"paxRefId":{"type":"string"},"segmentRefId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"ticketNumber":{"type":"string"},"infantTicketNumber":{"type":"string"},"couponNumber":{"type":"integer"},"couponStatusCode":{"type":"string"}},"title":"OrderTicket"}}},"title":"RetrieveOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order created","value":{"data":{"order":{"orderId":"ABC123","recordLocator":"ABC123","ownerCode":"MX","statusCode":"CONFIRMED","creationDateTime":"2026-04-10T10:00:00Z","lastModifiedDateTime":"2026-04-10T10:15:00Z","totalPrice":{"total":{"amount":200,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}},{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}},{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"items":[{"itemId":"OOI-FL-UHxQQVgtUVVSVUxURXxTfExBWE1DT3wyMDI2MDUwMXxNWDIwMQ","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":150,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}}],"fees":[]},"paxRefIds":["ADT-1"],"segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"fare":{"fareBasisCode":"AEZ00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["ADT-1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]}}]},"services":[{"itemId":"OOI-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","serviceId":"SVC-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","code":"SEAT","name":"12A","category":"seat","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":15,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"attributes":{"unitDesignator":"12A","row":12,"column":"A"}},{"itemId":"OOI-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","serviceId":"SVC-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","code":"COB","name":"Carry-on Bag","category":"baggage","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":35,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"]}],"pax":[{"paxId":"ADT-1","ptc":"ADT","name":{"givenName":"Jane","surname":"Doe","title":"Ms","middleName":"Marie","suffix":"Jr"},"dateOfBirth":"1990-03-02","genderCode":"F","nationality":"US","residenceCountryCode":"US","infantPaxRefId":"INF-1","loyaltyProgram":{"programCode":"MX","memberId":"1000001606"},"identityDocs":[{"documentNumber":"P123456789","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-01-15","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"},{"documentNumber":"1234567","documentTypeCode":"R","issuingCountryCode":"US","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"}],"contactRefId":"CTC-UA"},{"paxId":"INF-1","ptc":"INF","name":{"givenName":"Baby","surname":"Doe"},"dateOfBirth":"2025-08-20","genderCode":"M","nationality":"US","identityDocs":[{"documentNumber":"P987654321","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-08-20","givenName":"Baby","surname":"Doe","birthdate":"2025-08-20","genderCode":"M"}],"contactRefId":"CTC-UA"}],"contacts":[{"contactId":"CTC-UA","contactTypeCode":"P","contactTypeName":"Primary","emailAddress":"jane.doe@example.com","phoneNumbers":[{"number":"+18015550100","type":"Home"},{"number":"+18015550199","type":"Work"}],"postalAddress":{"line1":"123 Main St","line2":"Apt 4","city":"Salt Lake City","stateProvince":"UT","postalCode":"84101","countryCode":"US"},"name":{"givenName":"Jane","middleName":"Marie","surname":"Doe","title":"Ms","suffix":"Jr"}}],"journeys":[{"journeyId":"JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","marketingCarrier":"MX","marketingFlightNumber":"201","operatingCarrier":"MX","operatingFlightNumber":"201","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","duration":"PT4H","legs":[{"legId":"LEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","aircraftTypeCode":"223","carrierAircraftTypeCode":"223-137"}]}]}],"payments":[{"paymentId":"PAY-MQ","amount":{"amount":200,"currency":"USD"},"statusCode":"SUCCESSFUL","processedAt":"2026-04-10T10:05:00Z","method":{"type":"CreditCard","cardBrandCode":"VI","maskedCardId":"x1111"}}],"tickets":[{"paxRefId":"ADT-1","segmentRefId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","ticketNumber":"1234567890123","couponNumber":1,"couponStatusCode":"U"}]},"error":null}}}}}},"400":{"description":"Invalid field value (ERR-1004); Order creation rejected (ERR-4001); Payment rejected (ERR-6002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1004":{"summary":"Invalid field value","value":{"data":null,"error":{"code":"ERR-1004","title":"Invalid field value","description":"One or more request fields contain an invalid value."}}},"ERR-4001":{"summary":"Order creation rejected","value":{"data":null,"error":{"code":"ERR-4001","title":"Order creation rejected","description":"The order could not be created from the selected offer."}}},"ERR-6002":{"summary":"Payment rejected","value":{"data":null,"error":{"code":"ERR-6002","title":"Payment rejected","description":"The payment could not be accepted for the order."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Offer expired (ERR-3001); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-3001":{"summary":"Offer expired","value":{"data":null,"error":{"code":"ERR-3001","title":"Offer expired","description":"The referenced offer has expired and can no longer be priced or ordered."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"409":{"description":"Price changed (ERR-3006)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3006":{"summary":"Price changed","value":{"data":null,"error":{"code":"ERR-3006","title":"Price changed","description":"The amount due no longer matches the stated amount."}}}}}}},"422":{"description":"Request validation failed (ERR-1005); Payment method not supported (ERR-6000); Card brand not supported (ERR-6001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}},"ERR-6000":{"summary":"Payment method not supported","value":{"data":null,"error":{"code":"ERR-6000","title":"Payment method not supported","description":"The requested payment method is not supported."}}},"ERR-6001":{"summary":"Card brand not supported","value":{"data":null,"error":{"code":"ERR-6001","title":"Card brand not supported","description":"The submitted card brand is not supported for payment."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Payment processing timed out (ERR-6005); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-6005":{"summary":"Payment processing timed out","value":{"data":null,"error":{"code":"ERR-6005","title":"Payment processing timed out","description":"Payment processing did not complete before the timeout."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Create order from a priced offer","tags":["JSON"]},"get":{"description":"Without departureDate, returns orders with flights departing from yesterday (UTC) onward. To page, send page.lastIndex from the previous response as the lastIndex query param and repeat while page.hasMore is true; page.count may be less than pageSize because duplicate journeys and past flights are filtered out server-side.","operationId":"listOrders","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"organizationCode","required":false,"in":"query","schema":{"type":"string","minLength":1,"maxLength":10}},{"name":"firstName","required":false,"in":"query","schema":{"type":"string","minLength":1,"maxLength":32}},{"name":"lastName","required":false,"in":"query","schema":{"type":"string","minLength":1,"maxLength":32}},{"name":"departureDate","required":false,"in":"query","description":"YYYY-MM-DD. Matches flights departing on this exact UTC date only — not before or after. To search a date range, query once per day.","schema":{"type":"string","format":"date"}},{"name":"origin","required":false,"in":"query","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"destination","required":false,"in":"query","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"flightNumber","required":false,"in":"query","schema":{"type":"string"}},{"name":"pageSize","required":false,"in":"query","schema":{"type":"integer","minimum":10,"maximum":1000,"default":1000}},{"name":"lastIndex","required":false,"in":"query","description":"Pagination cursor: pass page.lastIndex from the previous response.","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Orders listed","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["orders","page"],"properties":{"orders":{"type":"array","items":{"type":"object","required":["orderId","recordLocator"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"departureDate":{"type":"string","format":"date"},"flightNumber":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"sourceOrganizationCode":{"type":"string"},"passengerName":{"type":"object","required":["surname"],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}}}},"title":"OrderListSummary"}},"page":{"type":"object","required":["pageSize","lastIndex","count","hasMore"],"properties":{"pageSize":{"type":"integer"},"lastIndex":{"type":"integer","description":"Send as the lastIndex query param to fetch the next page"},"count":{"type":"integer","description":"Orders in this page; can be less than pageSize because duplicate journeys and past flights are filtered server-side"},"hasMore":{"type":"boolean"}}}},"title":"OrderListData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Orders listed","value":{"data":{"orders":[{"orderId":"OO-ABC123","recordLocator":"ABC123","statusCode":"CONFIRMED","departureDate":"2030-09-15","flightNumber":"101","origin":"SLC","destination":"CHS","passengerName":{"givenName":"Jane","surname":"Doe"}}],"page":{"pageSize":10,"lastIndex":1,"count":1,"hasMore":false}},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"List orders for the authenticated agency","tags":["JSON"]}},"/json/{version}/orders/{orderId}":{"patch":{"description":"Applies one or more changes to an existing order: cancel unpaid, cancel a journey, update passengers or contact, confirm a hold, or add ancillaries. Requires `book` access.","operationId":"changeOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changes":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"CancelUnpaidOrder"}},"required":["type"],"description":"Cancel an unpaid (hold) order"},{"type":"object","properties":{"type":{"type":"string","const":"CancelJourney"},"journeyRef":{"type":"string","minLength":1,"description":"journeyId from order retrieve"}},"required":["type","journeyRef"]},{"type":"object","properties":{"type":{"type":"string","const":"UpdatePassenger"},"passengerId":{"type":"string","minLength":1},"patch":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"residenceCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"loyaltyProgram":{"type":"object","properties":{"programCode":{"description":"Loyalty program code (MX for Breeze Rewards)","type":"string","minLength":1},"memberId":{"type":"string","minLength":1,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress"]},"documentNumber":{"type":"string","minLength":1},"issuingCountry":{"description":"ISO 3166-1 alpha-2; required on every travel document","type":"string","minLength":2,"maxLength":2},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"expirationDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"issuedDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1},"placeOfIssue":{"type":"string","minLength":1},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]}},"required":["documentType","documentNumber","issuingCountry"]}},"contact":{"description":"Per-passenger contact; only email and phone are stored","type":"object","properties":{"name":{"description":"Contact person; required by Navitaire when replacing the primary contact","type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"]},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"additionalProperties":false}}}},"required":["type","passengerId","patch"]},{"type":"object","properties":{"type":{"type":"string","const":"UpdateContact"},"contactTypeCode":{"description":"Booking contact slot as on responses (P primary, A agency); omit for the primary","type":"string","minLength":1,"maxLength":1},"contact":{"description":"Full replacement contact","type":"object","properties":{"name":{"type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"],"description":"Contact person; required on every contact write"},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"required":["name","emailAddress"],"additionalProperties":false},"remove":{"description":"Remove the slot instead of writing it; not allowed on the primary","type":"boolean","const":true}},"required":["type"],"additionalProperties":false,"description":"Add, replace, or remove one booking contact slot"},{"type":"object","properties":{"type":{"type":"string","const":"ConfirmHold"}},"required":["type"],"description":"Pay the held balance and confirm the order. BOO waits for the card authorization to settle, so the response normally reports CONFIRMED with a SUCCESSFUL payment; if it is still processing the order reads ONHOLD with a PENDING payment and a later retrieve carries the settled state. A declined card fails the request."},{"type":"object","properties":{"type":{"type":"string","const":"AcceptOffer"},"offerItems":{"minItems":1,"type":"array","items":{"type":"object","properties":{"offerId":{"type":"string","minLength":1},"offerItemId":{"type":"string","minLength":1,"description":"Ancillary offer item ID from the seats (OFI-ST-…) or services (OFI-SR-…) response"},"passengerIds":{"type":"array","items":{"type":"string","minLength":1}},"seat":{"description":"Seat assignment for seat items","type":"object","properties":{"row":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"column":{"type":"string","minLength":1,"description":"Seat column letter, e.g. A"}},"required":["row","column"]}},"required":["offerId","offerItemId"]}}},"required":["type","offerItems"],"description":"Add ancillary items (seats, bags, services) to the order"},{"type":"object","properties":{"type":{"type":"string","const":"AcceptReshopOffer"},"offerId":{"type":"string","minLength":1},"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["type","offerId","offerItemIds"],"description":"Accept a reshop offer; it must first be priced via POST /orders/{orderId}/quote"},{"type":"object","properties":{"type":{"type":"string","const":"AcceptCancelledOffer"},"offerId":{"type":"string","minLength":1,"description":"Cancellation offer ID returned by reshop CancelOrder"}},"required":["type","offerId"],"description":"Accept a cancellation offer to cancel the order and trigger the refund"}]}},"passengers":{"type":"array","items":{"type":"object","properties":{"passengerId":{"type":"string","minLength":1,"description":"Unique passenger ID; referenced by offerItemSelections and infantPassengerId"},"type":{"type":"string","enum":["ADT","CHD","INF"]},"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"residenceCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"loyaltyProgram":{"type":"object","properties":{"programCode":{"description":"Loyalty program code (MX for Breeze Rewards)","type":"string","minLength":1},"memberId":{"type":"string","minLength":1,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress"]},"documentNumber":{"type":"string","minLength":1},"issuingCountry":{"description":"ISO 3166-1 alpha-2; required on every travel document","type":"string","minLength":2,"maxLength":2},"nationality":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"expirationDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"issuedDate":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1},"placeOfIssue":{"type":"string","minLength":1},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"dateOfBirth":{"description":"YYYY-MM-DD (or full ISO 8601 date-time)","type":"string","minLength":1},"gender":{"type":"string","enum":["Male","Female"]}},"required":["documentType","documentNumber","issuingCountry"]}},"contact":{"type":"object","properties":{"name":{"description":"Contact person; required by Navitaire when replacing the primary contact","type":"object","properties":{"givenName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1}},"required":["givenName","surname"]},"emailAddress":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phoneNumber":{"type":"string","minLength":1},"phoneCountryCode":{"type":"string","minLength":1},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"additionalProperties":false},"infantPassengerId":{"description":"passengerId of the lap infant (INF) travelling with this adult","type":"string","minLength":1}},"required":["passengerId","type","name"]}},"payment":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"Hold"}},"required":["type"],"description":"Create the order as an unpaid hold; paymentTimeLimit applies"},{"type":"object","properties":{"type":{"type":"string","const":"TokenizedCard"},"token":{"type":"string","minLength":1},"cardType":{"type":"string","minLength":1},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227)"},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}},"required":["line1","city","stateProvince","postalCode","countryCode"]}},"required":["name","postalAddress"]},"statedAmount":{"type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Amount the caller agrees to pay; the request is rejected with ERR-3006 (Price changed) when the live amount due differs"}},"required":["type","token","cardType","expiryDate"]},{"type":"object","properties":{"type":{"type":"string","const":"CreditCard"},"cardType":{"type":"string","minLength":1},"cardNumber":{"type":"string","minLength":1},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227)"},"securityCode":{"type":"string","minLength":1},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1},"middleName":{"type":"string","minLength":1},"surname":{"type":"string","minLength":1},"suffix":{"type":"string","minLength":1}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":"string","minLength":1},"line3":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"stateProvince":{"type":"string","minLength":1},"postalCode":{"type":"string","minLength":1},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}},"required":["line1","city","stateProvince","postalCode","countryCode"]}},"required":["name","postalAddress"]},"statedAmount":{"type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Amount the caller agrees to pay; the request is rejected with ERR-3006 (Price changed) when the live amount due differs"}},"required":["type","cardType","cardNumber","expiryDate","payer"]}]},"organizationCredit":{"type":"object","properties":{"amount":{"type":"number","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount"],"description":"Fixed-amount draw against the seller organization credit account, independent of payment. Requires a seller with a validated Navitaire agencyCode."}}},"examples":{"cancelUnpaidOrder":{"value":{"changes":[{"type":"CancelUnpaidOrder"}]}},"addAncillaries":{"value":{"changes":[{"type":"AcceptOffer","offerItems":[{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","offerItemId":"OFI-ST-U3xTTENDSFN8MjAzMDA5MTV8TVgxMDF8UFgxfDEyQQ","passengerIds":["PX1"]}]}]}},"updatePassengerLoyalty":{"value":{"changes":[{"type":"UpdatePassenger","passengerId":"PX1","patch":{"loyaltyProgram":{"programCode":"MX","memberId":"123456789"}}}]}},"confirmHold":{"value":{"changes":[{"type":"ConfirmHold"}]}},"confirmHoldWithOrganizationCredit":{"value":{"changes":[{"type":"ConfirmHold"}],"organizationCredit":{"amount":321,"currency":"USD"}}}}}}},"responses":{"200":{"description":"Order changed","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["order","services","pax","journeys","payments","tickets"],"properties":{"order":{"type":"object","required":["orderId","ownerCode","creationDateTime","totalPrice","items"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"creationDateTime":{"type":"string","format":"date-time"},"lastModifiedDateTime":{"type":"string","format":"date-time"},"paymentTimeLimit":{"type":"string","format":"date-time","description":"Deadline to pay a held order"},"balanceDue":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Outstanding amount to collect"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["itemId","totalPrice","paxRefIds","segmentRefIds","fare"],"properties":{"itemId":{"type":"string"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefIds":{"type":"array","items":{"type":"string"}},"segmentRefIds":{"type":"array","items":{"type":"string"}},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"}},"title":"OrderFlightItem"}}},"title":"OrderHeader"},"services":{"type":"array","items":{"type":"object","required":["itemId","serviceId","code","name","category","ownerCode","totalPrice","paxRefId"],"properties":{"itemId":{"type":"string"},"serviceId":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["seat","baggage","meal","priority","lounge","other"]},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","WAITLISTED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"WAITLISTED mirrors the referenced segment status; ONHOLD/PENDING/CLOSED are richer than the NDC service code list"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefId":{"type":"string"},"segmentRefIds":{"type":"array","items":{"type":"string"}},"attributes":{"anyOf":[{"title":"SeatAttributes","type":"object","required":["unitDesignator"],"properties":{"unitDesignator":{"type":"string","description":"Seat designator","example":"12A"},"row":{"type":"integer"},"column":{"type":"string","pattern":"^[A-Z]$"}}},{"title":"BaggageAttributes","type":"object","required":[],"properties":{"pieceCount":{"type":"integer"},"weightKg":{"type":"number"}}},{"title":"MealAttributes","type":"object","required":["mealCode"],"properties":{"mealCode":{"type":"string"},"description":{"type":"string"}}}],"title":"ServiceAttributes"}},"title":"OrderService"}},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc","name"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"name":{"type":"object","required":["givenName","surname"],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}},"title":"OrderPaxName"},"dateOfBirth":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"residenceCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"infantPaxRefId":{"type":"string","description":"paxId of the lap infant associated with this adult"},"loyaltyProgram":{"type":"object","required":["programCode","memberId"],"properties":{"programCode":{"type":"string"},"memberId":{"type":"string"}},"description":"Loyalty membership stored on the booking"},"identityDocs":{"type":"array","items":{"type":"object","required":["documentNumber","documentTypeCode"],"properties":{"documentNumber":{"type":"string"},"documentTypeCode":{"type":"string","enum":["PT","NI","KT","R"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress"},"issuingCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"expiryDate":{"type":"string","format":"date"},"givenName":{"type":"string"},"surname":{"type":"string"},"birthdate":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"}},"title":"OrderIdentityDoc"}},"contactRefId":{"type":"string"},"contact":{"type":"object","required":[],"properties":{"emailAddress":{"type":"string"},"phoneNumber":{"type":"string"}},"description":"The passenger's own stored contact, distinct from booking-level contacts"}},"title":"OrderPax"}},"contacts":{"type":"array","items":{"type":"object","required":["contactId","contactTypeCode"],"properties":{"contactId":{"type":"string"},"contactTypeCode":{"type":"string"},"contactTypeName":{"type":"string"},"emailAddress":{"type":"string"},"phoneNumbers":{"type":"array","items":{"type":"object","required":["number"],"properties":{"number":{"type":"string"},"type":{"type":"string"}}}},"postalAddress":{"type":"object","required":[],"properties":{"line1":{"type":"string"},"line2":{"type":"string"},"line3":{"type":"string"},"city":{"type":"string"},"stateProvince":{"type":"string"},"postalCode":{"type":"string"},"countryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"}}},"name":{"type":"object","required":[],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}}}},"title":"OrderContact"}},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}},"payments":{"type":"array","items":{"type":"object","required":["paymentId","amount","method"],"properties":{"paymentId":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"statusCode":{"type":"string","enum":["SUCCESSFUL","AUTHORIZED","REFUNDED","FAILED","PENDING"],"description":"Richer than the NDC wire (SUCCESSFUL/FAILED/PENDING only): AUTHORIZED and REFUNDED are collapsed there"},"processedAt":{"type":"string","format":"date-time"},"method":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["CreditCard"]},"cardBrandCode":{"type":"string"},"maskedCardId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["TokenizedCard"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Voucher"]},"voucherId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Cash"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["AgencyAccount"]}}},{"type":"object","required":["type","paymentTypeCode"],"properties":{"type":{"type":"string","enum":["Settlement"]},"paymentTypeCode":{"type":"string"}}},{"type":"object","required":["type","programCode"],"properties":{"type":{"type":"string","enum":["Points"]},"programCode":{"type":"string"},"pointsAmount":{"type":"number"}}}],"title":"OrderPaymentMethod"}},"title":"OrderPayment"}},"tickets":{"type":"array","items":{"type":"object","required":["paxRefId","segmentRefId","origin","destination","ticketNumber","couponNumber"],"properties":{"paxRefId":{"type":"string"},"segmentRefId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"ticketNumber":{"type":"string"},"infantTicketNumber":{"type":"string"},"couponNumber":{"type":"integer"},"couponStatusCode":{"type":"string"}},"title":"OrderTicket"}}},"title":"RetrieveOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order changed","value":{"data":{"order":{"orderId":"ABC123","recordLocator":"ABC123","ownerCode":"MX","statusCode":"CONFIRMED","creationDateTime":"2026-04-10T10:00:00Z","lastModifiedDateTime":"2026-04-10T10:15:00Z","totalPrice":{"total":{"amount":200,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}},{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}},{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"items":[{"itemId":"OOI-FL-UHxQQVgtUVVSVUxURXxTfExBWE1DT3wyMDI2MDUwMXxNWDIwMQ","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":150,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}}],"fees":[]},"paxRefIds":["ADT-1"],"segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"fare":{"fareBasisCode":"AEZ00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["ADT-1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]}}]},"services":[{"itemId":"OOI-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","serviceId":"SVC-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","code":"SEAT","name":"12A","category":"seat","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":15,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"attributes":{"unitDesignator":"12A","row":12,"column":"A"}},{"itemId":"OOI-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","serviceId":"SVC-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","code":"COB","name":"Carry-on Bag","category":"baggage","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":35,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"]}],"pax":[{"paxId":"ADT-1","ptc":"ADT","name":{"givenName":"Jane","surname":"Doe","title":"Ms","middleName":"Marie","suffix":"Jr"},"dateOfBirth":"1990-03-02","genderCode":"F","nationality":"US","residenceCountryCode":"US","infantPaxRefId":"INF-1","loyaltyProgram":{"programCode":"MX","memberId":"1000001606"},"identityDocs":[{"documentNumber":"P123456789","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-01-15","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"},{"documentNumber":"1234567","documentTypeCode":"R","issuingCountryCode":"US","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"}],"contactRefId":"CTC-UA"},{"paxId":"INF-1","ptc":"INF","name":{"givenName":"Baby","surname":"Doe"},"dateOfBirth":"2025-08-20","genderCode":"M","nationality":"US","identityDocs":[{"documentNumber":"P987654321","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-08-20","givenName":"Baby","surname":"Doe","birthdate":"2025-08-20","genderCode":"M"}],"contactRefId":"CTC-UA"}],"contacts":[{"contactId":"CTC-UA","contactTypeCode":"P","contactTypeName":"Primary","emailAddress":"jane.doe@example.com","phoneNumbers":[{"number":"+18015550100","type":"Home"},{"number":"+18015550199","type":"Work"}],"postalAddress":{"line1":"123 Main St","line2":"Apt 4","city":"Salt Lake City","stateProvince":"UT","postalCode":"84101","countryCode":"US"},"name":{"givenName":"Jane","middleName":"Marie","surname":"Doe","title":"Ms","suffix":"Jr"}}],"journeys":[{"journeyId":"JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","marketingCarrier":"MX","marketingFlightNumber":"201","operatingCarrier":"MX","operatingFlightNumber":"201","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","duration":"PT4H","legs":[{"legId":"LEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","aircraftTypeCode":"223","carrierAircraftTypeCode":"223-137"}]}]}],"payments":[{"paymentId":"PAY-MQ","amount":{"amount":200,"currency":"USD"},"statusCode":"SUCCESSFUL","processedAt":"2026-04-10T10:05:00Z","method":{"type":"CreditCard","cardBrandCode":"VI","maskedCardId":"x1111"}}],"tickets":[{"paxRefId":"ADT-1","segmentRefId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","ticketNumber":"1234567890123","couponNumber":1,"couponStatusCode":"U"}]},"error":null}}}}}},"400":{"description":"Invalid field value (ERR-1004); Order modification rejected (ERR-4002); Journey not found (ERR-4006); Flight change not permitted (ERR-4003); Partial cancellation not permitted (ERR-4004); Payment rejected (ERR-6002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1004":{"summary":"Invalid field value","value":{"data":null,"error":{"code":"ERR-1004","title":"Invalid field value","description":"One or more request fields contain an invalid value."}}},"ERR-4002":{"summary":"Order modification rejected","value":{"data":null,"error":{"code":"ERR-4002","title":"Order modification rejected","description":"The requested order change could not be applied."}}},"ERR-4006":{"summary":"Journey not found","value":{"data":null,"error":{"code":"ERR-4006","title":"Journey not found","description":"The referenced journey could not be found on the order."}}},"ERR-4003":{"summary":"Flight change not permitted","value":{"data":null,"error":{"code":"ERR-4003","title":"Flight change not permitted","description":"The fare rules published with this journey do not permit a flight change."}}},"ERR-4004":{"summary":"Partial cancellation not permitted","value":{"data":null,"error":{"code":"ERR-4004","title":"Partial cancellation not permitted","description":"The fare rules published with this journey forbid a partial cancellation."}}},"ERR-6002":{"summary":"Payment rejected","value":{"data":null,"error":{"code":"ERR-6002","title":"Payment rejected","description":"The payment could not be accepted for the order."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"409":{"description":"Price changed (ERR-3006)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3006":{"summary":"Price changed","value":{"data":null,"error":{"code":"ERR-3006","title":"Price changed","description":"The amount due no longer matches the stated amount."}}}}}}},"422":{"description":"Request validation failed (ERR-1005); Payment method not supported (ERR-6000); Card brand not supported (ERR-6001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}},"ERR-6000":{"summary":"Payment method not supported","value":{"data":null,"error":{"code":"ERR-6000","title":"Payment method not supported","description":"The requested payment method is not supported."}}},"ERR-6001":{"summary":"Card brand not supported","value":{"data":null,"error":{"code":"ERR-6001","title":"Card brand not supported","description":"The submitted card brand is not supported for payment."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"501":{"description":"Refund method not supported (ERR-6003); Loyalty points refund not supported (ERR-6004)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-6003":{"summary":"Refund method not supported","value":{"data":null,"error":{"code":"ERR-6003","title":"Refund method not supported","description":"The refund cannot be completed automatically because the payment method cannot be reversed by this service. Contact the carrier."}}},"ERR-6004":{"summary":"Loyalty points refund not supported","value":{"data":null,"error":{"code":"ERR-6004","title":"Loyalty points refund not supported","description":"The refund cannot be completed automatically because a loyalty points refund is owed. Contact the carrier."}}}}}}},"503":{"description":"Payment processing timed out (ERR-6005); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-6005":{"summary":"Payment processing timed out","value":{"data":null,"error":{"code":"ERR-6005","title":"Payment processing timed out","description":"Payment processing did not complete before the timeout."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Change an existing order","tags":["JSON"]},"get":{"description":"Returns the full order: `order`, `services`, `pax`, `journeys`, `payments`, and `tickets`.","operationId":"retrieveOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}},{"name":"ownerCode","required":false,"in":"query","description":"Airline owner code. Defaults to MX when omitted.","schema":{"type":"string"}},{"name":"lastName","required":false,"in":"query","description":"Passenger surname. Required when orderId is a record locator (PNR) for a booking not created through this API; must match a passenger on the booking.","schema":{"type":"string"}}],"responses":{"200":{"description":"Order retrieved","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["order","services","pax","journeys","payments","tickets"],"properties":{"order":{"type":"object","required":["orderId","ownerCode","creationDateTime","totalPrice","items"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"creationDateTime":{"type":"string","format":"date-time"},"lastModifiedDateTime":{"type":"string","format":"date-time"},"paymentTimeLimit":{"type":"string","format":"date-time","description":"Deadline to pay a held order"},"balanceDue":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Outstanding amount to collect"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["itemId","totalPrice","paxRefIds","segmentRefIds","fare"],"properties":{"itemId":{"type":"string"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefIds":{"type":"array","items":{"type":"string"}},"segmentRefIds":{"type":"array","items":{"type":"string"}},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"}},"title":"OrderFlightItem"}}},"title":"OrderHeader"},"services":{"type":"array","items":{"type":"object","required":["itemId","serviceId","code","name","category","ownerCode","totalPrice","paxRefId"],"properties":{"itemId":{"type":"string"},"serviceId":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["seat","baggage","meal","priority","lounge","other"]},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","WAITLISTED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"WAITLISTED mirrors the referenced segment status; ONHOLD/PENDING/CLOSED are richer than the NDC service code list"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefId":{"type":"string"},"segmentRefIds":{"type":"array","items":{"type":"string"}},"attributes":{"anyOf":[{"title":"SeatAttributes","type":"object","required":["unitDesignator"],"properties":{"unitDesignator":{"type":"string","description":"Seat designator","example":"12A"},"row":{"type":"integer"},"column":{"type":"string","pattern":"^[A-Z]$"}}},{"title":"BaggageAttributes","type":"object","required":[],"properties":{"pieceCount":{"type":"integer"},"weightKg":{"type":"number"}}},{"title":"MealAttributes","type":"object","required":["mealCode"],"properties":{"mealCode":{"type":"string"},"description":{"type":"string"}}}],"title":"ServiceAttributes"}},"title":"OrderService"}},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc","name"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"name":{"type":"object","required":["givenName","surname"],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}},"title":"OrderPaxName"},"dateOfBirth":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"residenceCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"infantPaxRefId":{"type":"string","description":"paxId of the lap infant associated with this adult"},"loyaltyProgram":{"type":"object","required":["programCode","memberId"],"properties":{"programCode":{"type":"string"},"memberId":{"type":"string"}},"description":"Loyalty membership stored on the booking"},"identityDocs":{"type":"array","items":{"type":"object","required":["documentNumber","documentTypeCode"],"properties":{"documentNumber":{"type":"string"},"documentTypeCode":{"type":"string","enum":["PT","NI","KT","R"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress"},"issuingCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"expiryDate":{"type":"string","format":"date"},"givenName":{"type":"string"},"surname":{"type":"string"},"birthdate":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"}},"title":"OrderIdentityDoc"}},"contactRefId":{"type":"string"},"contact":{"type":"object","required":[],"properties":{"emailAddress":{"type":"string"},"phoneNumber":{"type":"string"}},"description":"The passenger's own stored contact, distinct from booking-level contacts"}},"title":"OrderPax"}},"contacts":{"type":"array","items":{"type":"object","required":["contactId","contactTypeCode"],"properties":{"contactId":{"type":"string"},"contactTypeCode":{"type":"string"},"contactTypeName":{"type":"string"},"emailAddress":{"type":"string"},"phoneNumbers":{"type":"array","items":{"type":"object","required":["number"],"properties":{"number":{"type":"string"},"type":{"type":"string"}}}},"postalAddress":{"type":"object","required":[],"properties":{"line1":{"type":"string"},"line2":{"type":"string"},"line3":{"type":"string"},"city":{"type":"string"},"stateProvince":{"type":"string"},"postalCode":{"type":"string"},"countryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"}}},"name":{"type":"object","required":[],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}}}},"title":"OrderContact"}},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}},"payments":{"type":"array","items":{"type":"object","required":["paymentId","amount","method"],"properties":{"paymentId":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"statusCode":{"type":"string","enum":["SUCCESSFUL","AUTHORIZED","REFUNDED","FAILED","PENDING"],"description":"Richer than the NDC wire (SUCCESSFUL/FAILED/PENDING only): AUTHORIZED and REFUNDED are collapsed there"},"processedAt":{"type":"string","format":"date-time"},"method":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["CreditCard"]},"cardBrandCode":{"type":"string"},"maskedCardId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["TokenizedCard"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Voucher"]},"voucherId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Cash"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["AgencyAccount"]}}},{"type":"object","required":["type","paymentTypeCode"],"properties":{"type":{"type":"string","enum":["Settlement"]},"paymentTypeCode":{"type":"string"}}},{"type":"object","required":["type","programCode"],"properties":{"type":{"type":"string","enum":["Points"]},"programCode":{"type":"string"},"pointsAmount":{"type":"number"}}}],"title":"OrderPaymentMethod"}},"title":"OrderPayment"}},"tickets":{"type":"array","items":{"type":"object","required":["paxRefId","segmentRefId","origin","destination","ticketNumber","couponNumber"],"properties":{"paxRefId":{"type":"string"},"segmentRefId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"ticketNumber":{"type":"string"},"infantTicketNumber":{"type":"string"},"couponNumber":{"type":"integer"},"couponStatusCode":{"type":"string"}},"title":"OrderTicket"}}},"title":"RetrieveOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order retrieved","value":{"data":{"order":{"orderId":"ABC123","recordLocator":"ABC123","ownerCode":"MX","statusCode":"CONFIRMED","creationDateTime":"2026-04-10T10:00:00Z","lastModifiedDateTime":"2026-04-10T10:15:00Z","totalPrice":{"total":{"amount":200,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}},{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}},{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"items":[{"itemId":"OOI-FL-UHxQQVgtUVVSVUxURXxTfExBWE1DT3wyMDI2MDUwMXxNWDIwMQ","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":150,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}}],"fees":[]},"paxRefIds":["ADT-1"],"segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"fare":{"fareBasisCode":"AEZ00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["ADT-1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]}}]},"services":[{"itemId":"OOI-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","serviceId":"SVC-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","code":"SEAT","name":"12A","category":"seat","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":15,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"attributes":{"unitDesignator":"12A","row":12,"column":"A"}},{"itemId":"OOI-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","serviceId":"SVC-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","code":"COB","name":"Carry-on Bag","category":"baggage","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":35,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"]}],"pax":[{"paxId":"ADT-1","ptc":"ADT","name":{"givenName":"Jane","surname":"Doe","title":"Ms","middleName":"Marie","suffix":"Jr"},"dateOfBirth":"1990-03-02","genderCode":"F","nationality":"US","residenceCountryCode":"US","infantPaxRefId":"INF-1","loyaltyProgram":{"programCode":"MX","memberId":"1000001606"},"identityDocs":[{"documentNumber":"P123456789","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-01-15","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"},{"documentNumber":"1234567","documentTypeCode":"R","issuingCountryCode":"US","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"}],"contactRefId":"CTC-UA"},{"paxId":"INF-1","ptc":"INF","name":{"givenName":"Baby","surname":"Doe"},"dateOfBirth":"2025-08-20","genderCode":"M","nationality":"US","identityDocs":[{"documentNumber":"P987654321","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-08-20","givenName":"Baby","surname":"Doe","birthdate":"2025-08-20","genderCode":"M"}],"contactRefId":"CTC-UA"}],"contacts":[{"contactId":"CTC-UA","contactTypeCode":"P","contactTypeName":"Primary","emailAddress":"jane.doe@example.com","phoneNumbers":[{"number":"+18015550100","type":"Home"},{"number":"+18015550199","type":"Work"}],"postalAddress":{"line1":"123 Main St","line2":"Apt 4","city":"Salt Lake City","stateProvince":"UT","postalCode":"84101","countryCode":"US"},"name":{"givenName":"Jane","middleName":"Marie","surname":"Doe","title":"Ms","suffix":"Jr"}}],"journeys":[{"journeyId":"JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","marketingCarrier":"MX","marketingFlightNumber":"201","operatingCarrier":"MX","operatingFlightNumber":"201","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","duration":"PT4H","legs":[{"legId":"LEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","aircraftTypeCode":"223","carrierAircraftTypeCode":"223-137"}]}]}],"payments":[{"paymentId":"PAY-MQ","amount":{"amount":200,"currency":"USD"},"statusCode":"SUCCESSFUL","processedAt":"2026-04-10T10:05:00Z","method":{"type":"CreditCard","cardBrandCode":"VI","maskedCardId":"x1111"}}],"tickets":[{"paxRefId":"ADT-1","segmentRefId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","ticketNumber":"1234567890123","couponNumber":1,"couponStatusCode":"U"}]},"error":null}}}}}},"400":{"description":"Missing required field (ERR-1003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1003":{"summary":"Missing required field","value":{"data":null,"error":{"code":"ERR-1003","title":"Missing required field","description":"The request is missing one or more required fields."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Order cancelled (ERR-4008); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-4008":{"summary":"Order cancelled","value":{"data":null,"error":{"code":"ERR-4008","title":"Order cancelled","description":"The order has been fully cancelled and no longer contains any order items."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Service unavailable (ERR-9000); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9000":{"summary":"Service unavailable","value":{"data":null,"error":{"code":"ERR-9000","title":"Service unavailable","description":"The request could not be processed because a required service is unavailable."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Retrieve order by record locator","tags":["JSON"]}},"/json/{version}/orders/{orderId}/cancel":{"post":{"description":"Cancels the whole order and issues a refund (voucher/card/credit-shell, routed to the original card when the DOT 24-hour rule or a business/government fare applies). This route requires `book` access.","operationId":"cancelOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}},{"name":"ownerCode","required":false,"in":"query","description":"Airline owner code. Defaults to MX when omitted.","schema":{"type":"string"}}],"responses":{"200":{"description":"Order cancelled","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["order","services","pax","journeys","payments","tickets"],"properties":{"order":{"type":"object","required":["orderId","ownerCode","creationDateTime","totalPrice","items"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"creationDateTime":{"type":"string","format":"date-time"},"lastModifiedDateTime":{"type":"string","format":"date-time"},"paymentTimeLimit":{"type":"string","format":"date-time","description":"Deadline to pay a held order"},"balanceDue":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Outstanding amount to collect"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["itemId","totalPrice","paxRefIds","segmentRefIds","fare"],"properties":{"itemId":{"type":"string"},"statusCode":{"type":"string","enum":["CONFIRMED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"Richer than the NDC wire, which only emits OPENED/CLOSED at order level and signals holds via PaymentTimeLimitDateTime"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefIds":{"type":"array","items":{"type":"string"}},"segmentRefIds":{"type":"array","items":{"type":"string"}},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"}},"title":"OrderFlightItem"}}},"title":"OrderHeader"},"services":{"type":"array","items":{"type":"object","required":["itemId","serviceId","code","name","category","ownerCode","totalPrice","paxRefId"],"properties":{"itemId":{"type":"string"},"serviceId":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["seat","baggage","meal","priority","lounge","other"]},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"statusCode":{"type":"string","enum":["CONFIRMED","WAITLISTED","ONHOLD","CANCELLED","CLOSED","PENDING"],"description":"WAITLISTED mirrors the referenced segment status; ONHOLD/PENDING/CLOSED are richer than the NDC service code list"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"paxRefId":{"type":"string"},"segmentRefIds":{"type":"array","items":{"type":"string"}},"attributes":{"anyOf":[{"title":"SeatAttributes","type":"object","required":["unitDesignator"],"properties":{"unitDesignator":{"type":"string","description":"Seat designator","example":"12A"},"row":{"type":"integer"},"column":{"type":"string","pattern":"^[A-Z]$"}}},{"title":"BaggageAttributes","type":"object","required":[],"properties":{"pieceCount":{"type":"integer"},"weightKg":{"type":"number"}}},{"title":"MealAttributes","type":"object","required":["mealCode"],"properties":{"mealCode":{"type":"string"},"description":{"type":"string"}}}],"title":"ServiceAttributes"}},"title":"OrderService"}},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc","name"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"name":{"type":"object","required":["givenName","surname"],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}},"title":"OrderPaxName"},"dateOfBirth":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"residenceCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"infantPaxRefId":{"type":"string","description":"paxId of the lap infant associated with this adult"},"loyaltyProgram":{"type":"object","required":["programCode","memberId"],"properties":{"programCode":{"type":"string"},"memberId":{"type":"string"}},"description":"Loyalty membership stored on the booking"},"identityDocs":{"type":"array","items":{"type":"object","required":["documentNumber","documentTypeCode"],"properties":{"documentNumber":{"type":"string"},"documentTypeCode":{"type":"string","enum":["PT","NI","KT","R"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress"},"issuingCountryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"},"expiryDate":{"type":"string","format":"date"},"givenName":{"type":"string"},"surname":{"type":"string"},"birthdate":{"type":"string","format":"date"},"genderCode":{"type":"string","enum":["M","F"],"description":"Sex as printed on the travel document (ICAO 9303)"}},"title":"OrderIdentityDoc"}},"contactRefId":{"type":"string"},"contact":{"type":"object","required":[],"properties":{"emailAddress":{"type":"string"},"phoneNumber":{"type":"string"}},"description":"The passenger's own stored contact, distinct from booking-level contacts"}},"title":"OrderPax"}},"contacts":{"type":"array","items":{"type":"object","required":["contactId","contactTypeCode"],"properties":{"contactId":{"type":"string"},"contactTypeCode":{"type":"string"},"contactTypeName":{"type":"string"},"emailAddress":{"type":"string"},"phoneNumbers":{"type":"array","items":{"type":"object","required":["number"],"properties":{"number":{"type":"string"},"type":{"type":"string"}}}},"postalAddress":{"type":"object","required":[],"properties":{"line1":{"type":"string"},"line2":{"type":"string"},"line3":{"type":"string"},"city":{"type":"string"},"stateProvince":{"type":"string"},"postalCode":{"type":"string"},"countryCode":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code"}}},"name":{"type":"object","required":[],"properties":{"title":{"type":"string"},"givenName":{"type":"string"},"middleName":{"type":"string"},"surname":{"type":"string"},"suffix":{"type":"string"}}}},"title":"OrderContact"}},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}},"payments":{"type":"array","items":{"type":"object","required":["paymentId","amount","method"],"properties":{"paymentId":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"statusCode":{"type":"string","enum":["SUCCESSFUL","AUTHORIZED","REFUNDED","FAILED","PENDING"],"description":"Richer than the NDC wire (SUCCESSFUL/FAILED/PENDING only): AUTHORIZED and REFUNDED are collapsed there"},"processedAt":{"type":"string","format":"date-time"},"method":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["CreditCard"]},"cardBrandCode":{"type":"string"},"maskedCardId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["TokenizedCard"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Voucher"]},"voucherId":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["Cash"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["AgencyAccount"]}}},{"type":"object","required":["type","paymentTypeCode"],"properties":{"type":{"type":"string","enum":["Settlement"]},"paymentTypeCode":{"type":"string"}}},{"type":"object","required":["type","programCode"],"properties":{"type":{"type":"string","enum":["Points"]},"programCode":{"type":"string"},"pointsAmount":{"type":"number"}}}],"title":"OrderPaymentMethod"}},"title":"OrderPayment"}},"tickets":{"type":"array","items":{"type":"object","required":["paxRefId","segmentRefId","origin","destination","ticketNumber","couponNumber"],"properties":{"paxRefId":{"type":"string"},"segmentRefId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"ticketNumber":{"type":"string"},"infantTicketNumber":{"type":"string"},"couponNumber":{"type":"integer"},"couponStatusCode":{"type":"string"}},"title":"OrderTicket"}}},"title":"RetrieveOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order cancelled","value":{"data":{"order":{"orderId":"ABC123","recordLocator":"ABC123","ownerCode":"MX","statusCode":"CONFIRMED","creationDateTime":"2026-04-10T10:00:00Z","lastModifiedDateTime":"2026-04-10T10:15:00Z","totalPrice":{"total":{"amount":200,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}},{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}},{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"items":[{"itemId":"OOI-FL-UHxQQVgtUVVSVUxURXxTfExBWE1DT3wyMDI2MDUwMXxNWDIwMQ","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":150,"currency":"USD"},"base":{"amount":130,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":20,"currency":"USD"}}],"fees":[]},"paxRefIds":["ADT-1"],"segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"fare":{"fareBasisCode":"AEZ00","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","priceClassRefId":"EZU","paxRefIds":["ADT-1"],"bundleName":"Nice","description":"","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Basic seat","included":true,"status":"included"},{"label":"Changes","included":true,"status":"included"},{"label":"Standard boarding","included":true,"status":"included"},{"label":"Inflight WiFi","included":false,"status":"upgrade"},{"label":"Inflight snacks and drinks","included":false,"status":"upgrade"},{"label":"Carry-on bag","included":true,"status":"included","quantity":1},{"label":"Checked bag","included":false,"status":"upgrade"}],"baggageDisclosures":[{"code":"PERSONAL_ITEM","description":"17 in H x 13 in W x 8 in D","ruleTypeCode":"D"},{"code":"CARRY_ON","description":"22 in H x 14 in W x 9 in D","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":35,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","heightMeasure":22,"lengthMeasure":9,"widthMeasure":14}},{"code":"CHECKED_BAG","description":"62 linear inches or under and 50 lbs max","ruleTypeCode":"D","weightAllowance":{"maximumWeightMeasure":50,"weightUnitOfMeasurement":"LBR"},"dimensionAllowance":{"lengthUnitOfMeasurement":"INH","linearMeasure":62}}],"penalties":[{"code":"LEISURE_CHANGE","description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"changeTypeCode":"Flight","description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1,"priceDifferenceApplies":true},{"allowedModificationInd":false,"changeTypeCode":"Flight","description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Change"},{"code":"LEISURE_CANCEL","creditIncludesAddOns":true,"creditMethod":"flightCredit","creditValidityMonths":12,"description":"","requiresRewardsAccount":true,"restrictions":[{"allowedModificationInd":true,"creditPercent":100,"description":"","journeyStageCode":"Prior To Departure","minHoursBeforeDeparture":1},{"allowedModificationInd":false,"creditPercent":0,"description":"","journeyStageCode":"No Show","maxHoursBeforeDeparture":1}],"typeCode":"Cancellation"}],"seatProfiles":[{"code":"BASIC_SEAT","description":"Standard seat with 30 in of legroom"}]}}]},"services":[{"itemId":"OOI-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","serviceId":"SVC-ST-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8U0VBVHwxMkE","code":"SEAT","name":"12A","category":"seat","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":15,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[],"fees":[{"type":"ServiceFee","code":"SEAT","amount":{"amount":15,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"attributes":{"unitDesignator":"12A","row":12,"column":"A"}},{"itemId":"OOI-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","serviceId":"SVC-SR-U3xMQVhNQ098MjAyNjA1MDF8TVgyMDF8UEFYLVFVUlVMVEV8Q09C","code":"COB","name":"Carry-on Bag","category":"baggage","ownerCode":"MX","statusCode":"CONFIRMED","totalPrice":{"total":{"amount":35,"currency":"USD"},"base":{"amount":0,"currency":"USD"},"taxes":[{"code":"US","amount":{"amount":5,"currency":"USD"}}],"fees":[{"type":"ServiceFee","code":"COB","amount":{"amount":30,"currency":"USD"}}]},"paxRefId":"ADT-1","segmentRefIds":["SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"]}],"pax":[{"paxId":"ADT-1","ptc":"ADT","name":{"givenName":"Jane","surname":"Doe","title":"Ms","middleName":"Marie","suffix":"Jr"},"dateOfBirth":"1990-03-02","genderCode":"F","nationality":"US","residenceCountryCode":"US","infantPaxRefId":"INF-1","loyaltyProgram":{"programCode":"MX","memberId":"1000001606"},"identityDocs":[{"documentNumber":"P123456789","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-01-15","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"},{"documentNumber":"1234567","documentTypeCode":"R","issuingCountryCode":"US","givenName":"Jane","surname":"Doe","birthdate":"1990-03-02","genderCode":"F"}],"contactRefId":"CTC-UA"},{"paxId":"INF-1","ptc":"INF","name":{"givenName":"Baby","surname":"Doe"},"dateOfBirth":"2025-08-20","genderCode":"M","nationality":"US","identityDocs":[{"documentNumber":"P987654321","documentTypeCode":"PT","issuingCountryCode":"US","nationality":"US","expiryDate":"2030-08-20","givenName":"Baby","surname":"Doe","birthdate":"2025-08-20","genderCode":"M"}],"contactRefId":"CTC-UA"}],"contacts":[{"contactId":"CTC-UA","contactTypeCode":"P","contactTypeName":"Primary","emailAddress":"jane.doe@example.com","phoneNumbers":[{"number":"+18015550100","type":"Home"},{"number":"+18015550199","type":"Work"}],"postalAddress":{"line1":"123 Main St","line2":"Apt 4","city":"Salt Lake City","stateProvince":"UT","postalCode":"84101","countryCode":"US"},"name":{"givenName":"Jane","middleName":"Marie","surname":"Doe","title":"Ms","suffix":"Jr"}}],"journeys":[{"journeyId":"JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","marketingCarrier":"MX","marketingFlightNumber":"201","operatingCarrier":"MX","operatingFlightNumber":"201","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","duration":"PT4H","legs":[{"legId":"LEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","aircraftTypeCode":"223","carrierAircraftTypeCode":"223-137"}]}]}],"payments":[{"paymentId":"PAY-MQ","amount":{"amount":200,"currency":"USD"},"statusCode":"SUCCESSFUL","processedAt":"2026-04-10T10:05:00Z","method":{"type":"CreditCard","cardBrandCode":"VI","maskedCardId":"x1111"}}],"tickets":[{"paxRefId":"ADT-1","segmentRefId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","ticketNumber":"1234567890123","couponNumber":1,"couponStatusCode":"U"}]},"error":null}}}}}},"400":{"description":"Order modification rejected (ERR-4002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4002":{"summary":"Order modification rejected","value":{"data":null,"error":{"code":"ERR-4002","title":"Order modification rejected","description":"The requested order change could not be applied."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"501":{"description":"Refund method not supported (ERR-6003); Loyalty points refund not supported (ERR-6004)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-6003":{"summary":"Refund method not supported","value":{"data":null,"error":{"code":"ERR-6003","title":"Refund method not supported","description":"The refund cannot be completed automatically because the payment method cannot be reversed by this service. Contact the carrier."}}},"ERR-6004":{"summary":"Loyalty points refund not supported","value":{"data":null,"error":{"code":"ERR-6004","title":"Loyalty points refund not supported","description":"The refund cannot be completed automatically because a loyalty points refund is owed. Contact the carrier."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Cancel an existing order","tags":["JSON"]}},"/json/{version}/orders/{orderId}/reshop":{"post":{"description":"Shops replacement flights or quotes cancellation/name-change impacts for an existing order. This route requires `book` access.","operationId":"reshopOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"instruction":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ReshopItinerary"},"originDestinations":{"minItems":1,"type":"array","items":{"type":"object","properties":{"origin":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"destination":{"description":"3-letter IATA airport code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"},"departureDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD; must not be before today (UTC-12)"}},"required":["origin","destination","departureDate"],"additionalProperties":false}},"deleteOrderItemRefIds":{"description":"Flight order item IDs being replaced","type":"array","items":{"type":"string","minLength":1}},"cabinTypeCode":{"type":"string","description":"IATA cabin type code: Y, C, W, or F"}},"required":["type","originDestinations"],"description":"Shop replacement flights for the order"},{"type":"object","properties":{"type":{"type":"string","const":"CancelOrder"}},"required":["type"],"description":"Quote whole-order cancellation: penalty, refund, and a cancellation offer"},{"type":"object","properties":{"type":{"type":"string","const":"DeleteOrderItems"},"orderItemRefIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Order item IDs from order retrieve"}},"required":["type","orderItemRefIds"],"description":"Remove order items (e.g. ancillaries) from the order"},{"type":"object","properties":{"type":{"type":"string","const":"NameChange"},"paxRefId":{"type":"string","minLength":1,"description":"paxId from order retrieve"},"surname":{"type":"string","minLength":1},"givenName":{"type":"string","minLength":1}},"required":["type","paxRefId","surname"],"description":"Quote the name-change fee"}]},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"paxId":{"type":"string","minLength":1,"description":"Order passenger ID (paxId from order retrieve)"},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["paxId","type"]}}},"required":["instruction","passengers"]},"examples":{"cancelOrder":{"value":{"instruction":{"type":"CancelOrder"},"passengers":[{"paxId":"PX1","type":"ADT"}]}},"shopReplacementFlights":{"value":{"instruction":{"type":"ReshopItinerary","originDestinations":[{"origin":"SLC","destination":"CHS","departureDate":"2030-09-20"}],"deleteOrderItemRefIds":["OOI-FL-test"]},"passengers":[{"paxId":"PX1","type":"ADT"}]}},"nameChange":{"value":{"instruction":{"type":"NameChange","paxRefId":"PX1","surname":"Smith"},"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Order reshop result","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["orderId","pax","offers"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"}},"title":"Pax"}},"offers":{"type":"array","items":{"type":"object","required":["offerId","ownerCode","totalPrice","offerItems"],"properties":{"offerId":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"expiresAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"offerItems":{"type":"array","items":{"type":"object","required":["offerItemId","totalPrice","flight","fare","passengerPrices"],"properties":{"offerItemId":{"type":"string"},"legIndex":{"type":"integer","description":"Index of the request originDestination this item covers"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"flight":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","stops","segments","flightNumbers"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}},"flightNumbers":{"type":"array","items":{"type":"string"}}},"title":"Flight"},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"},"passengerPrices":{"type":"array","items":{"type":"object","required":["ptc","count","paxRefIds","price"],"properties":{"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"count":{"type":"integer"},"paxRefIds":{"type":"array","items":{"type":"string"},"description":"paxIds this price applies to"},"price":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"}},"title":"PassengerPrice"}},"seatsRemaining":{"type":"integer","maximum":9,"description":"Seats left in this fare on this leg, capped at 9. Absent when upstream availability carries no count"}},"title":"OfferItemSummary"}}},"title":"OfferSummary"}},"cancellation":{"type":"object","required":["offerId","penaltyAmount","refundAmount","isRefundable"],"properties":{"offerId":{"type":"string","description":"Cancellation offer ID; accept via change-order AcceptCancelledOffer"},"penaltyAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"refundAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"refundPoints":{"type":"number","description":"Loyalty points refunded to the original points account; only on points bookings"},"isRefundable":{"type":"boolean"}}},"nameChange":{"type":"object","required":["fee"],"properties":{"fee":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Quoted name-change fee; commit via change-order UpdatePassenger with the new name plus payment covering this fee"}}}},"title":"ReshopOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order reshop result","value":{"data":{"orderId":"ABC123","recordLocator":"ABC123","pax":[{"paxId":"PX1","ptc":"ADT"}],"offers":[],"cancellation":{"offerId":"OF-cancel-test","penaltyAmount":{"amount":50,"currency":"USD"},"refundAmount":{"amount":150,"currency":"USD"},"isRefundable":true}},"error":null}}}}}},"400":{"description":"Order modification rejected (ERR-4002); Flight change not permitted (ERR-4003); Partial cancellation not permitted (ERR-4004)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4002":{"summary":"Order modification rejected","value":{"data":null,"error":{"code":"ERR-4002","title":"Order modification rejected","description":"The requested order change could not be applied."}}},"ERR-4003":{"summary":"Flight change not permitted","value":{"data":null,"error":{"code":"ERR-4003","title":"Flight change not permitted","description":"The fare rules published with this journey do not permit a flight change."}}},"ERR-4004":{"summary":"Partial cancellation not permitted","value":{"data":null,"error":{"code":"ERR-4004","title":"Partial cancellation not permitted","description":"The fare rules published with this journey forbid a partial cancellation."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Reshop an existing order","tags":["JSON"]}},"/json/{version}/orders/{orderId}/quote":{"post":{"description":"Prices a selected reshop offer and returns the change amounts plus the priced offer. Requires `book` access.","operationId":"quoteOrder","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerId":{"type":"string","minLength":1,"description":"Reshop offer ID to price"},"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Reshop offer item IDs; must be unique"},"passengers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"paxId":{"type":"string","minLength":1,"description":"Order passenger ID (paxId from order retrieve)"},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["paxId","type"]}}},"required":["offerId","offerItemIds","passengers"]},"examples":{"example":{"value":{"offerId":"OF-test","offerItemIds":["OFI-test-0"],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Order quote result","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["orderId","pax","priceDifferential","itemChangeQuotes","offer","journeys"],"properties":{"orderId":{"type":"string"},"recordLocator":{"type":"string"},"pax":{"type":"array","items":{"type":"object","required":["paxId","ptc"],"properties":{"paxId":{"type":"string"},"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"}},"title":"Pax"}},"priceDifferential":{"type":"object","required":["offerItemId","oldTotal","newTotal","balanceDelta","differentialTypeCode"],"properties":{"offerItemId":{"type":"string"},"oldTotal":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"newTotal":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"balanceDelta":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Negative amount = refund due to the customer; positive = additional collection"},"differentialTypeCode":{"type":"string","enum":["AddCol","Refund","EvenExchange"],"description":"AddCol = additional collection due"}},"title":"ReshopItemChangeQuote"},"itemChangeQuotes":{"type":"array","items":{"type":"object","required":["offerItemId","oldTotal","newTotal","balanceDelta","differentialTypeCode"],"properties":{"offerItemId":{"type":"string"},"oldTotal":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"newTotal":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"balanceDelta":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"description":"Negative amount = refund due to the customer; positive = additional collection"},"differentialTypeCode":{"type":"string","enum":["AddCol","Refund","EvenExchange"],"description":"AddCol = additional collection due"}},"title":"ReshopItemChangeQuote"}},"offer":{"type":"object","required":["offerId","ownerCode","totalPrice","items"],"properties":{"offerId":{"type":"string"},"ownerCode":{"type":"string","description":"IATA airline designator","example":"MX"},"expiresAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"items":{"type":"array","items":{"type":"object","required":["offerItemId","totalPrice","journeyRefIds","fare","passengerPrices"],"properties":{"offerItemId":{"type":"string"},"totalPrice":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"},"journeyRefIds":{"type":"array","items":{"type":"string"},"description":"journeyIds in the top-level journeys array covered by this item"},"fare":{"type":"object","required":[],"properties":{"fareBasisCode":{"type":"string"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"priceClassRefId":{"type":"string"},"paxRefIds":{"type":"array","items":{"type":"string"}},"bundleName":{"type":"string","description":"Bundle display name (e.g. No Flex, Nice, Nicer, Nicest)"},"description":{"type":"string"},"benefits":{"type":"array","items":{"type":"object","required":["label","included"],"properties":{"label":{"type":"string"},"included":{"type":"boolean"},"status":{"type":"string"},"quantity":{"type":"integer"}},"title":"FareBenefit"}},"baggageDisclosures":{"type":"array","items":{"type":"object","required":["code","description","ruleTypeCode"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"ruleTypeCode":{"type":"string"},"weightAllowance":{"type":"object","required":["maximumWeightMeasure","weightUnitOfMeasurement"],"properties":{"maximumWeightMeasure":{"type":"number"},"weightUnitOfMeasurement":{"type":"string","enum":["KGM","LBR"]}}},"dimensionAllowance":{"type":"object","required":["lengthUnitOfMeasurement"],"properties":{"lengthUnitOfMeasurement":{"type":"string","enum":["CMT","FOT","INH","MTR"]},"heightMeasure":{"type":"number"},"lengthMeasure":{"type":"number"},"linearMeasure":{"type":"number"},"widthMeasure":{"type":"number"}}}},"title":"FareBaggageDisclosure"}},"penalties":{"type":"array","items":{"type":"object","required":["code","description","typeCode"],"properties":{"code":{"type":"string"},"creditIncludesAddOns":{"type":"boolean"},"creditMethod":{"type":"string"},"creditValidityMonths":{"type":"integer"},"description":{"type":"string"},"fixedAmount":{"type":"number"},"fullReservationOnly":{"type":"boolean"},"requiresRewardsAccount":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"object","required":[],"properties":{"allowedModificationInd":{"type":"boolean"},"amount":{"type":"number"},"changeTypeCode":{"type":"string"},"creditPercent":{"type":"number"},"description":{"type":"string"},"journeyStageCode":{"type":"string"},"maxDaysBeforeDeparture":{"type":"number"},"maxHoursBeforeDeparture":{"type":"number"},"minDaysBeforeDeparture":{"type":"number"},"minHoursBeforeDeparture":{"type":"number"},"priceDifferenceApplies":{"type":"boolean"}},"title":"FarePenaltyRestriction"}},"typeCode":{"type":"string"}},"title":"FarePenalty"}},"seatProfiles":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"characteristicCodes":{"type":"array","items":{"type":"string"}}},"title":"FareSeatProfile"}}},"title":"Fare"},"passengerPrices":{"type":"array","items":{"type":"object","required":["ptc","count","paxRefIds","price"],"properties":{"ptc":{"type":"string","enum":["ADT","CHD","INF"],"description":"Passenger type code"},"count":{"type":"integer"},"paxRefIds":{"type":"array","items":{"type":"string"},"description":"paxIds this price applies to"},"price":{"type":"object","required":["total","base","taxes","fees"],"properties":{"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"base":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"},"taxes":{"type":"array","items":{"type":"object","required":["amount"],"properties":{"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"TaxBreakdown"}},"fees":{"type":"array","items":{"type":"object","required":["type","amount"],"properties":{"type":{"type":"string","enum":["Tax","Surcharge","ServiceFee","PenaltyFee","SeatFee","BaggageFee","PaymentFee"]},"code":{"type":"string"},"description":{"type":"string"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"FeeBreakdown"}},"points":{"type":"number","description":"Loyalty points owed in addition to the cash total; only on points fares"}},"title":"Price"}},"title":"PassengerPrice"}}},"title":"PricedOfferItem"}}},"title":"PricedOffer"},"journeys":{"type":"array","items":{"type":"object","required":["journeyId","origin","destination","departureDateTime","arrivalDateTime","duration","segments"],"properties":{"journeyId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"stops":{"type":"integer"},"segments":{"type":"array","items":{"type":"object","required":["marketingCarrier","marketingFlightNumber","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"segmentId":{"type":"string"},"marketingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"marketingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"operatingCarrier":{"type":"string","description":"IATA airline designator","example":"MX"},"operatingFlightNumber":{"type":"string","description":"Flight number without carrier prefix","example":"101"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"cabinTypeCode":{"type":"string","enum":["Y","W","C","F"],"description":"IATA cabin type code"},"cabinName":{"type":"string"},"rbd":{"type":"string","description":"Booking class (RBD)"},"duration":{"type":"string","description":"ISO 8601 duration","example":"PT4H15M"},"statusCode":{"type":"string","enum":["WAITLISTED"],"description":"Present only when the segment is waitlisted"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"},"legs":{"type":"array","items":{"type":"object","required":["legId","origin","destination","departureDateTime","arrivalDateTime"],"properties":{"legId":{"type":"string"},"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"departureDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"arrivalDateTime":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"aircraftTypeCode":{"type":"string"},"carrierAircraftTypeCode":{"type":"string"},"govtApprovalDisclosure":{"type":"string","description":"Disclosure wording for a route awaiting government approval; absent when unaffected"}},"title":"Leg"}}},"title":"Segment"}}},"title":"Journey"}}},"title":"QuoteOrderData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Order quote result","value":{"data":{"orderId":"ABC123","recordLocator":"ABC123","pax":[{"paxId":"PX1","ptc":"ADT"}],"priceDifferential":{"offerItemId":"OFI-test-0","oldTotal":{"amount":200,"currency":"USD"},"newTotal":{"amount":180,"currency":"USD"},"balanceDelta":{"amount":-20,"currency":"USD"},"differentialTypeCode":"Refund"},"itemChangeQuotes":[{"offerItemId":"OFI-test-0","oldTotal":{"amount":200,"currency":"USD"},"newTotal":{"amount":180,"currency":"USD"},"balanceDelta":{"amount":-20,"currency":"USD"},"differentialTypeCode":"Refund"}],"offer":{"offerId":"OF-test","ownerCode":"MX","description":"","totalPrice":{"total":{"amount":180,"currency":"USD"},"base":{"amount":150,"currency":"USD"},"taxes":[],"fees":[]},"items":[{"offerItemId":"OFI-test-0","totalPrice":{"total":{"amount":180,"currency":"USD"},"base":{"amount":150,"currency":"USD"},"taxes":[],"fees":[]},"journeyRefIds":["JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx"],"fare":{"paxRefIds":["PX1"]},"passengerPrices":[]}]},"journeys":[{"journeyId":"JOU-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","duration":"PT4H","stops":0,"segments":[{"segmentId":"SEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","marketingCarrier":"MX","marketingFlightNumber":"201","operatingCarrier":"MX","operatingFlightNumber":"201","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","cabinTypeCode":"Y","cabinName":"Economy","rbd":"Y","duration":"PT4H","legs":[{"legId":"LEG-TEFYTUNPfDIwMjYwNTAxfE1YMjAx","origin":"LAX","destination":"MCO","departureDateTime":"2026-05-01T10:00:00Z","arrivalDateTime":"2026-05-01T14:00:00Z","aircraftTypeCode":"223","carrierAircraftTypeCode":"223-137"}]}]}]},"error":null}}}}}},"400":{"description":"Order modification rejected (ERR-4002); Flight change not permitted (ERR-4003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4002":{"summary":"Order modification rejected","value":{"data":null,"error":{"code":"ERR-4002","title":"Order modification rejected","description":"The requested order change could not be applied."}}},"ERR-4003":{"summary":"Flight change not permitted","value":{"data":null,"error":{"code":"ERR-4003","title":"Flight change not permitted","description":"The fare rules published with this journey do not permit a flight change."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Offer not found (ERR-3000); Offer expired (ERR-3001); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-3001":{"summary":"Offer expired","value":{"data":null,"error":{"code":"ERR-3001","title":"Offer expired","description":"The referenced offer has expired and can no longer be priced or ordered."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Quote a selected reshop offer","tags":["JSON"]}},"/json/{version}/offers/{offerId}/seats":{"post":{"operationId":"getOfferSeatAvailability","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"offerId","required":true,"in":"path","description":"Offer ID returned by REST offer search","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Flight offer item IDs from the offers response"},"passengers":{"description":"Passengers to price for; omit to reuse the passengers the offer was shopped with","type":"array","items":{"type":"object","properties":{"paxId":{"description":"Passenger ID; must not contain \"|\". Defaults to {PTC}-{ordinal}","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]}}},"required":["offerItemIds"]},"examples":{"example":{"value":{"offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Seat availability","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["legSeatMaps"],"properties":{"legSeatMaps":{"type":"array","items":{"type":"object","required":["departureStation","arrivalStation","decks"],"properties":{"departureStation":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"arrivalStation":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"equipmentType":{"type":"string"},"segmentRefId":{"type":"string"},"decks":{"type":"array","items":{"type":"object","required":["number","compartments"],"properties":{"number":{"type":"integer"},"compartments":{"type":"array","items":{"type":"object","required":["units"],"properties":{"designator":{"type":"string"},"units":{"type":"array","items":{"type":"object","required":["designator","assignable","availability"],"properties":{"designator":{"type":"string"},"assignable":{"type":"boolean"},"availability":{"type":"string","enum":["Unknown","Open","Reserved","Blocked","Held","Broken","Missing","Restricted","CheckedIn","FleetBlocked","Inoperative","Premium","NoSeat","Other"]},"group":{"type":"string"},"travelClassCode":{"type":"string"},"properties":{"type":"array","items":{"type":"string"},"description":"IATA PADIS 9825 seat characteristic codes, e.g. W window, A aisle, E exit row, I infant-suitable, L leg space, H handicapped facilities (same vocabulary as NDC)"},"pitchInches":{"type":"number","description":"Seat pitch in inches"},"tier":{"type":"string","description":"Cabin tier display name: First, Extra Legroom, or Standard"},"passengerPricing":{"type":"array","items":{"type":"object","required":["amount","currency"],"properties":{"offerItemId":{"type":"string","description":"Ancillary offer item ID; pass to change-order AcceptOffer to purchase"},"paxRefId":{"type":"string"},"passengerType":{"type":"string","enum":["ADT","CHD","INF"]},"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"},"taxAmount":{"type":"number"}},"title":"SeatPassengerPrice"},"description":"Per-passenger prices; a passenger the seat may not hold (lap infant on a non-I seat, child or lap infant in an E exit row) gets no row"}},"title":"SeatUnit"}}}}}}}}}}}},"title":"SeatMapResult"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Seat availability","value":{"data":{"legSeatMaps":[{"departureStation":"SLC","arrivalStation":"CHS","equipmentType":"223","decks":[{"number":1,"compartments":[{"designator":"Y","units":[{"designator":"12A","assignable":true,"availability":"Open","properties":["WINDOW"],"passengerPricing":[{"paxRefId":"PX1","passengerType":"ADT","amount":15,"currency":"USD","taxAmount":1.13,"offerItemId":"OFI-ST-U3xTTENDSFN8MjAzMDA5MTV8TVgxMDF8UFgxfDEyQQ"}]}]}]}],"segmentRefId":"SEG-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx"}]},"error":null}}}}}},"400":{"description":"Offer item not found (ERR-3002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3002":{"summary":"Offer item not found","value":{"data":null,"error":{"code":"ERR-3002","title":"Offer item not found","description":"One or more referenced offer items could not be found on the offer."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Offer expired (ERR-3001); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-3001":{"summary":"Offer expired","value":{"data":null,"error":{"code":"ERR-3001","title":"Offer expired","description":"The referenced offer has expired and can no longer be priced or ordered."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Get seat availability for an offer","tags":["JSON"]}},"/json/{version}/offers/{offerId}/services":{"post":{"operationId":"getOfferServiceList","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"offerId","required":true,"in":"path","description":"Offer ID returned by REST offer search","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerItemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1},"description":"Flight offer item IDs from the offers response"},"passengers":{"description":"Passengers to price for; omit to reuse the passengers the offer was shopped with","type":"array","items":{"type":"object","properties":{"paxId":{"description":"Passenger ID; must not contain \"|\". Defaults to {PTC}-{ordinal}","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]}}},"required":["offerItemIds"]},"examples":{"example":{"value":{"offerItemIds":["OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Service list","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["services"],"properties":{"services":{"type":"array","items":{"type":"object","required":["ssrCode","name","type","segmentAvailability"],"properties":{"ssrCode":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["Baggage","Seat","Meal","Priority","Lounge","SpecialAssistance","Pet","Connectivity","Other"]},"feeCode":{"type":"string"},"segmentAvailability":{"type":"array","items":{"type":"object","required":["scope","passengerPricing"],"properties":{"scope":{"type":"string","enum":["segment","journey","leg"],"description":"What this availability row applies to; segmentRefId or journeyRefId is set accordingly"},"segmentRefId":{"type":"string"},"journeyRefId":{"type":"string"},"passengerPricing":{"type":"array","items":{"type":"object","required":["amount","currency"],"properties":{"offerItemId":{"type":"string","description":"Ancillary offer item ID; pass to change-order AcceptOffer to purchase"},"paxRefId":{"type":"string"},"passengerType":{"type":"string","enum":["ADT","CHD","INF"]},"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"},"taxAmount":{"type":"number"}},"title":"ServicePassengerPrice"}}}}}}}}},"title":"ServiceListResult"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Service list","value":{"data":{"services":[{"ssrCode":"BAG1","name":"First checked bag","type":"Baggage","segmentAvailability":[{"scope":"journey","passengerPricing":[{"paxRefId":"PX1","passengerType":"ADT","amount":35,"currency":"USD","offerItemId":"OFI-SR-SnwxfFNMQ0NIU3wyMDMwMDkxNXxNWDEwMXxCYWdnYWdlfFBYMXxCQUcx"}],"journeyRefId":"JOU-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx"}]}]},"error":null}}}}}},"400":{"description":"Offer item not found (ERR-3002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3002":{"summary":"Offer item not found","value":{"data":null,"error":{"code":"ERR-3002","title":"Offer item not found","description":"One or more referenced offer items could not be found on the offer."}}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Offer not found (ERR-3000); Offer expired (ERR-3001); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-3000":{"summary":"Offer not found","value":{"data":null,"error":{"code":"ERR-3000","title":"Offer not found","description":"The referenced offer could not be found."}}},"ERR-3001":{"summary":"Offer expired","value":{"data":null,"error":{"code":"ERR-3001","title":"Offer expired","description":"The referenced offer has expired and can no longer be priced or ordered."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Get service list for an offer","tags":["JSON"]}},"/json/{version}/orders/{orderId}/seats":{"post":{"operationId":"getOrderSeatAvailability","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"default":{},"type":"object","properties":{"orderItemIds":{"description":"Flight order item IDs from order retrieve","type":"array","items":{"type":"string","minLength":1}},"passengers":{"type":"array","items":{"type":"object","properties":{"paxId":{"description":"paxId from order retrieve","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]}}}},"examples":{"example":{"value":{"orderItemIds":["OOI-FL-test"],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Seat availability","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["legSeatMaps"],"properties":{"legSeatMaps":{"type":"array","items":{"type":"object","required":["departureStation","arrivalStation","decks"],"properties":{"departureStation":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"arrivalStation":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"equipmentType":{"type":"string"},"segmentRefId":{"type":"string"},"decks":{"type":"array","items":{"type":"object","required":["number","compartments"],"properties":{"number":{"type":"integer"},"compartments":{"type":"array","items":{"type":"object","required":["units"],"properties":{"designator":{"type":"string"},"units":{"type":"array","items":{"type":"object","required":["designator","assignable","availability"],"properties":{"designator":{"type":"string"},"assignable":{"type":"boolean"},"availability":{"type":"string","enum":["Unknown","Open","Reserved","Blocked","Held","Broken","Missing","Restricted","CheckedIn","FleetBlocked","Inoperative","Premium","NoSeat","Other"]},"group":{"type":"string"},"travelClassCode":{"type":"string"},"properties":{"type":"array","items":{"type":"string"},"description":"IATA PADIS 9825 seat characteristic codes, e.g. W window, A aisle, E exit row, I infant-suitable, L leg space, H handicapped facilities (same vocabulary as NDC)"},"pitchInches":{"type":"number","description":"Seat pitch in inches"},"tier":{"type":"string","description":"Cabin tier display name: First, Extra Legroom, or Standard"},"passengerPricing":{"type":"array","items":{"type":"object","required":["amount","currency"],"properties":{"offerItemId":{"type":"string","description":"Ancillary offer item ID; pass to change-order AcceptOffer to purchase"},"paxRefId":{"type":"string"},"passengerType":{"type":"string","enum":["ADT","CHD","INF"]},"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"},"taxAmount":{"type":"number"}},"title":"SeatPassengerPrice"},"description":"Per-passenger prices; a passenger the seat may not hold (lap infant on a non-I seat, child or lap infant in an E exit row) gets no row"}},"title":"SeatUnit"}}}}}}}}}}}},"title":"SeatMapResult"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Seat availability","value":{"data":{"legSeatMaps":[{"departureStation":"SLC","arrivalStation":"CHS","equipmentType":"223","decks":[{"number":1,"compartments":[{"designator":"Y","units":[{"designator":"12A","assignable":true,"availability":"Open","properties":["WINDOW"],"passengerPricing":[{"paxRefId":"PX1","passengerType":"ADT","amount":15,"currency":"USD","taxAmount":1.13,"offerItemId":"OFI-ST-U3xTTENDSFN8MjAzMDA5MTV8TVgxMDF8UFgxfDEyQQ"}]}]}]}],"segmentRefId":"SEG-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx"}]},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Get seat availability for an order","tags":["JSON"]}},"/json/{version}/orders/{orderId}/services":{"post":{"operationId":"getOrderServiceList","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"orderId","required":true,"in":"path","description":"Order ID or record locator (PNR)","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"default":{},"type":"object","properties":{"orderItemIds":{"description":"Flight order item IDs from order retrieve","type":"array","items":{"type":"string","minLength":1}},"passengers":{"type":"array","items":{"type":"object","properties":{"paxId":{"description":"paxId from order retrieve","type":"string","minLength":1},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["type"]}}}},"examples":{"example":{"value":{"orderItemIds":["OOI-FL-test"],"passengers":[{"paxId":"PX1","type":"ADT"}]}}}}}},"responses":{"200":{"description":"Service list","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["services"],"properties":{"services":{"type":"array","items":{"type":"object","required":["ssrCode","name","type","segmentAvailability"],"properties":{"ssrCode":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["Baggage","Seat","Meal","Priority","Lounge","SpecialAssistance","Pet","Connectivity","Other"]},"feeCode":{"type":"string"},"segmentAvailability":{"type":"array","items":{"type":"object","required":["scope","passengerPricing"],"properties":{"scope":{"type":"string","enum":["segment","journey","leg"],"description":"What this availability row applies to; segmentRefId or journeyRefId is set accordingly"},"segmentRefId":{"type":"string"},"journeyRefId":{"type":"string"},"passengerPricing":{"type":"array","items":{"type":"object","required":["amount","currency"],"properties":{"offerItemId":{"type":"string","description":"Ancillary offer item ID; pass to change-order AcceptOffer to purchase"},"paxRefId":{"type":"string"},"passengerType":{"type":"string","enum":["ADT","CHD","INF"]},"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"},"taxAmount":{"type":"number"}},"title":"ServicePassengerPrice"}}}}}}}}},"title":"ServiceListResult"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Service list","value":{"data":{"services":[{"ssrCode":"BAG1","name":"First checked bag","type":"Baggage","segmentAvailability":[{"scope":"journey","passengerPricing":[{"paxRefId":"PX1","passengerType":"ADT","amount":35,"currency":"USD","offerItemId":"OFI-SR-SnwxfFNMQ0NIU3wyMDMwMDkxNXxNWDEwMXxCYWdnYWdlfFBYMXxCQUcx"}],"journeyRefId":"JOU-U0xDQ0hTfDIwMzAwOTE1fE1YMTAx"}]}]},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Order not found (ERR-4000); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-4000":{"summary":"Order not found","value":{"data":null,"error":{"code":"ERR-4000","title":"Order not found","description":"The referenced order could not be found or is not eligible for processing."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"500":{"description":"Booking processing failed (ERR-9003)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9003":{"summary":"Booking processing failed","value":{"data":null,"error":{"code":"ERR-9003","title":"Booking processing failed","description":"The booking request could not be processed at this time."}}}}}}},"503":{"description":"Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Get service list for an order","tags":["JSON"]}},"/json/{version}/organization/credit":{"get":{"description":"Available regardless of the organizationCreditEnabled/customerCreditOverride flags — those only gate where cancellation refunds land, not this read.","operationId":"getCredit","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"responses":{"200":{"description":"Organization credit balance","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["organizationCode","available"],"properties":{"organizationCode":{"type":"string"},"available":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}},"title":"OrganizationCreditData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Organization credit balance","value":{"data":{"organizationCode":"12345678","available":{"amount":542.13,"currency":"USD"}},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Resource not found (ERR-1007); Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1007":{"summary":"Resource not found","value":{"data":null,"error":{"code":"ERR-1007","title":"Resource not found","description":"The requested resource could not be found."}}},"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Payment method not supported (ERR-6000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-6000":{"summary":"Payment method not supported","value":{"data":null,"error":{"code":"ERR-6000","title":"Payment method not supported","description":"The requested payment method is not supported."}}}}}}},"503":{"description":"Service unavailable (ERR-9000); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9000":{"summary":"Service unavailable","value":{"data":null,"error":{"code":"ERR-9000","title":"Service unavailable","description":"The request could not be processed because a required service is unavailable."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"Get the authenticated agency's Navitaire organization credit balance","tags":["JSON"]}},"/json/{version}/schedule/routes":{"get":{"description":"Origin-destination pairs with scheduled service, from the published flight schedule.","operationId":"getRoutes","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"responses":{"200":{"description":"Scheduled routes","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["routes"],"properties":{"routes":{"type":"array","items":{"type":"object","required":["origin","destination","bidirectional"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"bidirectional":{"type":"boolean","description":"true when the reverse direction is also scheduled"}}}}},"title":"ScheduleRoutesData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Scheduled routes","value":{"data":{"routes":[{"origin":"SLC","destination":"CHS","bidirectional":true},{"origin":"PVD","destination":"MCO","bidirectional":true}]},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"503":{"description":"Service unavailable (ERR-9000); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9000":{"summary":"Service unavailable","value":{"data":null,"error":{"code":"ERR-9000","title":"Service unavailable","description":"The request could not be processed because a required service is unavailable."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"List scheduled routes","tags":["JSON"]}},"/json/{version}/schedule/dates/{origin}/{destination}":{"get":{"description":"Dates with scheduled service in each direction of the pair. Use before offer search to avoid shopping dates with no service.","operationId":"getScheduleDates","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"origin","required":true,"in":"path","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}},{"name":"destination","required":true,"in":"path","schema":{"type":"string","pattern":"^[A-Za-z]{3}$"}}],"responses":{"200":{"description":"Service dates by direction","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["routes","modified"],"properties":{"routes":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","format":"date"}},"description":"`ORG-DST` → sorted dates with scheduled service; both directions of the pair are included, and a missing key means no service in that direction"},"modified":{"type":"string","description":"Schedule snapshot timestamp"}},"title":"ScheduleDatesData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Service dates by direction","value":{"data":{"routes":{"SLC-CHS":["2030-09-15","2030-09-17","2030-09-19"],"CHS-SLC":["2030-09-16","2030-09-18"]},"modified":"2026-09-01T06:00:00Z"},"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1005":{"summary":"Request validation failed","value":{"data":null,"error":{"code":"ERR-1005","title":"Request validation failed","description":"The request syntax is valid, but one or more business validation rules failed."}}}}}}},"503":{"description":"Service unavailable (ERR-9000); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9000":{"summary":"Service unavailable","value":{"data":null,"error":{"code":"ERR-9000","title":"Service unavailable","description":"The request could not be processed because a required service is unavailable."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"List scheduled service dates for a station pair","tags":["JSON"]}},"/json/{version}/stations":{"get":{"description":"Active stations Breeze serves, with display names and location codes.","operationId":"getStations","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"responses":{"200":{"description":"Stations","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"array","items":{"type":"object","required":["stationCode","fullName","shortName"],"properties":{"stationCode":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"fullName":{"type":"string"},"shortName":{"type":"string"},"cityCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"provinceStateCode":{"type":"string","nullable":true}}},"title":"StationsData"},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"success":{"summary":"Stations","value":{"data":[{"stationCode":"PVD","fullName":"Rhode Island T. F. Green International Airport","shortName":"Providence","cityCode":"PVD","countryCode":"US","provinceStateCode":"RI"}],"error":null}}}}}},"401":{"description":"Authentication required (ERR-8000)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8000":{"summary":"Authentication required","value":{"data":null,"error":{"code":"ERR-8000","title":"Authentication required","description":"A valid API key or bearer token is required for this request."}}}}}}},"403":{"description":"Access denied (ERR-8001)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-8001":{"summary":"Access denied","value":{"data":null,"error":{"code":"ERR-8001","title":"Access denied","description":"The authenticated consumer is not authorized to perform this request."}}}}}}},"404":{"description":"Unsupported API version (ERR-1002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-1002":{"summary":"Unsupported API version","value":{"data":null,"error":{"code":"ERR-1002","title":"Unsupported API version","description":"The requested API version is not supported by this service."}}}}}}},"503":{"description":"Service unavailable (ERR-9000); Authentication service unavailable (ERR-8002)","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"nullable":true},"error":{"type":"object","nullable":true,"description":"null on success; see the error catalog for the full code list","required":["code","title","description"],"properties":{"code":{"type":"string","pattern":"^ERR-\\d+$"},"title":{"type":"string"},"description":{"type":"string"},"path":{"type":"string","description":"Field the request got wrong, e.g. passengers.dateOfBirth. Array positions are not included — the description names the offending value. Present on parse and validation failures; the NDC twin of this field is IATA TagText","example":"offerItemIds"},"fields":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-field validation messages, keyed by the field path (passengers.dateOfBirth, not passengers)"},"requestId":{"type":"string","description":"Identifies this request for support; same value as the x-request-id response header"}}}}},"examples":{"ERR-9000":{"summary":"Service unavailable","value":{"data":null,"error":{"code":"ERR-9000","title":"Service unavailable","description":"The request could not be processed because a required service is unavailable."}}},"ERR-8002":{"summary":"Authentication service unavailable","value":{"data":null,"error":{"code":"ERR-8002","title":"Authentication service unavailable","description":"Authentication or authorization could not be completed at this time."}}}}}}}},"summary":"List stations","tags":["JSON"]}}},"info":{"title":"breeze-offer-order","description":"Breeze Offer Order (BOO) API documentation.\n\n**Auth**: exchange your API key once via `POST /auth/token` (`x-api-key` header), then send the returned JWT as `Authorization: Bearer` on every call.\n\n**Envelope**: every JSON response is `{ data, error }` — `error` is `null` on success; on failure `data` is `null` and `error.code` is a stable `ERR-nnnn` code listed per operation below. `error.requestId` (also the `x-request-id` response header) identifies the request — quote it when contacting support.","version":"1.43.0","contact":{}},"tags":[{"name":"JSON","description":"Partner shopping and booking API (`/json/{version}`)"},{"name":"Auth","description":"API-key-to-Bearer token exchange"}],"servers":[],"components":{"securitySchemes":{"x-api-key":{"type":"apiKey","in":"header","name":"x-api-key","description":"Partner API key. Only used to call POST /auth/token."},"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{}},"security":[{"bearer":[]}]}