Axon Toolbox

Free telecom & identity tools

Free tool

Canada Social Insurance Number (SIN) Generator & Validator

Generate valid test SINs by registration region with a correct Luhn check digit, or paste a SIN to check its region and checksum.

SIN Generator

Pick a registration region or leave it random. The serial number is random; the ninth digit is calculated with the Luhn checksum Service Canada uses.

Flag of Canada

Canada · 9 digits

The first digit of the SIN

1 – 100

SIN Validator

Paste a 9-digit SIN, with or without spaces, to check its registration region and Luhn check digit.

Every SIN this tool produces is synthetic test data only. It is not issued by Service Canada and does not belong to any real person. Use it on your own test systems only — never on a real form, payroll record or KYC check.

How a SIN is structured

A SIN is nine digits with no punctuation, usually written in three groups of three. It is the well-known fictitious example that appears throughout Service Canada's own documentation and test suites, so we use it here too. Taking 046 454 286 as an example:

The segments of a 9-digit Canadian SIN
DigitsSegmentMeaning
0Registration region1 Atlantic; 2–3 Quebec; 4–5 Ontario; 6 Prairies; 7 Pacific; 9 temporary residents. 8 is not used, and 0 is reserved for fictitious numbers — which is why 046 454 286 appears in so many test suites.
4645428SerialSeven digits, assigned in sequence within the region.
6Check digitLuhn: double every second digit from the left, add the digits of the products, the total must end in 0.

The Luhn algorithm behind that check digit is the same one used to validate credit card numbers, SIM card ICCIDs and phone IMEIs. If you need to work through the arithmetic on an arbitrary number, AXON's Luhn calculator does exactly that.

Why generate test SINs?

Any system that deals with Canadian employees or residents stores SINs — payroll, CRA T4 and tax-slip generation, banking and telecom onboarding, and KYC and identity checks. All of them need realistic input to test against.

Using a real person's SIN in a test environment is bad practice and, under PIPEDA, a privacy problem — a SIN is sensitive personal information on its own. Synthetic numbers let you exercise region, serial and checksum logic without any real personal data leaving production. Generating a few numbers starting with 9 also lets you confirm your system correctly flags and handles a temporary resident's SIN, which expires with their immigration status.

Frequently asked questions

What is a Social Insurance Number (SIN)?
A SIN is the nine-digit number Service Canada issues to every person who works in Canada or needs access to government programs and benefits. It is required for payroll, tax filing (T4 slips), employment insurance, banking and most identity checks.
How is a SIN structured?
Nine digits with no punctuation, though it is usually written in three groups of three (046 454 286). The first digit records the region where the number was registered, the next seven digits are a serial number, and the ninth digit is a Luhn checksum over the eight before it.
What does the first digit mean?
1 is Atlantic Canada (NS, NB, PE, NL); 2 and 3 are Quebec; 4 and 5 are Ontario (4 also covers overseas forces personnel); 6 is the Prairies and territories (MB, SK, AB, NT, NU); 7 is British Columbia and Yukon; 9 marks a temporary resident, whose SIN expires with their immigration document. 8 has never been allocated, and 0 is reserved for fictitious numbers used in examples and test data.
Why does 046 454 286 show up in so many examples?
It starts with 0, the digit Service Canada reserves for fictitious numbers, and it passes the Luhn checksum — so it is the textbook example used in training material and documentation across the industry, which is exactly why it keeps turning up in test suites.
Does a SIN have a check digit?
Yes. The ninth digit is calculated with the Luhn algorithm: double every second digit from the left, add the digits of any two-digit products together, sum everything, and the total (including the check digit) must end in 0. This tool applies the same formula both to generate and to validate.
Are these real SINs?
No. Every SIN this tool produces is randomly generated test data that is structurally valid and passes the Luhn checksum. The numbers are not issued by Service Canada and do not belong to any real person. Never use them to impersonate someone or on a real form.
Why would I need generated SINs?
To test Canadian payroll systems, CRA T4 and tax-slip generation, banking and telecom onboarding, and KYC flows without putting a real person's SIN into a test environment. Synthetic numbers exercise the same region, serial and checksum logic while keeping real personal data out of test systems — and generating a few starting with 9 lets you check that your system correctly handles a temporary resident’s expiring SIN.