How to use the ISIN generator
- Choose the Mode: Generate test ISINs or Validate an ISIN.
- To generate, choose a Country prefix: US or CA (CUSIP-based), GB (SEDOL-based), IN, DE, FR, JP, CH, AU, or XS (international). Set How many ISINs (up to 200) and press Generate.
- To validate, paste the ISIN. Spaces are ignored and letters can be lower case.
- Read the Result, the Check digit expected, and for US, CA and GB codes the embedded CUSIP or SEDOL check.
What it does and when to use it
ISINs identify shares, bonds and funds in trading, settlement and reporting systems. Software that handles them must reject bad codes, and testers need many good-looking codes that do not belong to a real security. This tool makes them with every check digit correct, so they reach the parts of the system after validation.
The validator is useful when an ISIN from a spreadsheet or an email is refused. It shows the correct last digit, and for American and British codes it tells you whether the inner CUSIP or SEDOL is right too.
Nothing here is investment information; the codes say nothing about any company or fund. For other test identifiers with check digits, see the IBAN generator and the EAN-13 generator. For a plain unique code, the UUID generator is simpler.
How it works
ISIN check digit. Each letter becomes a number (A = 10 … Z = 35), giving a string of digits. The Luhn algorithm then runs over it: from the right, every second digit is doubled, the digits of the results are added, and the check digit brings the total to a multiple of 10.
Generation. All random characters come from crypto.getRandomValues.
- US and CA: six random characters and two digits form a CUSIP base, which gets its own check digit.
- GB:
00, then six random SEDOL characters (digits and consonants), then the SEDOL check digit. - Other prefixes: nine random letters and digits.
The ISIN check digit is then added to the end.
Worked examples
- A well-known US share code. For
US0378331005, U and S become 30 and 28, so the digits are 3028037833100. The Luhn sum is 45, and 5 completes it to 50. The tool showsResult: ValidandEmbedded CUSIP check: correct. - A British code.
GB0002634946is valid and showsEmbedded SEDOL check: correct. - Last digit changed.
US0378331006givesResult: InvalidwithCheck digit expected: 5. - One character short.
US037833100gets “An ISIN is 2 letters, 9 letters or digits and 1 check digit (12 characters).”
Limits and tips
- Country prefixes other than US, CA and GB get random national codes with no inner check.
- The tool does not check that the country code is an assigned one.
- Mark test ISINs clearly so they never reach a live trading or reporting system.
Frequently asked questions
Are generated ISINs real securities?
What is inside an ISIN?
Does "Valid" mean the ISIN is listed?
Why does a wrong ISIN still show "Embedded CUSIP check correct"?
How do we know nothing is uploaded? Test it yourself on the privacy proof page.