ISIN generator and validator — test security codes with real check digits

Generate 12-character test ISINs whose check digits are correct, including a valid CUSIP or SEDOL where the country uses one, or paste an ISIN to check its last digit and the embedded code.

Live demo · real result from this tool
Mode

Press Generate to create a result.

Processed on your device — nothing is uploaded.

How to use the ISIN generator

  1. Choose the Mode: Generate test ISINs or Validate an ISIN.
  2. 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.
  3. To validate, paste the ISIN. Spaces are ignored and letters can be lower case.
  4. 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 shows Result: Valid and Embedded CUSIP check: correct.
  • A British code. GB0002634946 is valid and shows Embedded SEDOL check: correct.
  • Last digit changed. US0378331006 gives Result: Invalid with Check digit expected: 5.
  • One character short. US037833100 gets “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?
No. They are random test values whose check digits are correct, so they pass format checks. One could match a real security by chance. Never use them to describe an investment, in a contract note, or to suggest that a security exists. They are for testing software and teaching only.
What is inside an ISIN?
Two letters for the country (or XS for international bonds), nine characters of national code, and one check digit. In the US and Canada the nine characters are a CUSIP; in the UK and Ireland they are often 00 followed by a seven-character SEDOL.
Does "Valid" mean the ISIN is listed?
No. It only means the check digits are right. To learn what a code refers to, look it up with a data vendor, an exchange or the national numbering agency.
Why does a wrong ISIN still show "Embedded CUSIP check correct"?
The CUSIP check covers only the nine middle characters. If only the final ISIN digit is wrong, the CUSIP part can still be fine, which helps you see where the mistake is.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close