Ethiopian Airlines
  • Ethiopian NDC
  • Endpoint lists
  • Information
  • Support
  • FAQ
Connect to Ethiopian NDC platform today!

NDC API V_17_2

Airshopping

OfferPrice

OrderCreate

Order Retrieve

AirDocIssue (Ticketing)

Order Reshop 

Order Change

Refund Order Reshop

Refund Order cancel

Order Retrieve

Order Retrieve

Void Ticket 

Order Retrieve

Air Cancel

Order Rule

Add/Update Loyalty Number

Order Reprice

Add/update identity doc

Seat Availability

Seat Select

Service Availability

Service Select

Meal Availabilities

Meal Selects

Introduction

Allows to  pay for order and get ticketing documents

Input

  • Order ID/PNR
  • Payment information
  • Passenger information 

Http Headers

Key ValueRequired 
Content-Type
application/xml
Yes
Accept*/* Yes
Authorization
Bearer {{access_token}} Yes
Content-Length
<calculated when request is sent> 
Yes
Host<calculated when request is sent>Yes
User-AgentPostmanRuntime/7.30.0
Yes
Accept-Encodinggzip, deflate, brYes
Connection Keep-aliveYes
DeviceIDStringYes

Sequence 

Endpoints

TestLive

https://aks-cluster-test.ethiopianairlines.com

https://ndc.ethiopianairlines.com

Airshopping Request

		     
       		<Document>
				<Name>ETHIOPIAN AIRLINES NDC </Name>
				<ReferenceVersion>1.0</ReferenceVersion>
		   </Document> 
		 
	 
RequestRoot node of the request schema

Document


NameDocument Name
ReferenceVersionReference Version 

		     
			
    <Party>
        <Sender>
            <TravelAgencySender>
                <Name>Ethiopianairlines TravelAgency</Name>
                <IATA_Number>12121212</IATA_Number>
                <AgencyID Owner="ET">A345345435</AgencyID>
            </TravelAgencySender>
        </Sender>
        <Participants>
            <Participant>
                <AggregatorParticipant SequenceNumber="1">
                    <Name>AAAIT PLC</Name>
                    <AggregatorID>88888888</AggregatorID>
                </AggregatorParticipant>
            </Participant>
        </Participants>
        <Recipient>
            <ORA_Recipient>
                <AirlineID>ET</AirlineID>
                <Name>ETHIOPIAN AIRLINES</Name>
            </ORA_Recipient>
        </Recipient>
    </Party>
RequestRoot node of the request schema

Party

Aggregator and OTA information
Sender 
TravelAgencySenderTravel agency involved in the request
NameTravel agency’s official name
IATA_NumberTravel agency’s IATA number
AgencyIDTravel agency’s Agency ID
ParticipantsList of aggregators involved in the request
Participant 
AggregatorParticipant 
@SequenceNumberUnique position in the list e.g. 1, 2, 3
NameAggregator’s official name
AggregatorIDAggregator’s ID
Recipient 
ORA_RecipientOffer responsible airline information
AirlineIDIATA Airline code e.g. ET
NameEthiopian Airlines

		     
			
        <TicketDocInfo>
            <PassengerReference>PAX001 PAX002</PassengerReference>
            <OrderReference>
                <OrderID Owner="ET">{{OrderId}}</OrderID>
                <BookingReference>
                    <ID>{{OrderId}}</ID>
                    <AirlineID>ET</AirlineID>
                </BookingReference>
            </OrderReference>
            <Payments>
                <Payment>
                    <Type>BSP</Type>
                    <Method>
                        <AccountNumber></AccountNumber>
                    </Method>
                    <Amount Code="ETB">107208.00</Amount>
                    <Payer>
                        <ContactInfoRefs>CTC001</ContactInfoRefs>
                    </Payer>
                    <Order OrderID="{{OrderId}}" Owner="ET"></Order>
                </Payment>
            </Payments>
        </TicketDocInfo>
RequestRoot node of the request schema

Query


TicketDocQuantityNumber of ticket
TicketDocInfoTicket information for 1 passenger linked with PNR
PassengerReferencePAX001
OrderReference 
@OrderIDPNR e.g. ROBIEX
@OwnerORA e.g. ET
BookingReference 
IDPNR e.g. ROBIEX
AirlineIDET
Payments 
Payment 
TypeCA – Cash
AmountOrder value e.g. 9800.30
@CodeOrder Currency e.g. ETB
PayerUsed if payer is not the traveler e.g. OTA is paying
ContactInfoRefsReference ContactID in ContactList

		     
			
        <DataLists>
            <PassengerList>
                <Passenger PassengerID="PAX001">
                    <PTC>ADT</PTC>
                    <Individual>
                        <Birthdate>1988-06-10</Birthdate>
                        <Gender>Female</Gender>
                        <NameTitle>MRS</NameTitle>
                        <GivenName>Jane</GivenName>
                        <Surname>Smith</Surname>
                    </Individual>
                    <LoyaltyProgramAccount>
                        <AccountNumber>1234525525</AccountNumber>
                    </LoyaltyProgramAccount>
                    <IdentityDocument>
                        <IdentityDocumentNumber>543000123</IdentityDocumentNumber>
                        <IdentityDocumentType>F</IdentityDocumentType>
                        <IssuingCountryCode>US</IssuingCountryCode>
                        <CitizenshipCountryCode>US</CitizenshipCountryCode>
                        <IssueDate>2017-01-17</IssueDate>
                        <ExpiryDate>2022-01-16</ExpiryDate>
                        <Birthdate>1988-06-10</Birthdate>
                        <Birthplace>US</Birthplace>
                    </IdentityDocument>
                    <ContactInfoRef>CTC01</ContactInfoRef>
                </Passenger>
                <Passenger PassengerID="PAX002">
                    <PTC>INF</PTC>
                    <Individual>
                        <Birthdate>2020-06-10</Birthdate>
                        <Gender>Female</Gender>
                        <GivenName>elias</GivenName>
                        <Surname>mareye</Surname>
                    </Individual>
                    <LoyaltyProgramAccount>
                        <AccountNumber>1234525525</AccountNumber>
                    </LoyaltyProgramAccount>
                    <ContactInfoRef>CTC01</ContactInfoRef>
                </Passenger>
            </PassengerList>
            <ContactList>
                <ContactInformation ContactID="CTC001">
                    <PostalAddress>
                        <Label>HOME</Label>
                        <Street>s1</Street>
                        <Street>s2</Street>
                        <PostalCode>12345</PostalCode>
                        <CityName>delhi</CityName>
                        <CountrySubdivisionName>test</CountrySubdivisionName>
                        <CountryName>UNITED STATES</CountryName>
                        <CountryCode>US</CountryCode>
                    </PostalAddress>
                    <ContactProvided>
                        <Phone>
                            <Label>HOME</Label>
                            <CountryDialingCode>123</CountryDialingCode>
                            <AreaCode>1234</AreaCode>
                            <PhoneNumber>12345</PhoneNumber>
                        </Phone>
                    </ContactProvided>
                    <!-- include the individual node where agency is paying -->
                    <Individual>
                        <GivenName>TEST</GivenName>
                        <Surname>TEST</Surname>
                    </Individual>
                </ContactInformation>
            </ContactList>
        </DataLists>
RequestRoot node of the request schema
PassengerListList of passengers
Passenger 
@PassengerIDUnique passenger identifier e.g. PAX001
PTCPassenger type e.g. ADT, CHD, INF
Individual 
BirthdateFormat YYYY-MM-DD
GenderMale, Female
NameTitleMR, MRS, MS, MISS, MASTER, DR, PROF, AMB, SIR
GivenNameFirst name
MiddleNameMiddle Name
SurnameLast name or Family name
LoyaltyProgramAccount 
AccountNumbere.g. Shebamiles number
IdentityDocument 
IdentityDocumentNumberpassport number
IdentityDocumentTypeF - Passport
IssuingCountryCode2 letter country code of passport e.g. ET, GB
CitizenshipCountryCode2 letter country code of nationality e.g. ET
IssueDateFormat YYYY-MM-DD
ExpireDateFormat YYYY-MM-DD
BirthdateFormat YYYY-MM-DD
Birthplace2 letter country code of birth e.g. ET
ContactInfoRefReference to passenger contact information in ContactList
ContactList 
ContactInformation 
@ContactIDUnique contact ID e.g. CONTACT001
ContactType

PRIMARY

PAYMENT – used if passenger is paying
PostalAddressAddress information
LabelType of address e.g. HOME, WORK
Street

Street 1

0-9

a-z

A-Z

Maximum of 30 characters
PostalCodePostal or zip code
CityNamee.g. Addis Ababa
CountrySubdivisionNameState or Region e.g. Oromia, Texas
CountryName2 letter country code of address e.g. ET
ContactProvidedCollection of either emails or phone. Use separate nodes for emails and phones.
EmailAddress 
LabelHOME or WORK
EmailAddressValuee.g. john.doe@mail.com
Phone 
LabelMOBILE, WORK
CountryDialingCodeCountry code without + e.g. 251, 92
PhoneNumberNumber without country code
IndividualRequired when the Payment.Payer node is set
GivenName 
MiddleName 
Surname 

AirdocIssue Response

		     
			<Document>
				<Name>ETHIOPIAN AIRLINES NDC </Name>
				<ReferenceVersion>1.0</ReferenceVersion>
		   </Document> 
		 
	 
RequestRoot node of the request schema

Document


NameDocument Name
ReferenceVersionReference Version 

		     
			
Price breakdown per passenger is now available per the order item id @OrderItemID

 

      <Order OrderID="PRBIPV" Owner="ET">

            <BookingReferences>
                <BookingReference>
                    <ID>PRBIPV</ID>
                    <AirlineID Name="ETHIOPIAN AIRLINES">ET</AirlineID>
                </BookingReference>
            </BookingReferences>
            <TotalOrderPrice>
                <SimpleCurrencyPrice Code="USD">7256.14</SimpleCurrencyPrice>
            </TotalOrderPrice>
            <Payments>
                <Payment>
                    <Type>CA</Type>
                    <Status />
                    <Amount>
                        <SimpleCurrencyPrice Code="USD">7256.14</SimpleCurrencyPrice>
                    </Amount>
                    <Method>
                        <CashMethod />
                    </Method>
                </Payment>
            </Payments>
            <OrderItems>
                <OrderItem OrderItemID="ORDERITEM001" Owner="ET">
                    <PriceDetail>
                        <TotalAmount>
                            <SimpleCurrencyPrice Code="USD">463.40</SimpleCurrencyPrice>
                        </TotalAmount>
                        <BaseAmount Code="USD">336.00</BaseAmount>
                        <Surcharges>
                            <Surcharge>
                                <Total Code="USD">0</Total>
                            </Surcharge>
                        </Surcharges>
                        <Taxes>
                            <Total Code="USD">127.40</Total>
                        </Taxes>
                    </PriceDetail>
                    <Service ServiceID="SV_1_001">
                        <PassengerRef>PAX001 </PassengerRef>
                        <ServiceRef>SV_ES</ServiceRef>
                        <SegmentRef>SEG_ADDDXB_001</SegmentRef>
                    </Service>
                </OrderItem>
                <OrderItem OrderItemID="ORDERITEM002" Owner="ET">
                    <PriceDetail>
                        <TotalAmount>
                            <SimpleCurrencyPrice Code="USD">379.40</SimpleCurrencyPrice>
                        </TotalAmount>
                        <BaseAmount Code="USD">252.00</BaseAmount>
                        <Surcharges>
                            <Surcharge>
                                <Total Code="USD">0</Total>
                            </Surcharge>
                        </Surcharges>
                        <Taxes>
                            <Total Code="USD">127.40</Total>
                        </Taxes>
                    </PriceDetail>
                    <Service ServiceID="SV_2_002">
                        <PassengerRef>PAX002 </PassengerRef>
                        <ServiceRef>SV_ES</ServiceRef>
                        <SegmentRef>SEG_ADDDXB_002</SegmentRef>
                    </Service>
                </OrderItem>
                <OrderItem OrderItemID="ORDERITEM003" Owner="ET">
                    <PriceDetail>
                        <TotalAmount>
                            <SimpleCurrencyPrice Code="USD">48.00</SimpleCurrencyPrice>
                        </TotalAmount>
                        <BaseAmount Code="USD">34.00</BaseAmount>
                        <Surcharges>
                            <Surcharge>
                                <Total Code="USD">0</Total>
                            </Surcharge>
                        </Surcharges>
                        <Taxes>
                            <Total Code="USD">14.00</Total>
                        </Taxes>
                    </PriceDetail>
                    <Service ServiceID="SV_3_003">
                        <PassengerRef>PAX003 </PassengerRef>
                        <ServiceRef>SV_ES</ServiceRef>
                        <SegmentRef>SEG_ADDDXB_003</SegmentRef>
                    </Service>
                </OrderItem>
            </OrderItems>
        </Order>

RequestRoot node of the request schema

Response


Order 
@OrderIDPNR e.g. YTDFRA
@OwnerORA
BookingReferences 
BookingReference 
IDPNR e.g. YTDFRA
AirlineIDET
@NameEthiopian Airlines
TotalOrderPriceTotal ticket price including taxes
SimpleCurrencyPriceTotal order price e.g. 107208
@CodeCurrency code e.g. USD, GBP, EUR
BaseAmountBase fare value
@CodeCurrency code
Taxes 
TotalTax value
@CodeCurrency code
ServiceService per segment per passenger
@ServiceIDService per segment per passenger
PassengerRefPassenger entitled to service
SegmentRefFlight segment associated to service
  

		     
			
        <TicketDocInfos>
            <TicketDocInfo>
                <TicketDocument>
                    <TicketDocNbr>0712134759422</TicketDocNbr>
                    <Type>T</Type>
                    <NumberofBooklets>2</NumberofBooklets>
                    <ReportingType>Airline</ReportingType>
                </TicketDocument>
                <PassengerReference>PAX001</PassengerReference>
            </TicketDocInfo>
            <TicketDocInfo>
                <TicketDocument>
                    <TicketDocNbr>0712134759423</TicketDocNbr>
                    <Type>T</Type>
                    <NumberofBooklets>2</NumberofBooklets>
                    <ReportingType>Airline</ReportingType>
                </TicketDocument>
                <PassengerReference>PAX002</PassengerReference>
            </TicketDocInfo>
        </TicketDocInfos>
RequestRoot node of the request schema

TicketDocInfos


TicketDocInfo
TicketDocument
TicketDocNbrTicket number - 0712134759422
Typee.g. T
NumberofBookletse.g. 2
ReportingTypeAirline
PassengerReferencee.g. PAX001 

		     
			
<DataLists>
            <PassengerList>
                <Passenger PassengerID="PAX001">
                    <PTC>ADT</PTC>
                    <Individual>
                        <Birthdate>1988-06-10</Birthdate>
                        <Gender>Female</Gender>
                        <GivenName>JANE MRS</GivenName>
                        <Surname>SMITH</Surname>
                    </Individual>
                    <IdentityDocument>
                        <IdentityDocumentNumber>543000123</IdentityDocumentNumber>
                        <IdentityDocumentType>F</IdentityDocumentType>
                        <IssuingCountryCode>US</IssuingCountryCode>
                        <CitizenshipCountryCode>US</CitizenshipCountryCode>
                        <ExpiryDate>2022-01-16</ExpiryDate>
                        <Birthdate>1988-06-10</Birthdate>
                        <Birthplace>US</Birthplace>
                    </IdentityDocument>
                    <ContactInfoRef>CONTACT_PAX_1</ContactInfoRef>
                </Passenger>
                <Passenger PassengerID="PAX002">
                    <PTC>ADT</PTC>
                    <Individual>
                        <Birthdate>2019-06-10</Birthdate>
                        <Gender>Female</Gender>
                        <GivenName>SAWI MRS</GivenName>
                        <Surname>SAWALE</Surname>
                    </Individual>
                    <IdentityDocument>
                        <IdentityDocumentNumber>543000123</IdentityDocumentNumber>
                        <IdentityDocumentType>F</IdentityDocumentType>
                        <IssuingCountryCode>US</IssuingCountryCode>
                        <CitizenshipCountryCode>US</CitizenshipCountryCode>
                        <ExpiryDate>2022-01-16</ExpiryDate>
                        <Birthdate>2019-06-10</Birthdate>
                        <Birthplace>US</Birthplace>
                    </IdentityDocument>
                    <ContactInfoRef>CONTACT_PAX_2</ContactInfoRef>
                </Passenger>
            </PassengerList>
            <ContactList>
                <ContactInformation ContactID="CONTACT_PAX_1">
                    <ContactProvided>
                        <Phone>
                            <Label>HOME</Label>
                            <CountryDialingCode>IAD</CountryDialingCode>
                            <PhoneNumber>944123456</PhoneNumber>
                        </Phone>
                    </ContactProvided>
                    <ContactProvided>
                        <EmailAddress>
                            <EmailAddressValue>JANE@MAIL.COM</EmailAddressValue>
                        </EmailAddress>
                    </ContactProvided>
                </ContactInformation>
                <ContactInformation ContactID="CONTACT_PAX_2">
                    <ContactProvided>
                        <Phone>
                            <Label>HOME</Label>
                            <CountryDialingCode>IAD</CountryDialingCode>
                            <PhoneNumber>944123456</PhoneNumber>
                        </Phone>
                    </ContactProvided>
                    <ContactProvided>
                        <EmailAddress>
                            <EmailAddressValue>JANE@MAIL.COM</EmailAddressValue>
                        </EmailAddress>
                    </ContactProvided>
                </ContactInformation>
            </ContactList>
            <FlightSegmentList>
                <FlightSegment SegmentKey="SEG_ADDIAD_001">
                    <Departure>
                        <AirportCode>ADD</AirportCode>
                        <Date>2023-03-20</Date>
                        <Time>09:00</Time>
                        <Terminal />
                    </Departure>
                    <Arrival>
                        <AirportCode>IAD</AirportCode>
                        <Date>2023-03-20</Date>
                        <Time>19:25</Time>
                        <Terminal />
                    </Arrival>
                    <MarketingCarrier>
                        <AirlineID>ET</AirlineID>
                        <FlightNumber>0516</FlightNumber>
                    </MarketingCarrier>
                    <OperatingCarrier>
                        <AirlineID>ET</AirlineID>
                        <FlightNumber>0516</FlightNumber>
                    </OperatingCarrier>
                    <Equipment>
                        <AircraftCode>788</AircraftCode>
                    </Equipment>
                    <ClassOfService>
                        <Code>D</Code>
                        <MarketingName>BUSINESS</MarketingName>
                        <FareBasisCode>DEYJ0WET</FareBasisCode>
                    </ClassOfService>
                    <FlightDetail>
                        <FlightDistance>
                            <Value>7929</Value>
                            <UOM>Miles</UOM>
                        </FlightDistance>
                        <FlightDuration>
                            <Value>PT16H10M</Value>
                        </FlightDuration>
                    </FlightDetail>
                </FlightSegment>
            </FlightSegmentList>
            <FlightList>
                <Flight FlightKey="FLT001">
                    <SegmentReferences OnPoint="ADD" OffPoint="WAS">SEG_ADDIAD_001</SegmentReferences>
                </Flight>
            </FlightList>
            <OriginDestinationList>
                <OriginDestination>
                    <DepartureCode UOM="Miles">ADD</DepartureCode>
                    <ArrivalCode UOM="Miles">WAS</ArrivalCode>
                    <FlightReferences>FLT001</FlightReferences>
                </OriginDestination>
            </OriginDestinationList>
            <InstructionsList>
                <Instruction ListKey="RULE_ADD_WAS">
                    <FreeFormTextInstruction>
                        <Remark>NOTE - THE FOLLOWING TEXT IS INFORMATIONAL AND NOT</Remark>
      </FreeFormTextInstruction>
                </Instruction>
            </InstructionsList>
            <ServiceDefinitionList>
                <ServiceDefinition ServiceDefinitionID="SV_CX" Owner="ET">
                    <Name>CX</Name>
                    <Descriptions>
                        <Description>
                            <Text>CLOUD 9 RESTRICTED</Text>
                        </Description>
                    </Descriptions>
                </ServiceDefinition>
            </ServiceDefinitionList>
            <SeatDefinitionList />
        </DataLists>
RequestRoot node of the request schema
PassengerListList of passengers
Passenger 
@PassengerIDUnique passenger identifier e.g. PAX001
PTCPassenger type e.g. ADT, CHD, INF
Individual 
BirthdateFormat YYYY-MM-DD
GenderMale, Female
NameTitleMR, MRS, MS, MISS, MASTER, DR, PROF, AMB, SIR
GivenNameFirst name
MiddleNameMiddle Name
SurnameLast name or Family name
LoyaltyProgramAccount 
AccountNumbere.g. Shebamiles number
IdentityDocument 
IdentityDocumentNumberpassport number
IdentityDocumentTypeF - Passport
IssuingCountryCode2 letter country code of passport e.g. ET, GB
CitizenshipCountryCode2 letter country code of nationality e.g. ET
IssueDateFormat YYYY-MM-DD
ExpireDateFormat YYYY-MM-DD
BirthdateFormat YYYY-MM-DD
Birthplace2 letter country code of birth e.g. ET
ContactInfoRefReference to passenger contact information in ContactList
ContactList 
ContactInformation 
@ContactIDUnique contact ID e.g. CONTACT001
ContactType

PRIMARY

PAYMENT – used if passenger is paying
PostalAddressAddress information
LabelType of address e.g. HOME, WORK
Street

Street 1

0-9

a-z

A-Z

Maximum of 30 characters
PostalCodePostal or zip code
CityNamee.g. Addis Ababa
CountrySubdivisionNameState or Region e.g. Oromia, Texas
CountryName2 letter country code of address e.g. ET
ContactProvidedCollection of either emails or phone. Use separate nodes for emails and phones.
EmailAddress 
LabelHOME or WORK
EmailAddressValuee.g. john.doe@mail.com
Phone 
LabelMOBILE, WORK
CountryDialingCodeCountry code without + e.g. 251, 92
PhoneNumberNumber without country code
IndividualRequired when the Payment.Payer node is set
GivenName 
MiddleName 
Surname 

XML Sample

Request and Response  Sample AirdocIsse XML
AirdocIssue RequestClick to download
AirdocIssue ResponseClick to download
Multi pax AirdocIssue RequestClick to download
Multi pax AirdocIssue ResponseClick to download

Erorrs Response Description 

Error responses

 

Erorr Code Error Code Text
400 Page not found
200 Success response
0 Error

About us

Terms and Conditions

Ethiopian App

Scan to download our app.

ET Mobile App QR Code

Book and manage your flight easily.

  • Play Store
  • App Store

Social Media

Connect with us on social media

Subscribe

Subscribe to our email newsletter to receive updates

Subscribe

Best Cabin crew in Africa

 

Best Airline in Africa for seven years in a row
Best Cabin crew in Africa
Best Business Class in Africa for six years in a row
Best Cabin crew in Africa
Best Economy Class in Africa for six years in a row
Best Economy Class OnBoard Catering in Africa

© 2024 Ethiopian Airlines NDC Portal

Ethiopian Airlines A Star Alliance Member