Dutch BSN Validator
ValidatorValidate a Dutch BSN (Burgerservicenummer) instantly using the 11-proef (eleven-test) checksum. Accepts 8-digit or 9-digit input. Free, runs in your browser.
Looking for Germany's equivalent?
BSN is the Dutch national ID number. Germany's equivalent — the Steuer-ID — has its own check-digit algorithm. Try our Steuer-ID Validator →
About this tool
About Dutch BSN Validator
The Dutch BSN (Burgerservicenummer) is a 9-digit citizen service number checked with the 11-proef (eleven-test): weights 9 through 2 on the first 8 digits, and a weight of -1 (instead of +1) on the last digit — a deliberate variation from the plain elfproef used for bank accounts, so a bank account number can't be mistaken for a BSN.
Paste an 8-digit or 9-digit BSN (8-digit input is automatically left-padded with a zero) and the tool recomputes the weighted sum and confirms it's a multiple of 11, showing the sum so you can see the arithmetic yourself.
Use this to check a BSN collected on a Dutch-facing form (tax registration, healthcare enrollment, employment onboarding) before storing it, or to debug a validation library implementing the 11-proef.
Instant, fully client-side validation — no BSN ever leaves your browser. Correctly handles the historical 8-digit format via automatic zero-padding.
Key Features
- Verifies the 11-proef (eleven-test) checksum
- Accepts 8-digit input and left-pads it automatically
- Shows the weighted sum for transparency
- Rejects the all-zero number even though it mathematically passes
- 100% browser-based, no data sent
FAQ
Dutch BSN Validator — Frequently Asked Questions
What is the 11-proef?
It's the Dutch eleven-test: multiply each of the 9 digits by a fixed weight (9, 8, 7, 6, 5, 4, 3, 2, and -1 for the last digit), sum the results, and the BSN is valid only if that sum is an exact multiple of 11.
Why is the last digit's weight -1 instead of +1?
The plain elfproef (used for Dutch bank account numbers) weights every digit positively. BSN deliberately flips the sign on the last digit's weight specifically so that a valid bank account number can't accidentally also be a valid BSN, and vice versa.
Why does it accept 8-digit input?
Older BSNs (and the related sofinummer they replaced) were sometimes written or stored without a leading zero. This validator left-pads an 8-digit input with a zero before checking it, matching how the number is actually used.
Does a valid BSN mean the number belongs to a real person?
No. This is a mathematical structure check only. A number can pass the 11-proef without being currently issued to anyone — confirming real registration status requires access to the Dutch government's own BRP records, which this site cannot query.
Tips
- Spaces, dots, and hyphens are stripped automatically before validation
- 8-digit input is automatically left-padded with a zero
- 000000000 is rejected even though it mathematically satisfies the 11-proef
- Use the BSN Generator on this site to create valid test numbers
Explore more
Related Tools
Other tools that might be useful for your workflow