Decode Your VIN
Enter your vehicle's VIN code to discover all technical specifications. The VIN consists of 17 alphanumeric characters.
BMW 5 Series VIN Decoder
Decode any BMW 5 Series VIN free in seconds. Enter the 17-character vehicle identification number into the decoder above and get the generation (E39, F10, G30, and so on), model year, engine, trim, plant of origin, and any open NHTSA recalls. No account, no credit card.
This page goes deeper than the general BMW hub. Below you’ll find the 5 Series’s chassis-code generations back to the original 1972 E12, the WMI codes and plants that actually built one, an honest look at how (and how imperfectly) BMW encodes engine data in the VIN, the full model-year cycle, trim levels by generation, where to find the VIN on your car, and 5 Series-specific recalls.
About the BMW 5 Series
The 5 Series launched in 1972 as the E12 and has been BMW’s mid-size executive sedan ever since, and for most of that run its best-selling and most important nameplate. Unlike Kia or Hyundai, BMW doesn’t encode its generation name directly in the VIN; the chassis code is enthusiast and industry shorthand, not something stamped into positions 4 to 8. Here’s the full lineage:
| Generation | Chassis code | Years | Notes |
|---|---|---|---|
| 1st | E12 | 1972-1981 | Predates the 17-character VIN standard entirely |
| 2nd | E28 | 1981-1988 | First 5 Series with a 17-character ISO VIN |
| 3rd | E34 | 1988-1996 | Euro launch late 1987; added V8 and wagon (Touring) body |
| 4th | E39 | 1995-2004 | Widely regarded by owners and the press as the model’s high point |
| 5th | E60 / E61 | 2003-2010 | Chris Bangle-era styling; introduced iDrive to the 5 Series |
| 6th | F10 / F11 / F07 | 2010-2017 | F07 was the Gran Turismo hatchback variant |
| 7th | G30 / G31 | 2017-2023 | Also built at Magna Steyr in Graz, Austria for extra capacity |
| 8th | G60 / G61 | 2023-present | First 5 Series generation built alongside a full-electric sibling, the i5 |
Every 5 Series since the E28 has been assembled predominantly at BMW’s Dingolfing plant in Bavaria, which itself opened specifically to build the first 5 Series: the plant’s first car off the line, on September 27, 1973, was a red E12 520. A handful of early 1972-1974 E12s were built at Munich before Dingolfing came fully online.
BMW 5 Series WMI codes (positions 1 to 3)
The first three characters are the World Manufacturer Identifier, assigned by SAE on behalf of ISO. On a genuine 5 Series you’ll see:
| WMI | Country | Division | Notes |
|---|---|---|---|
| WBA | Germany | BMW AG passenger car | Standard 5 Series, gasoline or diesel, any generation E28 onward |
| WBS | Germany | BMW M GmbH | M5 high-performance variants |
| WBY | Germany | BMW i | i5, the electric variant of the G60 generation |
Verified examples: a 1998 528i (WBADD6322WBW38993) and a 2024 530i xDrive (WBA53FJ09RCP95136) both carry WBA; a 2002 M5 (WBSDE93402CF91093) carries WBS; a 2024 i5 eDrive40 (WBY33FK02RCR87814) carries WBY. WBA alone does not tell you whether the car came from Dingolfing or Graz; you need position 11, or a full decode, for that.
How to decode a BMW 5 Series VIN, position by position
Positions 1 to 3: WMI
Covered above. Position 1 (W) is Germany; it does not change even for Graz, Austria-built cars, because WMI is assigned at the BMW Group level, not per assembly plant.
Positions 4 to 8: Vehicle Descriptor Section (engine and body)
This is the one place where BMW’s VIN is less tidy than a single-brand engine-code table would suggest. Positions 4 to 7 carry BMW’s internal type designation, and position 8 folds in restraint-system and, inconsistently, engine data. Real decodes across generations show position 8 alone does not map cleanly to one engine:
| VIN example | Generation | Actual engine | Position 8 |
|---|---|---|---|
| WBADD6322WBW38993 | E39, 1998 528i | M52 2.8L I6 | 2 |
| WBANB53527CP07675 | E60, 2007 550i | N62 4.8L V8 | 2 |
| WBY33FK02RCR87814 | G60, 2024 i5 eDrive40 | Electric | 2 |
All three cars carry a different engine (or none), yet all three show “2” at position 8. The character only means something combined with positions 4 to 7, which is why VinDecoderPlus decodes the full VDS block against BMW’s build data instead of reading position 8 alone. Treat any decoder that promises a single-character BMW engine table with skepticism; the position-8-only approach that works for Kia or Hyundai does not hold up on BMW.
The generations still map to well-documented engine families, even without a clean single-character key: E28 ran M20/M30 I6 engines; E34 added the M50 I6 and M60 V8; E39 used M52/M54 I6, M62 V8, and M57 diesel; E60 carried M54/N52 I6, N62 V8, and M57 diesel; F10 moved to turbocharged N20/N55 I6, N63 V8, and N57 diesel; G30 uses B46/B48 turbo I4/I6, B58 I6, and B47/B57 diesel; G60 continues B48/B58 combustion engines alongside the i5’s electric motors.
Position 9: Check digit
Calculated from the other 16 characters via modulo-11 math. A single mistyped character anywhere in the VIN breaks this check, and any compliant decoder (including this one) will flag it.
Position 10: Model year
BMW uses the standard 30-year cyclical model-year code. Because the 5 Series has run since before the modern VIN standard existed, it’s the one BMW model where you’ll actually need both cycles of this table:
| Char | Year | Char | Year | Char | Year | Char | Year |
|---|---|---|---|---|---|---|---|
| B | 1981 | L | 1990 | 1 | 2001 | L | 2020 |
| C | 1982 | M | 1991 | 2 | 2002 | M | 2021 |
| D | 1983 | N | 1992 | 3 | 2003 | N | 2022 |
| E | 1984 | P | 1993 | 4 | 2004 | P | 2023 |
| F | 1985 | R | 1994 | 5 | 2005 | R | 2024 |
| G | 1986 | S | 1995 | 6 | 2006 | S | 2025 |
| H | 1987 | T | 1996 | 7 | 2007 | T | 2026 |
| J | 1988 | V | 1997 | 8 | 2008 | V | 2027 |
| K | 1989 | W | 1998 | 9 | 2009 | W | 2028 |
| X | 1999 | A | 2010 | X | 2029 | ||
| Y | 2000 | Y | 2030 |
Letters I, O, and Q are never used, since they’re easily confused with 1 and 0. This table is verified against ten real, checksum-valid 5 Series VINs from 1988 to 2024: a 1988 E28 535i (J), a 1992 E34 525i Touring (N), a 1998 E39 528i (W), a 2002 E39 530i (2), a 2007 E60 550i (7), a 2014 F10 535d (E), a 2018 G30 530i (J), and a 2024 G60 530i and i5 (both R).
Position 11: Assembly plant
This is the position where the “one letter, one plant, forever” pattern that works for other brands breaks down on the 5 Series. Decoding real VINs across the model’s history shows Dingolfing represented by different letters in different eras:
| Generation / year | Position 11 | Plant |
|---|---|---|
| E34, 1992 | G | Dingolfing |
| E39, 1998 | B | Dingolfing |
| E39 / M5, 2002 | C | Dingolfing |
| E60, 2007 | C | Dingolfing |
| F10, 2014 | D | Dingolfing |
| G30 (4-cyl), 2018 | W | Graz, Austria (Magna Steyr) |
| G30 / G60, 2024 | C | Dingolfing |
Unlike Kia’s stable per-plant letters, BMW appears to reassign position 11 over time as production lines and serial ranges get reused across a 50-plus-year run. Treat the letter as an era-specific clue, not a fixed universal key, and confirm plant with a full decode. Outside the 2017-2023 Graz-built four-cylinder G30 run, virtually every 5 Series has come from Dingolfing.
Positions 12 to 17: Serial number
The production sequence number for that specific car. Combined with the rest of the VIN, it makes every 5 Series globally unique.
5 Series trim levels by generation
Trim isn’t spelled out directly in the VIN; it’s reconstructed from the full VDS plus the factory build/options data. Broadly, by generation:
- E39 (1995-2004): 520i, 523i, 525i/525d, 528i, 530i/530d, 535i, 540i, M5
- E60/E61 (2003-2010): 520i, 523i, 525i/525d, 528i, 530i/530d, 535i/535d, 545i, 550i, M5
- F10/F11 (2010-2017): 520i, 523i, 528i, 528d, 530d, 535i/535d, 550i, M5, ActiveHybrid 5
- G30/G31 (2017-2023): 520d, 530i/530e (plug-in hybrid), 540i, 545e, M550i, M5
- G60/G61 (2023-present): 520i/520d, 530i, 540i, M5, plus the electric i5 eDrive40 and i5 M60 xDrive
When you decode a 5 Series VIN with the tool above, the result pairs the VDS block with the build sheet to return the actual trim, drivetrain, and factory options.
Where to find the VIN on a BMW 5 Series
- Lower-left corner of the windshield, visible from outside the car
- Driver’s side door jamb sticker (also lists paint and interior codes)
- Stamped on the right-side suspension strut tower under the hood
- Vehicle title, registration, and BMW’s owner service portal
If your 5 Series is an E12 built before 1981, it doesn’t carry a 17-character VIN at all; it uses a shorter, BMW-specific chassis number. Our classic car VIN decoder guide covers how to read those.
BMW 5 Series recalls and safety
The 5 Series has been the subject of several notable NHTSA campaigns:
- Takata airbag inflators: Certain 2000-2003 E39 5 Series received driver-side front airbag modules later found to be defective, part of the industry-wide Takata recall.
- In-tank fuel pump (campaign 16V-746, 2016): Affected 2011-2012 F10 528i, 535i, and 550i sedans, plus 2010-2011 F07 5 Series Gran Turismo, over insufficiently crimped wire contacts that could melt and leak fuel.
- Blower motor wiring harness fire risk (campaign 17V-676, 2017): Covered 2007-2011 E60/E61 5 Series among more than a million BMWs, where a heating-system wiring fault could overheat and start a fire.
- High-pressure fuel pump (campaign 21V-586, 2021): Affected certain 2013-2016 build-date F10 535d diesel sedans with the N57T engine, which could fail and stall the car.
To check your specific car:
- Decode the VIN with the tool above to confirm the exact model and year
- Cross-reference the VIN with NHTSA’s recall database or the BMW recall portal
- Contact a BMW authorized service center for any open campaign repair
Recall repairs are free regardless of age, mileage, or ownership history.
Frequently asked questions
How do I decode a BMW 5 Series VIN?
Type the 17-character VIN from the windshield, door jamb, or title into the decoder at the top of this page. Results include generation, model year, engine, trim, plant, and open NHTSA recalls, in seconds and with no sign-up.
How can I tell which generation my 5 Series is from the VIN?
The VIN won’t spell out “E39” or “G30”; those are enthusiast shorthand, not a stamped code. Combine the model year (position 10) with the VDS block (positions 4-8), which a full decode does automatically. As a shortcut: E39 spans 1996-2003, E60/E61 spans 2004-2010, F10/F11 spans 2011-2016, G30/G31 spans 2017-2023, and G60/G61 starts at 2024.
What does a BMW 5 Series VIN starting with WBS mean?
WBS is BMW M GmbH’s manufacturer identifier, used on the M5. A WBA-prefixed VIN is a standard 5 Series; WBS means it left the factory as an M5, not a 540i or 550i retrofitted with M badges.
Why does my 5 Series VIN show a Graz, Austria plant instead of Germany?
Between 2017 and 2023, BMW contracted Magna Steyr in Graz, Austria to build four-cylinder G30 sedans alongside the main Dingolfing line, to cover demand. It’s still a genuine BMW; Graz-built and Dingolfing-built G30s share the same WBA WMI and differ only at position 11.
Where is the VIN on a BMW 5 Series?
The lower-left corner of the windshield (visible from outside) and the driver’s door jamb sticker are the two required locations on any post-1981 5 Series. Cars from before 1981 (the E12) don’t use the 17-character format at all.
Can a BMW 5 Series VIN be faked?
The characters can be retyped on a counterfeit plate, but the check digit at position 9 catches most single-character changes through math, and the strut-tower stamp is physically tied to the original car. If the windshield and door-jamb VINs match but the underhood stamp doesn’t, treat the car as suspect. Our guide how to check if a car is stolen by VIN walks through the next steps.
Decode any BMW 5 Series VIN free
Type your 17-character 5 Series VIN into the decoder at the top of this page for an instant breakdown. To go deeper:
- BMW VIN decoder hub for the brand-wide guide
- How to read a VIN number for the general standard
- What every character in a VIN means for a position-by-position reference
- Classic car VIN decoder (pre-1981) for the E12
- VIN decoder vs. vehicle history report for what a decode covers vs. what it doesn’t
