---
id: "bsn"
kind: "datatype"
status: "stable"
is_pii: true
categories: ["pii", "persons", "finances"]
country: ["NL"]
langs: ["nl"]
quality: 100
url: "http://registry.apicrafter.io/datatype/bsn"
---

# Dutch citizen service number (BSN) (`bsn`)

Burgerservicenummer (BSN), the personal number of everyone registered in the Dutch population register (BRP). It replaced the sofinummer in 2007 and keeps its numbers. The government uses it to identify a person in contacts with public bodies, the tax service, healthcare and education. The Rijksdienst voor Identiteitsgegevens (RvIG) issues the numbers, which carry no information about the person. A BSN has nine digits and passes the 11-proef (elfproef). The first eight digits are weighted 9 down to 2 and the last one -1, and the sum must be divisible by 11. Systems that store it as a number drop the leading zero, so 8-digit values occur; they are checked with the zero restored.

- Personal data (PII): yes
- Categories: Personally identifiable information (pii), Person related (persons), Finances and banking (finances)
- Countries: Netherlands (NL)
- Languages: Dutch (nl)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^\d{8,9}$
```

Check digit algorithm: `nl_bsn`

## Examples

- `999990068` — Test person of the RvIG test environment
- `999994931` — Test person of the RvIG test environment
- `999999990` — Personal number on the RvIG specimen passport of 2014
- `999990069` (invalid example) — The RvIG test number 999990068 with a wrong last digit
- `9999900681` (invalid example) — Ten digits

## Mappings

- dpv: `pd:OfficialID`
- fhir: `http://fhir.nl/fhir/NamingSystem/bsn`
- fta: `IDENTITY.BSN_NL`
- google_dlp: `NETHERLANDS_BSN_NUMBER`
- purview: `Netherlands citizens service (BSN) number`, `Netherlands tax identification number`, `EU national identification number`, `EU Tax Identification Number (TIN)`, `EU Tax identification number`
- stdnum: `nl.bsn`

## Metacrafter rules

2 rules: 1 match the field name, 1 match values.

- `nlbsnfield` (field, `nl/nl_tax.yaml`)
- `nlbsnvalue` (data, `nl/nl_tax.yaml`)

## Supported by tools

- `awsglue`
- `azureailanguage`
- `databricks`
- `dataprep`
- `fta`
- `googledlp`
- `ibmguardium`
- `metacrafter`
- `microsoftpurview`
- `pythonstdnum`
- `snowflake`

## Translations

- nl: Burgerservicenummer (BSN): Persoonsnummer van iedereen die in de BRP is ingeschreven; negen cijfers die aan de elfproef voldoen. Opvolger van het sofinummer sinds 2007.
- ru: Номер гражданина Нидерландов (BSN): Персональный номер каждого, кто зарегистрирован в базе населения BRP; девять цифр, проходящих проверку 11-proef. С 2007 года заменил sofinummer.

## Sources

- wikipedia: <https://nl.wikipedia.org/wiki/Burgerservicenummer>
- doc: <https://www.rijksoverheid.nl/onderwerpen/privacy-en-persoonsgegevens/burgerservicenummer-bsn>
- doc: <https://www.rvig.nl/sites/default/files/2023-12/Logisch%20Ontwerp%20BSN%202024.Q1.pdf>
- doc: <https://rvig.nl/sites/default/files/2025-05/Aansluiting%20testen%20en%20toetsen%20BSN.pdf>
- doc: <https://learn.microsoft.com/en-us/purview/sit-defn-netherlands-citizens-service-number>
- other: <https://arthurdejong.org/python-stdnum/doc/2.2/stdnum.nl.bsn.html>

## Quality

Score 100/100.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/bsn.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/NL/finances/bsn.yaml>
