A Canadian Social Insurance Number (SIN) is the 9-digit identifier issued for work and government services, usually written as AAA-BBB-CCC. This validator confirms a SIN is mathematically well-formed using the official Luhn (mod-10) check digit, and reads the registration region from the first digit. It is built for developers testing forms and anyone checking a number for typos — and it never contacts any government system.
How it works
The validator strips out spaces and dashes, then requires exactly 9 digits. It applies the Luhn algorithm: working left to right, every second digit (positions 2, 4, 6, 8) is doubled, and any result above 9 has 9 subtracted. All nine resulting digits are summed, and the SIN is valid only if that total is divisible by 10. The first digit is then matched to a province or category. A leading 0 is never issued, so it is treated as invalid even if the math works.
| First digit | Region |
|---|---|
| 1 | NB / NL / NS / PEI |
| 2–3 | Quebec |
| 4–5 | Ontario |
| 6 | MB / SK / AB / Territories |
| 7 | BC / Yukon |
| 9 | Temporary resident |
| 0 | Invalid — never issued |
Example
Take the SIN 130 692 544. Doubling every second digit and subtracting 9 where needed gives a digit sum of 40, which is divisible by 10, so the Luhn check passes — and the leading 1 maps to the Atlantic provinces, so it is reported as well-formed. By contrast, a number with a leading 0 is rejected outright because that prefix is never issued.
A passing check confirms the number’s structure only — not that it was ever issued. The Luhn check runs entirely in your browser; nothing is uploaded.