VIN Check Digit Validator

Paste a 17-character VIN to verify its check digit and see what each section means — including every model year the year code could legitimately be.

🔒 Your data never leaves your browser.

Why VINs never contain I, O or Q

Those three letters were excluded from the VIN alphabet because they are too easy to confuse with the digits 1 and 0. If a VIN you have been given contains one, it was mis-read — and the fix is mechanical: I becomes 1, O and Q become 0. This checker tells you the corrected value so you can confirm it against the check digit.

The check digit is not universal

Position 9 is a check digit computed from the other sixteen characters. It is mandatory in North America under FMVSS 115, but manufacturers elsewhere often leave it unenforced. A European VIN that fails this test can still be genuine, which is why this tool reports a mismatch as a strong hint rather than a verdict of "fake".

The model year is genuinely ambiguous

Position 10 encodes the model year using 30 codes — 21 letters and 9 digits — which then repeat. The letter A means 1980, 2010 and 2040. There is a North American convention that helps: if position 7 is a digit the vehicle belongs to the 1980–2009 cycle, and if it is a letter, to 2010 onwards. This tool applies that convention and still shows you the alternatives, because the code itself cannot rule them out.

What a valid check digit does and does not prove

It proves the seventeen characters are internally consistent — that you transcribed them correctly. It says nothing about whether the vehicle exists, has been stolen, or matches its paperwork. Those need a title check, not arithmetic.

Every check this tool runs (8 rules)

VIN-F01Not 17 characters

A modern VIN is exactly 17 characters. Vehicles built before 1981 used shorter, manufacturer-specific formats that this checker cannot validate.

Fix: Check the plate on the dashboard or door frame. Count carefully — the character after 8 digits is often mistaken for a separator.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-F02Contains I, O or Q

The letters I, O and Q are excluded from the VIN alphabet precisely because they are confusable with 1 and 0. Finding one means the VIN was mis-transcribed — almost always from a photo or a handwritten note.

Fix: Replace I with 1, O with 0, and Q with 0 — then re-check the check digit to confirm the reading.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-F03Contains an invalid character

A VIN uses digits and capital letters only (excluding I, O and Q).

Fix: Remove spaces, hyphens and punctuation.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-C01Check digit does not match

Position 9 is a check digit derived from the other sixteen characters. A mismatch usually means a transcription error. Note that the check digit is mandatory in North America but not enforced everywhere — a European VIN can be genuine and still fail this test.

Fix: Re-read the VIN, paying attention to 8/B, 5/S, 2/Z and 0/D confusions.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-S01World Manufacturer Identifier (WMI)

The first three characters identify the manufacturer and the region where the vehicle was built. The first character alone gives the region.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-S02Model year is ambiguous by design

Position 10 encodes the model year on a 30-year cycle, so a single code always maps to several possible years. Where position 7 is a digit the vehicle is from the 1980–2009 cycle, and where it is a letter from 2010 onwards — a North American convention that narrows it down but does not eliminate the ambiguity.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-S03Assembly plant and serial

Position 11 identifies the assembly plant (manufacturer-specific), and positions 12–17 are the production serial number.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.

VIN-P01Placeholder pattern

Every character is the same, or the VIN is a known filler value. Note that 11111111111111111 satisfies the check digit — which is exactly why a checksum alone is not enough.

Fix: Use the VIN from the vehicle.

Source: ISO 3779 (VIN structure) and FMVSS 115 / 49 CFR 565 (the North American check digit). Algorithm verified against real VINs in our regression tests, including an X check digit.