ZUGFeRD-API für erzeugte Rechnungen
Generatoren prüfen die XSD. Die Geschäftsregeln der EN 16931 — Summen, USt-Aufschlüsselung, Pflichtfelder — brauchen Schematron. Diese API führt sie in einem Aufruf aus.
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
drafthorse-Ausgabe prüfen, bevor sie Ihr System verlässt
drafthorse prüft in serialize() die XSD; eine Datei kann das bestehen und trotzdem gegen BR-CO-14 oder BR-S-08 verstoßen. Die API liefert diese Verstöße mit XPath.
import os, requests
from drafthorse.models.document import Document
doc = Document()
# … fill doc.context, doc.header and doc.trade as in the drafthorse README
xml = doc.serialize(schema="FACTUR-X_EN16931") # drafthorse checks the XSD here
r = requests.post("https://api.finekot.com/v1/e-invoice",
headers={"Authorization": f"Bearer {os.environ['FINEKOT_KEY']}"},
files={"file": ("factur-x.xml", xml, "application/xml")},
timeout=60)
rep = r.json()
if not rep["valid"]: # business rules BR-*, BR-CO-*, BR-S-*: not covered by the XSD
raise SystemExit([(i["rule"], i["message"]) for i in rep["issues"]
if i["severity"] == "error"])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ß.
XSD genügt nicht
Die Factur-X-XSD prüft die Struktur: Elementnamen, Reihenfolge, Datentypen. Die EN 16931 ergänzt rund 200 Geschäftsregeln: Summen müssen aufgehen (BR-CO-10 bis BR-CO-17), jede USt-Kategorie braucht ihre Aufschlüsselung (BR-S-*, BR-AE-*), Pflichtfelder müssen gefüllt sein.
Die API liest das Profil aus der Guideline-ID und wendet EN 16931 1.3.17 an, beim Profil XRECHNUNG zusätzlich die KoSIT-Regeln. MINIMUM und BASIC WL werden als keine EN-16931-Rechnungen gemeldet.
Um das PDF zu erzeugen statt nur zu prüfen, Rechnungs-JSON mit op=create und output=pdf senden: €0,04 pro Dokument.
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