International · Validation

Dutch BSN validator (elfproef).

Check a Dutch burgerservicenummer (BSN) against its elfproef checksum. This tests the format and arithmetic only; it cannot tell you whether the number was issued or belongs to anyone.

How it works: write the BSN as 9 digits ABCDEFGHI (an 8-digit number gets a leading zero). Compute 9×A + 8×B + 7×C + 6×D + 5×E + 4×F + 3×G + 2×H − 1×I. The result must be a multiple of 11 (the elfproef), and the number cannot be all zeros.

Sources: nl.wikipedia.org Burgerservicenummer; python-stdnum nl/bsn.pyVerified 29 September 2026

Advertisement

Inputs

Enter 9 digits, or 8 if the leading zero is omitted. Spaces, dots and hyphens are ignored.

Result

Enter a BSN and press Check.

What the elfproef is

The BSN (burgerservicenummer) is the Dutch citizen service number, 9 digits long; leading zeros are commonly omitted, so 8-digit forms exist. Its checksum is a variant of the elfproef (“eleven test”): each digit is multiplied by a weight, the products are added, and the total must divide evenly by 11.

Weights for digits A to I of the BSN
DigitABCDEFGHI
Weight98765432−1

The difference from the plain elfproef used for old bank account numbers is the last digit, which is multiplied by −1 instead of 1. Wikipedia notes this was deliberate, so that a bank account number typed into a BSN field is rejected. The published valid examples are 111222333 (9×1 + 8×1 + 7×1 + 6×2 + 5×2 + 4×2 + 3×3 + 2×3 − 3 = 55 = 5×11) and 123456782. The reference implementation python-stdnum applies the same weights, pads short numbers with zeros to 9 digits, and rejects an all-zero number.

Sources: nl.wikipedia.org/wiki/Burgerservicenummer (section 11-proef) and python-stdnum, stdnum/nl/bsn.py. The two agree.

Format and checksum only — not a registry lookup

A pass means the digits satisfy the elfproef. Roughly one in eleven random 9-digit strings passes, so it says nothing about whether the number was issued or belongs to a real person; only the Dutch municipal personal records database (BRP) can confirm that. Well-known example and test BSNs pass the checksum by design and are for testing only.

Format and checksum only — not a registry lookup

This tool runs entirely in your browser. It does not query any Dutch government system and cannot confirm that a BSN was issued or belongs to anyone. Nothing you type is transmitted, stored, or logged. Do not paste real people's BSNs you have no reason to hold.

Advertisement
Advertisement
Listening…