XRechnung-Validator-API
Die offiziellen Regeln von KoSIT und EN 16931 hinter einem HTTP-Aufruf. Kein Java, kein Validator-JAR, keine Prüfszenarien zu pflegen.
curl -H "Authorization: Bearer $FINEKOT_KEY" -F file=@invoice.xml https://api.finekot.com/v1/e-invoice
{
"valid": false,
"verdict": "technically_invalid",
"profile": {"name": "XRechnung 3.0"},
"errors": 3, "warnings": 1,
"issues": [
{"rule": "BR-DE-15", "severity": "error",
"message": "Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
"location": "/ubl:Invoice[1]"},
…
],
"cost": 0.02, "balance": 0.98
}Kein Abo, kein Vertrag.
Erstellung aus JSON €0,04 · PDF → XRechnung €0,10
Ein Abo berechnet denselben Monatstarif für 10 oder 1.000 Rechnungen. Hier laden Sie einen beliebigen Betrag auf und zahlen pro Aufruf; Restguthaben bleibt.
10 kostenlose Prüfungen am Tag · €1 gratis mit Schlüssel · danach €0,02 pro Prüfung
Einen Ordner erzeugter XRechnungen prüfen
rules=xrechnung erzwingt das KoSIT-Regelwerk auch bei falscher Spezifikationskennung: BR-DE-21 wird gemeldet statt still nur EN 16931 zu prüfen.
import os, pathlib, requests
API = "https://api.finekot.com/v1/e-invoice"
KEY = os.environ["FINEKOT_KEY"]
for path in sorted(pathlib.Path("out").glob("*.xml")):
r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"},
files={"file": path.open("rb")},
data={"rules": "xrechnung"}, # force KoSIT rules
timeout=60)
r.raise_for_status()
rep = r.json()
print(path.name, rep["verdict"], rep["errors"], "errors")
for i in rep["issues"]:
if i["severity"] == "error":
print(" ", i["rule"], i["location"])E-Rechnung prüfen
Offizielle Regeln EN 16931 und XRechnung. Fehler mit Regel-ID, Meldung und Fundstelle.
10 kostenlose Prüfungen am Tag · €1 gratis mit Schlüssel · danach €0,02 pro Prüfung
Verarbeitung auf Servern in Deutschland (Hetzner, Falkenstein). Die hochgeladene Datei wird im Arbeitsspeicher geprüft und nicht gespeichert.
Hier erscheinen Ergebnis, Profil, Summen und jeder Regelverstoß.
Was geprüft wird
Jede Datei wird als UBL 2.1 oder UN/CEFACT CII gelesen. Mit rules=auto kommt das Profil aus BT-24; XRechnung-Profile werden mit EN 16931 1.3.17 und KoSIT-XRechnung-Schematron 2.6.0 geprüft.
Jeder Verstoß kommt mit Regel-ID (BR-DE-15, BR-CO-16 …), Schweregrad (error, warning, info), der Originalmeldung der Regel und dem XPath des Elements. errors = 0 bedeutet: Ein Empfänger mit denselben KoSIT-Regeln würde die Datei annehmen.
XSD, PDF/A-3 und Peppol-BIS-Sonderregeln werden nicht geprüft. Die hochgeladene Datei wird auf Servern in Deutschland im Arbeitsspeicher verarbeitet und nicht gespeichert.
Preis in einfachen Zahlen
Vorausbezahltes Guthaben, kein Abo. Berechnet wird nur eine erfolgreiche Antwort; Fehler sind kostenlos.
Ein neuer Schlüssel enthält €1 Startguthaben: 50 Prüfungen.
Guthaben verfällt nicht. Kein Abo.
Apple Pay, Google Pay oder Karte auf der Zahlungsseite der monobank. Ohne Schlüssel wird einer für Sie erstellt.
In diesem Browser ist noch kein Schlüssel.
Für Entwickler
Dieselben Prüfungen per REST und MCP. Ein Header, JSON zurück.
curl https://api.finekot.com/v1/e-invoice \
-H "Authorization: Bearer fk_live_…" \
-F file=@invoice.xml
# → {"valid":false,"errors":2,"issues":[{"rule":"BR-DE-15",…}]}
# X-Cost: 0.02curl https://api.finekot.com/v1/e-invoice \
-H "Authorization: Bearer fk_live_…" \
-H "Content-Type: application/json" \
-d '{"op":"create","output":"pdf","invoice":{…}}'
# → Factur-X PDF url + validation report · X-Cost: 0.04claude mcp add --transport http finekot https://api.finekot.com/mcp --header "Authorization: Bearer fk_live_…"
Vollständige Referenz: /llms.txt · /openapi.json · /.well-known/mcp.json