VIN-Prüfziffer für 17-stellige Fahrzeugnummer validieren
Eine Fahrzeug-Identifizierungsnummer enthält eine Prüfziffer, mit der sich Übertragungsfehler erkennen lassen, bevor eine VIN in ein Fahrzeugregister, Bestandssystem, Versicherungsverfahren oder eine Werkstattdatenbank gelangt.
Im Browser ausführen – kostenlos
Dieser Validator wendet die standardisierte Transliteration und Positionsgewichtung auf alle 17 Zeichen an, berechnet das erwartete neunte Zeichen und vergleicht es mit der Angabe. Das Ergebnis zeigt eindeutig, ob die VIN besteht, und nennt beide Prüfziffern sowie den Modulo-Rest, ohne Fahrzeugdaten abzurufen oder zu speichern.
Was Ihnen die VIN-Prüfziffer sagen kann
Eine moderne VIN ist eine strukturierte Kennung aus 17 Zeichen. In Systemen, die die Standardregel anwenden, ist die neunte Position für die Prüfziffer reserviert. Dieser Validator beantwortet eine klar begrenzte Frage: Stimmt das neunte Zeichen nach der gewichteten Transliterationsrechnung mit den übrigen Zeichen überein? Ein positives Ergebnis ist ein nützlicher Hinweis darauf, dass die Kennung konsistent übertragen wurde. Bei einem negativen Ergebnis sollten Sie die Angabe mit dem Schild am Armaturenbrett, dem Typenschild, den Fahrzeugpapieren oder der Originalquelle vergleichen. Es beweist jedoch weder, dass das Fahrzeug echt oder rechtmäßig zugelassen ist, noch dass es korrekt beschrieben wurde. Auch für eine frei erfundene VIN lässt sich eine mathematisch richtige Prüfziffer erzeugen. Hersteller, Markt und Bauzeit können zudem bestimmen, ob diese Konvention gilt. Nutzen Sie das Ergebnis daher als Qualitätskontrolle gegen typische Eingabefehler und amtliche Quellen für Fragen zu Identität, Eigentum, Diebstahl, Rückrufen oder technischen Daten.
So funktioniert die gewichtete Transliterationsrechnung
Zunächst wird jeder zulässige Buchstabe in einen Zahlenwert übersetzt, während Ziffern ihren eigenen Wert behalten. Die Buchstaben I, O und Q sind in VINs ausgeschlossen, weil sie leicht mit Zahlen verwechselt werden können. Jeder der 17 Werte wird mit dem Gewicht seiner Position multipliziert: 8, 7, 6, 5, 4, 3, 2, 10, null für die Prüfzifferposition und anschließend 9, 8, 7, 6, 5, 4, 3 und 2. Danach werden alle Produkte addiert und die Summe durch 11 geteilt. Der Rest ergibt die erwartete Prüfziffer: Für Reste von null bis neun wird die entsprechende Ziffer verwendet, ein Rest von 10 wird als X dargestellt. Durch das Gewicht null beeinflusst die angegebene Prüfziffer ihre eigene Berechnung nicht. Die Fähigkeit liefert die in Großbuchstaben normalisierte VIN, das angegebene neunte Zeichen, das berechnete Zeichen und den Rest. So können Sie die Entscheidung nachvollziehen und erhalten nicht nur einen Wahr-oder-falsch-Wert.
Sichere Validierung in Formularen und automatisierten Abläufen
Übermitteln Sie die VIN genau als Zeichenfolge mit 17 Zeichen. Kleinbuchstaben werden akzeptiert und in Großbuchstaben umgewandelt; Leerzeichen, Satzzeichen, dekorative Trennzeichen und Zeilenumbrüche werden jedoch nicht unbemerkt entfernt. Diese strenge Behandlung ist beabsichtigt: Eine Integration sollte unerwartete Eingaben erkennen, statt eine Kennung stillschweigend zu verändern. Jede andere Länge führt ebenso zu einem Fehler wegen ungültiger Eingabe wie Zeichen außerhalb des VIN-Alphabets. Eine formal korrekte VIN mit abweichender Prüfziffer ist keine fehlerhaft formatierte Eingabe und liefert deshalb ein normales Ergebnis, bei dem valid auf falsch steht. Eine Oberfläche kann so erklären, ob das Feldformat berichtigt oder die Kennung erneut geprüft werden muss. Bewahren Sie bei Stapelimporten die Originalquelle zusammen mit dem normalisierten Ergebnis auf, leiten Sie Abweichungen zur Prüfung weiter und lehnen Sie rechtliche oder historische Datensätze nicht allein aufgrund dieser Rechnung ab, wenn Rechtsraum oder Modelljahr anderen Regeln folgen könnten. Die API-Automatisierung kostet $0.002 pro Anfrage; der Browser führt dieselbe deterministische Rechnung lokal aus.
Anwendungsfälle
Eingabefehler im Fahrzeugbestand erkennen
Prüfen Sie eine eingegebene oder gescannte VIN vor dem Anlegen des Datensatzes und gleichen Sie Abweichungen mit dem Fahrzeug ab.
Werkstattformulare validieren
Unterscheiden Sie falsch formatierte Kennungen von formal korrekten VINs, deren neuntes Zeichen nicht zur Berechnung passt.
Importierte Fahrzeugdaten prüfen
Ergänzen Sie den Import um eine deterministische Qualitätskontrolle und führen Sie amtliche Identitätsprüfungen getrennt durch.
Häufige Fragen
Was kostet die Validierung einer VIN-Prüfziffer?
Die API kostet $0.002 pro Anfrage. Der Browser führt dieselbe deterministische Berechnung auf dieser Seite kostenlos aus.
Welches Zeichen ist die VIN-Prüfziffer?
Es ist das neunte Zeichen der 17-stelligen VIN. Zulässig ist eine Ziffer von 0 bis 9 oder der Buchstabe X.
Warum kann die berechnete Prüfziffer X sein?
Die Rechnung verwendet Modulo 11. Ist der Rest 10, wird die Prüfziffer standardmäßig als X dargestellt.
Beweist eine gültige Prüfziffer die Echtheit des Fahrzeugs?
Nein. Sie bestätigt nur mathematische Konsistenz. Nutzen Sie amtliche Quellen für Identität, Eigentum, Diebstahl, Rückrufe und technische Daten.
Sind Kleinbuchstaben in einer VIN zulässig?
Ja. Sie werden in Großbuchstaben umgewandelt. Leer- und Satzzeichen werden nicht entfernt; I, O und Q werden abgelehnt.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/misc2/vin-check-digit-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vin":"1M8GDM9AXKP042788"}'const res = await fetch("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vin": "1M8GDM9AXKP042788"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/vin-check-digit-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vin": "1M8GDM9AXKP042788"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vin":"1M8GDM9AXKP042788"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vin":"1M8GDM9AXKP042788"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/vin-check-digit-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"vin": "1M8GDM9AXKP042788"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.vin_check_digit_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |