Home Ndc Exchange Api

NDC (New Distribution Capability) is a travel industry-supported program launched by IATA for the development and market adoption of a new XML-based business messaging standard. The NDC Standard enhances the capabilities of communications between airlines and sellers, supporting personalization of airline prouct offers and more sophisticated retailing capabilities.

ATPCO and SITA joined forces to help cut through the complexity of NDC by developing and deploying NDC Exchange, a community driven marketplace enabling airlines and sellers to exchange orders and offers. NDC Exchange is message format agnostic, empowering both airlines and sellers to connect via a single API regardless of their API standard or version. NDC Exchange facilitates the real-time message translation to support the shopping, booking, ancillaries and servicing processes.

With NDC Exchange, participants can access all their airline partners’ content without having to build each connection separately. By participating in this community, you can extend your market reach and explore new business opportunities.

To request access to the NDC Exchange Sandbox, you must log in with your Developer.aero account or register on Developer.aero.

Please visit our Product Page to learn more about NDC Exchange.

How to use NDC Exchange API

NDC Exchange offers a simple synchronous SOAP interface to access available NDC services via a single endpoint/URL.
NDC request and response payloads are wrapped in a standard SOAP envelope. The SOAP body contains the NDC request or response only.

Service Locations / Endpoints

Currently services are available in versions v1 and v2. While calling below service endpoints please replace the version parameter with correct version value as v1 or v2.

FunctionSANDBOX - Endpoint / URL
BaggageList https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/BaggageList
BaggageCharges https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/BaggageCharges
BaggageAllowance https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/BaggageAllowance
ServiceList https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/ServiceList
AirShopping https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/AirShopping
OfferPrice https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/OfferPrice
FlightPrice https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/FlightPrice
OrderList https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderList
AirDocDisplay https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/AirDocDisplay
SeatAvailability https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/SeatAvailability
ItinReshop https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/ItinReshop
OrderReshop https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderReshop
OrderCreate https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderCreate
OrderRetrieve https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderRetrieve
OrderChange https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderChange
OrderCancel https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/OrderCancel
AirDocIssue https://pci.ndchub.mconnect.aero/messaging/v1/ndc-exchange/AirDocIssue
FareRules https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/FareRules
FunctionSANDBOX - Endpoint / URL
BaggageList https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/BaggageList
BaggageCharges https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/BaggageCharges
BaggageAllowance https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/BaggageAllowance
ServiceList https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/ServiceList
AirShopping https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/AirShopping
OfferPrice https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/OfferPrice
FlightPrice https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/FlightPrice
OrderList https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderList
AirDocDisplay https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/AirDocDisplay
SeatAvailability https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/SeatAvailability
ItinReshop https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/ItinReshop
OrderReshop https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderReshop
OrderCreate https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderCreate
OrderRetrieve https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderRetrieve
OrderChange https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderChange
OrderCancel https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/OrderCancel
AirDocIssue https://pci.ndchub.mconnect.aero/messaging/v2/ndc-exchange/AirDocIssue
FareRules https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/FareRules
FunctionPROD - Endpoint / URL
BaggageList https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/BaggageList
BaggageCharges https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/BaggageCharges
BaggageAllowance https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/BaggageAllowance
ServiceList https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/ServiceList
AirShopping https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/AirShopping
OfferPrice https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OfferPrice
FlightPrice https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/FlightPrice
OrderList https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderList
AirDocDisplay https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/AirDocDisplay
SeatAvailability https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/SeatAvailability
ItinReshop https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/ItinReshop
OrderReshop https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderReshop
OrderCreate https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderCreate
OrderRetrieve https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderRetrieve
OrderChange https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderChange
OrderCancel https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/OrderCancel
AirDocIssue https://pci.ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/AirDocIssue
FareRules https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/FareRules
FunctionPROD - Endpoint / URL
BaggageList https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/BaggageList
BaggageCharges https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/BaggageCharges
BaggageAllowance https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/BaggageAllowance
ServiceList https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/ServiceList
AirShopping https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/AirShopping
OfferPrice https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OfferPrice
FlightPrice https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/FlightPrice
OrderList https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderList
AirDocDisplay https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/AirDocDisplay
SeatAvailability https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/SeatAvailability
ItinReshop https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/ItinReshop
OrderReshop https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderReshop
OrderCreate https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderCreate
OrderRetrieve https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderRetrieve
OrderChange https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderChange
OrderCancel https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/OrderCancel
AirDocIssue https://pci.ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/AirDocIssue
FareRules https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/FareRules

Service Interface

This Version has limited functionality.

The following sections describe the format and content of Service Requests and Responses

WSDL Version1

A simple HTTP GET request or browser request to the endpoint?WSDL will return the WSDL that describes the interface to the NDC Exchange, as follows:

TEST WSDL Request:
GET https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/AirShopping?WSDL

PROD WSDL Request:
GET https://ndcexchange.mconnect.aero/messaging/v1/ndc-exchange/AirShopping?WSDL

The request should look something like:

Exchange Header for v1

NDC request and response payloads are wrapped in a standard SOAP envelope.  The SOAP header is not currently used but may be used for some functions in future.  The SOAP body contains a small header (NDCMSG_Header) and the NDC request or response (NDCMSG_Body & NDCMSG_Payload).

 

Schema for v1 interface

Recipient | Address

The recipient address element is mandatory and comprises two parts, the target company name and the system identifier.   e.g. “ATPCO, TEST” or “AC, PROD” etc.

A recipient address is required to determine which service is being requested.  This information is used in combination with the schema type, schema version and function to identify a service that is provided on the NDC Exchange.

Sender | Address

The sender address element is optional and comprises two parts, the target company name and the system identifier.   e.g. “MYTRAVEL, PROD”.

Although it is optional, it is useful to identify a sender’s transactions.

Credentials

Credentials are required for most supported services and can be in three different formats:

  • User/Password
  • API Key
  • Token

The type of credentials provided in a request to the NDC Exchange will depend on the target service being consumed.  This section of the header will be expanded as different types of credentials are supported.

Schema Type

This element is optional and specifies the type of XML payload being used to communicate with the NDC Exchange.  If not specified, it will be defaulted and assumed to be an “NDC” payload type.

Schema Version

This specifies the schema version of the enclosed request payload. It must match the schema version of a service provided on the NDC Exchange.

Function

If not provided the exchange will use the function passed in the root node of the NDCMSG_Payload. The function is used to specify the type of payload or request.  e.g. “AirShoppingRQ” or “BaggageAllowanceRQ” etc.  The NDC Exchange uses the Function, Recipient Address, Schema Type and Schema Version to identify the service being requested.  If not recognised by the NDC Exchange, the request will fail.

Message Identifier

This is an optional element to support future functionality but enables the consumer to associate an identifier with a request.  The NDC Exchange will return the same identifier in the response.  If not provided the exchange will generate an identifier and return it in the response to the consumer.

This Version has additional functionality including rich media.

 The following sections describe the format and content of Service Requests and Responses

WSDL Version2

A simple HTTP GET request or browser request to the endpoint?WSDL will return the WSDL that describes the interface to the NDC Exchange, as follows:

TEST WSDL Request:
GET https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/AirShopping?WSDL

PROD WSDL Request:
GET https://ndcexchange.mconnect.aero/messaging/v2/ndc-exchange/AirShopping?WSDL

The request should look something like:

Exchange Header for v2

NDC request and response payloads are wrapped in a standard SOAP envelope.The SOAP body contains a small header (NDCMSG_Header) and the NDC request or response (NDCMSG_Body & NDCMSG_Payload).

Schema For v2 interface

Function

It is a mandatory element and is used to specify the type of payload or request.  e.g. “AirShoppingRQ” or “BaggageAllowanceRQ” etc.  The NDC Exchange uses the Function, Recipient Address, Schema Type and Schema Version to identify the service being requested.  If not recognised by the NDC Exchange, the request will fail.

Schema Type

This element is mandatory and specifies the type of XML payload being used to communicate with the NDC Exchange.

Schema Version

This element is mandatory and specifies the schema version of the enclosed request payload. It must match the schema version of a service provided on the NDC Exchange.

Rich Media

This is an optional element and will provide Rich Media content on enabling it.

Message Identifier

This is an optional element to be used only is responses and if provided in the request the identifier will be ignored.  The exchange will generate an identifier and return it in the response to the consumer.

Recipient | Address

The recipient address element is mandatory and comprises two parts, the target company name and the system identifier.   e.g. “ATPCO, TEST” or “AC, PROD” etc.

A recipient address is required to determine which service is being requested.  This information is used in combination with the schema type, schema version and function to identify a service that is provided on the NDC Exchange.

Credentials

Credentials are required for most supported services. It is an optional element. Credentials can contain any type and any number of elements as the schema allows and depends on the Authentication identifiers required for successful Authentication.

The type of credentials provided in a request to the NDC Exchange will depend on the target service being consumed.  This section of the header will be expanded as different types of credentials are supported.

Sender | Address

The sender address element is optional and comprises of two parts, the target company name and the system identifier.   e.g. “MYTRAVEL, PROD”.

Although it is optional, it is useful to identify a sender’s transactions.

You will need to be aware of the following elements:
 

The only mandatory HTTP header that needs to be provided with each request is a user defined HTTP header called ‘X-apiKey’ and the associated value should contain the API Key that was assigned to you by developer.aero for using the NDC Exchange. 

e.g. Header: X-apiKey: <your API key>

Note: You will be allocated separate API Keys for using the TEST exchange and the PROD exchange so please make sure that you are using the correct API Key for the intended usage.

An optional HTTP header called ‘X-NDCMessageTraceLevel’ can also be provided to have the NDC Exchange keep a transaction trace of your request.  A value of ‘HIGH’ will trace your request into the exchange, to the target service, back from the target service and back to your client.  A value of ‘LOW’ will just trace the initial request from your client and final response to your client. 

e.g. Header: X-NDCMessageTraceLevel HIGH.

Note: The message tracing function is made available in all non-production instances of the NDC Exchange.

Depending on the request, the exchange will include one or more of the following HTTP headers, in the response, to help you to understand the amount of time taken to satisfy your request:

Header Name

Description

X-ProvWaitTime

The number of milliseconds waiting for the target service to respond

X-ReqMapTime

The number of milliseconds the exchange takes to transform your request into the format expected by the target service

X-ResMapTime

The number of milliseconds the exchange takes to transform the response from the target service back into the same format as your request

X-NDCExecutionTime

The total number of milliseconds from the exchange first receiving your request to the point it dispatches the final response to you

X-TraceID

The ID of the trace associated with your request (SANDBOX only)

The trace function is only supported in the SANDBOX NDC Exchange and is for testing and development purposes.  A consumer who has previously requested trace for a transaction and received a TraceID in the HTTP header of the response can then retrieve that trace file by sending an HTTPS GET request to:

v1 Endpoint (Deprecated)

https://ndchub.mconnect.aero/messaging/v1/ndc-exchange/rest/trace/your-trace-id 

v2 Endpoint

https://ndchub.mconnect.aero/messaging/v2/ndc-exchange/rest/trace/your-trace-id 

where ‘your-trace-id’ is substituted with the value of the ‘X-TraceID’ returned in response to the initial request. The response will return the requested transaction trace in the response body.

This function has proven very useful for consumers integrating with the NDC Exchange for the first time.

The following HTTP response codes can be returned by the NDC Exchange:

X-ResMapTime The number of milliseconds the exchange takes to transform the response from the target service back into the same format as your request
X-NDCExecutionTime The total number of milliseconds from the exchange first receiving your request to the point it dispatches the final response to you
X-TraceID The ID of the trace associated with your requestThe ID of the trace associated with your request (SANDBOX only)

NDC Exchange Support Process

Please find process steps for onboarding and support for NDC.

For Onboarding queries contact Betsie White-Hummer:

Email :BWhite@ATPCO.NET

To access and update or raise a new ticket, please log on to the below link:

Click here: https://ndcexchange.atlassian.net/servicedesk/customer/portal/2

Please complete and attach the below incident document to any new ticket:

Click here :NDC Exchange Customer Support Document

For any other questions or support please contact:

Email :support@ndcexchange.atlassian.net

Service Hub is the only source for production incidents and support, please contact us:

Click here:https://www.sita.aero/customer-area/call-us-for-support

For any other questions or support, please contact us at:

Email :support@sita.aero

Note: Click here to download NDC Support Document

Answer

API keys are used by the developers when calling (invoking) an API. The API key is used to authenticate the API call. Developer.aero also uses for tracking API usage for billing, health monitoring and reporting purposes. You may wish to use different API keys to access the same API in order to differentiate between environments (QA, PROD, etc.) or perhaps apps (e.g. iPhone app, Android or web app). Please contact the API product manager or support@developer.aero if you have any questions.

Answer

The API key must be passed in using HTTP Header.

Answer

Some APIs provide a quick way to query the API using a Swagger environment where you can send requests and view the responses. You will need an API key to use this facility. Swagger pages can be viewed by selecting the Try it Now option from the side menu in each API landing page.

Answer

Yes. Developer.aero provides analytics for each API. If you are a registered user of Developer.aero, you can see the analytics for each API that you use by logging into Developer.aero and selecting Stats from the dropdown menu.

For business and access queries including airline content, please contact:

Betsie White-Hummer
Manager New Business Integration,
Products & Solutions,
ATPCO
Email: BWhite@ATPCO.NET
website: https://ndc.atpco.net

For any technical queries and support, please contact:

API Development / UAT Support Team
Email: ndcsupport@ATPCO.NET

API Production Support Team
Email: Support@sita.aero