NDC and GDS Content

The Travelport JSON Air APIs have introduced support for New Distribution Capability (NDC) content in addition to standard GDS content. NDC is a travel industry-supported program launched by IATA for the development and market adoption of an XML-based standard for the exchange of data between airlines and travel agents. It connects travel agents to airline systems and gives them access to differentiated content that is often only available through the airlines’ direct channels. NDC brings more innovation to how airlines sell, market, and distribute their products.

Travelport has chosen to be 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, the JSON APIs offer NDC content alongside standard GDS content.

The workflows, requests, and responses are generally the same for NDC and GDS content. The sections below summarize any differences by API. With the exception of the Exchange APIs, all Air APIs support NDC content.

In this topic:

Participating Carriers

Currently 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 Air API is received:

  • Validation that the requestor is provisioned for NDC within Travelport.
  • Request details are sent to the airline system. Airline validates that the requestor is registered with them for NDC content.
  • Aggregated NDC and GDS content is returned.

Supported Forms of Payment

The forms of payment and credit card types accepted for NDC content varies by carriers. The tables below list first the forms of payment and then the credit card types accepted by carrier. At this time only NDC content from Qantas has been certified.

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)

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

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. Many but not all of the Travelport JSON APIs support trace and transaction IDs.

AirSearch 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.

Carrier Specific Notes

For Qantas:

  • Currently a defect exists when adding multiple infant passengers but only some adult passengers have loyalty information. See CustomerLoyalty for details.
  • Sending customer loyalty numbers (CustomerLoyalty object) in the 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 does not provide a tax break down in the detailed AirSearch response.
  • UA returns baggage text in TermsAndConditionsAir/BaggageAllowance/BaggageItem.

For Singapore Airlines:

  • Singapore Airlines does not return tax description in their responses, but they do return tax codes.
  • 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 of Create booking.

Note that 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. The error returned is:

"Result": {
  "Error": [
     {
      "@type": "Error",
      "StatusCode": "2014",
      "Message": "The number of INF passengers cannot exceed the number of ADT passengers."

Search APIs

This section notes differences in how the JSON air search APIs request and return GDS and NDC content.

In all search APIs: 

  • Use 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.
  • The pagination option offersPerPage is not validated for NDC content.
  • Identifiers for NDC offers, products, brands, etc. use a different numbering scheme incorporating the carrier code into the identifier. See NDC Identifiers for details.

Search

For details see the individual topics for Search.

The Flight Specific Search request/response is not supported for NDC.

The following are not returned for NDC content in Search v11:

  • Flight: flight departure and arrival terminal (Flight and Departure @terminal).
  • Intermediate stop details (arrival and departure date, time, terminal; duration, equipment)

AirSearch

For details see the individual topics for AirSearch.

AirSearch 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.
  • 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.

AirSearch Responses

The response uses different numbering schemes for identifiers for NDC and GDS content as follows:

AirSearch returns the following objects in NDC offerings but not GDS offerings. The NDC-related code is highlighted in each example.

  1. CatalogOffering/Identifier authority. NDC content is identified in the AirSearch/Fare Family Search response by an Identifier object for each CatalogOffering object. The Identifier authority defines the NDC carrier of the offering.
"@type": "CatalogOffering",
"id": "QF1",
"Identifier": {
    "authority": "QF",
    "value": "WEJDMjY2MTAtQzhCRC00NDNDLTg3ODkxLTF8WEJDMjY2MTAtQzhCRC00NDNDLTg3ODl8MjAxOS
0wNC0yNFQxMzozODowNXxBRFQ6WEJDMjY2MTAtQzhCRC00NDNDLTg3ODkxLTEtMXxRRg=="
  1. CatalogOffering/PriceDetail/PriceBreakdownAir/Amount/Taxes/Tax @description
"Taxes": {
     "@type": "TaxesDetail",
     "TotalTaxes": "21.51",
     "Tax": [
         {
             "taxCode": "QR",
             "description": "PASSENGER SERVICE CHARGE DOMESTIC DEPARTURE",
             "value": 15.21
  1. CatalogOffering/TermsAndConditionsAir/FareRuleInfo
"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 - the tier attribute
  • 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 and Fare Family Search

Differences in the GDS and NDC responses for the Search and Fare Family Search APIs are listed below. For full details on each API see the topics for Search and Fare Family Search.

Search and Fare Family Search return the following objects in NDC offerings but not GDS offerings:

  1. CatalogProductOffering/Identifier authority. NDC content is identified in the Fare Family Search response by an Identifier object for each CatalogProductOffering object per below. The Identifier authority defines the NDC carrier of the offering.
"CatalogProductOffering": [
        {
          "@type": "CatalogProductOffering",
          "id": "QF_CPO0",
          "Identifier": {
            "authority": "QF",
            "value": "WDhEQjE1OTQwLUVCRDItNEE3QS05NkU0fFFGX0NQTzA="
          },
  1. CatalogProductOffering/PriceDetail @currencyCode
  1. CatalogProductOffering/PriceDetail/PriceBreakdownAir/Amount @currencyCode
  1. CatalogProductOffering/PriceDetail/PriceBreakdownAir/Amount/Taxes/Tax @description

Search and Fare Family Search return the following objects in GDS offerings but not NDC offerings:

  • CatalogProductOffering/ProductOptions/Product/Quantity
  • CatalogProductOffering/ProductOptions/Product/PassengerFlight/FlightProduct/Brand - the tier attribute
  • PriceBreakdownAir/Commission (returned for GDS in Fare Family and Next Leg Search 21.9.8 and later if an airline files a commission in a CAT35 fare)
  • Next Leg Search does not return ReferenceListProduct/Product/FlightSegment @boundFlightsInd for NDC

Search Modifiers

Some search modifiers are not supported for NDC content in any of the search APIs. 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 the 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.
  • Sell and ticket city: The SellCity and TicketCity modifiers in Search v11 are not supported for NDC.

The following journey modifiers, most in the SearchModifiersAir object, are not currently 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
  • Limit the fares returned to specified brand attributes: ProductInclusionPreference (Search v11 only)
  • Search by departure time range: DepartureTimeRange object (Search v11 only)

Branded Fares

All search APIs return branded fares for both NDC and GDS content. Differences are:

  • The brand name, identifier value and attributes are returned for NDC. Branded fares for GDS include all of those plus the brand tier.
  • The modifier ProductInclusionPreference, which requests only fares with specified brand features included in the price, is not supported for NDC.

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 returned from an AirSearch or Fare Family Search response. You cannot price an NDC itinerary from a non-Travelport source; instead you must use the Reference Payload request to price based on your AirSearch or Fare Family Search response.

Most data in the price request and response is the same, except that customer loyalty/frequent flyer numbers are supported for NDC but not in the GDS request at this time. To send a customer frequent flyer number in an AirPrice NDC request, add the following attributes to the required PassengerCriteria object:

  • customerLoyalty: The loyalty or frequent flyer number.
  • supplier: The supplier code for the loyalty program (e.g, QF).

In addition, when fare rules are requested for an NDC price request and the FareRuleType attribute is sent with a value of LongText, AirPrice returns fare rules in short format and returns the warning message "The requested long text version is not available, short rules are provided."

For sending account codes, the NDC carrier Qantas requires an organization identifier in the request.

As in the AirSearch response, NDC content is identified in the AirPrice response by an Identifier object for the Offer object. Identifier @authority defines the NDC carrier of the offering. Offer does not include the Identifier object for GDS content.

Example JSON response showing Offer/Identifier for NDC content

{
    "OfferResponse": {
        "Offer": {
            "@type": "Offer",
            "id": "o0",
            "Identifier": {
                "authority": "QF",
                "value": "UG9QQTZBRDdBRTMtOTdDQy00RTEzLThDN0EtMXxQQTZBRDdBRTMtOTdDQy00RTEzLThDN0F8M
jAxOS0wNC0zMFQyMToyMToyNXxBRFQ6UG9JUEE2QUQ3QUUzLTk3Q0MtNEUxMy04QzdBLTEtMXxRRg=="
            },

AirReservation

The basic booking flow for NDC content in the AirReservation API is the same as the GDS content flow except for details noted here. There are differences in adding the offer:

  • The Add Offer step for NDC uses a different URL and payload than for GDS.
  • For NDC only, AirReservation 19.6.2 and later support multiple add offer steps to combine multiple one-way offers into one PNR at commit.

As of AirReservation 21.11.3 and later, for NDC only at this time, specific traveler information can be added, updated, or deleted.

Storing fares with pricing modifiers and/or brand information is not supported for NDC.

When adding form of payment:

  • The credit card CVV number is required for NDC but optional for GDS.
  • Agent invoice number as a form of payment 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:

  • SSR primary contact
  • SSR child DOB
  • SSR disability
  • OSI comments
  • Added in v11 and later, Accounting and Document Override remarks are not supported for NDC.

PNR Retrieve

The request to retrieve a PNR is the same for both GDS and NDC content. The PNR retrieve response differs in that the following are returned for NDC content but not GDS:

  • Fare rules
  • Ticketing information including terms and conditions specific to ticketing, and ticketing time limits.
  • Tax code description

PNR Cancel

The PNR Cancel for an NDC itinerary is not a single request but instead establishes a workbench before sending the Cancel request.

Seats

In Seats 21.11.1 and later, the Seat map request for GDS supports multiple seat map request options. While seat maps are supported for NDC on model v11, the same format as for v9 must be used and seat map requests are supported for one flight at a time.

In the Seat book response for Seats 21.9.3 and later, OfferListResponse/OfferID for NDC is returned with @type of Offer, while the same object in the GDS response is returned with @type of OfferIdentifier.

At this time booking paid seats is supported only for NDC and only on certain carriers, as detailed in paid seats.

For paid seats, the seat map response differs for GDS and NDC:

  • For NDC content, all instances of CatalogOffering include a Price object. For free seats, the values in Price are zero. For paid seats, Price returns a positive value for those paid seats.
  • For GDS content, only instances of CatalogOffering for paid seats include a Price object. An instance for free seats does not include a Price object.

If there are different positive prices for paid seats, a separate instance of CatalogOffering is returned for each price level. For example, a response might return one instance for $10 seats, another for $25 seats, and another for free seats. For the free seats, NDC would return a value of zero and GDS would not include a Price object.

AirTicketing

The differences for AirTicketing between NDC and GDS content are as follows:

  • When adding form of payment:
    • The credit card CVV number is required for NDC but optional for GDS.
    • Agent invoice number as a form of payment is not supported for NDC.
    • Adding multiple forms of payment is not supported for NDC.
  • Instant Pay is supported for NDC but not GDS at this time. With Instant Pay, an itinerary is booked and ticketed in the same workflow. See Reservation and Ticketing Workflows for details.
  • Fees are returned in the Ticket Commit response for GDS content only.
  • AirTicketing 21.11.3 added support only for GDS to add an offer to an existing PNR.

Ticket Cancel

Canceling a ticket for an NDC itinerary is not a single request but instead establishes a workbench, gets a quote for any refund, and sends a cancel request. Options for voiding, refunding, or retaining the ticket may be available. See Cancel Ticket for NDC for options and the process.

Exchanges

At this time the Exchange APIs do not support NDC content.