USt-IdNr. validieren
Validiert die für die Organisation gespeicherte Umsatzsteuer-Identifikationsnummer gegen das EU-Register VIES und speichert das Ergebnis. Nur eine gültige USt-IdNr. aus einem anderen EU-Mitgliedsstaat qualifiziert die Organisation für die Reverse-Charge-Abrechnung nach AGB § 10.2.
POST /api/organizations/:organizationPublicId/vat-id/validate
Beispiel (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"
ORG_ID="<organization-public-id>"
curl -X POST "$BASE_URL/api/organizations/$ORG_ID/vat-id/validate" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Hinweise:
- Dieser Endpoint erwartet keinen Request Body. Er validiert genau das, was aktuell als
vatIdundcountryCodean der Organisation gespeichert ist — setze beides vorher mit Organisation aktualisieren, falls nötig. - Die Validierung ist eine bewusste, eigenständige Aktion und kein Nebeneffekt beim Speichern der Organisation. Der EU-Dienst VIES ist langsam und pro Mitgliedsstaat gelegentlich nicht erreichbar — ein
PATCHauf die Organisation darf daran nicht scheitern oder hängen bleiben. Das Speichern einer neuenvatIdoder eines neuencountryCodesetztvatIdStatusaufunverifiedzurück; erst dieser Endpoint macht daraus wieder ein Ergebnis. - Reverse Charge nach AGB § 10.2 greift nur, wenn das Land der Organisation ein EU-Mitgliedsstaat außer Deutschland ist, eine USt-IdNr. gespeichert ist und
vatIdStatusexaktvalidlautet. Jede andere Kombination wird zum Standard-Steuersatz abgerechnet. - Erfordert Schreibzugriff auf die Organisation (Org-Admin oder Global-Admin) aus einer uneingeschränkten Session oder einem uneingeschränkten Token — dieselbe Berechtigung wie bei Organisation aktualisieren. Ein kundengescoptes API-Token kann diesen Endpoint nicht aufrufen, selbst mit Admin-Rolle.
Antwort (Response)
{
"vatIdStatus": "valid",
"vatIdValidatedAt": "2026-07-30T09:15:00.000Z",
"vatIdValidationNote": null,
"taxTreatment": "reverse_charge"
}vatIdStatus ist einer von:
| Wert | Bedeutung |
|---|---|
unverified | Noch nicht validiert, oder die gespeicherte vatId/countryCode hat sich seit der letzten Validierung geändert (siehe oben). Dieser Endpoint liefert diesen Wert nie zurück — er ist der Default vor jeder Validierung. |
valid | VIES hat die USt-IdNr. bestätigt. Nur dieser Status gewährt Reverse Charge. |
invalid | VIES hat die USt-IdNr. abgelehnt, ihr Länderpräfix gehört keinem EU-Umsatzsteuerland an, oder er stimmt nicht mit dem gespeicherten countryCode der Organisation überein. |
unavailable | VIES konnte kein Ergebnis liefern — Timeout, HTTP-Fehler, oder ein Mitgliedsstaat, dessen Register sich selbst als nicht erreichbar meldet (MS_UNAVAILABLE). Bewusst getrennt von invalid: Ein Ausfall darf niemals als „die USt-IdNr. ist falsch“ gelesen werden, da das einem berechtigten Kunden zu Unrecht den Reverse Charge entziehen würde. Später erneut versuchen. |
taxTreatment gibt die daraus resultierende Abrechnungsart an und ist entweder standard oder reverse_charge.
vatIdValidationNote ist eine kurze, lesbare Begründung (z. B. warum eine Prüfung invalid oder unavailable ergeben hat); bei einem valid-Ergebnis null.
Häufige Fehler
401 Unauthorized(data.code: unauthorized) wenn du nicht angemeldet bist400 Invalid Organization identifierwenn:organizationPublicIdweder eine Legacy-Integer-ID noch eine gültige UUID-Public-ID ist403 Forbidden(data.code: forbidden) wenn du keinen Schreibzugriff auf die Organisation hast403 Forbidden(data.code: customerScopedTokenForbidden) wenn mit einem kundengescopten API-Token aufgerufen wird; dies ist eine organisationsweite Aktion und erfordert ein organisationsgescoptes Token oder eine Session404 Organization not found(keindata.code) wenn:organizationPublicIdzu keiner bestehenden Organisation aufgelöst werden kann404 Organization not found(data.code: organizationNotFound) wenn die Organisation in dem kurzen Zeitfenster zwischen der Auflösung von:organizationPublicIdund der eigenen Prüfung des Endpoints gelöscht wird — ein Sonderfall, nicht die übliche Not-Found-Antwort422 No VAT ID stored for this organization(data.code: vatIdMissing) wenn für die Organisation keinevatIdgespeichert ist — speichere zuerst eine mit Organisation aktualisieren409 The VAT ID or country changed while validation was in flight(data.code: vatIdChangedDuringValidation) wennvatIdodercountryCodewährend der laufenden VIES-Abfrage gleichzeitig geändert wurde — das noch laufende Ergebnis wird verworfen, statt auf veraltete Daten geschrieben zu werden. Gefahrlos wiederholbar.
Siehe Fehlerliste für die vollständige Übersicht.
Paket-Konfiguration erstellen/aktualisieren
Erstellt eine neue Paket-Konfiguration (über :packageType) oder aktualisiert eine bestehende. packageType ist ein frei wählbarer Bezeichner der Organisation. Customer-Endpoints können später genau diesen Key verwenden.
Bericht erstellen
Erstellt eine organisationsweite Berichtskonfiguration. Erfordert einen Tarif mit Organisationsberichten und freies Berichtskontingent.