FunktionenUSt-IdNr.-Prüfung (VIES)

USt-IdNr.-Prüfung (VIES)

Bei jedem Beleg mit einer Lieferanten-USt-IdNr. läuft Craken eine zweistufige Prüfung: zuerst syntaktisch nach § 27a UStG (DE) bzw. nach der EU-Formatspezifikation (andere Mitgliedstaaten), danach eine Existenz- und Namensabfrage gegen VIES (das EU-Register).

Was Sie als Sachbearbeiter davon sehen:

  • Im Lieferanten-Drawer unter Stammdaten steht zusätzlich zur USt-IdNr. eine Zeile „USt-IdNr. zuletzt bestätigt: 19.06.2026 · VIES”. Solange noch keine positive Prüfung gelaufen ist, fehlt diese Zeile.
  • In Nachbearbeitung bzw. in der Review-Queue können Validierungs-Issues auftauchen, die VIES gemeldet hat — siehe Issue-Typen weiter unten.

Wie die Prüfung abläuft

Issue-Typen im Überblick

Wenn ein Validierungs-Issue auftaucht, sehen Sie in der UI eine farbige Plakette neben dem Beleg. Hier ist die Bedeutung:

CodeSchweregradBedeutungWas Sie tun
ust_id_invalidFehlerUSt-IdNr. besteht die Formatprüfung nicht (falsche Prüfziffer bei DE, falsche Länge bei anderen).Lieferant öffnen, USt-IdNr. korrigieren oder neuen Lieferanten anlegen.
vat_id_vies_unknownFehlerFormat ist okay, aber VIES kennt die Nummer nicht.Lieferanten kontaktieren — Nummer evtl. ungültig oder noch nicht registriert. Beleg im Zweifel nicht als Vorsteuer-relevant buchen.
vat_id_vies_unreachableWarnungVIES war nicht erreichbar (Rate-Limit, EU-Wartungsfenster).Keine Aktion nötig — beim nächsten Polling-Lauf wird neu versucht.
vat_id_vies_name_mismatchWarnungVIES kennt die USt-IdNr., aber der dort registrierte Name passt nicht zum auf dem Beleg.Lieferant + Beleg gegenchecken. Häufig: Tochter- oder Markennamen vs. juristische Person.

Wo im Lieferanten-Drawer

Die Stammdaten-Sektion zeigt die Freshness der letzten erfolgreichen Prüfung inline:

Stammdaten                     ✎
─────────────────────────
Kanonischer Name:    Vodafone Deutschland GmbH
USt-IdNr.:           DE811569869
USt-IdNr. zuletzt
  bestätigt:         19.06.2026 · VIES
HRB:                 HRB 38062
IBAN:                DE… verfügbar (siehe Zahlung)

Klicken Sie auf die Zeile, um den vollständigen Prüfverlauf zu öffnen (Reiter „Verlauf” im Lieferanten-Drawer).

Was Craken pro Beleg dokumentiert

Bei jeder positiven VIES-Antwort schreibt Craken zwei Spuren:

  1. Lieferanten-Stamm (PostgreSQL) — suppliers.vat_id_last_verified_at und vat_id_last_verified_source werden auf den aktuellen Zeitpunkt gesetzt. Das ist die Quelle für die Inline-Anzeige oben.
  2. Audit-Kette (immudb, Merkle-verkettet) — ein Eintrag pro Beleg mit {document_id, vat_id, vies_valid, registered_name_hash, checked_at, source}. Diese Spur ist Bestandteil des GoBD-Exports und kann nicht nachträglich verändert werden.

Selbst testen

Die Bench-Instanz cached jede Antwort 30 Tage. Wenn Sie mehrfach dieselbe USt-IdNr. testen, sehen Sie nur den ersten Lauf in den Validator-Logs — danach holt sich Craken die Antwort aus vat_id_vies_cache.

A. Echter Beleg

Lassen Sie einen Beleg mit gesetzter seller_vatid über den E-Mail-Konnektor laufen oder laden Sie ihn manuell hoch. Die Pipeline erledigt den Rest automatisch. Sichtbares Ergebnis: Inline-Zeile im Lieferanten-Drawer (siehe oben).

B. VIES direkt anfragen

Ein Sanity-Check, ob VIES überhaupt erreichbar ist (z. B. bei Wartungsfenstern). Aus dem Container-Netz der Bench:

curl -s "https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/811569869"

Erwartete Antwort:

{
  "isValid": true,
  "name": "---",   // DE liefert keinen Namen (§ 27a UStG)
  "address": "---"
}

C. Bekannt-valide Test-USt-IdNrn

USt-IdNr.Erwartung
DE811569869gültig (Microsoft Deutschland GmbH) — DE liefert keinen Namen, Name-Mismatch wird nicht ausgelöst
NL858272136B01gültig (Booking.com B.V.) — Name wird geliefert, Name-Match-Logik schlägt zu
IE6388047Vgültig (Google Ireland Ltd.) — Name wird geliefert
DE123456788ust_id_invalid (Prüfziffer falsch)
DE12345ust_id_invalid (zu kurz)
XX12345678ust_id_invalid (Land unbekannt)

Hintergrund: warum zweistufig?

VIES ist die einzige autoritative Quelle für die Existenz einer EU-USt-IdNr., aber es ist auch ein gemeinsam genutzter EU-Dienst mit Rate-Limits und gelegentlichen Wartungsfenstern. Craken cached daher Antworten lokal (30 Tage TTL) und macht die syntaktische Vorprüfung mit, damit offensichtlich kaputte Eingaben gar nicht erst an VIES gehen.

Bei deutschen USt-IdNrn. liefert VIES aus Datenschutzgründen weder Namen noch Adresse — wir können also nur “ja/nein” sehen. Für andere EU-Mitgliedstaaten kommt der Name mit, und Craken vergleicht ihn mit dem seller_name auf dem Beleg (Fuzzy-Match mit Rechtsform-Stripping); bei größerer Abweichung wandert der Beleg in die Nachbearbeitung.