Netherlands BSN Validator

Verify a Dutch Burgerservicenummer with the full elfproef (11-test) breakdown.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

The Burgerservicenummer (BSN) is the Netherlands’ national citizen-service number. Every Dutch resident receives one at birth or on first registration with a municipality. It appears on passports, identity cards, tax returns, healthcare registrations and a wide range of government services. This validator checks whether a given 8- or 9-digit number is structurally correct by running the official elfproef (eleven-test) — the same weighted checksum that Dutch government systems apply — entirely inside your browser.

What the BSN looks like

A BSN is a sequence of 8 or 9 decimal digits with no letters, hyphens or other separators embedded in the number itself. In official documents it is sometimes written as three groups of three digits (e.g. 123 456 789), but that spacing is cosmetic only. Older numbers issued before 2007 were 8 digits long; newer numbers are 9. The validator accepts both forms and zero-pads 8-digit inputs on the left before running the checksum.

The elfproef — how the 11-test works

The checksum formula multiplies each of the nine digits by a fixed weight and sums the results:

S = 9·d1 + 8·d2 + 7·d3 + 6·d4 + 5·d5 + 4·d6 + 3·d7 + 2·d8 + (−1)·d9

Two conditions must both hold for the BSN to be valid:

  1. S mod 11 = 0 — the weighted sum must be divisible by eleven.
  2. S ≠ 0 — the all-zeros string 000000000 is reserved and not issued.

The critical design detail is the negative weight on the final digit. This is not a typo in the standard: it means the last digit is subtracted rather than added to the running total. As a result, swapping any single digit changes S by a non-multiple of 11 in almost every case, giving the test strong single-digit error-detection.

Worked example

Take the obviously-fake test number 111 222 333:

d1d2d3d4d5d6d7d8d9
111222333
×9×8×7×6×5×4×3×2×(−1)
9871210896−3

Sum S = 9 + 8 + 7 + 12 + 10 + 8 + 9 + 6 − 3 = 66. 66 ÷ 11 = 6 exactly, so 66 mod 11 = 0 and S ≠ 0 — the number passes.

The tool’s “Show full weighted calculation” panel reproduces this table live for any number you enter, with the final-digit weight highlighted in red so the subtraction step is always visible.

What the BSN does NOT encode

Unlike some national identifiers — Finland’s HETU encodes birth date and gender, Romania’s CNP encodes birth year, gender and county — the Dutch BSN is an opaque sequential number. No personal attributes are encoded in the digits. The validator therefore reports only whether the checksum passes; there is no birth-date, gender or region information to decode.

Privacy

Every calculation runs locally in your browser using pure JavaScript. No BSN, no intermediate value and no result is ever transmitted to a server. The page makes no network requests during validation.

Ad placeholder (rectangle)