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