Most airlines have both a three-letter ICAO code (used for call sign) and a two-letter IATA code (used for flight number). Charter airlines and business jet operators in most cases only have a 3-letter ICAO code (used for call sign) as they are not selling tickets and don't need a flight number.
Why do airports have 2 codes?
In an airport, there are actually two different codes that are used. One is a code given to the airport by the International Air Transport Association (IATA), and the other is given by the International Civil Aviation Organization (ICAO). Usually but not always do these codes coincide.
