VIN plate

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.

AI-generated 4 min read

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:

PositionsGroupWhat it identifies
1-3WMI (World Manufacturer Identifier)Country + manufacturer + producer type
4-9VDS (Vehicle Descriptor Section)Model, body, engine, trim
10-17VIS (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/DigitRegion
A-HAfrica
J-RAsia (Japan, Korea, India)
S-ZEurope
1-5North America
6-7Oceania
8-9South 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: WVWZZZ1KZ9W123456WVW = 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:

CharYearCharYear
Y2000L2020
12001M2021
22002N2022
P2023
92009R2024
A2010S2025
B2011T2026

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.