4 stappen: altijd de juiste IATA en ICAO code voor logistiek & reizen
Vier praktische stappen om te bepalen wanneer je IATA, ICAO of UN/LOCODE gebruikt. Valideer codes in reis- en logistieke data en voorkom foutieve...
IATA-codes zijn drieletterige commerciële codes voor tickets, bagage en boekingen. ICAO-codes zijn vierletterige operationele codes voor vluchtplanning, luchtverkeersleiding en weerberichten. Er bestaat geen directe formule om het ene om te zetten in het andere: je herkent patronen (zoals bij Amerikaanse luchthavens), maar voor betrouwbare data blijf je afhankelijk van opzoektabellen.
Kort samengevat:
- IATA-codes worden gebruikt voor passagiersboekingen en bagagelabels, terwijl ICAO-codes dienen voor vluchtplanning en luchtverkeersleiding.
- In de Verenigde Staten plaatst men meestal een K vóór de IATA-code om de ICAO-code te vormen, maar dit patroon geldt niet overal en is niet betrouwbaar.
- Niet alle luchthavens hebben zowel een IATA- als een ICAO-code; kleine vliegvelden krijgen vaak alleen een ICAO-code, terwijl UN/LOCODE breder toepasbaar is voor logistiek.
- Fouten bij het automatisch koppelen van de juiste code leiden tot gedoe in de logistieke keten, maar geautomatiseerde validatie voorkomt veel problemen.
- Het scheiden van commerciële (IATA) en operationele (ICAO) codegebruik beschermt het systeem tegen storingen door veranderingen in de luchtvaartindustrie.
Inhoudsopgave
- Wat zijn IATA-codes?
- Wat zijn ICAO-codes?
- IATA versus ICAO in één overzicht
- Herkenningspatronen: hoe je codes van elkaar onderscheidt
- Wanneer heeft een luchthaven geen IATA- of ICAO-code?
- Welke code gebruik je bij welke taak?
- Wat verkeerde codemapping kost in de praktijk
- Waarom dubbele codesystemen geen overbodige luxe zijn
- Bronnen
Wat zijn IATA-codes?
IATA, de internationale branchevereniging van luchtvaartmaatschappijen, kent deze drieletterige codes toe. Een luchthaven krijgt zo’n code niet automatisch: een luchtvaartmaatschappij of een andere marktpartij vraagt de code aan zodra er commerciële interesse ontstaat, bijvoorbeeld voor een nieuwe lijndienst. Dat verklaart meteen waarom sommige kleine vliegvelden geen IATA-code hebben en drukke militaire bases wel weer niet.
Met drie letters zijn er maximaal 17.576 combinaties mogelijk, en IATA heeft ze allang bijna allemaal uitgegeven. Bij de toekenning speelt herkenbaarheid een grote rol: waar mogelijk kiest IATA voor een code die de plaatsnaam oproept, zoals AMS voor Amsterdam. Dat lukt niet altijd. Historische toevalligheden leverden codes op die weinig met de huidige naam te maken hebben:
- ORD voor Chicago O’Hare, een verwijzing naar de voormalige naam Orchard Field.
- MSY voor New Orleans, afkomstig van Moisant Stock Yards, het terrein waar het vliegveld ooit lag.
- YYZ voor Toronto Pearson, een code die geen letter van de huidige naam bevat.
IATA-codes duik je overal in de reiswereld tegen: op je instapkaart, op je bagagelabel, in boekingssystemen en op de schermen in de aankomsthal. Voor iedereen die met passagiers werkt, is dit de code die telt.
Wat zijn ICAO-codes?
Waar IATA een handelsvereniging is, is de Internationale Burgerluchtvaartorganisatie (ICAO) een gespecialiseerd agentschap van de Verenigde Naties. ICAO publiceert de volledige lijst van locatie-indicatoren in Document 7910, en die lijst volgt een strikte, geografische logica die IATA-codes niet hebben.
Een ICAO-code bestaat uit vier letters, en die opbouw is geen toeval. De eerste letter wijst meestal een wereldregio aan, de tweede vaak het land binnen die regio, en de resterende letters identificeren de specifieke locatie. Nederland valt bijvoorbeeld onder de “E”-regio voor Noordwest-Europa: Schiphol is EHAM. Doordat vier letters veel meer combinaties toelaten dan drie, ongeveer 450.000 in theorie, heeft ICAO ruimte om ook kleine regionale velden en heliports een unieke code te geven.
Deze code gebruik je niet aan de incheckbalie, maar in de cockpit en de verkeerstoren:
- Vluchtplannen die piloten en luchtverkeersleiding voor vertrek indienen.
- Communicatie met luchtverkeersleiding (ATC) tijdens de vlucht.
- METAR- en TAF-weerberichten, die per luchthaven worden gepubliceerd.
- Navigatiedatabases in vliegtuigsystemen en op de grond.
Voor operationele en technische toepassingen is de ICAO-code dus de standaard, niet de code die de passagier ooit ziet.
IATA versus ICAO in één overzicht
| Kenmerk | IATA-code | ICAO-code |
|---|---|---|
| Gebruik | Ticketing, bagage, passagierscommunicatie | Vluchtplanning, ATC, METAR/TAF |
| Lengte en structuur | 3 letters, vaak mnemonic | 4 letters, regio- en landprefix |
| Toewijzing | Op aanvraag door luchtvaartmaatschappijen, via IATA | Systematisch toegekend door ICAO-lidstaten |
| Dekking | Alleen locaties met commerciële relevantie | Vrijwel elk geregistreerd vliegveld en heliport |
| Praktische toepassing | Reizigers, boekingssystemen, bagagelabels | Piloten, ATC, meteorologische diensten |
De rijen tonen meteen waarom IATA-codes en ICAO-codes naast elkaar bestaan zonder elkaar te vervangen: de ene dient de passagier, de andere de operatie. Een reiziger heeft nooit een ICAO-code nodig om in te checken. Een luchtverkeersleider werkt nooit met de drieletterige code op je koffer.
Pro-tip: Controleer bij elke nieuwe databron eerst welk veld je binnenkrijgt voordat je automatisch gaat mappen. Een CSV-export met een kolom “airport_code” zegt niets over of het IATA, ICAO of iets anders is.
Herkenningspatronen: hoe je codes van elkaar onderscheidt
Voor een aantal landen bestaat een herkenbaar patroon tussen de IATA- en ICAO-code, en dat patroon is een handig hulpmiddel, geen wetmatigheid. In de Verenigde Staten geldt vaak de regel: zet een K voor de IATA-code en je hebt de ICAO-code. JFK wordt zo KJFK, ATL wordt KATL. In Canada werkt hetzelfde principe met een C: YYZ wordt CYYZ, YVR wordt CYVR.
Deze vlistregels werken alleen binnen specifieke landen en zijn geen universele sleutel:
- Europese en Aziatische luchthavens volgen andere prefix-logica die per land verschilt.
- Sommige ICAO-codes hebben helemaal geen letterlijke relatie met hun IATA-tegenhanger.
- Automatische scripts die blind een letter toevoegen, produceren bij internationale datasets regelmatig foute codes.
Er bestaat geen algoritmische conversie tussen de twee systemen. Softwaresystemen die met luchtvaartdata werken, vertrouwen daarom op vaste opzoektabellen in plaats van op een formule. Wie zelf iets bouwt dat codes herkent of extraheert, doet er goed aan die tabellen als bron te gebruiken en patroonregels alleen als extra validatiestap in te zetten, niet als hoofdmethode.
Wanneer heeft een luchthaven geen IATA- of ICAO-code?
Niet elk vliegveld heeft beide codes, en dat heeft een logische verklaring. IATA geeft codes alleen uit aan locaties met een commercieel belang, meestal een lijndienst of een vraag naar geïntegreerde ticketing. Een klein regionaal veld zonder passagiersvluchten krijgt daardoor vaak wel een ICAO-code, maar geen IATA-code.
Voor bredere logistieke toepassingen schiet zowel IATA als ICAO tekort, en daar komt UN/LOCODE in beeld. Dit systeem van de UNECE combineert een tweeletterige ISO-landcode met drie extra letters voor de locatie, wat veel meer punten dekt dan luchthavens alleen: havens, spoorterminals, grensposten en binnenvaartlocaties.
- IATA dekt alleen plekken met commerciële luchtvaartbelangen.
- ICAO dekt vrijwel elk geregistreerd luchtvaartterrein, groot of klein.
- UN/LOCODE dekt transportknooppunten breed, ook buiten de luchtvaart.
Voor wie een TMS of douanesysteem inricht, is dat een praktisch beslissingspunt: bij zuivere vluchtdata volstaan IATA en ICAO, maar bij multimodale zendingen is UN/LOCODE vaak de enige code die alle schakels in de keten dekt.
Welke code gebruik je bij welke taak?
De keuze tussen IATA, ICAO en UN/LOCODE hangt af van de bron van je data en het systeem waar die data naartoe moet. Een vaste volgorde voorkomt de meeste fouten:
- Bepaal de bron. Komt de code uit een boekingsmail, een vluchtplan of een vrachtdocument?
- Valideer het formaat. Drie letters wijst op IATA, vier op ICAO, vijf tekens (landcode plus drie letters) op UN/LOCODE.
- Map naar het doelsysteem. Gebruik een opzoektabel, niet een gok op basis van patronen.
- Log elke mismatch. Een code die niet matcht, moet zichtbaar worden voor handmatige controle, niet stilzwijgend worden genegeerd.
Bij het verwerken van boekingsmails valideer je dus op IATA, omdat dat de code is die klanten en luchtvaartmaatschappijen gebruiken. Bij vluchtdata valideer je op ICAO. Bouw je een systeem dat logistieke en luchtvaartdata combineert, zoals bij Portbase-koppelingen, dan is een fallback naar UN/LOCODE vaak de enige manier om alle documenttypes consistent te verwerken.
Pro-tip: Sla bij elke geëxtraheerde locatiecode ook op uit welk documenttype die kwam. Die context maakt latere foutopsporing veel sneller dan achteraf gissen welk formaat je verwachtte.
Wat verkeerde codemapping kost in de praktijk
Een foutieve luchthavencode in een boekingsmail of vrachtdocument plant zich voort door de hele keten: van foute ETA-berekening tot een afgekeurde douaneaangifte. De juiste flow is eenvoudig maar wordt vaak overgeslagen: detecteer het codeformaat, valideer tegen de juiste standaard, converteer waar nodig, en leg elke stap vast in een audit-trail.

AI-agenten zoals Alex van Logentic lezen binnenkomende mails en documenten, herkennen welk type locatiecode erin staat, en valideren die automatisch tegen IATA-, ICAO- en UN/LOCODE-tabellen voordat de gegevens het TMS bereiken. Dat voorkomt dat een menselijke lezer een typefout of verwarring tussen codesystemen over het hoofd ziet.
Waarom dubbele codesystemen geen overbodige luxe zijn

De verleiding is groot om IATA- en ICAO-codes te zien als bureaucratische verdubbeling. Dat is een misvatting. De scheiding tussen een commercieel systeem en een operationeel systeem bestaat met een reden: een wijziging in ticketing of een fusie tussen luchtvaartmaatschappijen mag nooit direct doorwerken in vluchtplanning of luchtverkeersleiding. Die scheiding houdt operationele systemen stabiel, ook wanneer de commerciële kant van de luchtvaart voortdurend verandert.
Wat mij opvalt in gesprekken met logistieke teams, is dat de meeste fouten niet ontstaan doordat mensen het verschil tussen IATA en ICAO niet kennen. Ze ontstaan doordat niemand expliciet vastlegt welke standaard een systeem verwacht, waardoor een drieletterige code stilzwijgend als vierletterig wordt behandeld, of omgekeerd. Automatisering lost dat niet op door slimmer te gokken. Het lost dat op door elke code eerst te classificeren en pas daarna te verwerken, met een duidelijk pad voor wat er gebeurt als een code niet matcht. Wie dat principe negeert, betaalt daar vroeg of laat voor in verkeerde douaneaangiftes of foutieve zendingsdata. Wie het wel toepast, merkt dat de meeste “onverklaarbare” datafouten in logistieke systemen gewoon verkeerd geclassificeerde locatiecodes waren.
— Bogdan
Bronnen
Voor wie zelf wil verifiëren hoe locatiecodes zijn opgebouwd, zijn drie documenten leidend. ICAO Document 7910 publiceert de volledige lijst van location indicators en de prefix-logica erachter. De IATA-factsheet over locatiecodes legt de toewijzingsregels en de commerciële achtergrond van drieletterige codes uit. Voor logistieke toepassingen buiten de luchtvaart is de UN/LOCODE-handleiding van UNECE de referentie.
Wie meer wil lezen over hoe deze codes terugkomen in douane- en TMS-workflows, vindt praktische achtergrond in de kennisbank van Logentic.
Aanbevelingen
Wil je zien hoe Logentic dit werk automatiseert?
Plan een gesprek →