NDC Guide
The Travelport JSON Air APIs support New Distribution Capability (NDC) content in addition to standard GDS content.
Although workflows, requests, and responses are generally the same for both NDC and GDS, airline-specific processes require some differences in implementation in the JSON APIs. This guide discusses general NDC support in the JSON APIs and high-level differences by API. The API references provide object-level details on differences in usage or responses.
In this topic:
NDC Basic Concepts
NDC is a program launched by IATA to facilitate content directly from airlines to online travel agencies. NDC is an XML standard for exchanging data, and is intended to replace the old EDIFACT protocol that has been used by Global Distribution Systems (GDS).
The NDC XML protocol allows airlines to provide rich content and ancillaries directly to online travel agencies, GDS, and travel management companies via a set of standard APIs. It provides access to differentiated content that is often only available through the airlines' direct channels.
Participating Carriers
The JSON APIs have been certified to provide NDC content from the following carriers:
- Qantas (QF)
- United Airlines (UA)
- American Airlines (AA)\
- Singapore Airlines (SQ)
Information about additional carriers will be provided here as they join.
Prerequisites for NDC
To access NDC content you must be provisioned for NDC with Travelport and registered with the NDC airline. Validation occurs at these levels when a request for NDC content via any JSON API is received:
- Validation that the requester is provisioned for NDC within Travelport.
- Request details are sent to the airline system. Airline validates that the requester is registered with them for NDC content.
- Aggregated NDC and GDS content is returned as requested.
Supported Forms of Payment and POS
The forms of payment and credit card types accepted for NDC content varies by carrier. The tables below list the forms of payment, credit card types, and POS support by carrier.
Form of Payment Support by NDC Carrier
Airline | Cash | Credit Card | Debit Card |
---|---|---|---|
Qantas (QF) |
Yes |
Yes |
Yes (handled same as credit card) |
American Airlines (AA) |
Yes |
Yes |
No |
United Airlines (UA) |
No |
Yes |
Yes (UA does not differentiate between credit and debit cards) |
Singapore Airlines (SQ) |
Yes |
Yes |
Yes (handled same as credit card) |
Air France (AF)/KLM (KL) |
Yes |
Yes |
Yes (handled same as credit card) |
Credit Card Type Support by NDC Carrier
Airline | Visa | Mastercard | American Express | Diners Club | JCB | UATP | Discover Card | Universal Air Travel Card |
---|---|---|---|---|---|---|---|---|
Qantas (QF) |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
American Airlines (AA) |
Yes |
Yes |
No |
No |
No |
No |
No |
No |
United Airlines (UA) |
No |
Yes |
Yes (except CO) |
Yes (except GB, SE, IN) |
Yes (US & JP only) |
Yes (US and others, limited) |
Yes (US and others, limited) |
No |
Singapore Airlines (SQ) |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
No |
Air France (AF)/KLM (KL) |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
Point of Sale (POS) Support by NDC Carrier
If a country is not listed below, the carrier does not support that country.
Supported POS Country |
Singapore Airlines (SQ) |
Qantas (QF) |
---|---|---|
Australia |
Yes |
Yes |
Bangladesh |
Yes |
No |
Benelux |
Yes |
No |
Cambodia (Vietnam) |
Yes |
No |
Cyprus |
Yes |
No |
Denmark |
Yes |
No |
Estonia |
Yes |
No |
Finland |
Yes |
No |
France |
Yes |
No |
Germany |
Yes |
No |
Greece |
Yes |
No |
Hong Kong |
Yes |
No |
Hungary |
Yes |
No |
Iceland |
Yes |
No |
India |
Yes |
No |
Indonesia |
Yes |
No |
Israel |
Yes |
No |
Italy |
Yes |
No |
Japan |
Yes |
No |
Korea |
Yes |
No |
Latvia |
Yes |
No |
Lithuania |
Yes |
No |
Malaysia |
Yes |
No |
Malta |
Yes |
No |
Myanmar (Thailand) |
Yes |
No |
Nepal |
Yes |
No |
New Zealand |
Yes |
Yes |
Norway |
Yes |
No |
Philippines |
Yes |
No |
Poland |
Yes |
No |
Romania |
Yes |
No |
Russia |
Yes |
No |
Singapore |
Yes |
No |
South Africa |
Yes |
No |
Spain |
Yes |
No |
Sri Lanka (India) |
Yes |
No |
Sweden |
Yes |
No |
Switzerland |
Yes |
No |
Thailand |
Yes |
No |
Taiwan |
Yes |
No |
United Arab Emirates (UAE) |
Yes |
No |
United Kingdom (UK) |
Yes |
No |
Vietnam |
Yes |
No |
Carrier Specific Notes
For Qantas:
- Sending customer loyalty numbers (CustomerLoyalty object) in the Search request is supported only for Qantas. If sent, the response returns the CustomerLoyaltyCredit object in TermsAndConditions.
- When running a multiple passenger search, Qantas supports only these PTCs: ADT, CHD, CNN, INF. Sending any other PTC may result in an error at ticketing.
- Qantas supports only one account code. If multiple codes are sent, only the first code is processed.
For United Airlines:
- UA returns baggage text in TermsAndConditionsAir/BaggageAllowance/BaggageItem.
For Singapore Airlines:
- Singapore Airlines returns tax codes but not tax descriptions in responses.
- OB fees are added to the total fare only if a credit card BIN number is provided in the AirPrice request. If this is not done, and a credit card is then used to ticket the booking which had been held without an FOP or with a FOP different from the one subsequently used to ticket, then ticketing will fail due to price mismatch. Support will be added in a future release to support this workflow and ensure the ticketing does not fail.
- Singapore Airlines charges OB fees when a credit card is used as a Form of Payment in the following point-of-sale countries: United Kingdom, Netherlands, Australia, New Zealand, and Belgium. For these countries, OB fees are charged when provided with BIN number at the time of Price. OB fees are added to the offer price at the time the booking is created.
NDC and GDS Differences in the JSON APIs
Travelport is an active participant in NDC while still providing a single, consistent workflow through which to search, shop, book, and manage travel. As the NDC technology continues to develop, some differences do exist between NDC and GDS for certain functionality in the JSON APIs.
One important difference is that in the GDS traditional distribution channel, Travelport issues the ticket using the GDS ticketing system, while the airline itself issues an NDC transaction, including payment. Although most JSON API workflows are the same for both GDS and NDC, because of how ticketing is handled you'll notice some differences.
The following sections summarize the high-level differences between GDS and NDC in the JSON APIs. Full details including object-level differences are noted in the API reference for each API.
General Differences
Identifier values
Identifier values for system-generated IDs may vary between GDS and NDC content across the JSON APIs. Specifically, when Identifier authority/value key pairs are returned, authority for GDS content is Travelport while for NDC content this is the code for the issuing NDC carrier. See Identifier Values, IDs, and Transaction IDs in the Air Shopping Basics topic for more about identifiers.
In the short ids, NDC and GDS content use a different numbering scheme. NDC incorporates the carrier code into ids for offers, products, brands, flights, and terms and condition, while GDS does not. For example:
- For NDC, the first offer id on Qantas would be QF_CPO0 and the second offer id QF_CPO1. NDC products on, for example, Singapore Airlines are numbered SQp0, SQp1, etc.
- For all carriers, these numbers in a GDS offer would start with o0 and o1 for offers and p0 and p1 for products.
Branded Fares
The search APIs return branded fares using the same response structure for both NDC and GDS, with the following minor differences:
- NDC does not return the brand tier.
- QF returns the brand name and an Identifier value. UA and AA return the brand name only.
Errors and Warnings
In all APIs, errors for NDC content are returned in the response in the Result object.
To assist with troubleshooting, responses return a transaction ID that can be provided to Travelport API Support as needed. Optionally, you can also send a custom trace ID in the header request to provide additional traceability. See Trace and Transaction IDs.
Search may return either an error or a warning message. Warning messages are returned in Result/Warning instead of Result/Error. The NDC warning and error messages include the carrier code.
The enhanced error messages noted in the individual API error handling topics do not apply to NDC content at this time.

"Result": {
"Warning": [
{
"@type": "Warning",
"Message": "QF : Qantas Frequent Flyers could earn Qantas Points and Status Credits for this booking.
<a href=\"https://www.qantas.com/fflyer/dyn/program/terms\" target=\"_blank\">Terms and conditions apply.</a>"

"Result": {
"Error": [
{
"@type": "Error",
"StatusCode": 2095,
"Message": "AA : No fares available. Code = \"719\""
}
]
}
AirSearch
In the AirSearch API, send the contentSourceList indicator to request both NDC and GDS content, only NDC, or only GDS. If contentSourceList is not sent, only GDS content is returned.
Pagination is not supported for NDC content.
Requests
The following differences apply to NDC content in the request:
- The TravelerGeographicLocation object (which supports local citizen fares) is not validated for NDC content.
- Sending the CustomerLoyalty object for frequent flyer details is supported only for NDC and only on Qantas.
- The optional attribute SearchCriteriaFlight/departureTime is handled differently:
- For GDS, AirSearch does not specify a time window around the requested time, so any valid flight that day may be returned.
- For NDC, sending a departure time limits search results to a 2-hour window before and after that time. If no flights are available during that window, AirSearch returns the message No offers found for the requested Departure time.
Some NDC carriers require that “supplier” be sent along with the account code.
Responses
AirSearch returns the following objects in NDC offerings but not GDS offerings. The NDC-related code is highlighted in each example.
-
CatalogOffering/PriceDetail/PriceBreakdownAir/Amount/Taxes/Tax/description
Show Example
"Taxes": { "@type": "TaxesDetail", "TotalTaxes": "21.51", "Tax": [ { "taxCode": "QR", "description": "PASSENGER SERVICE CHARGE DOMESTIC DEPARTURE", "value": 15.21
-
CatalogOffering/TermsAndConditionsAir/FareRuleInfo
Show Example
"TermsAndConditions": { "@type": "TermsAndConditionsAir", "validatingCarrier": "QF", "FareRuleInfo": [ { "@type": "FareRuleInfo", "flightRefs": [ "QFs26" ], "ruleNumber": "70J"
AirSearch returns the following objects in GDS offerings but not NDC offerings:
- CatalogOffering/ProductOptions/Product/Quantity
- CatalogOffering/ProductOptions/Product/PassengerFlight/FlightProduct/Brand/tier
- CatalogOffering/TermsAndConditions/ExpiryDate
- ReferenceListFlight/IntermediateStop
- PriceBreakdownAir/Commission (returned for GDS in AirSearch 21.9.9 and later if an airline files a commission in a CAT35 fare)
- CatalogOffering/Product/FlightSegment/boundFlightsInd
Search Modifiers
Some search modifiers are not supported for NDC content. If a request includes an unsupported modifier, some NDC carriers return a message that the modifier is not supported, while others ignore the modifier and do not return a message.
Filters for the Search Control Console are not supported for NDC.
The following pricing modifiers in PricingModifiersAir object are not supported for NDC content:
- Fare Restrictions: If any FareSelectionDetail attributes are set to true, no NDC content is returned.
- Currency Override: If the request includes a currency code override, the GDS offerings are returned in the override currency, while the NDC offerings are returned in the currency of the POS.
- Net fares: The NetFaresOnly value for FareSelection/fareType is not supported. NDC does not support net fares.
The following journey modifiers, most in the SearchModifiersAir object, are not supported for NDC content:
- Class of service preference: ClassOfServicePreference
- The optional indicator excludeInterlineConnectionsInd, which excludes interline connections from the results. NDC does not support interline connections.
- Prohibit change of airport: prohibitChangeOfAirportInd
- Exclude ground transportation: excludeGround
- Max connection duration: MaxConnectionDuration
- Max overnight duration: MaxOvernightDuration
Known Issues
The AirSearch response sometimes includes an empty ReferenceListFlight object when no GDS or NDC content is returned; in this case the Result object is returned with errors. This defect will be addressed in an upcoming release.
AirPrice
AirPrice supports a price request for any NDC itinerary using the reference payload request. You cannot price an NDC itinerary from a non-Travelport source.
Fare rule support varies between GDS and NDC. See Fare Rules.
AirReservation
The booking workflow in the AirReservation API is the same for NDC and GDS except as follows.
- The single payload workflow is not supported for NDC.
- For NDC only, AirReservation supports an Instant Pay workflow in which form of payment (FOP) is added, payment is issued, and the ticket is issued all in the initial booking workflow.
Details of certain steps in the booking workflow differ as follows:
- Add Offer:
- NDC supports only the Add Offer reference payload request, which sends identifiers from the Search response.
- For NDC only, multiple add offer steps are supported to combine multiple one-way offers into one PNR at commit.
- Add Form of Payment:
- FOP can be added for NDC added only as part of the Instant Pay workflow. If FOP is added but a ticket is not issued in the commit step, the FOP is not stored and will not be available for retrieval during ticketing.
- The credit card CVV number is required for NDC but optional for GDS.
- FOP agent invoice is not supported for NDC.
- Adding multiple forms of payment is not supported for NDC.
Remarks
The following types of remarks are not supported for NDC:
- Traveler DOCO SSRs
- Minimum secure flight
- SSR child DOB
- Primary contact SSR CTCR
- SSR disability
- OSI comments
- Accounting remarks
- Document override remarks
PNR Retrieve
The following are returned in the PNR retrieve for NDC but not GDS:
- Fare rules
- Ticketing information including terms and conditions specific to ticketing, and ticketing time limits.
- Tax code description
PNR Cancel
While a GDS PNR can be cancelled with a single request, PNR Cancel for NDC requires a workbench session for the request.
AirTicketing
The differences for AirTicketing between NDC and GDS are:
- Fees are not returned in the Ticket Commit response for NDC
- Adding an offer to an existing PNR is not supported for NDC
Ticket Cancel
While a GDS PNR can be cancelled with a single request, canceling a ticket for NDC requires a workbench session, requesting a quote for any refund, and sending a cancel request. Additional options for voiding, refunding, or retaining the ticket value are available. See Cancel Ticket for NDC.