Elke developer die ooit een adresformulier voor Europese klanten heeft gebouwd, ontdekt uiteindelijk de waarheid: er is geen Europees postcodeformaat. Elk land heeft zijn eigen formaat en de variaties zijn echt betekenisvol. Deze pagina is een landenreferentie voor de EU-27 plus de belangrijkste niet-EU-Europese landen, met de regex-patronen en validatietips die je in productie nodig hebt.
Het globale patroon
Europese postcodes vallen ruwweg in vier groepen:
- 5-cijferig numeriek: Duitsland, Frankrijk, Italië, Spanje, Finland, Kroatië, Estland, Griekenland, Litouwen, Slowakije.
- 4-cijferig numeriek: België, Bulgarije, Hongarije, Oostenrijk, Zwitserland, Liechtenstein, Luxemburg, Noorwegen, Slovenië, Denemarken.
- Alfanumeriek, vast formaat: Nederland (4 cijfers plus 2 letters), Ierland (Eircode, 7 alfanumerieke tekens), Malta (3 letters plus 4 cijfers).
- Hiërarchisch alfanumeriek: Verenigd Koninkrijk (variabele lengte, tweeledig).
Plus een paar uitzonderingen: Zweden gebruikt 5 cijfers met een spatie na het derde (123 45), Polen gebruikt 5 cijfers met een koppelteken na het tweede (00-001), Tsjechië gebruikt 5 cijfers met een spatie na het derde (110 00).
De EU-27 referentie
| Land | ISO | Formaat | Voorbeeld | Regex |
|---|---|---|---|---|
| Oostenrijk | AT | 4 cijfers | 1010 | ^\d{4}$ |
| België | BE | 4 cijfers | 1000 | ^\d{4}$ |
| Bulgarije | BG | 4 cijfers | 1000 | ^\d{4}$ |
| Kroatië | HR | 5 cijfers | 10000 | ^\d{5}$ |
| Cyprus | CY | 4 cijfers | 1010 | ^\d{4}$ |
| Tsjechië | CZ | NNN NN | 110 00 | ^\d{3} ?\d{2}$ |
| Denemarken | DK | 4 cijfers | 1050 | ^\d{4}$ |
| Estland | EE | 5 cijfers | 10111 | ^\d{5}$ |
| Finland | FI | 5 cijfers | 00100 | ^\d{5}$ |
| Frankrijk | FR | 5 cijfers | 75008 | ^\d{5}$ |
| Duitsland | DE | 5 cijfers | 10115 | ^\d{5}$ |
| Griekenland | GR | NNN NN | 105 63 | ^\d{3} ?\d{2}$ |
| Hongarije | HU | 4 cijfers | 1051 | ^\d{4}$ |
| Ierland | IE | Eircode | D02 X285 | ^[A-Z]\d{2} ?[A-Z0-9]{4}$ |
| Italië | IT | 5 cijfers | 00184 | ^\d{5}$ |
| Letland | LV | LV-NNNN | LV-1050 | ^LV-\d{4}$ |
| Litouwen | LT | LT-NNNNN | LT-01100 | ^LT-\d{5}$ |
| Luxemburg | LU | 4 cijfers | 1234 | ^\d{4}$ |
| Malta | MT | LLL NNNN | VLT 1234 | ^[A-Z]{3} ?\d{4}$ |
| Nederland | NL | NNNN LL | 1011 AB | ^\d{4} ?[A-Z]{2}$ |
| Polen | PL | NN-NNN | 00-001 | ^\d{2}-\d{3}$ |
| Portugal | PT | NNNN-NNN | 1000-001 | ^\d{4}-\d{3}$ |
| Roemenië | RO | 6 cijfers | 010001 | ^\d{6}$ |
| Slowakije | SK | NNN NN | 811 01 | ^\d{3} ?\d{2}$ |
| Slovenië | SI | 4 cijfers | 1000 | ^\d{4}$ |
| Spanje | ES | 5 cijfers | 28013 | ^\d{5}$ |
| Zweden | SE | NNN NN | 111 22 | ^\d{3} ?\d{2}$ |
Belangrijke niet-EU-Europese landen
| Land | ISO | Formaat | Voorbeeld | Regex |
|---|---|---|---|---|
| Verenigd Koninkrijk | GB | hiërarchisch | SW1A 1AA | ^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$ |
| Zwitserland | CH | 4 cijfers | 8001 | ^\d{4}$ |
| Noorwegen | NO | 4 cijfers | 0150 | ^\d{4}$ |
| IJsland | IS | 3 cijfers | 101 | ^\d{3}$ |
| Liechtenstein | LI | 4 cijfers | 9490 | ^\d{4}$ |
De Britse postcode in detail
Het Britse systeem is het informatiedicthste in Europa. Een code als SW1A 1AA valt uiteen in:
SW: postgebied (Londen South West)SW1A: postdistrict (St James's en Pimlico)SW1A 1: postsector (een paar straten)SW1A 1AA: posteenheid (specifiek afleveringspunt, vaak één gebouw)
Door deze hiërarchie kan een Britse postcode een gebouw identificeren, wat waarom Britse producten de postcode vaak als proxy gebruiken voor wijk- of zelfs straatniveaugroepering. Vrijwel geen enkel ander landelijk postcodesysteem doet dit.
Productievalidatiepatronen
De goedkoopste productiebenadering is een landsspecifieke regex-tabel zoals hierboven, toegepast op basis van een landcode uit het adres. Die landcode kan komen van:
- Een expliciete dropdown die de gebruiker heeft geselecteerd
- De IP-geolocatie van de gebruiker
- Het geocodingresultaat (de meeste productiegecoders normaliseren de postcode en nemen de landcode op in de respons)
Vermijd het valideren van een postcode zonder het land te kennen. Een 4-cijferige code is geldig in 12 landen en ongeldig in vele anderen.
Voor processen met hoge inzet (betaling, KYC, gereguleerde sectoren) stop dan niet bij regex. Stuur het adres naar een geocoder en behandel een "rooftop"- of "street"-precisierespons als de validatie, niet het regex-resultaat alleen. Een correct geformatteerde postcode kan nog steeds niet overeenkomen met een echt adres.
Opslaan en normaliseren
Sla postcodes op als strings, niet als getallen. Voorloopnullen zijn belangrijk (01100 is een geldige Litouwse code; 1100 is dat niet). Opslagconventies:
- Verwijder niet-alfanumerieke tekens bij vergelijking over datasets.
- Geef de landkanonieke vorm (met koppeltekens, spaties, voorvoegsels) weer bij uitvoer.
- Sla altijd de landcode op naast de postcode, ook als je product vandaag maar in één land actief is. Het schema schaalt naar meerdere landen zonder migratie.
Hoe MapAtlas helpt
De MapAtlas Geocoding API retourneert een genormaliseerd address_components.postal_code-veld voor elk ondersteund land, gevalideerd tegen de brondata. De Search API accepteert een postcode als zoekinvoer en retourneert de bijbehorende locatie. Beide APIs zijn EU-gehost, GDPR-compliant en gebouwd op OSM-grade data met expliciete landsspecifieke adresparsers.
Voor een diepere blik op hoe adressen coördinaten worden, zie Wat is een geocode. Voor de breedtegraad- en lengtegraadmechanica achter elke coördinatenrespons, zie Lengtegraad vs breedtegraad.
Veelgestelde vragen
Wat is het formaat van Europese postcodes?
Er is geen enkel Europees postcodeformaat. Elk land definieert zijn eigen. De meeste gebruiken een numerieke code met vaste lengte (5 cijfers in Duitsland, Frankrijk, Italië, Spanje; 4 cijfers in België, Hongarije, Oostenrijk, Zwitserland), maar sommige gebruiken alfanumerieke codes (Nederland gebruikt 4 cijfers plus 2 letters, het Verenigd Koninkrijk gebruikt een complex tweeledig alfanumeriek systeem, Ierland gebruikt Eircode met 7 alfanumerieke tekens). Een werkende adresvalidator moet een landspecifiek patroon bevatten voor de EU-27 plus de belangrijkste niet-EU-Europese landen.
Is een Duitse postcode (Postleitzahl) hetzelfde als een Poolse postcode?
Beide hebben vijf tekens, maar de structuur verschilt. Duitsland gebruikt 5 aaneengesloten cijfers (bijv. 10115). Polen gebruikt 2 cijfers, een koppelteken en dan 3 cijfers (bijv. 00-001). Voor opslag kun je de canonieke vorm bewaren: met koppelteken voor Polen en zonder voor Duitsland. Voor vergelijking over datasets heen: normaliseer door niet-alfanumerieke tekens te verwijderen en pas het landspecifieke formaat opnieuw toe bij weergave.
Hoe valideer ik een postcode uit een EU-land?
Identificeer eerst het land (uit het adres, een ISO 3166-1 alpha-2-landcode of de geolocatie van de gebruiker). Pas vervolgens het regex-patroon van dat land toe. Landsbewuste validatie is het standaardproductiepatroon, omdat één globale regex ofwel geldige codes afwijst of duidelijk ongeldige codes accepteert. De MapAtlas Geocoding API retourneert een genormaliseerde postcode per land in de `address_components`, zodat je de validatiestap doorgaans aan de geocoder overlaat.
Waarom ziet het postcodeformaat van het Verenigd Koninkrijk er zo anders uit?
UK-postcodes gebruiken een hiërarchisch alfanumeriek systeem dat het postgebied, district, sector en eenheid codeert in twee delen (bijv. SW1A 1AA voor Buckingham Palace). Het draagt meer ruimtelijke informatie per code dan de meeste landssystemen, wat waarom UK-postcodes soms als proxy worden gebruikt voor wijk- of zelfs straatniveau. Het systeem werd in de jaren vijftig en zestig ontworpen en is sindsdien in moderne data-infrastructuur ingebouwd.

