Skip to content

Postcodes ​

Bestand: data/postal-codes.json. De 1149 Belgische postcodes, elk gekoppeld aan de gemeente waartoe ze behoren, op REFNIS-code: 1152 records, omdat 3 postcodes bij twee gemeenten horen.

Waarvoor het dient ​

  • Van een adres naar de gerechtelijke kaart. Adressen komen met een postcode, niet met een REFNIS-code. De postcode geeft de gemeente, en de gemeente geeft haar kantons en gerechten: findCourtsForPostalCode('9050', 'labour-court') beantwoordt "welk gerecht voor dit adres?" zover de postcode dat kan.
  • De postcodes van een gemeente. Een formulier valideren, een mailing adresseren, nagaan of een adres en een REFNIS-code overeenstemmen: getPostalCodes('44021').
  • De gemeente van elk gerecht, elke gevangenis en elk justitiehuis. Hun address.municipality is deze koppeling, toegepast op de postcode van het gepubliceerde adres (#28).

Bron en updates ​

BronDe conversietabel van postcodes naar REFNIS-codes van Statbel, de tabel die geldt vanaf 1 januari 2025 (…_va01012025.xlsx)
Gebouwd doorscripts/parse/postal-codes.ts, uit de wekelijkse snapshots. De build faalt wanneer een postcode naar een REFNIS-code wijst die niet in municipalities.json staat, of een gemeente geen postcode heeft
Verandert bijStatbel een nieuwe tabel publiceert: gemeenten fuseren, bpost voegt een postcode toe of schaft er een af
Dekt1 januari 2025 en later: opzoekingen voor een vroegere dag gooien een RangeError (tijd). Een latere tabel geeft de paren die ze laat vallen een validTo en de paren die ze toevoegt een validFrom, op de dag waarop de tabel ingaat
GecontroleerdElke week, door de sources-workflow
Licentie© Statbel, CC BY 4.0

Statbel bouwt de tabel uit de postkantoren van bpost en de gemeenten van de FOD Financiën. Ze bevat ook een gemeentenaam per rij, die hier niet wordt bewaard: die wijkt op enkele plaatsen af van Statbels eigen REFNIS-lijst (Tongeren-Borgloon waar de lijst Tongres-Looz zegt, en Saint-Nicolas voor Sint-Niklaas), en een record verwijst naar zijn gemeente in plaats van haar te kopiëren. getMunicipality(record.municipality).name heeft de namen.

Gedeelde postcodes ​

Een gemeente heeft meerdere postcodes (Gent heeft er tien), en een postcode hoort bij één gemeente, op drie uitzonderingen na:

PostcodeGemeenten
1040Brussel (21004) en Etterbeek (21005)
1050Brussel (21004) en Elsene (21009)
1804Vilvoorde (23088) en Zemst (23096): Cargovil

Daar beslist de straat. getMunicipalitiesForPostalCode geeft beide gemeenten terug, en findCourtsForPostalCode antwoordt per gemeente, zodat een gedeelde code nooit stilzwijgend tot een van beide wordt herleid.

Velden ​

VeldTypeBeschrijving
idPostalCodeIdDe postcode en de REFNIS-code, aan elkaar: 9000-44021. Geen van beide benoemt alleen een record; samen zijn ze officieel én uniek. Zie identifiers
validFrom, validTostring?De dagen waarop het paar geldt, zoals de tabellen van Statbel ze geven; geen: sinds het begin van de dekking, of geldt nog. Zie tijd
postalCodestringDe postcode van vier cijfers
municipalityMunicipalityIdDe gemeente waartoe de postcode behoort, op REFNIS-code
ts
interface PostalCode {
    id: PostalCodeId // '9000-44021'
    validFrom?: string
    validTo?: string
    postalCode: string // '9000'
    municipality: MunicipalityId // '44021'
}

Wat er niet in zit ​

  • Deelgemeenten: de tabel van Statbel stopt bij de gemeente. De eigen postcodelijst van bpost noemt de deelgemeenten, maar bevat geen REFNIS-code en is gepubliceerd onder de gebruiksvoorwaarden van bpost (alle rechten voorbehouden), geen open licentie, dus ze wordt niet gebruikt.
  • De straat. In een stad die over kantons gesplitst is (Antwerpen, Gent, Brussel, Luik, …) geeft de postcode de gemeente, en de gemeente meerdere kantons; dan beslist de straat, en de grenzen bestaan alleen als juridisch proza in de territory van elk kanton tot #29 ze als geometrie toevoegt.

Helpers ​

ts
import { getMunicipalitiesForPostalCode, getPostalCodes } from 'belgica/postal-codes'
import { findCourtsForPostalCode } from 'belgica'

getMunicipalitiesForPostalCode('9050').map((m) => m.name.nl) // ['Gent']
getMunicipalitiesForPostalCode('1040').map((m) => m.name.nl) // ['Brussel', 'Etterbeek']
getPostalCodes('44021').map((p) => p.postalCode) // ['9000', '9030', '9031', …]

// Per gemeente: haar vredegerechten, en haar gerechten van het gevraagde type
findCourtsForPostalCode('9050', 'labour-court')
// [{ municipality: Gent, justicesOfThePeace: [gent-1 … gent-5], courts: [labour-court-gent] }]

Code onder MIT, data onder CC BY 4.0. Referentiedata, geen juridisch advies: controleer de officiële bronnen.