Skip to main content

Passengers

Passenger records appear on offer search, price, create, and change. Both APIs use the same type codes and the same identity rules — only the wire shape differs.

What goes where

DataWhere to send itNotes
Who is travelingJSON passengers[] / XML PaxList > PaxOne entry per traveler.
Passenger typetype / PTCADT, CHD, or INF.
Stable passenger IDJSON passengerId or paxId; XML PaxIDYours to choose on shop/price/create. Keep the same ID through price → ancillaries → create.
Namename.givenName + name.surname / Individual > GivenName/SurnameRequired on create.
Date of birthdateOfBirth / BirthdateYYYY-MM-DD.
GenderJSON request gender; XML GenderCodeSee Gender — request and response vocabularies differ on JSON.
Nationality / residencenationality, residenceCountryOptional ISO country codes.
Lap infant linkAdult's infantPassengerIdPoints at the infant's passenger ID. Infants cannot exceed adults.
Loyalty / docsloyaltyProgram, travelDocumentsOptional. Loyalty numbers must match the passenger name.
Per-passenger email/phonepassengers[].contact / Pax-referenced ContactInfoIrregular-ops contact — see contacts.
Booking notification contactOrder contact / unreferenced ContactInfoNot on the passenger object.

Passenger types

CodeMeaning
ADTAdult
CHDChild
INFInfant (lap)

Infants cannot exceed adults (ERR-7003 / validation ERR-1005). Duplicate passenger IDs in one request are rejected. Unaccompanied minors are not supported — UNN is rejected on offer search, price, and create.

IDs across the booking flow

  1. On offer search, paxId is optional — when omitted, IDs are synthesized as PX1..PXn (JSON) in declaration order.
  2. On price and offer-scoped seats/services, send stable IDs if you will book ancillaries with the create (for example ADT-1). Anonymous passengers without IDs leave seat/service quotes without bookable offerItemIds.
  3. On create, passengerId values must match the IDs used when selecting offer items and ancillaries.
  4. On retrieve / change, use the IDs from the order view (paxId / PaxID, often normalized like ADT-1).

Gender

SurfaceSendRead back
JSONMale or Female, spelled exactly (case-sensitive)genderCode: M or F
XMLGenderCode M / F, or Male / Female (case-insensitive)GenderCode M / F

Gender is optional on both surfaces, but the only stored values are male and female — there is no undisclosed option. A JSON create with gender: "F" or "female" fails validation; use Female.

Name changes and loyalty

  • A name change after booking may carry a fee. Quote it first (reshop NameChange / OrderReshop), then apply the change with payment when required.
  • A loyalty number must be a real member number matching the passenger's name. Mismatched or unrecognized numbers are rejected (ERR-7008).

Testing tip

The reservation system rejects a passenger with the same name already booked on the same flight. Between test bookings, change the passenger name or the travel date — the usual cause of ERR-4001 during sandbox testing.