Rijksregisternummer generator
Fictieve Belgische rijksregisternummers en bisnummers met een kloppend controlegetal. Kies het geslacht, geboren vóór of vanaf 2000 en de notatie; bij elk nummer zie je de berekening. Met validator en export naar Excel, CSV en JSON.
FictiefAlle gegenereerde gegevens zijn fictief en alleen bedoeld voor test- en ontwikkelomgevingen. Een willekeurig geldig nummer kan toevallig bestaan: gebruik het nooit als echt gegeven.
Rijksregisternummer: voor iedereen die in het Rijksregister is ingeschreven.
Per nummer vóór of vanaf 2000, zodat je beide berekeningen test.
Per nummer een man (oneven volgnummer) of een vrouw (even volgnummer).
JJ.MM.DD-XXX.CC, zoals op de identiteitskaart.
Rijksregisternummer controleren
Controleert controlegetal, eeuw, geboortedatum en volgnummer, ook van bisnummers. Punten, streepjes en spaties mogen.
Hoe is een rijksregisternummer opgebouwd?
Het rijksregisternummer, ook wel nationaal nummer, heeft 11 cijfers. Op de identiteitskaart en in de meeste software staat het als JJ.MM.DD-XXX.CC. Volgens de onderrichtingen van het Rijksregister (I.T. 000) is het zo opgebouwd:
| Positie | Inhoud |
|---|---|
| 1–6 | Geboortedatum: jaar, maand en dag (JJMMDD) |
| 7–9 | Volgnummer voor wie op dezelfde dag is geboren, in volgorde van inschrijving: oneven voor een man (001–997), even voor een vrouw (002–998) |
| 10–11 | Controlegetal: 97 min de rest van de deling door 97 |
Is alleen het geboortejaar bekend, dan worden maand en dag 00, zoals in het officiële voorbeeld 40.00.00-953.81. Zijn alle volgnummers van zo'n datum op, dan wordt de dag 01, 02, enzovoort. Is de geboortedatum helemaal onbekend, dan begint het nummer met de fictieve datum 00.00.01. Een validator die elke maand of dag 00 weigert, keurt dus echte nummers af.
Het controlegetal berekenen
Deel het getal van de eerste negen cijfers door 97 en trek de rest af van 97. Uitgewerkt voor het voorbeeld uit de onderrichtingen van het Rijksregister, een man die op 22 januari 1942 is geboren:
- 420122051 = 4.331.155 × 97 + 16
- 97 − 16 = 81
- 42.01.22-051.81
Geboren vanaf 2000. Sinds het KB van 25 november 1997 zet je voor wie vanaf 1 januari 2000 is geboren eerst een 2 vóór de negen cijfers. Dezelfde negen cijfers geven zo per eeuw een ander controlegetal:
| Geboren | Deeltal | Rest | Controlegetal | Nummer |
|---|---|---|---|---|
| 30 juli 1917 | 170730033 | 42 | 97 − 42 = 55 | 17.07.30-033.55 |
| 30 juli 2017 | 2170730033 | 13 | 97 − 13 = 84 | 17.07.30-033.84 |
De eeuw staat dus alleen in het controlegetal. Een validator probeert beide berekeningen; hooguit één klopt, en die bepaalt of iemand vóór of vanaf 2000 is geboren. Controleer daarna de geboortedatum met dat jaar: 29 februari 1900 bestaat niet, 29 februari 2000 wel.
Bisnummer: maand + 40 of + 20
Wie niet in het Rijksregister staat maar wel een band met België heeft, zoals een grensarbeider of iemand met een eigendom in België, krijgt van de Kruispuntbank van de Sociale Zekerheid (KSZ) een bisnummer. Dat is net zo opgebouwd, met hetzelfde controlegetal en ook de 2 voor geboorten vanaf 2000. Het verschil zit in de maand (KB van 8 februari 1991):
| Maand | Betekenis |
|---|---|
| 01–12 | Rijksregisternummer |
| 41–52 | Bisnummer, geslacht bekend bij de toekenning (maand + 40) |
| 21–32 | Bisnummer, geslacht onbekend bij de toekenning (maand + 20); het volgnummer zegt dan niets over het geslacht |
| 00, 40, 20 | Geboortemaand onbekend |
Rijksregisternummer en bisnummer samen vormen het INSZ, het identificatienummer van de sociale zekerheid. Een INSZ-veld moet dus allebei accepteren.
Wanneer heb je een fictief rijksregisternummer nodig?
- Onboarding en klantregistratie— formulieren en API's die een rijksregisternummer vragen en controleren of geboortedatum en geslacht kloppen met de andere velden.
- Sociale zekerheid en personeelsadministratie — INSZ-velden die zowel rijksregisternummers als bisnummers moeten accepteren, bijvoorbeeld voor grensarbeiders.
- De eeuwgrens — personen van vóór en vanaf 2000 in dezelfde testset, zodat een vergeten 2 meteen opvalt.
- Maskeren en logging — het nummer verraadt geboortedatum en geslacht. Controleer dat het niet onversleuteld in logs, exports of foutmeldingen belandt. Complete testpersonen maak je met de Dataset Generator; een Belgisch testbedrijf met de Ondernemingsnummer Generator.
Rijksregisternummer valideren in TypeScript
export function isValidRijksregisternummer(input: string): boolean {
const n = input.replace(/[\s.-]/g, '');
if (!/^\d{11}$/.test(n)) return false;
// Maand 01-12; bij een bisnummer + 20 of + 40 (00, 20 en 40: maand onbekend).
const maand = Number(n.slice(2, 4));
if (!(maand <= 12 || (maand >= 20 && maand <= 32) || (maand >= 40 && maand <= 52))) return false;
const basis = Number(n.slice(0, 9));
const controle = Number(n.slice(9));
// Geboren vóór 2000: 97 - (9 cijfers mod 97). Vanaf 2000: eerst een 2 ervoor.
return controle === 97 - (basis % 97) || controle === 97 - ((2_000_000_000 + basis) % 97);
}De functie controleert het formaat, de maand en het controlegetal voor beide eeuwen. Controleer daarna de geboortedatum met het jaar waarvoor het controlegetal klopt: 31 april of een datum in de toekomst is ongeldig, een maand of dag 00 niet.
Veelgestelde vragen
Zijn de gegenereerde rijksregisternummers echt?
Nee. Geboortedatum, volgnummer en controlegetal worden willekeurig samengesteld volgens de regels van het Rijksregister. Omdat de volgnummers per geboortedatum vanaf 001 en 002 worden uitgegeven, kan een gegenereerd nummer toevallig van een echte persoon zijn. Gebruik de nummers alleen in testomgevingen en nooit om iemand te identificeren.
Waarom komt er een 2 voor het nummer bij geboorten vanaf 2000?
Zo hangt het controlegetal af van de eeuw. Sinds het KB van 25 november 1997 zet je voor wie vanaf 1 januari 2000 is geboren een 2 vóór de eerste negen cijfers, en pas dan deel je door 97. Iemand uit 1917 en iemand uit 2017 kunnen dezelfde eerste negen cijfers hebben, maar nooit hetzelfde controlegetal. Een validator die de 2 vergeet, keurt iedereen af die vanaf 2000 is geboren.
Wat is het verschil tussen een rijksregisternummer, een bisnummer en het INSZ?
Een rijksregisternummer krijgt iedereen die in het Rijksregister is ingeschreven. Wie daar niet in staat maar wel een band met België heeft, zoals een grensarbeider, krijgt van de Kruispuntbank van de Sociale Zekerheid (KSZ) een bisnummer. Dat is net zo opgebouwd, maar de geboortemaand is verhoogd met 40 (geslacht bekend) of met 20 (geslacht onbekend). Het INSZ, het identificatienummer van de sociale zekerheid, is een van beide.
Kan een rijksregisternummer veranderen?
Ja. Blijkt het geslacht of de geboortedatum fout, dan wordt het nummer vernietigd en krijgt de persoon een nieuw nummer. Ook wie de registratie van het geslacht laat aanpassen, krijgt een nieuw rijksregisternummer. Een toegekend nummer wordt nooit opnieuw uitgegeven. Gebruik het in je datamodel dus niet als sleutel die nooit wijzigt.
Hoe test ik een validator voor rijksregisternummers?
Gebruik nummers van vóór en vanaf 2000 en controleer dat je code de eeuw uit het controlegetal afleidt. Voor een negatieve test wijzig je een van de twee controlecijfers: zo'n nummer klopt voor geen enkele eeuw. Test ook datums die niet bestaan, zoals 31 april, een maand 13 en volgnummer 000 of 999. Onvolledige datums met maand of dag 00 zijn wél geldig.
Mag ik echte rijksregisternummers gebruiken om te testen?
Nee. Wie het rijksregisternummer van iemand wil gebruiken, heeft daarvoor toestemming van de FOD Binnenlandse Zaken nodig, en alleen voor het doel waarvoor die is gegeven. Het nummer verraadt bovendien geboortedatum en geslacht. Gebruik in test- en acceptatieomgevingen daarom altijd fictieve nummers.