GET /v1/ustid?id=DE123456789
{ "id": "DE123456789", "syntax_ok": true, "vies": {"gueltig": true, "geprueft_am": "2026-08-30T14:22:01Z"} }
Zwei Jahre nach der Lieferung steht die Betriebsprüfung im Haus und streicht die Steuerfreiheit für elf Rechnungen nach Italien: Die Umsatzsteuer-ID des Kunden ist inzwischen erloschen, die Firma gibt es nicht mehr, und im Ordner liegt nur die Rechnung. Aus der steuerfreien innergemeinschaftlichen Lieferung wird rückwirkend eine steuerpflichtige — die Umsatzsteuer zahlst du aus eigener Tasche, denn beim Kunden holst du sie zwei Jahre später nicht mehr.
Bevor irgendetwas an das EU-System geht, prüft die API das Muster lokal. Hinterlegt sind alle 27 EU-Staaten plus Nordirland; die Tabelle zeigt zwölf davon. Die Formate unterscheiden sich stärker, als du erwartest: Österreich schiebt ein U vor die Ziffern, die Niederlande ein B mitten hinein, Tschechien lässt acht bis zehn Stellen zu, Belgien nur Nummern, die mit 0 oder 1 beginnen.
| Land | Präfix | Aufbau nach dem Präfix | Muster |
|---|---|---|---|
| Deutschland | DE | 9 Ziffern | DE123456789 |
| Österreich | AT | U und 8 Ziffern | ATU12345678 |
| Belgien | BE | 10 Ziffern, beginnend mit 0 oder 1 | BE0123456789 |
| Frankreich | FR | 2 Zeichen (Ziffern oder Buchstaben) und 9 Ziffern | FRXX123456789 |
| Italien | IT | 11 Ziffern | IT12345678901 |
| Niederlande | NL | 9 Ziffern, B, 2 Ziffern | NL123456789B01 |
| Spanien | ES | Zeichen, 7 Ziffern, Zeichen | ESX1234567X |
| Polen | PL | 10 Ziffern | PL1234567890 |
| Schweden | SE | 12 Ziffern | SE123456789001 |
| Tschechien | CZ | 8 bis 10 Ziffern | CZ12345678 |
| Griechenland | EL | 9 Ziffern | EL123456789 |
| Nordirland | XI | 9 oder 12 Ziffern | XI123456789 |
Zwei Stolpersteine, die im Alltag echte Fehlermeldungen erzeugen: Griechenland führt im Umsatzsteuerrecht das Kürzel EL, nicht GR — eine als GR eingetippte Nummer wird mit HTTP 400 und unknown_country abgewiesen, nicht als ungültig gemeldet. Und britische GB-Nummern stehen seit dem Brexit nicht mehr im EU-System; für den Warenverkehr mit Nordirland gilt stattdessen XI. Leerzeichen, Punkte und Bindestriche darfst du drinlassen, Kleinschreibung auch — beides wird vor der Prüfung entfernt. Scheitert schon das Muster, wird gar nicht erst bei der EU angefragt und der Aufruf nicht abgerechnet.
Seit dem 1. Januar 2020 ist die gültige USt-IdNr. des Abnehmers keine Formalie mehr, sondern materielle Voraussetzung für die Steuerbefreiung: Der Abnehmer muss gegenüber dem Lieferer eine ihm von einem anderen Mitgliedstaat erteilte Nummer verwendet haben (§ 6a Abs. 1 Satz 1 Nr. 4 UStG). Fehlt sie oder war sie ungültig, ist die Lieferung steuerpflichtig — rückwirkend.
Wo die Grenze dieser Prüfung liegt: Sie fragt VIES direkt bei der EU-Kommission ab, nicht das BZSt-Portal — die qualifizierte Bestätigung nach § 18e UStG holst du weiterhin dort. Du bekommst das Ergebnis mit Zeitstempel in UTC, aber keine amtliche Konsultationsnummer; die vergibt VIES nur, wenn die eigene USt-IdNr. mitgeschickt wird. Und nicht jeder Mitgliedstaat gibt Name und Anschrift heraus: Deutschland bestätigt nur gültig oder ungültig, dann bleiben beide Felder leer.
Das Feld gueltig kennt drei Zustände: true, false und null. null heißt „kein Ergebnis“ — VIES war nicht erreichbar oder der zuständige Mitgliedstaat hat nicht geantwortet; ob überhaupt eine Antwort ankam, steht in viesErreichbar. Nach 15 Sekunden ohne Antwort bricht die Abfrage ab. Behandle null in deinem Code nie wie ein Nein.
Eine syntaktisch korrekte USt-ID kann trotzdem ungültig oder erloschen sein. Für den Steuernachweis zählt die Bestätigung aus dem EU-System VIES — genau die holt diese API ein und liefert sie mit Zeitstempel als Nachweis.
Bei einer Betriebsprüfung musst du belegen, dass die USt-ID deines Kunden zum Zeitpunkt der Lieferung gültig war. Die API-Antwort mit Prüfzeitpunkt ist genau dieser Beleg — speichere sie einfach zur Rechnung.
Die Syntaxprüfung funktioniert immer sofort. Ist das EU-System kurzzeitig down (das kommt vor), sagt dir die Antwort das ehrlich, statt ein falsches Ergebnis zu liefern — du kannst die Prüfung dann erneut anstoßen.
Ja, im Stapel — praktisch für die Bereinigung des Kundenbestands. Beachte, dass das EU-System VIES bei sehr großen Mengen drosselt; die API verteilt Stapel deshalb zeitlich.
Nein — geprüft werden Umsatzsteuer-Identifikationsnummern aller EU-Länder (DE, AT, FR …). Die deutsche Steuernummer ist ein anderes Format und hat keine öffentliche Prüfschnittstelle.
Aktuell ist alles in der Beta komplett kostenlos — keine Kreditkarte, keine Laufzeit. Nach dem Verkaufsstart beginnen die Tarife bei 4,50 € pro Monat (1.000 Aufrufe) — bewusst rund die Hälfte des üblichen Marktpreises. Wer in der Beta dabei ist, wird vor jeder Umstellung informiert.
E-Mail-Adresse in das Formular auf dieser Seite eintragen — der API-Schlüssel erscheint sofort, ohne Bestätigungs-Wartezeit. Damit hast du 1.000 Aufrufe pro Monat frei. Der Schlüssel wird als Hash gespeichert und nur einmal angezeigt, also direkt sicher ablegen.
E-Mail eintragen, Schlüssel erscheint sofort auf der Seite. Kein Konto, keine Kreditkarte, keine Freischaltung durch uns.
Ein einziger HTTP-Aufruf mit deinem Schlüssel im Kopf — aus jeder Programmiersprache, jedem Framework, jedem Automatisierungswerkzeug.
Du bekommst sauberes JSON oder die fertige Datei zurück. Fehler kommen als klare deutsche Meldung, nicht als Rätsel.
GET /v1/ustid?id=DE123456789
Wir legen die Preise jetzt schon offen, damit du planen kannst. Beta-Nutzer werden rechtzeitig informiert, bevor sich etwas ändert — niemand wird automatisch in einen bezahlten Tarif überführt.
Alle Preise zuzüglich Umsatzsteuer. Monatlich kündbar, keine Mindestlaufzeit, keine Einrichtungsgebühr.
Verwandt: IBAN-Prüfung · E-Mail-Validierung