{"openapi":"3.0.0","paths":{"/auth/token":{"post":{"description":"Send your API key in the `x-api-key` request header. Returns a JWT to send as `Authorization: Bearer` on every other endpoint; it acts as exactly one seller. The body is optional: omit it to act as the key's default seller, or send `sellerId` (from `GET /auth/sellers`) to act as another seller a partner API key covers. Request a new token when `expires_in` lapses.","operationId":"issueToken","parameters":[],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"sellerId":{"type":"string","format":"uuid","description":"Seller to act as. Omit to act as the key's default seller. A partner API key may name any seller listed by `GET /auth/sellers`; a seller API key may only name its own seller."}}}}}},"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"}}}}}},"422":{"description":"Request validation failed (ERR-1005)","content":{"application/json":{"schema":{"type":"object","required":["message","errorKey","error","requestId"],"properties":{"message":{"type":"string"},"errorKey":{"type":"string","enum":["ValidationFailed"]},"error":{"type":"object","required":["code","title","description"],"properties":{"code":{"type":"string","enum":["ERR-1005"]},"title":{"type":"string","enum":["Request validation failed"]},"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"]}},"/auth/sellers":{"get":{"description":"Send your API key in the `x-api-key` request header. A partner API key lists every active seller of its partner; a seller API key lists only its own seller. Pass a `sellerId` to `POST /auth/token` to get a token for that seller.","operationId":"listSellers","parameters":[],"responses":{"200":{"description":"Sellers this key can act as","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["sellerId","sellerCode","name","isDefault"],"properties":{"sellerId":{"type":"string","format":"uuid","description":"Pass as `sellerId` to `POST /auth/token` to act as this seller"},"sellerCode":{"type":"string","example":"ACME"},"name":{"type":"string","example":"Acme Travel"},"isDefault":{"type":"boolean","description":"The seller a token acts as when `sellerId` is omitted"}}}}}}},"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":"List the sellers an API key can act as","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)"},"searchOriginMetro":{"description":"Also search the other Breeze airports in the origin metro (MHT also searches PSM and PVD). A city-only code (NYC) always searches its metro.","type":"boolean"},"searchDestinationMetro":{"description":"Also search the other Breeze airports in the destination metro (MHT also searches PSM and PVD). A city-only code (NYC) always searches its metro.","type":"boolean"}},"required":["origin","destination","departureDate"],"additionalProperties":false},"description":"One entry per direction in travel order; departure dates must be non-decreasing. A metro round trip returns over the outbound airports."},"passengers":{"minItems":1,"maxItems":18,"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,"maxLength":512},"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"}},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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 from the airline catalog"},"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","description":"Seats left in this fare on this leg, capped by airline display policy. 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":"DC"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"JB"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"TP"},{"paymentTypeCode":"CC","paymentBrandCode":"VI"}],"offers":[{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","ownerCode":"MX","expiresAt":"2030-09-15T12:00:00.000Z","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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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."}}}}}}},"409":{"description":"Contract pricing not ready (ERR-3008)","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-3008":{"summary":"Contract pricing not ready","value":{"data":null,"error":{"code":"ERR-3008","title":"Contract pricing not ready","description":"Your negotiated contract applies to this journey, but its pricing has not been verified yet."}}}}}}},"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)"},"searchOriginMetro":{"description":"Also search the other Breeze airports in the origin metro (MHT also searches PSM and PVD). A city-only code (NYC) always searches its metro.","type":"boolean"},"searchDestinationMetro":{"description":"Also search the other Breeze airports in the destination metro (MHT also searches PSM and PVD). A city-only code (NYC) always searches its metro.","type":"boolean"}},"required":["origin","destination","departureDate"],"additionalProperties":false},"description":"One entry per direction in travel order; departure dates must be non-decreasing. A metro round trip returns over the outbound airports."},"passengers":{"minItems":1,"maxItems":18,"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,"maxLength":512},"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"}},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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 from the airline catalog"},"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","description":"Seats left in this fare on this leg, capped by airline display policy. 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":"DC"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"JB"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"TP"},{"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."}}}}}}},"409":{"description":"Contract pricing not ready (ERR-3008)","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-3008":{"summary":"Contract pricing not ready","value":{"data":null,"error":{"code":"ERR-3008","title":"Contract pricing not ready","description":"Your negotiated contract applies to this journey, but its pricing has not been verified yet."}}}}}}},"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,"maxItems":100,"type":"array","items":{"type":"object","properties":{"offerId":{"type":"string","minLength":1,"maxLength":512,"description":"Offer ID from the offers response"},"offerItemIds":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"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,"maxItems":18,"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,"maxLength":512},"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"}},"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 from the airline catalog"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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":"DC"},{"paymentTypeCode":"CC","paymentBrandCode":"DS"},{"paymentTypeCode":"CC","paymentBrandCode":"JB"},{"paymentTypeCode":"CC","paymentBrandCode":"CA"},{"paymentTypeCode":"CC","paymentBrandCode":"TP"},{"paymentTypeCode":"CC","paymentBrandCode":"VI"}],"offer":{"offerId":"OF-25a8bea9-89f5-11ea-98be-25340131a18b","ownerCode":"MX","expiresAt":"2030-09-15T12:00:00.000Z","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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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."}}}}}}},"409":{"description":"Contract pricing not ready (ERR-3008); Offer sold out (ERR-3009)","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-3008":{"summary":"Contract pricing not ready","value":{"data":null,"error":{"code":"ERR-3008","title":"Contract pricing not ready","description":"Your negotiated contract applies to this journey, but its pricing has not been verified yet."}}},"ERR-3009":{"summary":"Offer sold out","value":{"data":null,"error":{"code":"ERR-3009","title":"Offer sold out","description":"The selected fare is no longer available for this many passengers. Re-run the search and price a current offer."}}}}}}},"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":"Availability processing failed (ERR-2002); 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-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."}}},"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"]}},{"name":"Idempotency-Key","in":"header","description":"Up to 255 characters, unique per order attempt. A repeat with the same key returns the original order instead of booking again (keys are kept 24 hours, per seller); a repeat while the first is still processing gets ERR-4011, and reusing a key for a different request gets ERR-1011. Send one on every create so a timed-out request can be retried safely.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offerId":{"type":"string","minLength":1,"maxLength":512,"description":"Priced offer ID from POST /json/{version}/offers/price, or a shopped offer ID from POST /json/{version}/offers (priced at create; a total that differs from the shopped one is rejected unless expectedTotal is sent)"},"offerItemIds":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"description":"Offer item IDs to book"},"offerItemSelections":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"offerItemId":{"type":"string","minLength":1,"maxLength":512},"passengerIds":{"description":"passengerIds taking this item. Flight items must list every seated passenger; seat items take exactly one","maxItems":18,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}}},"required":["offerItemId"]}},"passengers":{"minItems":1,"maxItems":18,"type":"array","items":{"type":"object","properties":{"passengerId":{"type":"string","minLength":1,"maxLength":512,"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,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"middleName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"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 of the airline loyalty program","type":"string","minLength":1,"maxLength":3,"pattern":"^[^|]*$"},"memberId":{"type":"string","minLength":1,"maxLength":32,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress","Visa","PermanentResidentCard","AlienResidentCard"],"description":"AlienResidentCard requires expirationDate"},"documentNumber":{"type":"string","minLength":1,"maxLength":35},"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":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"issuedDate":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"placeOfIssue":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"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,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"]},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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,"maxLength":512}},"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,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"]},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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 contact stored alongside the primary contact","type":"object","properties":{"name":{"type":"object","properties":{"givenName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"],"description":"Contact person; required on every contact write"},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"countryCode":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2}}}},"required":["name","emailAddress"],"additionalProperties":false},"remarks":{"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":1024}},"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,"maxLength":512},"cardType":{"type":"string","minLength":1,"maxLength":2},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227); not before the current month (UTC-12)"},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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,"maxLength":2},"cardNumber":{"type":"string","maxLength":19,"description":"12 to 19 digits, no spaces; must pass the Luhn check"},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227); not before the current month (UTC-12)"},"securityCode":{"description":"3 digits; 4 for American Express (AX)","type":"string","maxLength":4},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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); Passenger update rejected (ERR-7007); 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-7007":{"summary":"Passenger update rejected","value":{"data":null,"error":{"code":"ERR-7007","title":"Passenger update rejected","description":"The requested passenger update could not be applied."}}},"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); Order create in progress (ERR-4011)","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."}}},"ERR-4011":{"summary":"Order create in progress","value":{"data":null,"error":{"code":"ERR-4011","title":"Order create in progress","description":"An order create with this Idempotency-Key is still being processed. Retry with the same key to receive its result."}}}}}}},"422":{"description":"Request validation failed (ERR-1005); Payment method not supported (ERR-6000); Card brand not supported (ERR-6001); Idempotency key reused (ERR-1011)","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."}}},"ERR-1011":{"summary":"Idempotency key reused","value":{"data":null,"error":{"code":"ERR-1011","title":"Idempotency key reused","description":"The Idempotency-Key was already used for a different order create request."}}}}}}},"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. `CancelUnpaidOrder` cancels only an unpaid hold; an order with a payment answers ERR-4012 and is cancelled with `POST /orders/{orderId}/cancel`. 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":{"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"CancelUnpaidOrder"}},"required":["type"],"description":"Cancel an unpaid (hold) order. An order with a payment answers ERR-4012: cancel it with POST /orders/{orderId}/cancel"},{"type":"object","properties":{"type":{"type":"string","const":"CancelJourney"},"journeyRef":{"type":"string","minLength":1,"maxLength":512,"description":"journeyId from order retrieve"}},"required":["type","journeyRef"]},{"type":"object","properties":{"type":{"type":"string","const":"UpdatePassenger"},"passengerId":{"type":"string","minLength":1,"maxLength":512},"patch":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"middleName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"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 of the airline loyalty program","type":"string","minLength":1,"maxLength":3,"pattern":"^[^|]*$"},"memberId":{"type":"string","minLength":1,"maxLength":32,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"description":"Documents to add or correct; documents left out are untouched","maxItems":4,"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress","Visa","PermanentResidentCard","AlienResidentCard"],"description":"AlienResidentCard requires expirationDate"},"documentNumber":{"type":"string","minLength":1,"maxLength":35},"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":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"issuedDate":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"placeOfIssue":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"gender":{"type":"string","enum":["Male","Female"]},"replacesDocumentNumber":{"description":"Number of the document this one replaces. Omit to add a document; set it to correct one already on the booking (a mistyped KTN, a re-issued passport).","type":"string","minLength":1,"maxLength":35}},"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,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"]},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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 code as on responses; 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,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"],"description":"Contact person; required on every contact write"},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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,"maxItems":100,"type":"array","items":{"type":"object","properties":{"offerId":{"description":"Ignored; the offer item ID identifies the ancillary","type":"string","minLength":1,"maxLength":512},"offerItemId":{"type":"string","minLength":1,"maxLength":512,"description":"Ancillary offer item ID from the seats (OFI-ST-…) or services (OFI-SR-…) response"},"passengerIds":{"maxItems":18,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"seat":{"description":"Seat assignment for seat items","type":"object","properties":{"row":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"column":{"type":"string","minLength":1,"maxLength":1,"description":"Seat column letter, e.g. A"}},"required":["row","column"]}},"required":["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,"maxLength":512},"offerItemIds":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}}},"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,"maxLength":512,"description":"Cancellation offer ID returned by reshop CancelOrder"}},"required":["type","offerId"],"description":"Accept a cancellation offer to cancel the order and trigger the refund"},{"type":"object","properties":{"type":{"type":"string","const":"AcceptChange"},"orderItemIds":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"description":"Order item IDs from the order's disruption.orderItemIds"}},"required":["type","orderItemIds"],"description":"Accept an airline disruption as it stands (disruption.actions includes Accept)"}]}},"passengers":{"maxItems":18,"type":"array","items":{"type":"object","properties":{"passengerId":{"type":"string","minLength":1,"maxLength":512,"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,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"middleName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"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 of the airline loyalty program","type":"string","minLength":1,"maxLength":3,"pattern":"^[^|]*$"},"memberId":{"type":"string","minLength":1,"maxLength":32,"description":"Member loyalty number; Navitaire validates it against the passenger name"}},"required":["programCode","memberId"]},"travelDocuments":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["Passport","NationalId","KnownTraveler","Redress","Visa","PermanentResidentCard","AlienResidentCard"],"description":"AlienResidentCard requires expirationDate"},"documentNumber":{"type":"string","minLength":1,"maxLength":35},"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":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"issuedDate":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"birthCountry":{"description":"ISO 3166-1 alpha-2 country code","type":"string","minLength":2,"maxLength":2},"placeOfBirth":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"placeOfIssue":{"type":"string","minLength":1,"maxLength":35,"pattern":"^[A-Za-z\\s]*$"},"holderName":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"dateOfBirth":{"type":"string","maxLength":35,"description":"YYYY-MM-DD (or full ISO 8601 date-time)"},"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,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["givenName","surname"]},"emailAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[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,"maxLength":32},"phoneCountryCode":{"type":"string","minLength":1,"maxLength":8},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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,"maxLength":512}},"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,"maxLength":512},"cardType":{"type":"string","minLength":1,"maxLength":2},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227); not before the current month (UTC-12)"},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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,"maxLength":2},"cardNumber":{"type":"string","maxLength":19,"description":"12 to 19 digits, no spaces; must pass the Luhn check"},"expiryDate":{"type":"string","pattern":"^(0[1-9]|1[0-2])\\d{2}$","description":"Card expiry, MMYY (e.g. 1227); not before the current month (UTC-12)"},"securityCode":{"description":"3 digits; 4 for American Express (AX)","type":"string","maxLength":4},"payer":{"type":"object","properties":{"name":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":6},"givenName":{"type":"string","minLength":1,"maxLength":32},"middleName":{"type":"string","minLength":1,"maxLength":32},"surname":{"type":"string","minLength":1,"maxLength":32},"suffix":{"type":"string","minLength":1,"maxLength":6}},"required":["givenName","surname"]},"postalAddress":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"maxLength":128},"line2":{"type":"string","minLength":1,"maxLength":128},"line3":{"type":"string","minLength":1,"maxLength":128},"city":{"type":"string","minLength":1,"maxLength":32},"stateProvince":{"type":"string","minLength":1,"maxLength":32},"postalCode":{"type":"string","minLength":1,"maxLength":10},"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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{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":{"description":"3-letter ISO 4217 currency code (case-insensitive)","type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["amount"],"description":"Fixed-amount draw against the seller organization credit account, independent of payment. Requires a seller with a validated Navitaire agencyCode."},"refundMethod":{"type":"string","enum":["OriginalPayment","Credit"],"description":"Disrupted orders only: how a cancellation pays out, one of the order's disruption.refundMethods. Defaults to OriginalPayment when offered."}}},"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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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); Passenger update rejected (ERR-7007); Journey not found (ERR-4006); Flight change not permitted (ERR-4003); Bundle change not permitted (ERR-4010); 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-7007":{"summary":"Passenger update rejected","value":{"data":null,"error":{"code":"ERR-7007","title":"Passenger update rejected","description":"The requested passenger update 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-4010":{"summary":"Bundle change not permitted","value":{"data":null,"error":{"code":"ERR-4010","title":"Bundle change not permitted","description":"A bundled journey cannot move to a lower bundle on the same flight or to an unbundled fare on any flight, and a journey holding a loyalty upgrade bundle cannot be reshopped."}}},"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":"Order already paid (ERR-4012); 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-4012":{"summary":"Order already paid","value":{"data":null,"error":{"code":"ERR-4012","title":"Order already paid","description":"CancelUnpaidOrder cancels only an unpaid hold. Cancel a paid order with POST /orders/{orderId}/cancel (NDC: OrderReshop CancelOrderRef, then OrderChange AcceptCancelledOffer)."}}},"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 the airline carrier code 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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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). On an order with a `disruption` there is no cancellation fee and `refundMethod` picks the payout from its `refundMethods`. 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 the airline carrier code when omitted.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"refundMethod":{"type":"string","enum":["OriginalPayment","Credit"],"description":"Disrupted orders only: how a cancellation pays out, one of the order's disruption.refundMethods. Defaults to OriginalPayment when offered."}}},"examples":{"example":{"value":{"refundMethod":"Credit"}}}}}},"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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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}/split":{"post":{"description":"Moves the named passengers to a new order (new record locator); lap infants move with their adult. Payments divide between the two orders, so a paid order leaves both paid and a held order leaves both held. Both orders must keep an adult, and no journey may have departed. This route requires `book` access.","operationId":"splitOrder","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 the airline carrier code when omitted.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"passengerIds":{"minItems":1,"maxItems":18,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"description":"paxIds to move to a new order. Lap infants move with their adult and are not listed"}},"required":["passengerIds"]},"examples":{"example":{"value":{"passengerIds":["ADT-2"]}}}}}},"responses":{"200":{"description":"Order split","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["order","childOrder"],"properties":{"order":{"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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"title":"RetrieveOrderData"},"childOrder":{"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 from the airline catalog"},"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"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","V","C","A"],"description":"PT = Passport, NI = NationalId, KT = KnownTraveler, R = Redress, V = Visa, C = PermanentResidentCard, A = AlienResidentCard"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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"}},"disruption":{"type":"object","required":["reason","orderItemIds","actions","refundMethods","consequenceOfInaction","flights"],"properties":{"reason":{"type":"string","enum":["FlightCancelled","ScheduleChangeCancelled","ScheduleChanged","Delayed"]},"orderItemIds":{"type":"array","items":{"type":"string"}},"actions":{"type":"array","items":{"type":"string","enum":["Accept","Reshop","Cancel"]}},"refundMethods":{"type":"array","items":{"type":"string","enum":["OriginalPayment","Credit"]}},"consequenceOfInaction":{"type":"string","enum":["AutoAcceptance","AutoCancellation"]},"flights":{"type":"array","items":{"type":"object","required":["origin","destination"],"properties":{"origin":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"destination":{"type":"string","pattern":"^[A-Z]{3}$","description":"IATA airport code"},"flightNumber":{"type":"string"},"departure":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"},"estimatedDeparture":{"type":"string","description":"Local date-time at the station, ISO 8601 without UTC offset","example":"2030-09-15T08:00:00"}}}}},"description":"An airline disruption to act on (the JSON twin of NDC SellerFollowUpAction). Accept: PATCH the order with an AcceptChange change. Reshop: reshop the affected order items; a like-for-like flight within 14 days keeps the original fare. Cancel: cancel with an optional refundMethod; no cancellation fee."}},"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 split","value":{"data":{"order":{"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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"}]},"childOrder":{"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","benefits":[{"label":"Personal item","included":true,"status":"included","quantity":1},{"label":"Seat assignment","included":false,"status":"upgrade"},{"label":"Standard 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"],"attributes":{"pieceCount":1,"weight":{"value":35,"unit":"LBR"}}}],"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","statusCode":"SCHEDULED"}]}]}],"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); Journey already flown (ERR-4007)","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-4007":{"summary":"Journey already flown","value":{"data":null,"error":{"code":"ERR-4007","title":"Journey already flown","description":"The referenced journey has already flown, or a passenger on it boarded or no-showed, and can no longer be changed."}}}}}}},"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); Unaccompanied minor not permitted (ERR-7009)","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-7009":{"summary":"Unaccompanied minor not permitted","value":{"data":null,"error":{"code":"ERR-7009","title":"Unaccompanied minor not permitted","description":"An order with no adult is limited to passengers 13 or older on a single domestic flight."}}}}}}},"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":"Split passengers into a new 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,"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}},"deleteOrderItemRefIds":{"description":"Flight order item IDs being replaced","maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"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,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"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,"maxLength":512,"description":"paxId from order retrieve"},"surname":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"},"givenName":{"type":"string","minLength":1,"maxLength":32,"pattern":"^(?![ªº])\\p{L}(?:(?![ªº])[\\p{L}\\p{M}0-9 '’‐‑–—׳״-]|(?<=\\p{L})·(?=\\p{L})|(?<=[\\p{L}\\p{M}])[‌‍](?=[\\p{L}\\p{M}]))*$","description":"1 to 32 characters, trimmed; starts with a letter, then letters of any script, digits, spaces, hyphens, apostrophes and dashes only"}},"required":["type","paxRefId","surname"],"description":"Quote the name-change fee"}]},"passengers":{"minItems":1,"maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"type":"string","minLength":1,"maxLength":512,"description":"Order passenger ID (paxId from order retrieve)"},"type":{"type":"string","enum":["ADT","CHD","INF"]}},"required":["paxId","type"]}},"refundMethod":{"type":"string","enum":["OriginalPayment","Credit"],"description":"Disrupted orders only: how a cancellation pays out, one of the order's disruption.refundMethods. Defaults to OriginalPayment when offered."}},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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 from the airline catalog"},"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","description":"Seats left in this fare on this leg, capped by airline display policy. 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"},"refunds":{"type":"array","items":{"type":"object","required":["to","amount"],"properties":{"to":{"type":"string","enum":["OriginalPayment","Loyalty","CustomerCredit","OrganizationCredit","BookingCredit"],"description":"OriginalPayment = back to the card; CustomerCredit = the booker's Breeze account; OrganizationCredit = the seller's agency account; BookingCredit = held on the booking"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}}},"description":"Where refundAmount lands, per destination. Absent when the refund cannot be routed yet"},"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); 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."}}}}}}},"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,"maxLength":512,"description":"Reshop offer ID to price"},"offerItemIds":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"description":"Reshop offer item IDs; must be unique"},"passengers":{"minItems":1,"maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"type":"string","minLength":1,"maxLength":512,"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"},"refunds":{"type":"array","items":{"type":"object","required":["to","amount"],"properties":{"to":{"type":"string","enum":["OriginalPayment","Loyalty","CustomerCredit","OrganizationCredit","BookingCredit"],"description":"OriginalPayment = back to the card; CustomerCredit = the booker's Breeze account; OrganizationCredit = the seller's agency account; BookingCredit = held on the booking"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}}},"description":"Where the refund a cheaper change owes lands, per destination. Absent when nothing is owed or it cannot be routed yet"}},"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"},"refunds":{"type":"array","items":{"type":"object","required":["to","amount"],"properties":{"to":{"type":"string","enum":["OriginalPayment","Loyalty","CustomerCredit","OrganizationCredit","BookingCredit"],"description":"OriginalPayment = back to the card; CustomerCredit = the booker's Breeze account; OrganizationCredit = the seller's agency account; BookingCredit = held on the booking"},"amount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code"}},"title":"MonetaryAmount"}}},"description":"Where the refund a cheaper change owes lands, per destination. Absent when nothing is owed or it cannot be routed yet"}},"title":"ReshopItemChangeQuote"}},"removedServices":{"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"},"weight":{"type":"object","required":["value","unit"],"properties":{"value":{"type":"number"},"unit":{"type":"string","enum":["KGM","LBR"],"description":"KGM = kilograms, LBR = pounds"}},"description":"Maximum weight per piece"}}},{"title":"MealAttributes","type":"object","required":["mealCode"],"properties":{"mealCode":{"type":"string"},"description":{"type":"string"}}}],"title":"ServiceAttributes"}},"title":"OrderService"},"description":"Seats and services on the replaced flights that accepting this change deletes. They are not moved to the new flight; their full value is in the price difference."},"warnings":{"type":"array","items":{"type":"string"},"description":"Present when the change removes services; same text as the NDC Warning."},"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 from the airline catalog"},"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"},"statusCode":{"type":"string","enum":["SCHEDULED","CANCELLED","CLOSED","LOCKED"],"description":"Order retrieve only. CLOSED = flown. CANCELLED = airline-cancelled, never flies, stays refundable. LOCKED = suspended or closing: no changes, but not flown"}},"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","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","statusCode":"SCHEDULED"}]}]}]},"error":null}}}}}},"400":{"description":"Order modification rejected (ERR-4002); Flight change not permitted (ERR-4003); Bundle change not permitted (ERR-4010)","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-4010":{"summary":"Bundle change not permitted","value":{"data":null,"error":{"code":"ERR-4010","title":"Bundle change not permitted","description":"A bundled journey cannot move to a lower bundle on the same flight or to an unbundled fare on any flight, and a journey holding a loyalty upgrade bundle cannot be reshopped."}}}}}}},"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); 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-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-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}/orders/{orderId}/payment-token":{"post":{"description":"Returns a short-lived bearer token scoped to this one order. It can retrieve the order, list seats and services, reshop and quote, and PATCH it to pay (`ConfirmHold`), add extras, accept a flight change or edit travelers and contacts. It cannot cancel, use organization credit, or reach any other order or route, and expires at the hold deadline or after an hour, whichever is first. Put it in a payment link so someone without your credentials can pay and manage the trip. Requires `book` access and a balance due.","operationId":"issuePaymentToken","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 the airline carrier code when omitted.","schema":{"type":"string"}}],"responses":{"201":{"description":"Payment token issued","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["token","expiresAt"],"properties":{"token":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}}},"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":"Payment token issued","value":{"data":{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6Im9yZGVyLXBheStqd3QifQ.…","expiresAt":"2026-10-08T03:28:39.000Z"},"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); 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."}}}}}}},"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":"Mint a payment-link token for a held order","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,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"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","maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"Passenger ID; must not contain \"|\". Defaults to {PTC}-{ordinal}","type":"string","minLength":1,"maxLength":512},"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,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512},"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","maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"Passenger ID; must not contain \"|\". Defaults to {PTC}-{ordinal}","type":"string","minLength":1,"maxLength":512},"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","maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"passengers":{"maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"paxId from order retrieve","type":"string","minLength":1,"maxLength":512},"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","maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"passengers":{"maxItems":18,"type":"array","items":{"type":"object","properties":{"paxId":{"description":"paxId from order retrieve","type":"string","minLength":1,"maxLength":512},"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":"The seller's deposit with Breeze: what an organizationCredit payment can draw. Any seller with a Moneybin account can read it, whatever its organizationCreditEnabled/customerCreditOverride flags. A seller with no account gets PaymentMethodNotSupported, or ResourceNotFound when organizationCreditEnabled is set (a setup fault).","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 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 the airline 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"]}},"/json/{version}/certification":{"get":{"description":"Scores the authenticated seller against its certification target. Test traffic in the test environment is scored as it arrives. A case is `pass` once any request on that API version passed it (`latestResult` shows a later regression), `n/a` when your partner profile does not declare what it `requires`, and `blocked` when seller configuration prevents it. `certified` is true once every case is `pass` or `n/a` and nothing is `blocked`. An untested case may carry a `hint`: the market and date where our own daily suite last found the inventory it needs. `runId` opens the scored request and response at `GET /json/{version}/certification/runs/{runId}`.","operationId":"getCertificationStatus","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}}],"responses":{"200":{"description":"Certification status","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["sellerId","surface","apiVersion","source","asOf","certified","cases","blocked"],"properties":{"sellerId":{"type":"string"},"surface":{"type":"string","enum":["ndc","json"]},"apiVersion":{"type":"string"},"source":{"type":"string","enum":["live","imported"]},"asOf":{"type":"string","format":"date-time","nullable":true},"certified":{"type":"boolean"},"cases":{"type":"array","items":{"type":"object","required":["functionName","caseName","summary","requires","result","latestResult","passedAt","failed","runId","at","hint"],"properties":{"functionName":{"type":"string"},"caseName":{"type":"string"},"summary":{"type":"string"},"requires":{"type":"string","nullable":true},"result":{"type":"string","enum":["pass","fail","untested","n/a","blocked"]},"latestResult":{"type":"string","enum":["pass","fail"],"nullable":true},"passedAt":{"type":"string","format":"date-time","nullable":true},"failed":{"type":"array","items":{"type":"string"}},"runId":{"type":"string","nullable":true},"at":{"type":"string","format":"date-time","nullable":true},"hint":{"type":"string","nullable":true}}}},"blocked":{"type":"array","items":{"type":"object","required":["key","reason"],"properties":{"key":{"type":"string"},"reason":{"type":"string"}}}}},"title":"CertificationStatusData"},"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":"Certification status","value":{"data":{"sellerId":"22222222-2222-4222-8222-222222222222","surface":"json","apiVersion":"v1","source":"live","asOf":"2026-09-30T18:04:11.000Z","certified":false,"cases":[{"functionName":"search","caseName":"one_way","summary":"Search one origin-destination and receive offers","requires":null,"result":"pass","latestResult":"fail","passedAt":"2026-09-29T09:12:40.000Z","failed":["at least one offer"],"runId":"0b6f8a52-1d3e-4c55-9f0e-6a1c2b3d4e5f","at":"2026-09-30T18:04:11.000Z","hint":null},{"functionName":"product","caseName":"nicest","summary":"Search a market and date where a Nicest offer is returned","requires":"product:EZ:AZU","result":"untested","latestResult":null,"passedAt":null,"failed":[],"runId":null,"at":null,"hint":"Walkaround saw this on PVU-SNA 2026-11-20 (run 2026-10-30)"}],"blocked":[]},"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."}}}}}}},"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 certification progress","tags":["JSON"]}},"/json/{version}/certification/status/{surface}/{apiVersion}":{"get":{"description":"Scores the authenticated seller against an explicit target: `surface` is `ndc` or `json`, `apiVersion` the version in the route you call (`v26.2`, `v1`). Use it when you exercise more than the target set on your profile. Test traffic in the test environment is scored as it arrives. A case is `pass` once any request on that API version passed it (`latestResult` shows a later regression), `n/a` when your partner profile does not declare what it `requires`, and `blocked` when seller configuration prevents it. `certified` is true once every case is `pass` or `n/a` and nothing is `blocked`. An untested case may carry a `hint`: the market and date where our own daily suite last found the inventory it needs. `runId` opens the scored request and response at `GET /json/{version}/certification/runs/{runId}`.","operationId":"getCertificationStatusFor","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"surface","required":true,"in":"path","schema":{"type":"string"}},{"name":"apiVersion","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Certification status","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["sellerId","surface","apiVersion","source","asOf","certified","cases","blocked"],"properties":{"sellerId":{"type":"string"},"surface":{"type":"string","enum":["ndc","json"]},"apiVersion":{"type":"string"},"source":{"type":"string","enum":["live","imported"]},"asOf":{"type":"string","format":"date-time","nullable":true},"certified":{"type":"boolean"},"cases":{"type":"array","items":{"type":"object","required":["functionName","caseName","summary","requires","result","latestResult","passedAt","failed","runId","at","hint"],"properties":{"functionName":{"type":"string"},"caseName":{"type":"string"},"summary":{"type":"string"},"requires":{"type":"string","nullable":true},"result":{"type":"string","enum":["pass","fail","untested","n/a","blocked"]},"latestResult":{"type":"string","enum":["pass","fail"],"nullable":true},"passedAt":{"type":"string","format":"date-time","nullable":true},"failed":{"type":"array","items":{"type":"string"}},"runId":{"type":"string","nullable":true},"at":{"type":"string","format":"date-time","nullable":true},"hint":{"type":"string","nullable":true}}}},"blocked":{"type":"array","items":{"type":"object","required":["key","reason"],"properties":{"key":{"type":"string"},"reason":{"type":"string"}}}}},"title":"CertificationStatusData"},"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":"Certification status","value":{"data":{"sellerId":"22222222-2222-4222-8222-222222222222","surface":"json","apiVersion":"v1","source":"live","asOf":"2026-09-30T18:04:11.000Z","certified":false,"cases":[{"functionName":"search","caseName":"one_way","summary":"Search one origin-destination and receive offers","requires":null,"result":"pass","latestResult":"fail","passedAt":"2026-09-29T09:12:40.000Z","failed":["at least one offer"],"runId":"0b6f8a52-1d3e-4c55-9f0e-6a1c2b3d4e5f","at":"2026-09-30T18:04:11.000Z","hint":null},{"functionName":"product","caseName":"nicest","summary":"Search a market and date where a Nicest offer is returned","requires":"product:EZ:AZU","result":"untested","latestResult":null,"passedAt":null,"failed":[],"runId":null,"at":null,"hint":"Walkaround saw this on PVU-SNA 2026-11-20 (run 2026-10-30)"}],"blocked":[]},"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":"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":"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 certification progress for a surface and version","tags":["JSON"]}},"/json/{version}/certification/runs/{runId}":{"get":{"description":"The scored request and response for one `runId` from the certification status, so a failed case can be diagnosed without asking Breeze. Card numbers and security codes are redacted and bodies are capped at 256 KB. When one request scored several cases, the bodies come from the source run (`sourceRunId`) and `failed` is this case's own. 404 for an unknown run, another seller's run, or a webhook case (whose runId is a delivery).","operationId":"getCertificationRun","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Certification run evidence","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["runId","sellerId","surface","apiVersion","functionName","caseName","result","failed","at","request","response","errors","sourceRunId"],"properties":{"runId":{"type":"string"},"sellerId":{"type":"string"},"surface":{"type":"string","enum":["ndc","json"]},"apiVersion":{"type":"string"},"functionName":{"type":"string"},"caseName":{"type":"string"},"result":{"type":"string","enum":["pass","fail"]},"failed":{"type":"array","items":{"type":"string"}},"at":{"type":"string","format":"date-time"},"request":{"type":"object","required":["method","url","body"],"properties":{"method":{"type":"string"},"url":{"type":"string"},"body":{"type":"string"}},"nullable":true},"response":{"type":"object","required":["status","body"],"properties":{"status":{"type":"integer"},"body":{"type":"string"}},"nullable":true},"errors":{"type":"array","items":{"type":"object","required":["text"],"properties":{"code":{"type":"string"},"text":{"type":"string"}}}},"sourceRunId":{"type":"string","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":{"success":{"summary":"Certification run evidence","value":{"data":{"runId":"0b6f8a52-1d3e-4c55-9f0e-6a1c2b3d4e5f","sellerId":"22222222-2222-4222-8222-222222222222","surface":"json","apiVersion":"v1","functionName":"search","caseName":"one_way","result":"fail","failed":["at least one offer"],"at":"2026-09-30T18:04:11.000Z","request":{"method":"POST","url":"/json/v1/offers","body":"{\"originDestinations\":[{\"origin\":\"PVU\",\"destination\":\"SNA\",\"departureDate\":\"2026-11-20\"}],\"passengers\":[{\"paxId\":\"P1\",\"type\":\"ADT\"}]}"},"response":{"status":201,"body":"{\"data\":{\"view\":\"flat\",\"pax\":[],\"offers\":[]},\"error\":null}"},"errors":[],"sourceRunId":null},"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":"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":"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 the evidence behind a certification result","tags":["JSON"]}},"/json/{version}/certification/catalog/{surface}/{apiVersion}":{"get":{"description":"Every case a seller is scored on for `surface` (`ndc` or `json`) and `apiVersion`: what to send (`triggers`), what the response must contain (`criteria`) or which error it must carry (`expectError`), and the partner-profile declaration it `requires` (null = always required). Any API key may call it; the answer does not depend on the caller.","operationId":"getCertificationCatalog","parameters":[{"name":"version","required":true,"in":"path","description":"Major version in the route path.","schema":{"type":"string","enum":["v1","v2"]}},{"name":"surface","required":true,"in":"path","schema":{"type":"string"}},{"name":"apiVersion","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Certification catalog","content":{"application/json":{"schema":{"type":"object","required":["data","error"],"properties":{"data":{"type":"object","required":["surface","apiVersion","cases"],"properties":{"surface":{"type":"string","enum":["ndc","json"]},"apiVersion":{"type":"string"},"cases":{"type":"array","items":{"type":"object","required":["functionName","caseName","summary","requires","triggers","criteria","expectError"],"properties":{"functionName":{"type":"string"},"caseName":{"type":"string"},"summary":{"type":"string"},"requires":{"type":"string","nullable":true},"triggers":{"type":"array","items":{"type":"string"}},"criteria":{"type":"array","items":{"type":"string"}},"expectError":{"type":"array","items":{"type":"string"}}}}}}},"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":"Certification catalog","value":{"data":{"surface":"json","apiVersion":"v1","cases":[{"functionName":"search","caseName":"one_way","summary":"Search one origin-destination and receive offers","requires":null,"triggers":["POST /json/{version}/offers","POST /json/{version}/offers/byJourney"],"criteria":["at least one offer"],"expectError":[]},{"functionName":"errors","caseName":"unknown_order","summary":"Retrieve an order that does not exist and receive the not-found error","requires":null,"triggers":["GET /json/{version}/orders/{orderId}"],"criteria":[],"expectError":["ERR-1007","ERR-1008"]}]},"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":"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 the certification cases for a surface and version","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. A partner API key covers several sellers: list them at `GET /auth/sellers` and pass `sellerId` to `POST /auth/token` to act as one.\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.142.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 and GET /auth/sellers."},"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{}},"security":[{"bearer":[]}]}