Last updated 6 minutes ago

Working with NDC Exchange

Accessing Production

Sellers will use one of two URL’s in your flow to access NDC Exchange 2.0 API and endpoints. Refer to the table below for each service and associated URL.

Service(s) Production Endpoint/URL
AirShopping, OfferPrice, ServiceList, SeatAvailability https://services.atpco.net/ndcexchange
OrderCreate https://pcx.services.atpco.net/Tokenize/Proxy
OrderRetrieve, OrderReshop, OrderCancel https://services.atpco.net/ndcexchange

Production Service Endpoints

Service Production Endpoint/URL
Air Shopping /agg/ndc/17.2/v1/AirShopping
Offer Price /agg/ndc/17.2/v1/OfferPrice
Service List /agg/ndc/17.2/v1/ServiceList
Seat Availability /agg/ndc/17.2/v1/SeatAvailability
Order Create (must reference PCI URL) https://pcx.services.atpco.net/Tokenize/Proxy/OrderCreate
Order Retrieve /agg/ndc/17.2/v1/OrderRetrieve
Order Reshop /agg/ndc/17.2/v1/OrderReshop
Order Cancel /agg/ndc/17.2/v1/OrderCancel

Accessing the Sandbox Environment

Sellers will use one of two URL’s in your flow to access the sandbox for NDC Exchange 2.0 API and endpoints. Refer to the table below to the service and associated URL.

Service(s) Sandbox Endpoint/URL
AirShopping, ServiceList, SeatAvailability, FareRules, OfferPrice https://gold.services.atpco.net/ndcexchange
OrderCreate https://gold.pcx.services.atpco.net/Tokenize/Proxy/OrderCreate
OrderRetrieve, OrderReshop, OrderCancel https://gold.services.atpco.net/ndcexchange

Sandbox Service Endpoints

Service Sandbox Endpoint/URL Available Airline
Air Shopping /agg/ndc/17.2/v1/AirShopping AC, WN
Service List /agg/ndc/17.2/v1/ServiceList AC
Seat Availability /agg/ndc/17.2/v1/SeatAvailability AC
Fare Rules /agg/ndc/17.2/v1/FareRules WN
Offer Price /agg/ndc/17.2/v1/OfferPrice AC, WN
Order Create (must reference PCI URL) https://gold.pcx.services.atpco.net/Tokenize/Proxy/OrderCreate AC
Order Retrieve /agg/ndc/17.2/v1/OrderRetrieve AC, WN
Order Reshop /agg/ndc/17.2/v1/OrderReshop AC (cancel flow)
Order Cancel /agg/ndc/17.2/v1/OrderCancel AC

API Key

To access the NDC Exchange 2.0 Platform API, each seller should provide the “apikey” in the HTTP header. For NDC Exchange 1.0, “X-apiKey” was the value used in the HTTP header; however, for NDC Exchange 2.0 this value is now “apikey”. Please be sure to make this important change or you will experience an Authentication Error (400 Bad Request).

NOTE: OrderCreateRQ requires two additional headers (see below).

The API key is a unique authorization key issued by ATPCO. Currently, API keys for sellers are manually generated by ATPCO.

POST https://gold.services.atpco.net/ndcexchange/agg/ndc/17.2/v1/AirShopping

Request Headers

apikey: XXXXXXXXXXXXXXXXXXXXXX

Content-Type: application/xml

Accept: */*

Host: gold.services.atpco.net

Accept-Encoding: gzip, deflate, br

Connection: keep-alive

In addition to the above, when conducting an OrderCreateRQ, you must submit an additional two mandatory HTTP headers in OrderCreate Request.

First Mandatory HTTP Header:

  • Name: TX-Proxy-Key
  • Value: XXXXXXXXXXXXXXXXXXXXXXXX (value send to each seller)

Second Mandatory HTTP Header:

  • Name: tx-http-timeout:
  • Value: 120

TraceID

To enable us to follow up your transactions associated to your requests/responses in the sandbox, we need you to turn on trace and provide the transaction ID.

Ensure you have set orc-debug = “true” to pass in the header.

orc debug true

When retrieving the responses for tech support, you need to capture the value of “HTTP header orc-transaction-id” value and insert in the Transaction ID/Trace field in the ticket.

orc transaction id

SOAP Message

Aggregation Message RQ (SOAP) Sample Value Remarks
Header Empty, used for schema compatibility
Body
NDCMSG_Envelope
NDCMSG_Header
SchemaType NDC Static, same for all messages
SchemaVersion YY.2017.2 Static, same for all messages
Sender
SellerID atpco.ndcx.key.SELLER_SPECIFIC_ID Seller’s key
Recipient
Address.Company Code for Offer OWNER for 1-1 services
NDCMSG_Body
NDCMSG_Payload
<![CDATA[
IATA_NDC_Message AirShoppingRQ, OfferPriceRQ, SeatAvailabilityRQ, ServiceListRQ, OrderCreateRQ, OrderRetrieveRQ, OrderReshopRQ, OrderCancelRQ MVP supported messages
]]>

Message Structure Example

This is the general structure of any messages accepted by ATPCO NDC Exchange 2.0 (Aggregation Service).

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:atpco="https://prod.services.atpco.net/ndcexchange/NDC/schema/v1">
    <soapenv:Header/>
    <soapenv:Body>
        <atpco:NDCMSG_Envelope>
            <NDCMSG_Header>
                <Sender>
                    <SellerID>atpco.ndcx.key.SELLER-SPECIFIC-KEY</SellerID>
                </Sender>
                <Recipient>
                    <Address>
                        <Company>YY</Company><!--This is the airline code for which the message is intended.-->
                    </Address>
                </Recipient>
                <SchemaType>NDC</SchemaType>
                <SchemaVersion>YY.2017.2</SchemaVersion>
            </NDCMSG_Header>
            <NDCMSG_Body>
                <NDCMSG_Payload>
                    <![CDATA[
                    
<IATA_NDC_Message>
[...]
</IATA_NDC_Message>

					]]>
				</NDCMSG_Payload>
			</NDCMSG_Body>
		</atpco:NDCMSG_Envelope>
	</soapenv:Body>
</soapenv:Envelope>

IATA NDC Message

IATA NDC Message RQ Sample Value Remarks
Version 17.2 Mandatory
EchoToken Optional, echo back in response.
TimeStamp Optional, time stamp when response was built.
TransactionIdentifier Optional, echo back in response.
SequenceNumbr Optional, echo back in response.
PointOfSale Optional
Location
CountryCode US
Document   Mandatory in schema
Name ATPCO AGG NDCx 2.0 Fixed value
ReferenceVersion IATA NDC 17.2 Fixed value
Party Mandatory in schema
Sender
(One of the Following: TravelAgencySender, AggregatorSender, EnabledSystemSender, TBD)
Mandatory (TBD which is used now)
TravelAgencySender Seller is a travel agency
AgencyID 000 Mandatory
IATA_Number 0004426 Mandatory
PseudoCity YUL Optional
Participants Optional (TBD if used.)
Participant
(One of the Following: TravelAgencyParticipant, AggregatorParticipant, EnabledSystemParticipant)
Parameters
Languages
LanguageCode en-ca
CurrCodes
FilledInCurrency
CurrCode CAD

Message Structure Example

This is the general structure for supported IATA 17.2 messages.

<IATA_NDC_Message Version="2017.2" EchoToken="ET" TimeStamp="2021-04-08T10:18:42.087-04:00" TransactionIdentifier="1" SequenceNmbr="1" xmlns="http://www.iata.org/IATA/EDIST/2017.2">
	<PointOfSale>
		<Location>
			<CountryCode>US</CountryCode>
		</Location>
	</PointOfSale>
	<Document>
		<Name>ATPCO AGG NDCx 2.0</Name>
		<ReferenceVersion>IATA NDC 17.2</ReferenceVersion>
	</Document>
	<Party>
		<Sender>
			<TravelAgencySender>
				<PseudoCity>XXX</PseudoCity>
				<IATA_Number>0000XXXX</IATA_Number>
				<AgencyID>XXX</AgencyID>
			</TravelAgencySender>
		</Sender>
	</Party>
	<Parameters>
		<Languages>
			<LanguageCode>en-CA</LanguageCode>
		</Languages>
		<CurrCodes>
			<FiledInCurrency>
				<CurrCode>USD</CurrCode>
			</FiledInCurrency>
		</CurrCodes>
	</Parameters>

[...]

</IATA_NDC_Message>