USt-IdNr. prüfen
Ein Werkzeug, das das Format einer Umsatzsteuer-Identifikationsnummer prüft: ob sie ein anerkanntes EU-Länderpräfix und ein stimmiges Zeichenmuster trägt.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
So erkennen Sie fehlerhaft eingegebene Nummern, bevor sie in eine Rechnung an einen EU-Geschäftspartner gelangen. Es prüft die Form; es bestätigt nicht, dass die Nummer im Register aktiv ist – diese Live-Bestätigung erfolgt gesondert über das offizielle EU-System VIES.
Warum die Formatprüfung bei EU-Rechnungen wichtig ist
Wer einer Firma in einem anderen EU-Land ohne Umsatzsteuer und mit Hinweis auf die Reverse-Charge-Regelung in Rechnung stellt, braucht eine korrekte USt-IdNr. des Empfängers. Eine fehlerhaft getippte Nummer, eine Ziffer zu wenig oder ein falsches Präfix, fällt spätestens bei einer späteren Prüfung durch das Finanzamt auf und sorgt für Nacharbeit. Die Formatprüfung fängt genau solche Eingabefehler früh ab, bevor sie in die Rechnung gelangen, und markiert, welche Nummern anschließend eine echte Gültigkeitsbestätigung wert sind.
Was die Formatprüfung liefert
Die eingegebene Nummer wird auf ihr Format geprüft: anerkanntes EU-Länderpräfix und ein stimmiges Zeichenmuster. Das Ergebnis nennt, ob die Nummer wohlgeformt ist, samt dem aus dem Präfix gelesenen Ländercode. Es sagt nicht, ob die Nummer tatsächlich registriert ist, und liefert keinen Firmennamen und keine Adresse: Eine wohlgeformte Nummer kann niemandem gehören, weil die Firma abgemeldet wurde oder die Nummer erfunden ist. Die tatsächliche Registrierung bestätigt VIES, das offizielle System der Europäischen Kommission, das die nationalen Register abfragt – ein gesonderter Schritt, den diese Prüfung nicht ausführt.
Preis pro Anfrage
$0.002 pro geprüfter Nummer, über diese Seite oder per API, ohne Mindestmenge und ohne Abonnement. Die Prüfung läuft serverseitig und ist als kostenpflichtige Funktion angelegt; sie fängt fehlerhaft getippte Nummern vorab ab, günstig genug für jede Eingabe. Die eigentliche Bestätigung, dass eine Nummer im Register aktiv ist, holen Sie anschließend über eine gesonderte VIES-Abfrage für die wohlgeformten Nummern ein.
Anwendungsfälle
Rechnung an einen französischen Geschäftskunden
Die Weber Metallbau GmbH prüft vor einer Rechnung ohne Umsatzsteuer das Format der USt-IdNr. eines französischen Kunden und schließt so einen Tippfehler aus, bevor die Rechnung erstellt wird.
Neuanlage eines EU-Lieferanten
Sabine Schneider prüft beim Anlegen eines neuen Lieferanten aus einem anderen EU-Land das Format der USt-IdNr., bevor der Lieferant angelegt und die Nummer über VIES bestätigt wird.
Stichprobe vor der Steuererklärung
Ein Steuerberater prüft vor Abschluss der Umsatzsteuer-Voranmeldung stichprobenartig das Format der USt-IdNr. mehrerer EU-Geschäftspartner eines Mandanten auf offensichtliche Fehler.
Häufige Fragen
Was kostet die Prüfung?
$0.002 pro geprüfter Nummer, über diese Seite oder per API.
Warum läuft das nicht kostenlos im Browser?
Diese Prüfung wird serverseitig über die Web-Oberfläche oder die API als kostenpflichtige Funktion bereitgestellt und liefert das Formatergebnis sofort zurück.
Bestätigt die Prüfung, dass die Nummer registriert ist?
Nein. Sie prüft nur das Format – Länderpräfix und Struktur. Ob die Nummer im Register aktiv ist, bestätigt VIES in einem gesonderten Schritt; einen Firmenname oder eine Adresse liefert diese Prüfung nicht.
Reicht das als Nachweis gegenüber dem Finanzamt?
Die Prüfung zeigt, ob die Nummer wohlgeformt ist, nicht ob sie registriert ist. Für den Nachweis der Gültigkeit dient die VIES-Abfrage; ob das für Ihre Dokumentationspflicht ausreicht, entscheidet im Einzelfall Ihre Steuerberatung.
Funktioniert das auch für deutsche USt-IdNr.?
Ja, deutsche Nummern werden ebenso auf ihr Format geprüft wie die aller anderen EU-Mitgliedstaaten.
Brauche ich ein Konto?
Nein, Sie zahlen direkt pro geprüfter Nummer, ohne Registrierung.
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/vat \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vat":"ESB12345678"}'const res = await fetch("https://api.kit.forhosting.com/verify/vat", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vat": "ESB12345678"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/vat",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vat": "ESB12345678"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/vat", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vat":"ESB12345678"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vat":"ESB12345678"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/vat", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"vat": "ESB12345678"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.vat",
"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. |