NDC Guide
This guide discusses what NDC New Distribution Capability, an XML standard for exchanging data that supports airlines in distributing their content directly to online travel agencies. See the NDC Guide. is and basic differences in support or workflow for NDC and GDS
Global Distribution System. A GDS aggregates and distributes air, hotel, and car rental content such as schedules, fares, and upsells. In the JSON APIs, GDS content is distributed from Travelport. content.
Most topics in this online help are for both GDS and NDC content, with differences between them noted as applicable. The NDC menu at the top of every page in this online help groups the topics that apply only to NDC.

Related Content: JSON APIs Guide, NDC FAQs
In this topic:
- NDC Basic Concepts
- NDC in the JSON APIs
- NDC Carrier Support
- NDC and GDS Functionality Comparison Chart
NDC Basic Concepts
NDC (New Distribution Capability) is a travel industry standard for the distribution and retailing of flight content. NDC is not a system, database, or piece of software - it is a standard for exchanging data.
What is NDC?
The Travelport JSON Air APIs support both NDC and GDS content, or simply NDC and GDS. These terms refer to the content distribution method:
-
GDS stands for Global Distribution System. A GDS aggregates and distributes air, hotel, and car rental content such as schedules, fares, and upsells
A fare presented along with the base fare as a higher level of service, usually a branded fare. Returned if filed by the carrier and requested with maxNumberOfUpsellsToReturn in the Search request.. Travelport owns the Galileo, Worldspan, and Apollo GDSs, which are also known by the IATA
International Air Transportation Association, an organization that standardizes rules, regulations and fare construction principles for the international travel industry. abbreviations 1G, 1P, and 1V.
-
NDC is for New Distribution Capability, a program launched by the International Air Transport Association (IATA), the trade association for the world's airlines, to facilitate content distribution directly from airlines to online travel agencies. NDC is an XML standard for exchanging data, and is intended to replace the EDIFACT protocol that has been used by Global Distribution Systems (GDS). NDC distributes content directly from airlines to online travel agencies, GDSs, and travel management companies. NDC content is provided and fulfilled directly by the airline, and may include differentiated content available only through the airlines' direct channels.
Although most JSON API workflows, requests, and responses are the same for both GDS and NDC, airline-specific processes do create some differences. Some functionality is supported only for NDC, or only for GDS, as detailed later in this guide. Because NDC is available only to provisioned customers, this online help has a separate NDC top-level menu to group information and processes that apply only to NDC.
Content for both NDC and GDS in the JSON APIs is sourced from the Galileo GDS (Global Distribution System) for most customers. NDC content from the Apollo and Worldspan GDSs is available to specifically provisioned customers. See the NDC Guide for Apollo and Worldspan.
General NDC & GDS Differences
-
NDC is a shopping-led workflow so there is no availability data. Inventory and price are not guaranteed until the booking
A confirmed reservation with the carrier. A held booking is a reservation that has not yet been ticketed. The terms booking and reservation are interchangeable. is fulfilled.
- In NDC the airline controls all data available, including offers, booking, storing, servicing, fulfillment, and ticketing.
- Involuntary changes are sent using order change notifications and don’t use the AIRIMP codes HK/TK. (To accept an involuntary change in the JSON APIs, see Accept Involuntary Schedule Change in the Workbench Commit API Reference.)
-
NDC generally allows 20 to 30 minutes to create a booking (the offer
In the JSON Search APIs, an offer is a product available at a specific price under a set of terms and conditions. An offer includes the flight or connecting flights for one leg of the itinerary, plus a service level that includes the cabin class and any fare codes that may apply. At booking, the selected offer from the Search response - including the flight/s, service level, price, terms and conditions, and brand if applicable - is converted into a single Offer object that is subsequently returned for that booking. time limit). That time limit varies by airline and is returned in the Search response in ReferenceList/TermsAndConditions/ExpiryDate.
- NDC and GDS ticket time limits are the same; a booking will expire if ticketing doesn't take place within a certain time, usually within 24 hours of booking. NDC airlines do not generally return ticket time limit data.
- NDC has two ticketing models: Issuing the ticket on the airline's own stock or using third-party FLX stock.
NDC in the JSON APIs
In general, the JSON APIs handle NDC and GDS content in the same way. Most workflows, requests, and responses across the JSON APIs work the same for both GDS and NDC content, with minor differences noted in the help where applicable.
The exception is that changes to a booked air itinerary The entire trip on a booking, including all flights on all legs. Also called a journey., including voids, exchanges, and refunds, are handled by separate JSON APIs and follow different workflows. This results from differences in how NDC carriers implement these processes.
The NDC menu at the top of every page groups these NDC-specific APIs. Otherwise, all Guides and API References apply to both NDC and GDS.
Prerequisites
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.
Identifying GDS/NDC Offers in the JSON APIs
The JSON APIs identify each offer as either GDS or NDC by returning the value GDS or NDC in the ContentSource object. The examples below show ContentSource as returned in the Reservation Retrieve response. ContentSource is returned in all reservation and ticketing APIs that return the offer on the booking. An upcoming release will add support for returning ContentSource in the Search and AirPrice API responses.
Although Offer/ContentSource provides the simplest way to identify GDS/NDC content, note that Offer/Identifier/authority returns the carrier code for NDC while the value Travelport is returned for GDS.
To request NDC content, in the initial search request, send contentSourceList with either only the value NDC, or both values NDC and GDS. If contentSourceList is not sent, only GDS content is returned.

This example excerpt for NDC content starts is from the beginning of the Reservation Retrieve response and for brevity is truncated after ContentSource.
{
"ReservationResponse": {
"@type": "ReservationResponse",
"Reservation": {
"@type": "Reservation",
"Identifier": {
"authority": "Travelport",
"value": "7018cf18-9c54-4905-a9d5-ccf6926c3555"
},
"Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "QF",
"value": "ZTNjN2Q3YTgtNGI2NC00OGQ1LTg1ZTYtMDkwZDYyNjFmMWRkfFBFMEJFNkE0My1EMDFELTQ2NDAtOEIyRGc0dm03bzh0NG94NnAtMS0x"
},
"ContentSource": "NDC", ...

This example excerpt for GDS content starts with the Offer object and for brevity is truncated after ContentSource.
..."Offer": [
{
"@type": "Offer",
"id": "offer_1",
"Identifier": {
"authority": "Travelport",
"value": "a3b191ad-1709-48da-bd58-741ed7addac7"
},
"ContentSource": "GDS", ...
General Support
The following table outlines broad areas of support in the JSON APIs. More details are provided in the following sections.
NDC Item |
Supported in the JSON APIs |
---|---|
IATA NDC schemas |
17.2, 18.1, and 18.2 |
Itineraries supported |
Single airline on a booking, multiple passengers |
Payment |
Generally cash, credit card, and banked funds; varies by carrier |
Settlement |
ARC and BSP |
Travelport booking file |
|
Mid and back office |
MIR/TAIR (DI lines) |
NDC for Apollo and Worldspan
Content for both NDC and GDS in the JSON APIs is sourced from the Galileo GDS (Global Distribution System) for most customers. NDC content from the Apollo and Worldspan GDSs is available to specifically provisioned customers. See the NDC Guide for Apollo and Worldspan.
Passive Booking Record (PNR)
In the traditional GDS distribution channel, Travelport issues the ticket using the GDS ticketing system, while for NDC the airline itself issues the ticket and handles payment and any subsequent changes. Because the NDC carrier maintains its own booking record (also called a PNR Passenger Name Record. Unique six-digit alphanumeric number that identifies a booking, e.g. JS7GH4. Sometimes used to refer to the booking record itself. Because the term PNR is specific to GDS, this online help uses the more generic term "reservation locator".), Travelport maintains on its host system a passive booking record or passive PNR. This passive PNR generally mirrors the carrier PNR and allows the JSON APIs to return and store information about the booking. At applicable points in the booking workflow, the JSON APIs synchronize this passive booking record with the carrier's booking record.
A successful booking returns a unique six-digit alphanumeric number called the reservation locator Unique six-character alphanumeric code returned for a successful booking, e.g. JS7GH4. For NDC the airline returns an additional locator code, which can be called the vendor locator code. Sometimes called a PNR and used to refer to the booking record as a whole, but because the term PNR is specific to GDS, this online help uses the more generic terms "booking" for the booking record and "reservation locator" for the six-character code. in Receipt/Confirmation/Locator. One instance of Receipt contains the passive record locator for Travelport's passive PNR, returning the locator code itself in Locator/value and a value of either 1G, 1P, or 1V in Locator/source. Another instance of Receipt contains the NDC airline booking reservation locator. This instance returns a carrier code in Locator/source, such as UA or AA, and a different unique code in Locator/value. When sending the record locator in subsequent requests, such as a reservation retrieve, be sure to send the Travelport reservation locator, aka passive PNR code.
The following example shows the Receipt object for a held NDC booking. NDC locators are returned with the carrier code as the source value. In this example, the NDC record locator is returned in the first instance of Receipt/@type ReceiptConfirmation/Confirmation/Locator, with a source value of AA. The Travelport locator, or passive PNR, is returned in the second instance of Receipt/@type ReceiptConfirmation/Confirmation/Locator, with a source value of 1G.

"Receipt": [
{
"@type": "ReceiptConfirmation",
"id": "receipt_1",
"Identifier": {
"authority": "AA",
"value": "fe6d1272-c9cf-4858-88ff-f00ebde2fadc"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "AA",
"sourceContext": "OrderId",
"value": "AA001HD1YYTA7"
}
}
},
{
"@type": "ReceiptConfirmation",
"id": "receipt_2",
"Identifier": {
"authority": "AA",
"value": "50ade55b-09e9-4e06-bd8d-af7039cca702"
},
"OfferRef": [
"offer_1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "AA",
"sourceContext": "VendorLocator",
"value": "NRAHSL"
}
}
},
{
"@type": "ReceiptConfirmation",
"Identifier": {
"authority": "Travelport",
"value": "6ec7bf8f-961c-44fc-8670-87d98aa0d789"
},
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"source": "1G",
"value": "3HPDLQ"
}
}
}
],
Filed Fares
AirReservation applies the following handling to filed fares in the passive PNR:
-
Updates handling of filed fare details so that if the price changes between the time of booking and ticketing, the passive booking record reflects the updated price at ticketing.
-
Updates handling of filed fare details so that if there is any change in the itinerary (date change, time change, routing change, etc.) and the airline exchanges the original ticket for a new ticket, the filed fare for the original ticket is canceled and replaced with the filed fare for the exchanged ticket. This ensures the exchange
Cancel or modify a ticketed itinerary and issue a new ticket. See the Cancel, Exchange, and Refund Options Guide. is handed and reported per ARC/BSP standards and that the same information is sent to the MIR (management information report) and the back office system. (In the BSP market, when the original ticket is exchanged for a new ticket, the fare is collected either as a NO ADC or an ADC. In the ARC(US) market, the fare is created with the total values which includes base fare, taxes and total fare.)
MIR (Machineable Interface Record)
AirReservation supports generating a MIR (machineable interface record) for ticket issuance, ticket exchanges, and ticket voids for NDC in the same format as for GDS ticket issuance, exchange, and void Voiding a ticket cancels the ticket and payment and is based on rules for the market in which the ticket was issued. Generally a ticket can be voided only the same day it was issued, usually up to midnight local agency time. See the Exchange, Refund, and Void Guide.. This ensures consistent mid- and back-office reporting and handling for NDC as well as GDS itineraries.
NDC Carrier Support
Because NDC content is created and supplied directly from the NDC airline, supported capabilities differ by carrier. See the Travelport Knowledge Base article linked for each carrier in the table below for a complete list of carrier-specific differences.
Knowledge Base NDC Resources
Where applicable, this online help lists differences between support for GDS and NDC content in the JSON APIs. Within NDC, however, individual NDC carriers differ in their support for various functionality. The following Travelport Knowledge Base article lists carrier support for functionality and provides links to carrier-specific pages:
You must be logged into the customer portal to view articles. If the link above does not work, or you are not logged in:
-
Log into https://my.travelport.com.
-
In the Help and Resources menu at the top of the page, select Knowledge base.
-
Enter either NDC Capabilities by airline or KB0040467 in the search bar at the top of the page.
If you do not have a Travelport customer login, please contact your Travelport representative.
Participating Carriers
The JSON APIs have been certified to provide NDC content from the carriers in the following table. The linked Knowledge Base articles provide carrier-specific differences.
NDC carrier | Travelport Knowledge Base article |
Air France/KLM (AF/KL) |
|
American Airlines (AA) |
|
avianca (AV) |
|
British Airways (BA) |
|
Emirates (EK) |
|
Iberia Air Lines (IB) |
|
Lufthansa Group (LHG) |
|
Malaysia Airlines (MH) |
|
Qantas (QF) |
|
Qatar Airways (QR) |
|
SAS (SK) |
NDC SK - New Distribution Content for SAS Scandinavian Airlines |
Singapore (SQ) |
|
United (UA) | |
Finnair (AY) |
NDC Support by Country
NDC carrier content is available for booking through the JSON APIs in the countries listed below. Where NDC content is available, your Travelport account manager will ensure you have been enabled for the content. You may also need to register directly with the airline to gain access to the NDC content.
Country | American Airlines (AA) | Qantas Airways (QF) | Singapore Airlines (SQ) | Air France (AF) | KLM (KL) | United Airlines (UA) | British Airways (BA) | Lufthansa Group | Iberia (IB) | Emirates (EK) | Qatar (QR) | avianca (AV) | SAS (SK) | Malaysia Airlines (MH) |
Finnair (AY) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Afghanistan |
|
|
|||||||||||||
Albania | Yes |
|
|
Yes | Yes | Yes | Yes | ||||||||
Andorra |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||||
Angola |
Yes | Yes | |||||||||||||
Antigua | Yes |
|
|
Yes | Yes | Yes | |||||||||
Argentina | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
Aruba | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
Australia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Austria | Yes | Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||
Azerbaijan |
|
Yes | Yes | Yes | |||||||||||
Bahamas | Yes |
|
|
Yes | Yes | ||||||||||
Bahrain | Yes |
|
Yes |
Yes | Yes | Yes | Yes | Yes* | Yes | ||||||
Bangladesh | Yes |
|
|
Yes | Yes | Yes | Yes | ||||||||
Barbados |
Yes | Yes | Yes | ||||||||||||
Barbuda |
Yes | Yes | Yes | ||||||||||||
Belarus | Yes |
|
|
||||||||||||
Belgium | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Belize |
Yes | Yes | |||||||||||||
Benin |
Yes | Yes | Yes | Yes | |||||||||||
Bermuda |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Bolivia |
Yes | Yes | |||||||||||||
Bonaire | Yes |
Yes |
Yes |
Yes | |||||||||||
Bosnia and Herzegovina | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||||
Botswana |
|
|
Yes | Yes | |||||||||||
Brazil | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
British Virgin Islands |
Yes | ||||||||||||||
Bulgaria | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
Burkina Faso |
Yes | Yes | Yes | Yes | |||||||||||
Cambodia (Vietnam) | Yes |
|
|
Yes | Yes | Yes | |||||||||
Cameroon |
Yes | Yes | Yes | Yes | |||||||||||
Canada | Yes | Yes |
|
|
Yes | Yes | Yes | Yes* | Yes | Yes | Yes | Yes | |||
Cayman Islands |
Yes | Yes | Yes | Yes | |||||||||||
Chad |
Yes | Yes | Yes | Yes | |||||||||||
Chile | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
China | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||||
Colombia | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||||
Congo Brazza |
Yes | Yes | |||||||||||||
Cook Islands | Yes |
|
|
Yes | |||||||||||
Costa Rica |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||
Croatia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes* | Yes | Yes | Yes | |||
Curacao | Yes |
Yes |
Yes |
Yes | Yes | ||||||||||
Cyprus | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||||
Czech Republic | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Denmark | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Dominica |
Yes | Yes | Yes | ||||||||||||
Dominican Republic | Yes |
|
|
Yes | Yes | Yes | Yes | ||||||||
Ecuador | Yes |
|
Yes |
Yes | Yes | Yes | Yes | Yes* | |||||||
Egypt |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||
El Salvador |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Estonia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Ethiopia |
Yes | Yes | Yes | ||||||||||||
Fiji | Yes |
|
|
Yes | |||||||||||
Finland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
France | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
French Guiana |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||||
French Polynesia | Yes |
Yes |
Yes |
Yes | Yes | ||||||||||
Gabon |
Yes | Yes | Yes | Yes | |||||||||||
Georgia |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Germany | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Ghana | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||||||
Gibraltar |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Greece | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Greenland |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Grenada |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Guadeloupe | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
Guam |
|
Yes | |||||||||||||
Guatemala | Yes |
|
|
Yes | Yes | Yes | Yes | ||||||||
Guyana | Yes |
|
|
Yes | |||||||||||
Haiti |
Yes | Yes | |||||||||||||
Honduras |
Yes | Yes | Yes | Yes | |||||||||||
Hong Kong | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Hungary | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Iceland | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||||
India | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Indonesia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Ireland | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Israel | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Italy | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Ivory Coast |
Yes | Yes | Yes | ||||||||||||
Jamaica |
Yes | Yes | Yes | Yes | |||||||||||
Japan | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Jordan | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||||
Kazakhstan |
Yes | Yes | Yes | Yes | Yes | Yes | Yes* | Yes | |||||||
Kenya | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||||||
Kiribati |
Yes | Yes | |||||||||||||
Kuwait | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||||
Kyrgyzstan |
Yes | ||||||||||||||
Latvia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Lebanon | Yes |
Yes |
Yes |
Yes | Yes | ||||||||||
Lesotho | Yes | Yes |
Yes |
Yes |
Yes | Yes | |||||||||
Liechtenstein |
Yes | Yes | Yes | ||||||||||||
Lithuania | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Luxembourg | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||
Macao |
|
|
Yes | Yes* | |||||||||||
Macedonia | Yes |
Yes |
Yes |
Yes | Yes | Yes* | Yes | ||||||||
Malawi | Yes | Yes |
Yes |
Yes | Yes | ||||||||||
Malaysia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes* | Yes | Yes | |||
Maldives | Yes |
|
|
||||||||||||
Mali |
Yes | Yes | Yes | ||||||||||||
Malta | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||
Marshall Islands |
|||||||||||||||
Martinique | Yes |
|
Yes | Yes | Yes | Yes | Yes | ||||||||
Mauritania |
Yes | Yes | Yes | ||||||||||||
Mauritius |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Mayotte |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Mexico | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | Yes | Yes* | Yes | ||||
Micronesia |
Yes | ||||||||||||||
Moldova | Yes | Yes |
|
|
Yes | ||||||||||
Monaco | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||||
Mongolia |
|
|
Yes | ||||||||||||
Montenegro | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||
Montserrat |
Yes | Yes | |||||||||||||
Morocco |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||||
Mozambique |
Yes | ||||||||||||||
Myanmar (Thailand) | Yes |
|
|
Yes | |||||||||||
Namibia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | |||||||
Nepal | Yes | Yes |
|
|
Yes | Yes | |||||||||
Netherlands | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||
New Caledonia |
|
Yes |
|
Yes |
Yes |
Yes | |||||||||
New Zealand | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Nicaragua |
Yes | Yes | Yes | Yes | |||||||||||
Niger |
Yes | Yes | Yes | ||||||||||||
Nigeria |
Yes | Yes | Yes | Yes | Yes | ||||||||||
North Mariana Islands |
Yes | ||||||||||||||
Norway | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes* | Yes | Yes | Yes | Yes | ||
Oman | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||||
Pakistan | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | |||||||
Palau |
Yes | ||||||||||||||
Panama |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||
Papua New Guinea | Yes |
|
|
Yes | |||||||||||
Paraguay |
Yes | Yes | Yes* | Yes | |||||||||||
Peru | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||||
Philippines | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes* | Yes | Yes | |||||
Poland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Portugal | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Puerto Rico |
Yes | Yes | Yes | Yes | |||||||||||
Qatar | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Reunion Island | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||||
Romania | Yes | Yes |
Yes |
Yes |
Yes | Yes* | Yes | Yes | Yes | ||||||
Russia | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||||
Rwanda |
Yes | ||||||||||||||
Saba | Yes |
|
|
Yes | |||||||||||
Saint Barthelemy |
Yes | Yes | Yes | ||||||||||||
Saint Kitts and Nevis |
Yes | Yes | Yes | ||||||||||||
Saint Lucia | Yes |
|
|
Yes | Yes | ||||||||||
Saint Martin/ Sint Maarten | Yes |
Yes |
Yes |
Yes | Yes | ||||||||||
Saint Pierre and Miquelon |
Yes | Yes | Yes | Yes | |||||||||||
Saint Vincent and the Grenadines |
Yes | Yes | Yes | ||||||||||||
Samoa |
|
|
|||||||||||||
San Marino |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||||
Saudi Arabia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Senegal |
Yes | Yes | Yes | Yes | Yes | ||||||||||
Serbia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||||
Singapore | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Sint Eustatius | Yes |
|
|
Yes | |||||||||||
Slovakia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes* | Yes | Yes | Yes | ||||
Slovenia | Yes | Yes |
Yes |
Yes |
Yes | Yes* | Yes | Yes | |||||||
South Africa | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
South Korea | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Spain | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
Sri Lanka (India) | Yes | Yes | Yes |
|
Yes |
Yes | Yes | Yes | Yes | ||||||
Suriname | Yes |
Yes |
Yes |
Yes | |||||||||||
Swaziland | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||||||
Sweden | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Switzerland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Taiwan | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes* | Yes | Yes | |||
Tanzania |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||||||
Thailand | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes* | Yes | Yes | |||
Togo |
Yes | Yes | Yes | ||||||||||||
Trinidad & Tobago | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||||||
Tunisia |
Yes | Yes | Yes | Yes | |||||||||||
Turkey | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | ||||
Turks and Caicos |
Yes | Yes | Yes | ||||||||||||
Uganda |
Yes | Yes | Yes | Yes | Yes | Yes | |||||||||
Ukraine | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes** | ||||||||
United Arab Emirates |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
United Kingdom | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | Yes | Yes |
United States | Yes | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Uruguay | Yes |
Yes |
|
Yes | Yes | Yes | Yes | ||||||||
Vatican |
Yes | ||||||||||||||
Venezuela |
|
|
Yes | ||||||||||||
Vietnam | Yes | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | Yes* | |||||
Zambia | Yes |
|
|
Yes | Yes | ||||||||||
Zimbabwe |
Yes |
NDC and GDS Functionality Comparison Chart
As the NDC technology continues to develop, the JSON APIs handle certain functionality differently between NDC and GDS:
-
Ticketing: In the GDS distribution channel, Travelport issues the ticket. For NDC, the airline itself issues the ticket and handles payment and any subsequent changes. The general JSON API booking workflow is the same for both GDS and NDC in the JSON APIs.
-
Changes to a booking: After booking, however, GDS and NDC use separate APIs and workflows for voids, exchanges, refunds, and certain modifications. This results from differences in how these processes are implemented by the NDC carriers.
-
Payment: Payment processes can differ between GDS and NDC, and for individual NDC carriers.
The NDC menu at the top of every page in this online help groups the NDC-only topics. Otherwise, all topics in this online help apply to both NDC and GDS with differences noted where applicable.
The following table outlines the functionality differences between NDC and GDS in the JSON APIs.
API and Functionality |
NDC Only |
GDS Only |
Supported for both with differences |
---|---|---|---|
General (functionality across multiple APIs) |
|||
Identifier values for system-generated IDs |
The value returned in responses for Identifier/authority value for GDS is Travelport while for NDC this value is the code for the issuing NDC carrier. See Identifiers in the JSON APIs for more about identifiers across all JSON APIs. |
||
Identifier values for short IDs |
NDC and GDS use a different numbering scheme for short identifiers for offers, products, brands, etc., in which NDC incorporates the carrier code while GDS does not. For example:
See Identifiers in the JSON APIs for more about identifiers across all JSON APIs. |
||
Branded fares |
Branded fares are returned for both NDC and GDS with the following minor differences: |
||
Several APIs return several objects with NTD for any fare with a private fare |
GDS only |
||
AvailabilitySourceCode object (returned in ReferenceList/ReferenceListFlight to assist in troubleshooting) |
GDS only |
|
|
Search |
|||
Content Optimizer (formerly Search Control Console) |
|
GDS only |
|
|
GDS only |
|
|
Flight Specific Search (both reference and full payload |
GDS only |
||
Infants per adult passenger |
For NDC carriers, only 1 INF (infant in lap) is allowed per 1 adult PTC |
||
The following objects in TravelerGeographicLocation, used to support local citizen fares:
|
NDC only |
|
|
The following optional indicators in the Search request:
|
GDS only |
||
The following pricing modifiers (PricingModifiersAir) in the Search request:
|
|
GDS only |
|
The following pricing modifiers (PricingModifiersAir) in the Search request:
|
NDC only |
||
Refundability and changeabiility options (sent in PricingModifiersAir/FareSelection in the Search request) |
|
|
Up to 6 selection criteria can be sent in for NDC; up to 12 are supported for GDS. |
The following journey modifiers (SearchModifiersAir) in the Search request:
|
|
GDS only |
|
Applying journey modifiers (SearchModifiersAir) at the leg level in the Search request instead of to the full itinerary. |
GDS only |
||
In the Search response, the following objects are returned only for GDS:
|
GDS only |
||
Behavior when upsells are not requested (maxNumberOfUpsellsToReturn) |
For GDS, when maxNumberOfUpsellsToReturn is either not provided or is sent as 0, the lowest priced offer is returned. For NDC:
|
||
In PriceBreakdown:
In PriceBreakdown/Amount/taxes:
In ProductBrandOffering:
|
NDC only |
As part of support for multi-city NDC offers continue to return price details in both ProductBrandOffering/Price and ProductBrandOffering/BestCombinablePrice. A future deployment will remove ProductBrandOffering/Price from NDC offers. |
|
The UpsellOffering object in the Search response is returned by default for NDC offers on United Airlines (UA) only when dynamic bundle fares (DBF) are available and NDC content has been requested. Not returned for other NDC carriers. |
NDC only; United Airlines only |
||
AirPrice |
|||
|
|
The full payload request is supported for NDC only on specific carriers. The AirPrice reference payload request is supported for all supported NDC carriers. |
|
Upsells at AirPrice |
NDC only |
|
Upsells are supported only in the full payload request, only for specific NDC carriers, by sending MaxNumberOfUpsellsToReturn set to the number of upsells to return. |
The following objects in the AirPrice request:
|
GDS only |
|
|
Pricing modifiers in the pricing request:
|
GDS only |
||
In the AirPrice response:
|
GDS only |
||
|
GDS only |
|
|
Ancillaries and EMDs |
|||
Support for specific ancillaries (e.g., paid bags, carbon offset) |
Supported ancillaries differ for NDC and GDS, and by NDC carrier. See the support section of the Ancillaries and EMDs Guide. |
||
Ancillary workflow support |
Ancillaries can be shopped and booked at various points in the workflow. See the support section of the Ancillaries and EMDs Guide. |
||
Ancillary price |
NDC only |
||
EMDs |
|
|
Payments and EMDs for Seats and Ancillaries
Sending payment and issuing an EMD for a seat or ancillary
![]() ![]() ![]() |
Returned in the Ancillary Shop response to normalize baggage data for GDS carriers with data returned in Travelport SOAP/XML API:
|
|
GDS only |
|
GDS only |
|||
|
The Ancillary Cancel API supports canceling baggage and/or seats for both GDS and NDC, and canceling non-baggage paid ancillaries for NDC. Canceling non-baggage paid ancillaries for GDS is not supported. |
||
Seats (also see EMDs above) |
|||
Seats support |
Support varies for NDC and GDS, and by NDC carrier. See the support section of the Seats Guide. |
||
Standalone Seat Map API (full payload seat map request) |
|
GDS only |
|
Seat map caching after Search and AirPrice requests
|
|
|
Seat map results are not cached outside a workbench for NDC, and the seat map request must be repeated during booking. See the support section of the Seats Guide. |
Booking seats in multiple workbench sessions |
|
|
For NDC you must select all seats in the same workbench session; you cannot make additional seat selections in a subsequent workbench session. |
Seat Book response |
GDS responses return an identifier for each booked seat and the corresponding seat details, including seat assignment. NDC seat book responses return only an identifier for each booked seat and no seat details. |
||
Seat modify instead of cancel and rebook |
|
GDS only |
|
Seats bundled with airfares (UA dynamic bundled fares only); available for shop but not currently available for booking |
NDC only; United Airlines only |
||
Standalone Fare Rules |
|||
Fare rules |
Fare rule support varies between GDS and NDC. See the Fare Rules Guide. |
||
AirReservation |
|||
Instant Pay workflow (create reservation and issue the ticket in the same initial booking session) |
NDC only |
||
Add Product booking workflow (alternate workflow that skips the Search and AirPrice requests that usually initiate the JSON APIs workflow; includes the Add Product and Standalone Price requests) |
GDS only |
||
Add Offer request |
|
NDC supports only the reference payload Add Offer request. GDS supports both the full and reference payload |
|
Multiple Add Offer reference payload requests to book multiple air offers on one booking |
|
GDS only |
|
All pricing modifiers in Add Offer request |
GDS only |
|
|
Send multiple Add Offer requests to combine multiple offers into one booking |
|
GDS only |
|
Add offer to reservation with expired booking |
|
GDS uses the Add Offer request to renew an expired booking. NDC uses the Reprice API to reprice a booking either before or after the price guarantee expires. |
|
|
GDS only |
||
Add Form of Payment (FOP):
|
|
GDS only |
NDC supports adding FOP only in the instant pay and ticketing workflows. If FOP is sent for NDC during the workflow that creates a held booking, the FOP is not stored. |
Add Form of Payment credit card CVV |
|
Required for NDC, optional for GDS. |
|
|
|
Supported in the initial booking workflow for both GDS and NDC, where these requests delete or update an FOP added in the same booking workbench. For an existing reservation, supported only for GDS. |
|
In the workbench commit:
|
GDS only |
||
Sending the account code/corporate ID number in the workbench commit, if that code was sent as a pricing modifier |
NDC only |
||
Reservation Retrieve request:
|
GDS only |
||
Reservation retrieve response:
|
|
GDS only |
|
NDC only |
|
||
Shell bookings (a reservation that does not have any air segments booked and contains only traveler details, created in certain cases when a booking fails and the autoDeleteDate query parameter has been set) |
GDS only |
||
Reservation cancel |
Canceling a reservation for NDC requires a workbench session and a cancel request that sets the RetainFlag parameter to false to indicate the cancel operation. Send a single request to cancel a GDS reservation. Does not use RetainFlag. |
||
Remarks & Service Requests |
|||
Specific remarks:
|
|
GDS only |
See the Remarks and Service Requests Guide / API Reference for detailed remark/SSR support and carrier-specific details. |
Additional request in the same workbench session to add or delete same type of remark |
On an existing reservation, to send an additional request for the same type of item (such as deleting an SSR and adding a new SSR, or deleting two SSRs):
|
||
AirTicketing |
|||
Apply the balance on an unused ticket as form of payment to a separate booking |
NDC only; limited carrier support |
||
Display fees in the Workbench Commit response |
GDS only |
||
Ticket display |
To retrieve a GDS ticket use the Ticket Retrieve API. To retrieve an NDC ticket use the NDC Ticket Retrieve API. |
||
Ticket void, cancel, and refund |
For NDC, use the same process to void a ticket or cancel and issue a refund, depending on whether the ticket is inside the allowable void period. See the Exchange, Refund, and Void Guide. For GDS, only ticket void is supported. Cancel/refund functionality is under development. |
||
Air Modify, Exchanges, and Refunds |
|||
Air modify and exchanges |
For NDC, use the NDC Exchange APIs (Reshop, Reprice, and Resell) to modify the air itinerary on either a held booking or a ticket. For GDS, use the GDS Exchange APIs (Exchange Eligibility and Exchange Search) to exchange a GDS ticket. For a held booking, you cannot modify the air itinerary; you must cancel and rebook. See the Exchange, Refund, and Void Guide for both GDS and NDC processes. |
||
NDC only |
See the Exchange, Refund, and Void Guide. |