VIN generator and checker — test VINs with a correct check digit

Generate test vehicle identification numbers with a correct position-9 check digit and the model year you pick, or paste a VIN to check its check digit and see its region, manufacturer code and possible model years.

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 VIN generator

  1. Choose the Mode: Generate test VINs or Validate a VIN.
  2. To generate, set the Model year (1980 to 2039) and How many VINs (up to 200), then press Generate.
  3. To validate, type the 17-character VIN. Case does not matter.
  4. Read the list, or the checker’s Result, Check digit given, Check digit expected, Region (by first character), WMI and Model year code.

What it does and when to use it

A VIN identifies one vehicle. Dealer systems, insurance quote forms, fleet and parts apps all validate VINs, and their developers need test numbers that pass that validation without belonging to a customer. This tool makes such values, and it lets you set the model year so that year-dependent logic, such as pricing rules, can be tested too.

The checker is handy when a VIN from a form or a photo is rejected: it shows the check digit the rest of the number needs, so you can spot a misread character.

For other format-valid test identifiers, see the IBAN generator and the ISIN generator. For example plates to go with a test vehicle, use the licence plate generator.

How it works

A VIN is 17 characters from 0–9 and A–Z without I, O and Q. The tool builds a test VIN like this, with every random character from crypto.getRandomValues:

  • Positions 1–8: random characters (the first three are the manufacturer code, or WMI).
  • Position 10: the model-year code. The codes run A–H, J–N, P, R–T, V–Y, then 1–9, and start again every 30 years; 2026 is T.
  • Position 11: a random plant character; positions 12–17: random digits.
  • Position 9: the check digit. Each character gets a value (digits as themselves, letters from a fixed table), each value is multiplied by its position weight (8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2), and the total is divided by 11. The remainder is the check digit, with 10 written as X.

Worked examples

  • The classic example VIN. 1M8GDM9AXKP042788 gives Result: Valid and Check digit expected: X, region North America, WMI 1M8 and K = 1989 or 2019.
  • One character changed. 1M8GDM9A1KP042788 has 1 where X belongs, so Result: Invalid.
  • A forbidden letter. Ending the VIN with the letter O instead of zero gives “VINs never contain I, O or Q.”
  • Test VINs for 2026. One run gave 4R93E9XY4TS346408: the tenth character is T, and the note says the manufacturer code is random.

Limits and tips

  • Region is a rough guide from the first character only; it is not a country lookup.
  • Generated VINs do not decode to a real make, model or engine.
  • Pre-1981 vehicles used shorter, non-standard numbers, which this tool does not handle.

Frequently asked questions

Are these real vehicles?
No. Apart from the check digit and the year code, every character is random, including the manufacturer code. The VINs are format-valid test values for software and forms. One may match a real car by chance, so never put one on a vehicle, a sales advert or an insurance or registration document. Doing so can be fraud.
Why does a real European VIN show as Invalid?
The check digit in position 9 is required in North America, but many manufacturers elsewhere do not use it. Their VINs can be genuine and still fail this check. The result here only means the position-9 character does not match the formula.
Why does the model year show two possible years?
Year codes repeat every 30 years, so K means 1989 or 2019. The rest of the VIN, or the vehicle's papers, tells you which.
Can this tool tell me who owns a car or its history?
No. It only checks the number's structure. Vehicle history and ownership come from official registers and paid services.

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