I found on this website several questions speaking of IATA, ICAO and airports codes. The fact that two identification codes for the same airport exist means there are cases where you use one, and other cases where you use the other. I wonder what is the rule to know which code (IATA or ICAO) should be used.


It helps to know the objective of both ICAO and IATA to understand when which code is used.

ICAO (International Civil Aviation Organization) is a UN-body which focusses on international harmonization of civil aviation regulations.

ICAO codes are used for "official" purposes such as Air Traffic Control; E.g. flight plans use ICAO codes for airports and airline flight identification.

IATA (International Air Transport Association) is a trade association that focusses on making air traffic businesses safe, secure, reliable and efficient.

IATA codes are mainly used for ticketing. E.g. travel itineraries use IATA codes for airports and IATA flight numbers.

  • 4
    $\begingroup$ This follows somewhat from the objectives of the two organisations. The International Civil Aviation Organisation is focused on civil aviation regulations. The International Air Transport Association is a trade association for airlines. $\endgroup$ – RedGrittyBrick Sep 26 '14 at 14:17
  • $\begingroup$ choosen as better answer because (i) it answer the question (ii) it is the only answer and (iii) the comment from @RedGrittyBrick add good clarification to the answer. $\endgroup$ – Manu H Oct 13 '14 at 17:37
  • $\begingroup$ @ManuH I've included RedGrittyBrick 's comment in the text. Thanks both. $\endgroup$ – DeltaLima Oct 13 '14 at 18:18
  • 2
    $\begingroup$ The IATA codes are 3-letter codes, since the number of commercial airports worldwide is enough that 3 letters are enough: DFW, LHR, NRT, etc. The ICAO codes cover more airports, so they're 4 characters with the first (USA) or first two (most of the rest of the world) describing the region, and the last two unique to the airport there: DFW (IATA) = KDFW (ICAO) {K=USA}, LHR (IATA) = EGLL (ICAO) {since EG = Europe/Great Britain), and NRT = RJAA (RJ = East Asia/Japan). Your ticket might say DFW-LHR, but flightplan is filed KDFW-EGLL. $\endgroup$ – Ralph J Aug 1 '15 at 16:36
  • $\begingroup$ While pretty much all airports has an ICAO code, many smaller and non-serviced ones does not have an IATA. For example, look at small, unusual, high altitude airports. Basically, if they are marked on a flight map, it probably has an ICAO.With the obvious exception of countries/territories not conforming to int'l standards/rules. $\endgroup$ – not2qubit Feb 6 '18 at 21:20

UNECE manages the United Nations Code for Trade and Transport Locations

... over 103,034 locations in 249 countries and installations in international waters. It is used by most major shipping companies, by freight forwarders and in the manufacturing industry around the world. It is also applied by national governments and in trade related activities, such as statistics where it is used by the European Union, by the UPU for certain postal services, etc

An example of UN/LOCODE codes :

IE BGY : Ballynacargy, IE

IT BGO : Bergamo, IT

IT BGY : Bergamo Orio al Serio airport, IT

NL BGY : Bergeyk,NL

As I see, for aviation and airports :

  • worldwide, IATA codes aren't unique
  • UN/LOCODE are unique = CountryCode + IATA code

Due to the fact that carriers and freight forwarders ship not only to airports but also to other destinations ( train stations, harbours, hubs ...), it is mandatory on shipping documents to use UN/LOCODE, not IATA. My answer enlights that IATA code is used not only, strictly, in the aviation sector ( ICAO yes ).

  • $\begingroup$ @RalphJ My answer explains that nowadays IATA codes are a subset of UN/LOCODE. $\endgroup$ – Massimo May 1 '17 at 15:29
  • 4
    $\begingroup$ Are not IATA codes not unique amongst other IATA codes? The fact that an airport's 3-letter IATA code is shared as a unlocoe by some seaport in another country is unimportant as far as the aviation industry is concerned, doesn't mean that the airport's IATA code isn't unique to that airport (i.e. no other airport's IATA code will duplicate any other's), and is unrelated to the original question posted here. $\endgroup$ – Ralph J May 1 '17 at 17:49
  • $\begingroup$ A parent of mine works in DHL. please read my updated answer. $\endgroup$ – Massimo May 1 '17 at 20:36
  • $\begingroup$ Short IATA codes are unique only if you restrict the shipments to airports. And is not always true ... see for example "CHI" : generic code for six different airports. $\endgroup$ – Massimo May 1 '17 at 20:44
  • 2
    $\begingroup$ CHI is the code for a group of airports, but only ONE group. Nothing else has the code "CHI". Also, each of those airports (ORD, MDW, RFD, etc) has its own, unique IATA code. And yes, IATA codes are restricted to "just airports". (Consider what the second letter of "IATA" stands for...) If the use case is beyond just airports, what you're using isn't IATA codes, but another set of codes that has its own characteristics, even if some of their codes correspond to IATA codes. This answer is entirely off-topic to the original question, in any event. $\endgroup$ – Ralph J May 1 '17 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.