Field reference: airlineDetails
airlineDetailsAll fields are optional. If you send a field, it must pass its rule. Lengths are in characters.
Formats used below
| Format | Rule |
|---|---|
| Alphanumeric | letters and digits only, no spaces (^[0-9A-Za-z]+$) |
| Alphanumeric + space | letters, digits and spaces (^[0-9A-Za-z ]+$) |
| Decimal | an amount as a string: digits with an optional . part, e.g. "3500.00". No sign, commas or currency (^[0-9]+(\.[0-9]+)?$) |
| Date | yyyy-MM-dd, a real calendar date |
| Time | HH:mm or HH:mm:ss plus a zone: Z, +04, +04:00 or +0400. Use the local time of the airport |
| Any | any characters |
Array (list) limits
The payload has three arrays. All are optional. If you send one, its number of items must be within these limits:
| Array | Min items | Max items | Error if exceeded |
|---|---|---|---|
airlineDetails.passengers | 0 | 13 | passengers must contain 13 passengers or fewer |
airlineDetails.itinerary.legs | 0 | 9 | legs must contain 9 trip legs or fewer |
airlineDetails.ticket.taxOrFees | 1 (when sent) | no limit | taxOrFees must contain at least 1 item when supplied |
-
A breach returns
400witherrorCode: invalidFieldValue. -
An empty
passengersorlegsarray ([]) is accepted. An emptytaxOrFeesarray is rejected, so leavetaxOrFeesout if you have no taxes or fees. -
Each item inside an array is validated with the rules in the
legs[],passengers[]andtaxOrFees[]tables below. -
The capture
airlineobject has no arrays. It carries one passenger per capture.
airlineDetails
airlineDetails| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
bookingReferenceNumber | Booking reference (PNR / record locator) | string | 6–15 | Alphanumeric |
documentType | Type of airline document | enum | n/a | see Allowed values below |
transactionType | Type of airline transaction | enum | n/a | see Allowed values below |
planNumber | Plan number supplied by the airline for this booking | string | 2 | Alphanumeric |
itinerary | Trip details | object | n/a | itinerary table below |
passengers | Passengers on the booking | array | 0–13 items | passengers[] table below |
ticket | Ticket details | object | n/a | ticket table below |
airlineDetails.itinerary
airlineDetails.itinerary| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
numberInParty | Number of passengers on the booking | number | n/a | whole number 1–999 |
originCountry | Country where the trip starts | string | 3 | ISO 3166-1 alpha-3, upper case (e.g. ARE) |
legs | Flight legs | array | 0–9 items | legs[] table below |
airlineDetails.itinerary.legs[]
airlineDetails.itinerary.legs[]| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
carrierCode | Airline operating the leg | string | 2, 3 or 6 | IATA code (EK), 3-digit code (176) or both (EK/176) |
customerCode | Customer code for the leg | string | up to 27 | Alphanumeric |
conjunctionTicketNumber | Ticket holding this leg's coupon (itineraries with more than 4 legs) | string | 11–16 | Alphanumeric |
couponNumber | Coupon number for this leg | string | 1 | Alphanumeric |
departureAirport | Departure airport | string | 3 | IATA airport code, upper case (e.g. DXB) |
departureDate | Departure date | string | n/a | Date |
departureTime | Departure time (local to departure airport) | string | n/a | Time |
departureTax | Departure tax for the leg | string | 1–14 | Decimal |
destinationAirport | Arrival airport | string | 3 | IATA airport code, upper case (e.g. LHR) |
destinationArrivalDate | Arrival date (local to arrival airport) | string | n/a | Date |
destinationArrivalTime | Arrival time (local to arrival airport) | string | n/a | Time |
endorsementsRestrictions | Endorsements / restrictions (e.g. non-refundable) | string | 1–20 | Alphanumeric |
exchangeTicketNumber | New ticket number issued on exchange | string | 11–16 | Alphanumeric |
fare | Fare for the leg | string | 1–14 | Decimal |
fareBasis | Fare basis code | string | 1–24 | Alphanumeric + space |
fees | Fees for the leg | string | 1–14 | Decimal |
flightNumber | Flight number | string | 4–6 | Alphanumeric (e.g. EK001) |
stopoverPermitted | Whether a stopover is permitted | boolean | n/a | true / false |
taxes | Taxes for the leg | string | 1–14 | Decimal |
travelClass | Class of service code | string | 1–3 | Alphanumeric (e.g. F, J, Y) |
airlineDetails.passengers[]
airlineDetails.passengers[]| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
title | Title (e.g. MR, MRS) | string | 1–20 | Any |
firstName | First name | string | 1–50 | Any |
middleName | Middle name | string | 1–50 | Any |
lastName | Last name | string | 1–20 | Any |
frequentFlyerNumber | Frequent flyer / loyalty number | string | 1–20 | Any |
specificInformation | Passenger-specific information on the ticket | string | 1–59 | Alphanumeric |
Settling per passengerIf you settle per passenger, put the passenger's name and ticket number on each capture (Capture with multi-clearing data). Otherwise the first passenger in this list is used for every capture.
airlineDetails.ticket
airlineDetails.ticket| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
ticketNumber | Airline ticket number | string | 11–16 | Alphanumeric |
eTicket | Whether an electronic ticket was issued | boolean | n/a | true / false |
restricted | Whether the ticket is restricted (non-refundable) | boolean | n/a | true / false |
conjunctionTicketIndicator | Whether a conjunction ticket (extra coupons) was issued | boolean | n/a | true / false |
exchangedTicketNumber | Original ticket number, for an exchanged ticket | string | 11–16 | Alphanumeric |
issue | Where and by whom the ticket was issued | object | n/a | issue table below |
taxOrFees | Breakdown of taxes and fees | array | 1 or more items (when sent) | taxOrFees[] table below |
totalFare | Total fare for all legs | string | 1–14 | Decimal |
totalFees | Total fees for all legs | string | 1–14 | Decimal |
totalTaxes | Total taxes for all legs | string | 1–14 | Decimal |
Check your totalsThe
taxOrFeesamounts should add up tototalFees+totalTaxes.
airlineDetails.ticket.issue
airlineDetails.ticket.issue| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
address | Ticket issue address | string | 1–16 | Any |
carrierCode | Airline issuing the ticket | string | 2, 3 or 6 | IATA code (EK), 3-digit code (176) or both (EK/176) |
carrierName | Name of the issuing airline | string | 1–25 | Alphanumeric, no spaces (e.g. Emirates) |
city | City where the ticket was issued | string | 1–100 | Any |
country | Country where the ticket was issued | string | 3 | ISO 3166-1 alpha-3, upper case |
date | Ticket issue date | string | n/a | Date |
travelAgentCode | Travel agent industry code | string | 8–9 | Alphanumeric |
travelAgentName | Travel agent name | string | 1–30 | letters, digits, space and . , ' & / \ ( ) - |
airlineDetails.ticket.taxOrFees[]
airlineDetails.ticket.taxOrFees[]| Field | Description | Type | Length | Format / allowed values |
|---|---|---|---|---|
amount | Tax / charge / fee amount | string | 1–14 | Decimal |
type | IATA tax / charge / fee code | string | 3 | Alphanumeric (e.g. YQT, UKS, TT1) |
Field reference: capture airline
airline| Field | Mandatory | Type | Length | Format / allowed values | Description |
|---|---|---|---|---|---|
multiClrSeqNum | Yes | string | 2 | two digits (^[0-9]{2}$) | Position of this capture in the set, e.g. 01 |
multiClrCntNum | Yes | string | 2 | two digits (^[0-9]{2}$) | Total captures in the set, e.g. 03 |
multiClrInd | Yes | string | 1 | M or F (lower case accepted) | M = more to follow, F = final |
ticketNumber | No | string | 11–16 | Alphanumeric | Ticket number for this capture |
passengerFirstName | No | string | 1–50 | Any | Passenger first name for this capture |
passengerMiddleName | No | string | 1–50 | Any | Passenger middle name for this capture |
passengerLastName | No | string | 1–20 | Any | Passenger last name for this capture |
Allowed values
Enum values are case-sensitive: send them exactly as listed.
documentType
documentType| Value | Value |
|---|---|
ADDITIONAL_COLLECTION | GROUP_TICKET |
AGENCY_EXCHANGE_ORDER | IN_FLIGHT_ADJUSTMENT |
AGENCY_GROUP_TICKET | IN_FLIGHT_CHARGES |
AGENCY_MISCELLANEOUS_CHARGE_ORDER | IN_FLIGHT_DUTY_FREE_PURCHASE |
AGENCY_PASSENGER_TICKET | IN_FLIGHT_MERCHANDISE_ORDERED |
AGENCY_TOUR_ORDER_OR_VOUCHER | IN_FLIGHT_PHONE_CHARGES |
AIR_FREIGHT | KENNEL_CHARGE |
ANIMAL_TRANSPORTATION_CHARGE | LOST_TICKET_APPLICATION |
CATALOGUE_MERCHANDISE_ORDERED | MISCELLANEOUS_CHARGE_ORDER_OR_PREPAID_TICKET_ADVICE |
CLUB_MEMBERSHIP_FEE | MISCELLANEOUS_TAXES_FEES |
COUPON_BOOK | PASSENGER_TICKET |
CREDIT_CLASS_SERVICE_ADJUSTMENT | SELF_SERVICE_TICKETS |
CREDIT_DENIED_BOARDING | SENIOR_CITIZEN_DISCOUNT_BOOKLETS |
CREDIT_EXCHANGE_REFUND | SMALL_PACKAGE_DELIVERY |
CREDIT_LOST_TICKET_REFUND | SPECIAL_SERVICE_TICKET |
CREDIT_MISCELLANEOUS_REFUND | SUPPORTED_REFUND |
CREDIT_MULTIPLE_UNUSED_TICKETS | TICKET_BY_MAIL |
CREDIT_OVERCHARGE_ADJUSTMENT | TOUR_DEPOSIT |
CREDIT_UNUSED_TRANSPORTATION | TOUR_ORDER_VOUCHER |
DEBT_ADJUSTMENT_DUPLICATE_REFUND_OR_USE | UNDERCHARGE_ADJUSTMENT |
DUTY_FREE_SALE | UNSUPPORTED_REFUND |
EXCESS_BAGGAGE | UPGRADE_CHARGE |
EXCHANGE_ADJUSTMENT | VENDOR_REFUND_CREDIT |
EXCHANGE_ORDER | VENDOR_SALE |
FIREARMS_CASE | |
FREQUENT_FLYER_FEE_OR_PURCHASE | |
FREQUENT_FLYER_FULFILLMENT | |
FREQUENT_FLYER_OVERNIGHT_DELIVERY_CHARGE |
transactionType
transactionTypeEXCHANGE_TICKET, MISCELLANEOUS_CHARGE, REFUND, REVERSAL, TICKET_PURCHASE, TOUR_ORDER
Other fixed values
| Field | Allowed values |
|---|---|
| Airports | IATA 3-letter code, upper case (DXB, LHR) |
| Countries | ISO 3166-1 alpha-3, upper case (ARE, GBR, JOR) |
| Carrier codes | XX, 123 or XX/123 |
| Booleans | true / false (JSON booleans, not strings) |
numberInParty | JSON number, 1–999 |
multiClrInd | M / F |
multiClrSeqNum, multiClrCntNum | 00–99 |
passengers array | 0–13 items |
legs array | 0–9 items |
taxOrFees array | at least 1 item when sent, no maximum |

