USt-IdNr. prüfen
Ein Werkzeug, das eine Umsatzsteuer-Identifikationsnummer live gegen das EU-Register prüft und, wenn hinterlegt, den zugehörigen Firmenname und die Adresse zurückgibt. Gedacht für Rechnungen an EU-Geschäftspartner, bei denen die USt-IdNr. für die Reverse-Charge-Regelung dokumentiert und im Zweifelsfall gegenüber dem Finanzamt nachgewiesen werden muss.
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.
Warum die Prü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, muss eine gültige USt-IdNr. des Empfängers nachweisen können. Eine falsche oder erfundene Nummer kann bei einer späteren Prüfung durch das Finanzamt zu einem ernsthaften Problem werden, die Live-Abfrage schafft hier vorab Klarheit statt nachträglicher Unsicherheit bei der Betriebsprüfung, wenn längst nicht mehr nachvollziehbar ist, wann geprüft wurde.
Was die Live-Abfrage liefert
Die eingegebene Nummer wird live gegen das EU-Register geprüft, nicht nur auf ihr Format. Ist die Nummer gültig, liefert die Antwort in vielen Fällen zusätzlich den hinterlegten Firmenname und die Adresse, sofern das jeweilige Land diese Angaben freigibt. Manche Mitgliedstaaten geben aus datenschutzrechtlichen Gründen nur ein Ja oder Nein zurück, ohne weitere Firmendaten preiszugeben, was Sie beim Dokumentieren berücksichtigen sollten.
Preis pro Anfrage
$0.002 pro geprüfter Nummer, über diese Seite oder per API, ohne Mindestmenge und ohne Abonnement. Da die Abfrage eine echte Verbindung zum EU-Register voraussetzt, läuft sie serverseitig statt kostenlos im Browser, anders als eine reine Formatprüfung, die keine externe Quelle benötigt und deshalb lokal ablaufen kann, ganz ohne Netzwerkzugriff und ohne Wartezeit auf eine Antwort aus dem europäischen Register selbst.
Anwendungsfälle
Rechnung an einen französischen Geschäftskunden
Die Weber Metallbau GmbH prüft vor einer Rechnung ohne Umsatzsteuer an einen französischen Kunden dessen USt-IdNr. und dokumentiert das Ergebnis.
Neuanlage eines EU-Lieferanten
Sabine Schneider prüft beim Anlegen eines neuen Lieferanten aus einem anderen EU-Land dessen USt-IdNr., bevor die erste Bestellung ausgelöst wird.
Stichprobe vor der Steuererklärung
Ein Steuerberater prüft vor Abschluss der Umsatzsteuer-Voranmeldung stichprobenartig die USt-IdNr. mehrerer EU-Geschäftspartner eines Mandanten.
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?
Die Prüfung fragt live das EU-Register ab, was eine echte Netzwerkverbindung voraussetzt, die ein Browser aus Sicherheitsgründen nicht selbst herstellen kann.
Bekomme ich immer den Firmenname zurück?
Nicht immer. Manche EU-Mitgliedstaaten geben aus datenschutzrechtlichen Gründen nur zurück, ob die Nummer gültig ist, ohne Firmenname oder Adresse.
Reicht das als Nachweis gegenüber dem Finanzamt?
Die Prüfung zeigt das Ergebnis der EU-Abfrage zum Abfragezeitpunkt. Ob das für Ihre Dokumentationspflicht ausreicht, entscheidet im Einzelfall Ihre Steuerberatung.
Funktioniert das auch für deutsche USt-IdNr.?
Ja, deutsche Nummern lassen sich ebenso prüfen 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 '{"items":["valor-1","valor-2"]}'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({
"items": [
"valor-1",
"valor-2"
]
})
});
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={
"items": [
"valor-1",
"valor-2"
]
},
)
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" => '{"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/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
{
"items": [
"valor-1",
"valor-2"
]
}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. |