VIN decoder: how to read a Vehicle Identification Number and what it tells you about the car
Complete guide to reading VIN over OBD-II and decoding each of the 17 characters: manufacturer country, model, model year, engine type, trim and the check digit.
VIN (Vehicle Identification Number) is a car’s “passport” — a unique 17-character code the manufacturer uses to encode everything: country, plant, model, year, engine type, serial number. Knowing the VIN, you can check history, order the right parts, and even spot whether a used-car seller is passing a pre-facelift as a post-facelift. This post covers how to read the VIN via OBD-II and what each group of characters tells you.
VIN format — 17 characters in three groups
ISO 3779 (since 1981) splits VIN into three sections:
| Positions | Group | What it identifies |
|---|---|---|
| 1-3 | WMI (World Manufacturer Identifier) | Country + manufacturer + producer type |
| 4-9 | VDS (Vehicle Descriptor Section) | Model, body, engine, trim |
| 10-17 | VIS (Vehicle Identifier Section) | Year, plant, serial number |
VIN characters — any letters and digits except I, O, Q (to avoid confusion with 1 and 0). In Europe and Asia length is always 17. In the US pre-1981 VINs were shorter (up to 13 chars).
WMI (positions 1-3) — country and manufacturer
First character defines the region:
| Letter/Digit | Region |
|---|---|
| A-H | Africa |
| J-R | Asia (Japan, Korea, India) |
| S-Z | Europe |
| 1-5 | North America |
| 6-7 | Oceania |
| 8-9 | South America |
Second character — specific country (W — Germany, V — Spain / France, Y — Sweden / Belgium, Z — Italy, 1 — USA, J — Japan, etc.).
Third — manufacturer within that country (WBA — BMW, VF3 — Peugeot, 1FA — Ford USA, JT — Toyota, KMH — Hyundai, WVW — Volkswagen).
Example: WVWZZZ1KZ9W123456 → WVW = Volkswagen Passenger Cars, Germany.
VDS (positions 4-9) — model and trim
VDS is encoded by each manufacturer freely, but with common patterns. For most cars positions 4-8 describe:
- Body type (sedan, wagon, hatchback)
- Engine (displacement, fuel, power)
- Trim level (base, comfort, premium)
- Safety system (ABS, airbags)
Position 9 is the check digit. Computed by a strict formula from the other VIN characters. If the check digit doesn’t match — the VIN is forged or corrupted. Mechanics and customs check the check digit first.
Check Digit formula (simplified):
- Each character maps to a number (0-9 = itself, A=1, B=2, …, up to Z=8)
- Each position has a weight (8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2)
- Sum of (char × weight) is divided by 11, the remainder is the check digit (10 written as
X)
Online VIN decoders do this check automatically. If the result is “invalid check digit” — the VIN is almost certainly forged.
VIS (positions 10-17) — year, plant, serial number
Position 10 — model year — the most important field for a used-car buyer. Encoded as a letter or a digit:
| Char | Year | Char | Year |
|---|---|---|---|
| Y | 2000 | L | 2020 |
| 1 | 2001 | M | 2021 |
| 2 | 2002 | N | 2022 |
| … | … | P | 2023 |
| 9 | 2009 | R | 2024 |
| A | 2010 | S | 2025 |
| B | 2011 | T | 2026 |
The cycle repeats every 30 years (2040 will again be Y), so position 7 also matters:
- Position 7 is a letter → model year 2010-2039
- Position 7 is a digit → model year 1980-2009
Position 11 — plant code (for Toyota 0 = Tahara, 1 = Motomachi, etc.). Positions 12-17 — sequential serial number of the car at that plant.
How to read VIN via OBD-II
SAE J1979 defines Mode 09 InfoType 02 — “Read VIN”. The ECU returns VIN as 17 ASCII characters (in three ISO-TP frames).
Not every car returns VIN over OBD-II — mandatory only for US diesels from 2004 and US gasoline from 2005. In Europe support started with Euro 5 (2011). For older cars VIN is only on the body (plate under windshield, driver door jamb, under the hood).
In Car Diagnostics VIN is read automatically on first connect — the Vehicle screen shows:
- Decoded VIN (make, model, year, engine type)
- Original VIN string (17 characters)
- Country of assembly (where actually assembled)
- Check Digit status (valid / invalid)
Our decoder uses a proprietary WMI database (~800 manufacturers) + VDS tables for major brands (Toyota, VW Group, BMW, Ford, GM, Renault-Nissan-Mitsubishi). Accuracy — above 95% for cars from 2005 onward.
Why VIN matters when buying a used car
- Model year — seller says “2020”, position 10 shows
9→ car is a 2009 - Country of assembly — a “Euro-spec” car may actually be US-market (matters for parts, electronics, warranty)
- Engine type — VDS encodes not just displacement but the exact engine code (e.g. 1.4 TSI EA111 vs EA211 — different generations, different failure modes)
- Rebuilt or not — position 9 (check digit) instantly reveals a re-stamped plate
- Position 11 — plant code. If the body plate says “assembled in Germany” but VIN says “Mexico” — questions…
Try the VIN decoder in Car Diagnostics — pair an ELM327 adapter, open the Vehicle tab. VIN read is free on any tier, full trim decoding is on the paid tier. Also worth checking DTC P0630 — “VIN not programmed” — that appears after ECU replacement with an incorrect VIN.