Barcode-Prüfziffer prüfen
Dieses Werkzeug prüft, ob die letzte Ziffer einer Barcode-Nummer – EAN-13, EAN-8, UPC-A oder ISBN – rechnerisch zur restlichen Zahl passt, und erkennt so Tippfehler, bevor ein Etikett gedruckt oder eine Nummer in ein Warenwirtschaftssystem übernommen wird. Es richtet sich an alle, die Artikelnummern von Hand erfassen.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Wozu eine Prüfziffer überhaupt dient
Die letzte Ziffer eines EAN- oder UPC-Codes ist keine willkürliche Zahl, sondern das Ergebnis einer festen Berechnung aus allen vorangehenden Ziffern. Weicht ein einzelnes Zeichen beim Abtippen ab, stimmt die Prüfziffer meist nicht mehr, und der Fehler lässt sich sofort erkennen, ohne den physischen Barcode überhaupt zu scannen oder die Nummer noch einmal Zeichen für Zeichen gegen die Originalverpackung gegenzulesen.
Welche Formate erkannt werden
Unterstützt werden die gängigen Formate EAN-13 und EAN-8 aus dem europäischen Handel, UPC-A aus dem nordamerikanischen Raum sowie ISBN-Nummern für Bücher, jeweils mit ihrer eigenen Berechnungsvorschrift für die Prüfziffer. Das Werkzeug erkennt am Aufbau und an der Länge der eingegebenen Zahl selbst, um welches Format es sich vermutlich handelt, sodass Sie das passende Format nicht selbst vorher manuell auswählen müssen.
Wo eine falsche Prüfziffer typischerweise auffällt
Beim manuellen Anlegen eines neuen Artikels in einer Produktliste, beim Abtippen einer Nummer von einer Lieferantenrechnung oder beim Import einer Tabelle mit mehreren hundert Artikeln schleichen sich Zahlendreher besonders leicht ein, gerade bei langen, gleichförmigen Ziffernfolgen. Eine falsche Prüfziffer zeigt den Fehler sofort, bevor ein Etikett mit einer ungültigen Nummer gedruckt oder eine falsche Nummer dauerhaft im Warenwirtschaftssystem gespeichert wird.
Direkt im Browser, ohne Limit
Die Berechnung der Prüfziffer läuft vollständig im Browser, ohne dass die eingegebene Nummer an einen Server übertragen wird. Das erlaubt beliebig viele Prüfungen ohne Anmeldung und ohne Nutzungslimit, etwa beim Anlegen mehrerer Artikel nacheinander oder beim schnellen Gegenprüfen einer ganzen Lieferantenliste, ohne für jede einzelne Nummer eine separate Anfrage an einen externen Dienst senden zu müssen und auf eine Antwort zu warten.
Anwendungsfälle
Neue Artikel in der Warenwirtschaft anlegen
Beim Anlegen neuer Artikel prüft die Bäckerei Hoffmann e. K. jede EAN-Nummer aus dem Lieferantenkatalog, bevor sie ins Kassensystem übernommen wird.
Import einer Lieferantentabelle
Jonas Weber importiert eine Tabelle mit mehreren hundert Artikelnummern und prüft stichprobenartig auffällige Einträge, bei denen die Prüfziffer nicht zur Nummer passt.
ISBN vor der Katalogisierung kontrollieren
Ein kleiner Verlag prüft die ISBN neuer Titel vor dem Druck des Umschlags, um einen fehlerhaften Barcode zu vermeiden.
Häufige Fragen
Was kostet die Berechnung der Prüfziffer?
Nichts. Sie läuft direkt im Browser, kostenlos, ohne Anmeldung und ohne Limit.
Welche Formate werden unterstützt?
EAN-13, EAN-8, UPC-A und ISBN. Das Format wird anhand der Länge und des Aufbaus der eingegebenen Nummer erkannt.
Kann das Werkzeug einen gedruckten Barcode fotografieren und lesen?
Nein, geprüft wird eine eingegebene Zahl. Zum Einlesen eines gedruckten Barcodes aus einem Foto steht eine eigene Funktion zur Verfügung.
Verlässt die eingegebene Nummer meinen Browser?
Nein. Die Berechnung findet vollständig in Ihrem Browser statt.
Was bedeutet eine ungültige Prüfziffer genau?
Sie zeigt, dass mindestens eine Ziffer der Nummer wahrscheinlich falsch abgetippt oder übertragen wurde, nicht welche einzelne Stelle betroffen ist.
Kann ich viele Nummern auf einmal prüfen?
Im Browser prüfen Sie eine Nummer nach der anderen. Für ganze Listen steht dieselbe Funktion über die API zur Verfügung.
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/verify/barcode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/barcode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/barcode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/barcode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/barcode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
"valor-1",
"valor-2"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.barcode",
"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. |