Check Digit Identifier Generator
Most identifiers the world runs on end in a character worked out from the rest, which is how a validator catches a number typed with two digits swapped before it reaches anything. That makes them the one kind of test data you can prove rather than eyeball: nine schemes here, and every value is read back afterwards character by character and put through its own scheme’s arithmetic with no memory of how it was built. The working is printed under each one so you can follow the sum yourself.
What this generator does
Draws the body of an identifier and then works out the character or characters the scheme requires: the ISO 7064 mod-97-10 of an IBAN, the weighted mod-11 of a North American VIN, the Luhn mod-10 behind an IMEI and a SIRET, the GS1 mod-10 of an EAN-13, EAN-8 or UPC-A, the three-seven-one weighting of a US routing number, and the mod-97 of a UK VAT registration. One page rather than nine, because the work you do is the same in every case and only the scheme changes.
How to use this tool
- Choose the scheme you need and how many values.
- Generate, and read the line under each value — it is the arithmetic that produced the check.
- Copy the batch into your fixtures, or the link if the same batch has to come back tomorrow.
Understanding the controls
- Scheme
- Which identifier to produce. The sentence underneath names the algorithm that scheme uses, so you can see what is being checked before you generate.
- How many
- One to twenty-five. Every value in a batch is distinct from the others.
- Repeat word
- The word this batch was built from. The same link gives the same batch, which is what you want when a fixture has to be the same tomorrow.
Common use cases
- Fixtures for a validator, where a value that fails the check would be testing the wrong thing
- Filling a form or a screenshot with something that will not be rejected on submit
- Showing how a check digit works, with the sum written out next to the number
- Seeding a staging database with values shaped like the ones production will hold
- Getting the same batch back next week from the same link
How this generator works
The check is re-derived from the finished string rather than remembered from building it. Each value is read character by character, run through its own scheme’s arithmetic, and only then reported as coming out. The tests behind this page put the same values through a second, separately written implementation of each algorithm, and check all of them against published worked examples for Luhn, GS1, ISO 7064 mod-97-10, the routing-number weighting and the VIN check character.
Randomness and fairness
A batch is built from a repeat word taken from your browser’s secure generator unless you type one of your own, so the same link rebuilds the same values. A repeat word is for reproducing a fixture and is not a security measure — nothing here is a secret, and nothing here should ever be used as one.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- These are structurally valid, not issued. Every one of these schemes has an authority behind it, and a value that satisfies the arithmetic still identifies no account, no vehicle, no handset and no business. Never present one as genuine.
- A prefix is drawn like everything else, so it may fall inside a range a real bank, manufacturer or company holds while nothing else about the value does.
- Only schemes with a check character are here. A SWIFT or BIC code and a vehicle registration plate carry no check, so there would be nothing to prove about a generated one.
- Identifiers that exist to establish who a person is are deliberately absent — no national insurance or social security numbers, no national identity, passport or driving licence numbers, no individual tax references. A plausible supply of those mainly helps fraud.
- Some schemes have rules beyond the check digit that this does not enforce: a real VIN encodes a manufacturer, a model year and a plant in fixed positions, and a real IBAN follows its country’s own account-number layout.
Privacy and your data
The identifiers are generated on your device and nothing about them is transmitted or stored. The repeat word is a short label this page made or you typed, and it is the only thing that appears in the address; it is never measured.
For testing, documentation and teaching only. A generated value is not issued to anyone, and using one to represent a real account, vehicle, product or business would be a misrepresentation.
Related generators
- Barcode Number Example GeneratorA 12-digit UPC-A-shaped example number with a correct check digit — not a real, assigned barcode.
- ISBN Example GeneratorAn ISBN-13-shaped example number with a correct check digit, for test data that has to pass validation.
- EAN-13 Barcode GeneratorDraws a real EAN-13 barcode from a number, then reads the bars back the way a scanner would to prove it works.
- Damm Check Digit GeneratorAdds a check digit that catches every single mistyped digit and every swap of two neighbours, and proves it by trying them all.