NDC Guide
This guide discusses what NDC is and any differences in support or workflow for NDC from GDS content.
Related Content: JSON APIs Guide, NDC FAQs
In this topic:
- NDC Basic Concepts
- NDC in the JSON APIs
- Filed Fares, Passive Booking Record, and MIR
- Knowledge Base NDC Resources
- 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. Travelport owns the Galileo, Worldspan, and Apollo GDSs, which are also known by the IATA 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.
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 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 time limit). Note that per FAQs and Best Practices, Travelport retains a search in cache for 12 minutes so it can be added as an offer to the workbench. A workbench is valid for 30 minutes and must be committed within that time window or it expires.
- 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 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 the air itinerary, and 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.
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 |
Cash, credit card, and banked funds (see Supported Forms of Payment below) |
Settlement |
ARC and BSP |
Travelport booking file |
Passive segment (ZK) |
Mid and back office |
MIR/TAIR (DI lines) |
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.
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)
- Air France (AF)
- KLM (KL)
- Lufthansa Group (LHG), includes the carriers Lufthansa (LH), Austrian (OS), Brussels (SN), and Swiss (LX)
- British Airways (BA)
- Qatar Airways (QR)
- Iberia Air Lines (IB)
- Avianca (AV), includes the carriers Avianca Ecuador (2K), Avianca Costa Rica (LR), Avianca El Salvador and Avianca Guatemala (TA)
Information about additional carriers will be provided here as they join.
Supported Forms of Payment
The forms of payment and credit card types accepted for NDC content varies by carrier. The tables below list the forms of payment and credit card types supported by each carrier.
Form of Payment Support by NDC Carrier
Carrier |
Cash |
Credit Card |
Debit Card |
---|---|---|---|
QF |
Yes |
Yes |
Yes |
AA |
Yes |
Yes |
Yes |
UA |
No |
Yes |
Yes (UA does not differentiate between credit and debit cards) |
SQ |
Yes |
Yes |
Yes |
AF/KL |
Yes |
Yes |
Yes |
LHG |
Yes |
Yes |
Yes |
BA |
Yes |
Yes |
Yes |
QR |
Yes |
Yes |
Yes |
IB |
Yes |
Yes |
Yes |
AV |
Yes |
Yes |
Yes (Visa and Mastercard) |
Credit Card Type Support by NDC Carrier
Carrier |
Visa |
Mastercard |
American Express |
Diners Club |
JCB |
UATP |
Discover Card |
Universal Air Travel Card |
---|---|---|---|---|---|---|---|---|
QF |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
AA |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
No |
UA |
Yes |
Yes |
Yes (except CO) |
Yes (except GB, SE, IN) |
Yes (US & JP only) |
Yes (US and others, limited) |
Yes (US and others, limited) |
No |
SQ |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
No |
AF/KL |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
LHG |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
BA |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
QR |
Yes |
Yes |
Yes (credit card only, not debit) |
No |
No | No | No | No |
IB |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
No |
AV |
Yes |
Yes |
Yes |
Yes |
No |
No |
Yes |
No |
NDC Content for Apollo and Worldspan
Carrier Specific Notes
The notes below list broad areas of support for each carrier. For detailed NDC carrier support, see the Travelport Knowledge Base NDC Resources.
Qantas
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.
In an exchange or modification, the Reshop request supports only the cabin class and fare type search modifiers for QF.
The Cancel Payment API to void an NDC ticket and payment but retain segments is supported only for QF.
United Airlines
UA returns baggage text in TermsAndConditionsAir/BaggageAllowance/BaggageItem.
In an exchange or modification, the Reshop request supports only the cabin class and fare type search modifiers for UA.
- Cabin class (SQ, AA, UA and QF)
- Fare type (AA, UA and QF)
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 when the booking is created.
In an exchange or modification, the Reshop request supports only the cabin class search modifier for SQ.
Avianca (AV)
Booking ancillaries is not supported for AV.
AV supports the following PTCs: ADT, CHD, CNN, INF, INS, SRC and STR (available only in Columbian markets ADZ and LET using a Columbian PCC).
All other feature functionality matches what is available for Singapore (SQ).
Air France/KLM
Booking ancillaries or seats is not supported for AF/KLM.
Billing address is required with a debit/credit card form of payment.
In an exchange or modification, the Reshop request supports does not support any search modifiers for AF/KLM.
Some private fare support must be requested using special PTCs (passenger type codes):
-
For VFR (visit friends and relatives) Private Fares, the fare request in the UK market must use PTC JCB (ADT), JNN (CHD), or JNF (INF).
-
For Tour Operators, the supported passenger types are IIT, INN, and ITF.
Lufthansa Group
Booking ancillaries is not supported for LHG.
In an exchange or modification, the Reshop request supports does not support any search modifiers for LHG.
British Airways
Booking ancillaries is not supported for BA.
BA does not guarantee the price of a held booking. When ticketing a held booking, if the price has changed, the JSON APIs return the error message ERROR AT ISSUANCE TIME: TST EXPIRED - OVERRIDE OR DELETE AND REPRICE Code = \"376\". In this case, you must use the Reprice and Resell APIs (see the NDC Modify, Exchange and Cancel Guide) and send payment to complete ticketing.
For BA, if you modify a ticketed booking, payment and ticketing is required for that modification.
BA does not support a modification that adds new air segments.
In an exchange or modification, the Reshop request supports does not support any search modifiers for BA.
American Airlines
In an exchange or modification, the Reshop request supports only the cabin class and fare type search modifiers for AA.
Applying an unused ticket as FOP is supported only on AA NDC.
Qatar Airways
Booking ancillaries or seats is not supported for Qatar.
QR supports only ADT, CHD, and INF passenger types.
QR does not allow changes to passenger information.
QR does not allow search modifiers other than cabin class.
QR does not return Brand information.
QR does not support special service requests.
Exchanges:
-
Payment required when making changes to a ticketed booking. You cannot hold the modified itinerary.
-
Does not support modification of connecting flights.
-
Only one ticket exchange is allowed.
Iberia Air Lines
IB supports only ADT, CHD, and INF passenger types.
IB supports the Spanish Residency and Large Family discounts requested in TravelerGeographicLocation per the Search API Reference.
Iberia requires payment when booking paid seats or ancillaries; only the Instant Pay booking workflow is supported, not book and hold.
NDC Support by Country
NDC carrier content is available for booking through the JSON APIs in the countries listed below. NDC content is rolled out on a country basis, so check back if content of interest is not available.
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) NDC | Qantas Airways (QF) NDC | Singapore Airlines (SQ) NDC | Air France (AF) NDC | KLM (KL) NDC | United Airlines (UA) | British Airways (BA) NDC | Lufthansa Group (LHG) NDC | Iberia (IB) NDC | Qatar (QR) NDC | Avianca (AV) NDC |
---|---|---|---|---|---|---|---|---|---|---|---|
Afghanistan |
|
|
|||||||||
Albania | Yes |
|
|
Yes | Yes | ||||||
Andorra |
Yes | Yes | Yes | Yes | Yes | ||||||
Angola |
Yes | Yes | |||||||||
Antigua | Yes |
|
|
Yes | Yes | ||||||
Argentina | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||
Aruba | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Australia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Austria | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Azerbaijan |
Yes | Yes | |||||||||
Bahamas | Yes |
|
|
Yes | Yes | ||||||
Bahrain | Yes |
|
Yes |
Yes | Yes | Yes | Yes | ||||
Bangladesh | Yes |
|
|
Yes | |||||||
Barbados |
Yes | Yes | Yes | ||||||||
Barbuda |
Yes | ||||||||||
Belarus | Yes |
|
|
||||||||
Belgium | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Belize |
Yes | ||||||||||
Benin |
Yes | Yes | Yes | ||||||||
Bermuda |
Yes | Yes | Yes | Yes | |||||||
Bolivia |
Yes | ||||||||||
Bonaire | Yes |
Yes |
Yes |
||||||||
Bosnia and Herzegovina | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Botswana |
|
|
Yes | Yes | |||||||
Brazil | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||
British Virgin Islands |
Yes | ||||||||||
Bulgaria | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Burkina Faso |
Yes | Yes | Yes | ||||||||
Cambodia (Vietnam) | Yes |
|
|
Yes | |||||||
Cameroon |
Yes | Yes | Yes | ||||||||
Canada | Yes | Yes |
|
|
Yes | Yes | Yes | ||||
Cayman Islands |
Yes | Yes | Yes | ||||||||
Chad |
Yes | Yes | Yes | ||||||||
Chile | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | |||
China | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Colombia | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||||
Congo Brazza |
Yes | Yes | |||||||||
Cook Islands | Yes |
|
|
||||||||
Costa Rica |
Yes | Yes | Yes | Yes | Yes | ||||||
Croatia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Curacao | Yes |
Yes |
Yes |
||||||||
Cyprus | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Czech Republic | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
Denmark | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
Dominica |
Yes | Yes | |||||||||
Dominican Republic | Yes |
|
|
Yes | Yes | ||||||
Ecuador | Yes |
|
|
Yes | Yes | ||||||
Egypt |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||||
El Salvador |
Yes | Yes | Yes | ||||||||
Estonia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Ethiopia |
Yes | ||||||||||
Fiji | Yes |
|
|
||||||||
Finland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
France | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
French Guiana |
Yes | Yes | Yes | Yes | Yes | ||||||
French Polynesia | Yes |
Yes |
Yes |
Yes | |||||||
Gabon |
Yes | Yes | Yes | ||||||||
Georgia |
Yes | Yes | Yes | Yes | |||||||
Germany | 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 | ||
Greenland |
Yes | Yes | Yes | Yes | Yes | ||||||
Grenada |
Yes | Yes | Yes | Yes | Yes | ||||||
Guadeloupe | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Guatemala | Yes |
|
|
Yes | Yes | ||||||
Guyana | Yes |
|
|
Yes | |||||||
Haiti |
Yes | Yes | |||||||||
Honduras |
Yes | Yes | |||||||||
Hong Kong | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Hungary | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Iceland | Yes |
Yes |
Yes |
Yes | Yes | ||||||
India | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Indonesia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Ireland | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | |||
Israel | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
Italy | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
Ivory Coast |
Yes | Yes | Yes | ||||||||
Jamaica |
Yes | Yes | Yes | ||||||||
Japan | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Jordan | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Kazakhstan |
Yes | Yes | Yes | Yes | Yes | ||||||
Kenya | Yes | Yes |
Yes |
Yes |
Yes | Yes | |||||
Kiribati |
Yes | ||||||||||
Kuwait | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Kyrgyzstan |
Yes | ||||||||||
Latvia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Lebanon | Yes |
Yes |
Yes |
Yes | |||||||
Lesotho | Yes | Yes |
Yes |
Yes |
Yes | Yes | |||||
Liechtenstein |
Yes | Yes | |||||||||
Lithuania | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Luxembourg | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Macao |
|
|
Yes | ||||||||
Macedonia | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Malawi |
Yes | Yes | Yes | Yes | Yes | ||||||
Malaysia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Maldives | Yes |
|
|
||||||||
Mali |
Yes | Yes | Yes | ||||||||
Malta | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Marshall Islands |
Yes | ||||||||||
Martinique | Yes |
|
Yes | Yes | Yes | Yes | |||||
Mauritania |
Yes | Yes | Yes | ||||||||
Mauritius |
Yes | Yes | |||||||||
Mayotte |
Yes | Yes | Yes | Yes | Yes | ||||||
Mexico | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | |||
Micronesia |
Yes | ||||||||||
Moldova | Yes | Yes |
|
|
|||||||
Monaco | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||
Mongolia |
|
|
Yes | ||||||||
Montenegro | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Montserrat |
Yes | ||||||||||
Morocco |
Yes | Yes | Yes | Yes | Yes | ||||||
Mozambique |
Yes | ||||||||||
Myanmar (Thailand) | Yes |
|
|
||||||||
Namibia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | ||||
Nepal | Yes | Yes |
|
|
Yes | ||||||
Netherlands | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes | Yes | |
New Caledonia |
|
Yes |
|
Yes |
Yes |
||||||
New Zealand | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Nicaragua |
Yes | Yes | |||||||||
Niger |
Yes | Yes | Yes | ||||||||
Nigeria |
Yes | Yes | Yes | Yes | Yes | ||||||
Northern Mariana Islands |
Yes | ||||||||||
Norway | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Oman | Yes | Yes |
Yes |
Yes |
Yes | Yes | |||||
Pakistan | Yes | Yes |
|
|
Yes | Yes | |||||
Palau |
Yes | ||||||||||
Panama |
Yes | Yes | Yes | Yes | Yes | ||||||
Papua New Guinea | Yes |
|
|
||||||||
Paraguay |
Yes | ||||||||||
Peru | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||
Philippines | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Poland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Portugal | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | ||
Puerto Rico |
Yes | Yes | |||||||||
Qatar | Yes | Yes |
|
|
Yes | Yes | Yes | ||||
Reunion Island | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Romania | Yes | Yes |
Yes |
Yes |
Yes | Yes | |||||
Russia | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Rwanda |
Yes | ||||||||||
Saba | Yes |
|
|
||||||||
Saint Barthelemy |
Yes | Yes | |||||||||
Saint Eustatius | Yes |
|
|
||||||||
Saint Kitts and Nevis |
Yes | Yes | |||||||||
Saint Lucia | Yes |
|
|
Yes | |||||||
Saint Martin/ Sint Maarten | Yes |
Yes |
Yes |
Yes | Yes | ||||||
Saint Pierre and Miquelon |
Yes | ||||||||||
Saint Vincent and the Grenadines |
Yes | Yes | |||||||||
Samoa |
|
|
|||||||||
San Marino |
Yes | Yes | Yes | Yes | Yes | Yes | |||||
Saudi Arabia | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | |||
Senegal |
Yes | Yes | Yes | Yes | |||||||
Serbia | Yes | Yes | Yes |
Yes |
Yes |
Yes | |||||
Singapore | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Slovakia | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Slovenia | Yes | Yes |
Yes |
Yes |
Yes | ||||||
South Africa | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | Yes | |
South Korea | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Spain | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Sri Lanka (India) | 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 | |
Switzerland | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
Taiwan | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Tanzania |
Yes |
Yes | Yes | Yes | Yes | Yes | |||||
Thailand | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | ||||
Togo |
Yes | Yes | |||||||||
Trinidad & Tobago | Yes |
|
|
Yes | Yes | ||||||
Tunisia |
Yes | Yes | Yes | ||||||||
Turkey | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||
Turks and Caicos |
Yes | Yes | |||||||||
Uganda |
Yes | Yes | Yes | Yes | Yes | ||||||
Ukraine | Yes |
Yes |
Yes |
Yes | Yes | Yes | |||||
United Arab Emirates |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes | Yes | Yes | Yes | ||
United Kingdom | Yes | Yes | Yes |
Yes |
Yes |
Yes | Yes |
Yes |
Yes | Yes | |
USA | Yes | Yes | Yes |
|
|
Yes | Yes | Yes | Yes | Yes | |
Uruguay | Yes |
|
|
Yes | Yes | ||||||
Vatican |
Yes | ||||||||||
Venezuela |
|
|
|||||||||
Vietnam | Yes | Yes | Yes |
|
|
Yes | |||||
Zambia | Yes |
|
|
Yes | Yes | ||||||
Zimbabwe |
Yes |
Filed Fares, Passive Booking Record, and MIR
Passive Booking Record
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), 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 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
With AirReservation 23.11.34 and later, the following handling is applied 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 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 (Management Information Report)
In addition, AirReservation 23.11.34 added support to generate a MIR (management information report) for ticket issuance, ticket exchanges, and ticket voids for NDC in the same format as currently exists for GDS ticket issuance, exchange, and void. This ensures consistent mid- and back-office reporting and handling for NDC as well as GDS itineraries.
Knowledge Base NDC Resources
NDC functionality varies by carrier. Refer to the Knowledge Base article NDC Capabilities by Airline for a list of features available for each NDC airline and links to carrier-specific pages. You must be logged into the customer portal to view articles.
If you are not logged in:
-
Log into https://my.travelport.com.
-
In the menu bar at the top of the page, select Knowledge.
-
Enter the search term NDC Capabilities in the search bar at the top of the page.
NDC and GDS Functionality Comparison Chart
Travelport is an active participant in NDC while still providing a single, consistent workflow for searching, booking, and managing travel. As the NDC technology continues to develop, the JSON APIs handle certain functionality differently between NDC and GDS.
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. Although the general JSON API booking workflow is the same for both GDS and NDC, voids, exchanges, refunds, and certain modifications are handled by separate JSON APIs and use different workflows. This results from differences in how these processes are implemented by the NDC carriers. Seats, ancillaries, and EMD payment processes can also differ for NDC and for individual NDC carriers.
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 with differences noted where applicable. General differences are noted in guides, while object-level differences are noted in the API reference for each API.
The following table charts functionality differences between NDC and GDS in the JSON APIs.
API and Functionality |
NDC Only |
GDS Only |
Supported for both with differences |
---|---|---|---|
General |
|||
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:
|
||
Net fares net ticket data (NTD) Several APIs return several objects with NTD for any fare with a private fare component; however, NDC does not support net fares. |
GDS only |
||
NDC warning and error messages include the carrier code. Enhanced error handling for NDC is under development; error messages may differ from GDS errors. |
|||
AvailabilitySourceCode object (returned in ReferenceList/ReferenceListFlight to assist in troubleshooting) |
GDS only |
Returned in the Search, AirPrice, and AirReservation commit responses for 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. NDC content is not returned if there are more INF than adults.
|
||
TravelerGeographicLocation objects residentGeographicCode, specialLargeFamilyResidentDiscountInd, and generalLargeFamilyResidentDiscountInd |
NDC only; required to support local citizen fares |
||
The following optional indicators in the Search request:
|
GDS only |
||
The following pricing modifiers (PricingModifiersAir) in the Search request:
|
|
GDS 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 pricing modifiers (PricingModifiersAir) in the Search request:
|
NDC only |
||
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 maxNumberOfUpsellsToReturn not requested or set to 0 |
For NDC:
|
||
In the Search response, the following objects are returned only for NDC: In PriceDetail:
In PriceBreakdown:
|
NDC only |
||
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 |
|||
AirPrice request:
|
GDS only |
While AirPrice is generally an optional but recommended step, it is required for some NDC carriers. Only the reference payload AirPrice request is supported for NDC. GDS supports both the full and reference payload requests. |
|
Pricing modifiers in the pricing request:
|
GDS only |
||
In the AirPrice response:
|
GDS only |
||
|
GDS only |
|
|
Ancillaries |
|||
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 |
Both NDC and GDS ancillaries can be added to an existing reservation. At this time, only NDC ancillaries can be added during the initial booking session. See the Ancillaries and EMDs Guide. |
||
Ancillary price |
NDC only |
||
GDS only |
|||
Seats |
|||
Seats support in the search and booking workflows |
Support varies for NDC and GDS, and by NDC carrier. See the support section of the Seats Guide. |
||
Seat book response |
GDS responses return an identifier for each booked seat and the corresponding seat details. NDC seat book responses return only an identifier for each booked seat and no seat details. |
||
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 |
|
Only the reference payload Add Offer request is supported for NDC. GDS supports both the full and reference payload requests. |
|
All pricing modifiers in Add Offer request |
GDS only |
|
|
Add offer to reservation with expired booking |
GDS only |
||
|
GDS only |
||
|
|
GDS only |
|
Add Form of Payment (FOP):
|
|
GDS only |
|
Add Form of Payment credit card CVV |
|
Required for NDC, optional 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 in OrganizationInformation/OrganizationIdentifier in the Search request. |
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; AA only |
||
Display fees in the Workbench Commit response |
GDS only |
||
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. For GDS, at this time only ticket void is supported for GDS. Cancel/refund functionality for GDS is under development. |
||
Air Modify, Exchanges, and Refunds |
|||
Air modify and exchanges |
Use the NDC-specific APIs to modify the air itinerary on an NDC reservation or ticket. See the NDC Modify, Cancel, and Exchange Guide. Use the GDS Exchange APIs (Exchange Eligibility, Search, and Ticketing) to exchange a GDS ticket. Modifying the air itinerary for a GDS reservation is not supported; you must cancel and rebook. |
||
NDC only |
See the NDC Modify, Cancel, and Exchange Guide. |