Aller au contenu
API Plaque Immatriculation
Guide 8 min de lecture

VIN décodeur : comprendre la structure d'un numéro de châssis

WMI, VDS, VIS : comment se lit un numéro de châssis, en quoi les règles diffèrent entre Amérique du Nord et Europe, et ce qu'un décodeur doit en tirer.

Longeron de châssis en acier brossé avec une zone de frappe floue et des barres lumineuses symbolisant les sections du numéro

Un numéro de châssis paraît opaque, mais il obéit à une structure en trois sections définie par la norme ISO 3779 : WMI, VDS et VIS. Comprendre cette structure aide à valider une saisie, à repérer une anomalie et surtout à savoir ce qu'un décodeur peut, ou ne peut pas, déduire du numéro seul.

Nous avons déjà publié un tableau position par position dans l'article Signification du VIN : décoder les 17 caractères. Celui-ci s'attarde sur les nuances : ce qui change selon les marchés et les constructeurs, et les erreurs d'interprétation qui en découlent.

Les trois sections en un coup d'œil

PositionsSectionContenuQui le définit
1 à 3WMI (World Manufacturer Identifier)Constructeur et zone d'origineCode attribué au constructeur
4 à 9VDS (Vehicle Descriptor Section)Caractéristiques du véhiculeLe constructeur, librement
10 à 17VIS (Vehicle Indicator Section)Identification individuelleLe constructeur, avec des usages variables

Un VIN moderne compte 17 caractères, chiffres et lettres, à l'exception de I, O et Q, exclues pour éviter les confusions avec 1 et 0.

Le WMI : la partie la plus « universelle »

Le WMI est la section la plus facile à décoder, car elle repose sur une liste de codes attribués.

  • Le premier caractère indique la zone géographique (par exemple V à Z pour une grande partie de l'Europe, 1 à 5 pour l'Amérique du Nord, J pour le Japon).
  • Les deux premiers caractères précisent le pays.
  • Les trois caractères ensemble identifient le constructeur.

Les nuances du WMI

  • Pays du constructeur ou de l'usine ? Le WMI renvoie au constructeur et à la zone d'attribution du code. Un véhicule d'une marque européenne assemblé hors d'Europe peut porter un WMI d'une autre zone. Ne déduisez donc pas le pays d'assemblage du WMI sans vérification.
  • Un constructeur, plusieurs WMI. Les grands groupes utilisent plusieurs codes selon les marques, les usines ou les types de véhicules (voitures particulières, utilitaires).
  • Petits constructeurs. Les constructeurs produisant peu de véhicules utilisent un WMI se terminant par 9. Leur identification se complète alors par trois caractères situés dans le VIS (positions 12 à 14).

Le VDS : la section propre à chaque constructeur

Les positions 4 à 9 décrivent le véhicule : modèle, carrosserie, motorisation, parfois équipement de sécurité. Mais chaque constructeur choisit son propre codage. Il n'existe pas de table universelle pour lire le VDS.

Conséquence directe : pour transformer DZ0N06 en « Mégane III Coupé 1.9 dCi », un décodeur a besoin d'une base de données qui associe ces codes, constructeur par constructeur et souvent période par période. C'est ce qui distingue un véritable décodeur d'un simple outil de lecture de structure.

La position 9 : contrôle obligatoire ou non selon le marché

En Amérique du Nord, la 9e position est obligatoirement un caractère de contrôle, calculé à partir des 16 autres pour détecter les erreurs de saisie. D'autres marchés, comme la Chine, appliquent une règle comparable. En Europe, ce n'est pas une obligation : la 9e position peut être utilisée autrement par le constructeur.

Voici l'algorithme de contrôle nord-américain en JavaScript : chaque lettre est convertie en valeur numérique, multipliée par un poids lié à sa position, et le reste de la somme divisée par 11 donne le caractère attendu (X pour 10).

const VALUES = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, J: 1, K: 2, L: 3, M: 4, N: 5, P: 7, R: 9, S: 2, T: 3, U: 4, V: 5, W: 6, X: 7, Y: 8, Z: 9 };
const WEIGHTS = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2];
 
export function computeCheckDigit(vin) {
  const sum = [...vin].reduce((total, char, i) => {
    const value = /\d/.test(char) ? Number(char) : VALUES[char];
    return total + value * WEIGHTS[i];
  }, 0);
  const remainder = sum % 11;
  return remainder === 10 ? "X" : String(remainder);
}
 
export function hasValidCheckDigit(vin) {
  return computeCheckDigit(vin) === vin[8];
}

Nous avons exécuté cette fonction sur deux VIN de référence couramment utilisés pour illustrer l'algorithme, 1M8GDM9AXKP042788 et 1HGCM82633A004352 : le contrôle est valide pour les deux. Appliquée au VIN européen de notre réponse d'exemple, VF1DZ0N0641118804, elle calcule 5 alors que la 9e position vaut 6.

Ce n'est pas le signe d'un VIN erroné : c'est simplement que ce constructeur européen n'utilise pas la 9e position comme caractère de contrôle. N'appliquez donc jamais ce contrôle à tous les VIN : vous rejetteriez des numéros parfaitement valides. Réservez-le aux VIN dont le WMI indique un marché où il est obligatoire, et traitez un échec comme un avertissement, pas comme un refus.

Le VIS : identification individuelle, usages variables

Les positions 10 à 17 identifient le véhicule lui-même.

  • Position 10 : l'année de modèle. Obligatoire en Amérique du Nord, fréquente ailleurs, mais pas systématique en Europe. Et même quand elle est présente, il s'agit de l'année de modèle, qui peut différer de l'année de fabrication et de la date de première immatriculation. Le cycle des codes se répète tous les 30 ans : la lettre seule ne permet pas de distinguer deux cycles sans autre indice.
  • Position 11 : l'usine d'assemblage, selon un code propre au constructeur.
  • Positions 12 à 17 : le numéro de série, ou, pour les petits constructeurs, un code constructeur suivi d'un numéro plus court.

Ce qu'un décodeur doit en tirer

Ces nuances dessinent le cahier des charges d'un bon décodeur :

  1. Valider la forme (17 caractères, sans I, O, Q) avant toute autre opération.
  2. Décoder le WMI à partir d'une liste de codes à jour.
  3. Interpréter le VDS avec une base constructeur, pas avec une règle générique.
  4. Appliquer le contrôle de la position 9 seulement pour les marchés où il est obligatoire.
  5. Ne pas extrapoler l'année ou l'usine quand le constructeur ne suit pas ces conventions.

C'est précisément le rôle d'une API : la documentation de l'API VIN décrit une réponse qui, pour l'exemple VF1DZ0N0641118804, ne se contente pas de la structure : elle renvoie la marque (Renault), le modèle (Mégane III), la version (1.9 dCi), la période de commercialisation (novembre 2008 à août 2015) et le code moteur.

Cas concret : contrôle de saisie dans un formulaire d'expertise

Un cabinet d'expertise automobile saisit des VIN à partir de photos de cartes grises, parfois peu lisibles. Son formulaire applique les règles ci-dessus :

  1. un caractère I, O ou Q déclenche une suggestion (« vouliez-vous dire 1 ou 0 ? ») ;
  2. si le WMI commence par 1 à 5, le contrôle de la position 9 est appliqué ; un échec affiche un avertissement ;
  3. pour un WMI européen, aucun contrôle de la position 9 n'est appliqué ;
  4. le VIN est ensuite envoyé à un décodeur pour obtenir la fiche technique.

Les fautes de frappe sont détectées plus tôt, sans rejeter les VIN européens légitimes.

Conclusion

La structure WMI, VDS, VIS est commune à tous les VIN modernes, mais son interprétation varie selon les marchés et les constructeurs. Le WMI se décode avec une liste, le VDS exige une base constructeur, et les conventions du VIS (année, contrôle) ne s'appliquent pas partout. Un décodeur fiable tient compte de ces nuances plutôt que d'appliquer une règle unique. Pour savoir quelles informations un décodage permet d'obtenir, lisez VIN info : quelles informations peut-on obtenir à partir d'un VIN ?.

Laissez l'API décoder le VDS

La structure se lit à la main, la fiche technique demande une base constructeur : testez l'API VIN Decoder.

FAQ

Pourquoi le contrôle de la 9e position échoue-t-il sur certains VIN européens ?

Parce que ce contrôle n'est pas obligatoire en Europe. Le constructeur peut utiliser la 9e position pour une autre information. L'échec ne signifie pas que le VIN est faux.

Le WMI indique-t-il le pays de fabrication ?

Il indique le constructeur et la zone d'attribution du code. Un véhicule peut être assemblé dans un autre pays que celui suggéré par le WMI.

Peut-on décoder le VDS sans base de données ?

Non, pas de manière fiable. Le codage des positions 4 à 9 est propre à chaque constructeur et peut changer d'une période à l'autre.

Que faire d'un numéro de châssis de moins de 17 caractères ?

Il s'agit souvent d'un véhicule antérieur à la normalisation du VIN à 17 caractères. Les règles décrites ici ne s'appliquent pas ; une identification par la plaque ou par les documents du véhicule est alors préférable.

Articles liés

Guide 5 min

Signification du VIN voiture : décoder les 17 caractères

Signification du VIN : structure WMI, VDS et VIS, codes pays et constructeurs, année de modèle, caractère de contrôle et décodage automatique par API.

  • #vin
  • #signification vin
  • #decodage vin

Api Plaque Immatriculation ·

Testez l'API plaque d'immatriculation gratuitement

10 requêtes offertes chaque mois, sans engagement. Votre clé est disponible immédiatement sur RapidAPI.