French NIR Validator
ValidatorValidate a French NIR (numéro de sécurité sociale) instantly and decode sex, birth year/month, and department — including Corsica (2A/2B). Free, runs in your browser.
Validating a French business too?
This tool validates a French individual NIR (social security number). For a French business number, use our SIRET/SIREN Validator →
About this tool
About French NIR Validator
This validator checks a French NIR (social security number) and decodes every field: sex, year and month of birth, department (including Corsica's 2A/2B codes), commune code, and order number. It recomputes the 2-digit control key using the official 97 − (mod 97) formula, substituting Corsican department codes before the division exactly as INSEE specifies.
The validator accepts spaces and punctuation, checks the format field-by-field, and — for Corsica-issued numbers — clearly notes that the 2A/2B substitution was applied before the key was computed. BigInt arithmetic is used throughout so the 13-digit calculation is exact, with no floating-point rounding risk.
Use this validator to check a NIR collected from an employee, patient, or applicant before storing it, to debug why a NIR is failing validation elsewhere, or to decode basic demographic information (sex, approximate birth date, department) encoded in a number you already have.
Instant, fully client-side validation and decoding — no social security number is ever sent to a server, logged, or stored. Corsica-issued numbers are handled correctly rather than being a common source of false 'invalid' results.
Key Features
- Official 97 − (mod 97) control key verification
- Correct Corsica 2A/2B substitution handling
- Decodes sex, year/month of birth, department, commune, and order number
- Curated French department code/name reference table
- BigInt arithmetic — no floating-point precision issues
- 100% browser-based, no data sent
FAQ
French NIR Validator — Frequently Asked Questions
How is the control key verified?
The validator takes the first 13 characters, applies the Corsica substitution if needed (2A→19, 2B→18), converts the result to an integer using BigInt, divides by 97, and checks that 97 minus the remainder equals the last 2 digits you entered.
My NIR has 2A or 2B in it — will it validate correctly?
Yes. The validator specifically substitutes 2A with 19 and 2B with 18 before computing the expected key, matching INSEE's documented rule for Corsican departments. This is a common source of false 'invalid' results in naively-written validators that forget the substitution step.
What does the decoded 'year of birth' actually mean?
The NIR only stores the last two digits of the birth year, so a value like 85 could mean 1885, 1985, or (much less likely in practice) 2085. This validator displays the raw 2-digit year rather than guessing a century, since the NIR itself does not encode which one applies.
Can this tool confirm a NIR belongs to a real, currently active person?
No. This is a mathematical structure check only — it confirms the control key is correct for the encoded fields, not that the number was actually issued by INSEE to a real individual. That confirmation requires access to official French civil registry and social security systems.
Tips
- Spaces and punctuation are stripped automatically before validation
- Sex is decoded as 1 = male, 2 = female — these are the two standard NIR values
- A department of 2A or 2B means the number was issued in Corsica
- Use the SIRET/SIREN Validator to check a French business number in the same session
Explore more
Related Tools
Other tools that might be useful for your workflow