Skip to main content

Offer ancillaries

Seat availability and the ancillary service list for a cached offer, before an order exists:

  • POST /json/{version}/offers/{offerId}/seats — seat maps with per-seat pricing. JSON counterpart of the NDC IATA_SeatAvailabilityRQ.
  • POST /json/{version}/offers/{offerId}/services — purchasable services with per-passenger pricing. JSON counterpart of the NDC IATA_ServiceListRQ.

For the same lookups against an existing booking, see order ancillaries.

Request

offerId in the path is an offer returned by create offers or price offer. The body is required:

FieldDescription
offerItemIdsOffer items to price ancillaries against. Must exist on the offer.
passengersOptional; same rules as offer search (type + optional paxId). Defaults to the passengers stored with the cached offer when omitted.
POST /json/v0/offers/OF-25a8bea9-89f5-11ea-98be-25340131a18b/seats
Authorization: <bearer token from /auth/token>
Content-Type: application/json

{
"offerItemIds": [
"OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0"
],
"passengers": [
{
"paxId": "PX1",
"type": "ADT"
}
]
}

For the service list, replace /seats with /services — the body is identical.

Seats response

data.legSeatMaps holds one seat map per flight leg: decks[]compartments[]units[]. Each unit reports designator, assignable, an availability state (Open, Reserved, Blocked, Restricted, …), optional cabin properties (for example WINDOW, MIDDLE), and passengerPricing rows per passenger and offer item.

{
"data": {
"legSeatMaps": [
{
"departureStation": "SLC",
"arrivalStation": "CHS",
"equipmentType": "220",
"segmentRefId": "SEG1",
"decks": [
{
"number": 1,
"compartments": [
{
"designator": "Y",
"units": [
{
"designator": "10A",
"assignable": true,
"availability": "Open",
"group": "3",
"properties": [
"WINDOW"
],
"passengerPricing": [
{
"offerItemId": "OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0",
"paxRefId": "PX1",
"passengerType": "ADT",
"amount": 25,
"currency": "USD",
"taxAmount": 0
}
]
},
{
"designator": "10B",
"assignable": false,
"availability": "Reserved",
"group": "3",
"properties": [
"MIDDLE"
]
}
]
}
]
}
]
}
]
},
"error": null
}

Services response

data.services lists each purchasable service with its ssrCode, display name, type, and segmentAvailability rows. Each availability row is scoped to a segment, journey, or leg (via segmentRefId / journeyRefId) and carries passengerPricing.

{
"data": {
"services": [
{
"ssrCode": "BAG1",
"name": "First checked bag",
"type": "Baggage",
"feeCode": "BAG",
"segmentAvailability": [
{
"scope": "journey",
"journeyRefId": "JK1",
"passengerPricing": [
{
"offerItemId": "OFI-25a8bea9-89f5-11ea-98be-25340131a18b-0",
"paxRefId": "PX1",
"passengerType": "ADT",
"amount": 35,
"currency": "USD",
"taxAmount": 0
}
]
}
]
}
]
},
"error": null
}

Offer ancillaries errors

CodeHTTP statusCause
ERR-1002404Unsupported version segment in the path.
ERR-1005422Request validation failed.
ERR-3000404Referenced offer could not be found.
ERR-3001404Referenced offer has expired.
ERR-3002400One or more offer items not found on the offer.
ERR-8000401Missing or invalid API key or bearer token.
ERR-8001403API key not authorized for this request.
ERR-8002503Authentication store unavailable.
ERR-9003500Ancillary lookup failed upstream.