Finekot API
EN 16931 · XRechnung 3.0 · ZUGFeRD / Factur-X

Factur-X-Validator

€0,02 pro Prüfung · Kein Abo, kein Vertrag.

Factur-X-PDF hier ablegen oder an die API senden. Das CII-XML im PDF wird gegen die Regeln der EN 16931 geprüft; jeder Verstoß kommt mit Regel-ID und XPath.

Anfrage
curl -H "Authorization: Bearer $FINEKOT_KEY" -F file=@invoice.pdf https://api.finekot.com/v1/e-invoice
Antwort (gekürzt)
{
  "valid": true,
  "verdict": "technically_valid",
  "container": "pdf",
  "attachment": "factur-x.xml",
  "profile": {"name": "Factur-X / ZUGFeRD EN 16931 (COMFORT)"},
  "errors": 0, "warnings": 0,
  "issues": [],
  "cost": 0.02, "balance": 0.98
}
Preis pro Aufruf€0,02pro Prüfung

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

Ein mit der Python-Bibliothek factur-x erzeugtes PDF prüfen

Die Bibliothek factur-x bettet das XML ein und prüft es gegen die XSD. Die Geschäftsregeln der EN 16931 sind ein eigener Schritt: dieser Aufruf.

Python · factur-x
import os, requests
from facturx import generate_from_file

# invoice.pdf: your rendered invoice; xml: CII EN 16931 bytes from your generator
generate_from_file("invoice.pdf", xml, output_pdf_file="invoice-facturx.pdf")
# factur-x checks the XML against the Factur-X XSD; business rules are not checked

with open("invoice-facturx.pdf", "rb") as f:
    r = requests.post("https://api.finekot.com/v1/e-invoice",
                      headers={"Authorization": f"Bearer {os.environ['FINEKOT_KEY']}"},
                      files={"file": f}, timeout=60)
rep = r.json()
print(rep["attachment"], rep["profile"]["name"], rep["verdict"], rep["errors"])

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.

Ergebnis

Hier erscheinen Ergebnis, Profil, Summen und jeder Regelverstoß.

Factur-X und die Regeln der EN 16931

Factur-X 1.0 (Frankreich) und ZUGFeRD 2.x (Deutschland) sind dasselbe Format: ein PDF/A-3 mit CII-XML-Anhang. Die Profile MINIMUM und BASIC WL enthalten zu wenig Daten für eine EN-16931-Rechnung; BASIC, EN 16931 und EXTENDED werden nach den Regeln geprüft.

In Frankreich wird der Empfang von E-Rechnungen ab 1. September 2026 für alle Unternehmen Pflicht; Factur-X ist dort eines der Basisformate. Der Validator deckt den Kern der EN 16931 ab, nicht die Regeln der französischen Plattformen.

Die PDF/A-3-Konformität des Containers wird nicht geprüft.

Preis in einfachen Zahlen

Vorausbezahltes Guthaben, kein Abo. Berechnet wird nur eine erfolgreiche Antwort; Fehler sind kostenlos.

Eine Prüfungpro Dokument€0,02
Eine E-Rechnung aus JSONXML oder Factur-X-PDF€0,04
PDF-Rechnung → XRechnung / ZUGFeRDlesen €0,06 + erzeugen €0,04€0,10

Ein neuer Schlüssel enthält €1 Startguthaben: 50 Prüfungen.

Paket€5 250 Prüfungen oder 50 PDF-Umwandlungen
Paket€20 1 000 Prüfungen oder 200 PDF-Umwandlungen

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.

Ihr Schlüssel und Guthaben—

In diesem Browser ist noch kein Schlüssel.

Für Entwickler

Dieselben Prüfungen per REST und MCP. Ein Header, JSON zurück.

validate
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.02
create
curl 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.04
MCP
claude mcp add --transport http finekot https://api.finekot.com/mcp --header "Authorization: Bearer fk_live_…"

API-Anleitungen