Skip to main content
Glama
pexon-consulting

erechnung-mcp

E-Rechnung prüfen, erstellen und lesen: XRechnung und ZUGFeRD kostenlos, lokal und ohne Java

Kostenlos E-Rechnungen prüfen, erstellen und lesen: e-rechnung wendet die offiziellen KoSIT-Regeln für XRechnung und ZUGFeRD lokal an, ohne Java und ohne Upload. Das Open-Source-Werkzeug liest XRechnung (UBL und CII) und ZUGFeRD-PDFs, erstellt gültige E-Rechnungen aus einer JSON-Datei, zeigt sie als lesbare HTML-Ansicht an und exportiert Eingangsrechnungen als DATEV-Buchungsstapel. Es läuft als Kommandozeile erechnung, als Python-Bibliothek und als MCP-Server für KI-Assistenten. Die Bibliothek und die Kommandozeile arbeiten vollständig lokal; nur wenn Sie den MCP-Server mit einem Cloud-Sprachmodell verbinden, gehen Rechnungsinhalte an dessen Anbieter (siehe E-Rechnung mit KI). Dazu kommen 21 Anleitungen auf Deutsch, von der E-Rechnungspflicht bis zu den Fehlermeldungen der Validierung.

Stand: 15.10.2026. XRechnung 3.0.2 (KoSIT-Konfiguration 2026-08-31), EN 16931, ZUGFeRD 2.5.2 / Factur-X 1.09.2, BMF-Schreiben vom 15.10.2025. MIT-Lizenz. Keine Steuerberatung. English summary below.

pipx install "e-rechnung[offiziell] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0"
erechnung validieren rechnung.xml

Inhalt

Related MCP server: Scribo MCP Server

Was ist eine E-Rechnung?

Eine E-Rechnung ist eine Rechnung als strukturierter Datensatz, den ein Programm ohne Abtippen lesen kann (§ 14 Abs. 1 UStG). In Deutschland ist das eine XRechnung oder eine ZUGFeRD-Rechnung ab Version 2.0.1 im Profil BASIC oder höher.

Ein PDF, das per Mail kommt, ist keine E-Rechnung, sondern eine "sonstige Rechnung". Das gilt auch für ZUGFeRD-PDFs mit den Profilen MINIMUM und BASIC WL (UStAE 14.1 Abs. 14). Bei einer Hybridrechnung (PDF mit eingebettetem XML) gilt der strukturierte Teil: Weichen PDF und XML voneinander ab, ist das XML maßgeblich.

Mehr dazu: Was ist eine E-Rechnung?

E-Rechnung Pflicht: die Fristen auf einen Blick

Seit dem 01.01.2025 müssen alle inländischen Unternehmen E-Rechnungen empfangen können, ohne Ausnahme, also auch Kleinunternehmer und Vermieter. Ein normales E-Mail-Postfach reicht dafür. Für das Ausstellen gelten Übergangsfristen nach § 27 Abs. 38 UStG:

Umsatz ausgeführt / Rechnung übermittelt bis

Was statt einer E-Rechnung noch zulässig ist

01.01.2025 - 31.12.2026 / Rechnung bis 31.12.2026 übermittelt

Papierrechnung immer, PDF und andere elektronische Formate mit Zustimmung des Empfängers

01.01.2027 - 31.12.2027 / Rechnung bis 31.12.2027 übermittelt

Papier oder (mit Zustimmung) PDF nur, wenn der Gesamtumsatz des Ausstellers im Vorjahr höchstens 800.000 EUR betrug; EDI-Verfahren mit Zustimmung unabhängig vom Umsatz

ab 01.01.2028

E-Rechnung für alle inländischen B2B-Umsätze

Ausgenommen bleiben Kleinbetragsrechnungen bis 250 EUR brutto, Fahrausweise und Rechnungen von Kleinunternehmern. Rechnungen an Privatpersonen (B2C) sind nicht betroffen. Für Rechnungen an Bundesbehörden gilt schon seit dem 27.11.2020 die E-Rechnungsverordnung (grundsätzlich XRechnung mit Leitweg-ID, Direktaufträge bis 1.000 EUR ausgenommen). Ob diese Regel für Ihr Unternehmen gilt, klärt Ihre Steuerberatung.

Mehr dazu: E-Rechnung Pflicht, Kleinunternehmer, BMF-Schreiben erklärt

XRechnung oder ZUGFeRD?

XRechnung

ZUGFeRD / Factur-X

Was es ist

reines XML, deutscher Standard (CIUS der EN 16931) der KoSIT

PDF/A-3 mit eingebettetem XML (CII), deutsch-französischer Standard

Syntax

UBL 2.1 oder UN/CEFACT CII D16B

CII

Für Menschen lesbar

nur mit Viewer

ja, das PDF

E-Rechnung nach UStG

ja

ab 2.0.1 mit BASIC, EN 16931, EXTENDED, XRECHNUNG

An Behörden

Standard (mit Leitweg-ID in BT-10)

beim Bund nur das XML im Profil XRECHNUNG, nicht das PDF; Länder und Kommunen vorher fragen

Mit diesem Werkzeug

erechnung erstellen --format xrechnung-ubl

erechnung erstellen --format zugferd

Mehr dazu: XRechnung oder ZUGFeRD, XRechnung erklärt, ZUGFeRD erklärt

Installation

Python 3.10 oder neuer, kein Java. Das Paket liegt auf GitHub:

# als eigenständiges Programm
pipx install "e-rechnung[offiziell] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0"

# ohne Installation, einmalig
uvx --from "e-rechnung[offiziell] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0" erechnung validieren rechnung.xml

# in einem Python-Projekt
pip install "e-rechnung[offiziell] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0"

Extra

Was es dazu bringt

offiziell

saxonche (MPL-2.0) für die offiziellen KoSIT-Regeln und die KoSIT-Ansicht. Ohne läuft nur die Vorprüfung.

mcp

den MCP-Server erechnung-mcp (enthält offiziell)

toml

TOML-Eingabe unter Python 3.10

Für ZUGFeRD-PDFs ohne eigene Vorlage braucht erechnung erstellen zusätzlich Ghostscript (brew install ghostscript, apt install ghostscript). Wer ein eigenes Rechnungs-PDF hat, braucht Ghostscript nur für --pdfa. Das sollte gesetzt sein, wenn die Vorlage nicht schon PDF/A-3 ist, sonst lehnen strenge Prüfer wie Mustang die Datei ab. Ghostscript steht unter AGPL-3.0 und wird nur als externes Programm aufgerufen; für den Weitervertrieb von Ghostscript selbst gelten dessen Lizenzbedingungen.

Schnellstart in sechs Befehlen

erechnung beispiele bsp                                   # 9 Beispielrechnungen als JSON, UBL und CII
erechnung lesen bsp/02_gemischte_steuersaetze_xrechnung_cii.xml
erechnung validieren bsp/08_b2g_leitweg_id_xrechnung_ubl.xml
erechnung erstellen bsp/01_standard.json --format zugferd -o rechnung.pdf
erechnung anzeigen rechnung.pdf -o rechnung.html
erechnung datev bsp/*_ubl.xml --skr 04 -o EXTF_Buchungsstapel.csv

So sieht erechnung lesen aus:

Datei:        bsp/02_gemischte_steuersaetze_xrechnung_cii.xml
Format:       XRechnung 3.0 (CII)
E-Rechnung:   ja, strukturiert nach EN 16931
Art:          380 (Rechnung)
Nummer:       RE-2026-0002 vom 15.10.2026
Verkäufer:    Muster Buchhandlung GmbH, 20095 Hamburg, USt-IdNr. DE123456789
Käufer:       Beispiel Handel AG, 80331 München
Käuferref.:   BH-2026-0815
Positionen:   3
     1         3 C62  Fachbuch Umsatzsteuer 2026                           149,70 EUR
     2         2 C62  E-Book Reader Hülle                                   39,98 EUR
     3         1 LS   Versandkostenpauschale                                 4,90 EUR
USt:          S (Regelsteuersatz oder ermäßigter Satz) 7 %: 10,48 EUR auf 149,70 EUR
USt:          S (Regelsteuersatz oder ermäßigter Satz) 19 %: 7,58 EUR auf 39,88 EUR
Netto:        189,58 EUR
Brutto:       207,64 EUR
Zahlbetrag:   207,64 EUR, fällig 14.11.2026
Zahlung:      58 (SEPA-Überweisung) DE79000000001234567890

E-Rechnung prüfen: offizielle KoSIT-Regeln ohne Java

erechnung validieren prüft eine XRechnung oder ZUGFeRD-Rechnung mit denselben Regeln wie der offizielle KoSIT-Validator: erst gegen das XML-Schema (UBL 2.1 oder CII D16B), dann gegen die Schematron-Regeln der EN 16931 und der XRechnung (BR-DE). Szenario-Auswahl und Umstufungen von Fehlern zu Warnungen übernimmt es aus der KoSIT-Konfiguration. Verglichen wurde an 222 Dateien: alle 86 der KoSIT-Testsuite 3.0.2, alle 18 Beispieldateien (neun Fälle, je als UBL und CII) und 118 absichtlich kaputte Varianten, von denen KoSIT 100 ablehnt. Bei allen kommt das Werkzeug zum selben Ergebnis wie der KoSIT-Validator 1.6.3: gleiche Annahme oder Ablehnung und dieselben verletzten Regeln. Anzahl und Fundstelle der einzelnen Meldungen vergleicht der Abgleich nicht. Er läuft in der CI mit (scripts/abgleich_kosit.py).

$ erechnung validieren rechnung.xml
rechnung.xml: XRechnung 3.0 (UBL)
  KoSIT-Regeln (xrechnung-3.0.2-validator-configuration-2026-08-31): UNGÜLTIG, Szenario EN16931 XRechnung (UBL Invoice), 1 Fehler, 0 Warnungen
  FEHLER  BR-DE-15: [BR-DE-15] Das Element "Buyer reference" (BT-10) muss übermittelt werden.
  Vorprüfung (Erklärungen, nicht maßgeblich):
  FEHLER  VP-BR-DE-15: Käuferreferenz (BT-10) fehlt. In XRechnung Pflicht, bei Behörden die Leitweg-ID.

Die Zeilen unter "Vorprüfung" stammen aus einer zusätzlichen Prüfung dieses Werkzeugs und erklären den Fehler in einfachem Deutsch (Codes mit VP-). Maßgeblich ist allein das Ergebnis der KoSIT-Regeln darüber.

Option

Wirkung

--json

Ergebnis als JSON, für Skripte und CI (eine Datei: ein Objekt, mehrere: eine Liste)

--bericht ORDNER

Prüfbericht je Datei als JSON mit Zeitpunkt, Regelversion und SHA-256 der Datei ablegen

--streng

Warnungen zählen als Fehler

--offline

nur den lokalen Cache der Prüfregeln nutzen

--ohne-offiziell

nur die Vorprüfung, ohne KoSIT-Regeln

--alle

auch Informationen ausgeben

Exit-Code 0 heißt gültig, 1 ungültig, 2 Prüfung nicht möglich. Die Prüfregeln (Apache-2.0) lädt das Werkzeug beim ersten Aufruf von GitHub, prüft die SHA-256-Summe und speichert sie in ~/.cache/erechnung. Danach läuft alles offline. Rechner ohne Internet bekommen die Datei über ERECHNUNG_KOSIT_KONFIG=/pfad/xrechnung-3.0.2-validator-configuration-2026-08-31.zip; auch diese lokale ZIP prüft das Werkzeug gegen die SHA-256-Summe.

Wozu der Prüfbericht dient: Laut BMF-Schreiben vom 15.10.2025 (Rn. 35a) darf sich ein Unternehmen bei Beachtung der Sorgfalt eines ordentlichen Kaufmanns auf das technische Ergebnis einer Validierung hinsichtlich Format und Geschäftsregeln verlassen. Inhaltliche Fehler wie ein falscher Steuersatz erkennt eine Validierung nicht immer; die eigene Prüfpflicht bleibt. Zum Nachweis bietet es sich laut BMF an, den Validierungsbericht aufzubewahren. Ob e-rechnung in Ihrem Fall als geeignete Validierungsanwendung gilt, entscheidet nicht das Werkzeug, sondern Sie mit Ihrer Steuerberatung.

Mehr dazu: E-Rechnung prüfen, Fehlermeldungen beheben

E-Rechnung erstellen: XRechnung und ZUGFeRD aus JSON

Die Eingabe ist eine JSON- oder TOML-Datei mit den Rechnungsdaten. Summen, Steuern je Steuersatz und Zahlbetrag rechnet das Werkzeug selbst (kaufmännisch gerundet je Steuergruppe).

{
  "nummer": "RE-2026-0100",
  "datum": "2026-10-15",
  "leitweg_id": "BH-2026-0815",
  "verkaeufer": {
    "name": "Nordlicht Beispiel GmbH",
    "adresse": {"strasse": "Musterstraße 1", "plz": "20095", "ort": "Hamburg", "land": "DE"},
    "ust_id": "DE123456789",
    "elektronische_adresse": "rechnung@nordlicht.example",
    "kontakt": {"name": "Erika Mustermann", "telefon": "+49 40 66969123", "email": "buchhaltung@nordlicht.example"}
  },
  "kaeufer": {
    "name": "Beispiel Handel AG",
    "adresse": {"strasse": "Hauptstraße 5", "plz": "80331", "ort": "München", "land": "DE"},
    "elektronische_adresse": "eingangsrechnung@beispiel-handel.example"
  },
  "lieferung": {"datum": "2026-10-10"},
  "zahlung": {"art": "58", "iban": "DE79000000001234567890"},
  "positionen": [
    {"id": "1", "name": "Beratung", "menge": "8", "einheit": "HUR", "preis": "120.00"}
  ]
}

Das Feld leitweg_id füllt die Käuferreferenz BT-10: bei Behörden die Leitweg-ID, im B2B die Bestellnummer oder Referenz Ihres Kunden, ersatzweise "-".

erechnung erstellen rechnung.json --validieren                         # XRechnung UBL
erechnung erstellen rechnung.json --format xrechnung-cii -o rechnung.xml
erechnung erstellen rechnung.json --format zugferd -o rechnung.pdf     # PDF/A-3 mit factur-x.xml
erechnung erstellen rechnung.json --format zugferd --pdf mein_layout.pdf --pdfa -o rechnung.pdf
erechnung zugferd rechnung_cii.xml --pdf vorhandene_rechnung.pdf       # PDF zu ZUGFeRD

Formate: xrechnung-ubl, xrechnung-cii, en16931-ubl, en16931-cii, zugferd (Profil EN 16931) und zugferd-xrechnung (Profil XRECHNUNG, eingebettet als xrechnung.xml). Die erzeugten ZUGFeRD-PDFs bestehen die Prüfung mit Mustang (PDF/A-3b und XML), auch das läuft in der CI. Mit eigener Vorlage gilt das nur zusammen mit --pdfa oder einer Vorlage, die schon PDF/A-3 ist; --validieren prüft nur das XML.

Mehr dazu: E-Rechnung erstellen, PDF in ZUGFeRD umwandeln, Gutschrift, Korrektur und Reverse Charge

E-Rechnung lesen und anzeigen (Viewer)

Eine XRechnung ist reines XML. Mit einem Doppelklick sieht man nur Code. erechnung anzeigen macht daraus eine HTML-Seite mit Parteien, Positionen, Steuern und Zahlungsdaten, --offiziell nutzt stattdessen die offizielle KoSIT-Visualisierung (Version 2026-10-13). Bei ZUGFeRD-PDFs liest das Werkzeug das eingebettete XML, denn das ist der maßgebliche Teil.

erechnung anzeigen eingang.xml                    # schreibt eingang.html
erechnung anzeigen eingang.xml --offiziell -o kosit.html
erechnung lesen eingang.pdf --json                # alle Felder als JSON
erechnung extrahieren eingang.pdf -o eingang.xml  # XML aus dem ZUGFeRD-PDF holen

Mehr dazu: E-Rechnung empfangen und lesen, E-Rechnung archivieren

DATEV: Eingangsrechnungen als Buchungsstapel

erechnung datev schreibt aus beliebig vielen E-Rechnungen einen DATEV-Buchungsstapel im Format EXTF (Version 700, Kategorie 21, Formatversion 13, Windows-1252, 125 Spalten). Je Rechnung und Steuersatz entsteht eine Zeile mit Bruttobetrag, Kreditor, Aufwandskonto, BU-Schlüssel, Belegdatum, Rechnungsnummer und Leistungsdatum.

$ erechnung datev eingang/*.xml --skr 04 --kreditoren kreditoren.json -o EXTF_Buchungsstapel.csv
EXTF_Buchungsstapel.csv: 2 Rechnungen, 3 Buchungszeilen (EXTF 700, SKR 04)

Standard: Sammelkreditor 70000, Aufwandskonto 4980 (SKR03) bzw. 6850 (SKR04), BU-Schlüssel 9 für 19 % und 8 für 7 %. Kreditoren ordnet --kreditoren über USt-IdNr. oder Namen zu. Der Stapel ist ein Importvorschlag: Konten und Steuerschlüssel prüft die Buchhaltung, bei Reverse Charge und innergemeinschaftlichem Erwerb gibt das Werkzeug einen Hinweis aus.

Mehr dazu: DATEV und E-Rechnung

Leitweg-ID prüfen

Rechnungen an Behörden brauchen die Leitweg-ID des Auftraggebers in BT-10. Ihre letzten zwei Ziffern sind eine Prüfziffer nach ISO/IEC 7064 Mod 97-10 (Leitweg-ID-Formatspezifikation 2.0.2).

$ erechnung leitweg-id 04011000-1234512345-07 04011000-1234512345
04011000-1234512345-07: Prüfziffer falsch, richtig wäre 04011000-1234512345-06
04011000-1234512345: ohne Prüfziffer, vollständig: 04011000-1234512345-06

Mehr dazu: Leitweg-ID und E-Rechnung an Behörden

Python-API

from erechnung import laden, lesen, ubl, cii, validieren

rechnung = laden("rechnung.json")         # JSON oder TOML
xml = ubl(rechnung)                        # oder cii(rechnung)
ergebnis = validieren(xml)                 # Pfad, Datei oder Bytes
print(ergebnis.gueltig)                    # True
print([b.code for b in ergebnis.offiziell.fehler])

eingang = lesen("eingang.pdf")             # XRechnung oder ZUGFeRD-PDF
print(eingang.nummer, eingang.summen.zahlbetrag)

Weitere Module: erechnung.pdf (einbetten und auslesen), erechnung.datev (Buchungsstapel), erechnung.anzeigen (HTML), erechnung.offiziell (KoSIT-Regeln und KoSIT-Ansicht). Die Saxon-Aufrufe laufen auf einem eigenen Thread, damit ist die Bibliothek auch aus Web-Servern und Worker-Threads heraus nutzbar.

Mehr dazu: E-Rechnung mit Python

MCP-Server für Claude, Cursor und andere KI-Assistenten

erechnung-mcp stellt die Funktionen als MCP-Werkzeuge bereit: erechnung_lesen, erechnung_validieren, erechnung_anzeigen, erechnung_erstellen, erechnung_datev und erechnung_leitweg_id. Der Server läuft lokal und liest und schreibt nur im Ordner aus ERECHNUNG_MCP_ORDNER (Standard: das Startverzeichnis); vorhandene Dateien überschreibt er nicht. Was das Sprachmodell zu sehen bekommt, sind die Antworten der Werkzeuge, bei einem Cloud-Sprachmodell also auch Rechnungsinhalte. Rechnungen stammen von Dritten und können Anweisungen an das Modell enthalten; nehmen Sie die schreibenden Werkzeuge deshalb nicht in eine Allow-Liste auf.

{
  "mcpServers": {
    "e-rechnung": {
      "command": "uvx",
      "args": ["--from", "e-rechnung[mcp] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0", "erechnung-mcp"],
      "env": {"ERECHNUNG_MCP_ORDNER": "/Users/anna/Rechnungen"}
    }
  }
}

Mehr dazu: E-Rechnung mit KI prüfen

Skills für Claude Code und Codex

Im Ordner skills/ liegen drei Skills, die einem Coding-Agenten den Ablauf beibringen: E-Rechnung validieren, E-Rechnung erstellen und E-Rechnungen an DATEV übergeben. Für Claude Code kopieren Sie einen Ordner nach ~/.claude/skills/ oder .claude/skills/ im Projekt.

Beispieldateien

Im Ordner beispiele/ liegen neun Fälle, je als JSON-Eingabe, XRechnung UBL, XRechnung CII, HTML-Ansicht und mit dem Ergebnis der offiziellen Prüfung. Drei Fälle gibt es zusätzlich als ZUGFeRD-PDF, dazu einen DATEV-Buchungsstapel über alle Fälle. Alle sind gegen die KoSIT-Regeln geprüft, und die CI stellt sicher, dass sie zum Code passen.

Fall

Was er zeigt

01 Standardrechnung

Leistungszeitraum, 19 %, Skonto, SEPA-Überweisung

02 Gemischte Steuersätze

7 % und 19 % in einer Rechnung, Nachlass

03 Rechnungskorrektur mit Minderung

Rechnungsart 381 (Credit Note, kaufmännische Gutschrift), in UBL als CreditNote

04 Rechnungskorrektur

Rechnungsart 384 mit Bezug auf die Ursprungsrechnung

05 Reverse Charge

§ 13b UStG, Steuerkategorie AE

06 Innergemeinschaftliche Lieferung

Steuerkategorie K, Käufer in Österreich

07 Kleinunternehmer

§ 19 UStG, Steuerkategorie E

08 Rechnung an eine Behörde

Leitweg-ID in BT-10 und als elektronische Adresse

09 SEPA-Lastschrift

Zahlungsart 59 mit Mandat und Gläubiger-ID

Mehr dazu: E-Rechnung Beispiel

Alle Anleitungen

Vergleich mit anderen Werkzeugen

e-rechnung

KoSIT-Validator

Mustang

factur-x (Python)

drafthorse (Python)

XRechnung UBL erzeugen

ja

nein

ja (ubl, Umwandlung aus CII)

nur als EN 16931

nein

XRechnung CII erzeugen

ja

nein

ja

nur als EN 16931

CII/ZUGFeRD, XRechnung-Profil nicht ausgewiesen

ZUGFeRD-PDF erzeugen

ja

nein

ja

ja

ja

Offizielle XRechnung-Regeln (BR-DE)

ja, ohne Java

ja

ja

nein

nein

PDF/A-3 prüfen

nein

nein

ja

nein

nein

HTML-Ansicht

ja, auch KoSIT

Prüfbericht als HTML, keine Rechnungsansicht

ja

nein

nein

DATEV-Buchungsstapel

ja

nein

nein

nein

nein

MCP-Server

ja

nein

nein

nein

nein

Sprache

Python

Java

Java

Python

Python

Stand Oktober 2026, geprüft anhand der jeweiligen Dokumentation (Links in E-Rechnung Software kostenlos). Fehler bitte als Issue melden; wir korrigieren sie umgehend.

Was das Werkzeug nicht macht

  • Kein Versand. Kein Peppol-Zugangspunkt, kein Mailversand, keine Anbindung an OZG-RE.

  • Kein Archiv. Es legt Prüfberichte ab, ein revisionssicheres Archiv ersetzt es nicht.

  • Keine PDF/A-Prüfung. Ob ein fremdes PDF PDF/A-3 erfüllt, prüft Mustang oder veraPDF.

  • ZUGFeRD BASIC und EXTENDED prüft es gegen die EN-16931-Regeln (mit Hinweis), weil die KoSIT-Konfiguration dafür kein eigenes Szenario hat.

  • XRechnung 4.0 kommt laut KoSIT im Frühjahr 2027. Bis dahin gilt 3.0.2.

  • Keine Steuerberatung. Das Werkzeug prüft Format und Regeln, nicht, ob ein Vorgang steuerlich richtig behandelt ist.

Häufige Fragen zur E-Rechnung (FAQ)

Ist eine PDF-Rechnung eine E-Rechnung?

Nein. Ein PDF ohne eingebettete strukturierte Daten ist eine sonstige Rechnung (UStAE 14.1 Abs. 2). Bis Ende 2026 darf man sie mit Zustimmung des Empfängers weiter verschicken, 2027 nur noch bei höchstens 800.000 EUR Vorjahresumsatz, ab 2028 nicht mehr im inländischen B2B.

Ab wann muss ich E-Rechnungen empfangen können?

Seit dem 01.01.2025, und zwar jedes inländische Unternehmen, auch Kleinunternehmer. Eine E-Mail-Adresse reicht, um E-Rechnungen zu empfangen. Zum Lesen braucht man einen Viewer, etwa erechnung anzeigen.

Wie prüfe ich kostenlos, ob eine XRechnung gültig ist?

Mit erechnung validieren rechnung.xml. Das Werkzeug wendet die offiziellen KoSIT-Regeln lokal an, ohne die Rechnung hochzuladen. Die Ausgabe zeigt GÜLTIG oder UNGÜLTIG und nennt jeden Fehler mit Code und Erklärung.

Was bedeutet die Fehlermeldung BR-DE-15?

Die Käuferreferenz BT-10 fehlt. In einer XRechnung ist sie Pflicht, bei Behörden steht dort die Leitweg-ID, im B2B genügt laut BMF auch ein Platzhalter wie "-". Laut BMF-Schreiben vom 15.10.2025 (Rn. 35a) ist dieser Geschäftsregelfehler umsatzsteuerlich unbeachtlich, die Datei ist aber keine gültige XRechnung. Weitere Codes: Fehlermeldungen.

Brauche ich Java für die XRechnung-Validierung?

Nein. Die KoSIT-Regeln liegen als XSLT 2.0 vor, das Werkzeug führt sie mit saxonche direkt in Python aus und kommt dabei zu denselben Ergebnissen wie der Java-Validator.

Kann ich mit dem Werkzeug E-Rechnungen verschicken?

Nein, es erzeugt die Datei. Verschicken kann man sie per E-Mail, über ein Portal oder über Peppol. Die unmittelbare Bundesverwaltung nimmt sie ausschließlich über die OZG-RE an.

Wie lange muss ich E-Rechnungen aufbewahren?

Acht Jahre (§ 14b Abs. 1 UStG, BMF-Schreiben vom 15.10.2025, Rn. 60), mindestens den strukturierten Teil unverändert im empfangenen Format. Der Prüfbericht von --bericht gehört sinnvollerweise dazu.

Funktioniert der DATEV-Export mit DATEV Unternehmen online?

Der Buchungsstapel ist eine EXTF-Datei für den Import in DATEV Rechnungswesen. Belegbilder überträgt das Werkzeug nicht. Wer Belege in Unternehmen online hat, verknüpft sie dort. Siehe DATEV und E-Rechnung.

German e-invoicing in Python: XRechnung and ZUGFeRD validator (English)

e-rechnung is an open-source Python package and CLI for German e-invoicing. It reads XRechnung (UBL 2.1 and UN/CEFACT CII D16B) and ZUGFeRD/Factur-X PDFs, validates them against the official KoSIT rules without Java (on all 222 test files the same accept/reject result and the same set of violated rules as the KoSIT validator 1.6.3), generates valid XRechnung and ZUGFeRD invoices (PDF/A-3, checked with Mustang), renders them as HTML (own viewer or the official KoSIT visualization), exports incoming invoices as a DATEV booking batch (EXTF) and checks Leitweg-IDs. It ships an MCP server for AI assistants. The library and CLI run locally; after a one-time download of the KoSIT rule files (SHA-256 pinned) they work fully offline. If you connect the MCP server to a cloud LLM, invoice content is sent to that provider. Background: since 1 January 2025 every German business must be able to receive e-invoices; issuing them becomes mandatory for B2B in 2027 (prior-year turnover above EUR 800,000) and for everyone in 2028. The 21 guides in docs/anleitungen are in German.

pipx install "e-rechnung[offiziell] @ git+https://github.com/pexon-consulting/e-rechnung@v0.1.0"
erechnung validieren invoice.xml        # alias: erechnung check
erechnung erstellen invoice.json --format zugferd -o invoice.pdf

Commands are German: lesen (read), validieren (validate), anzeigen (view), erstellen (create), extrahieren (extract), datev, leitweg-id, beispiele (examples). The Python API: from erechnung import laden, lesen, ubl, cii, validieren. Covered standards: EN 16931, XRechnung 3.0.2 (UBL and CII), ZUGFeRD 2.x / Factur-X in CII D16B (profiles EN 16931 and XRECHNUNG for output, all profiles for reading).

Disclaimer: This project explains technology and the general legal situation. It is not tax or legal advice; the authors are neither tax advisors nor lawyers. Not affiliated with KoSIT, FeRD or DATEV. No warranty, see LICENSE.

Mitmachen, Lizenz und Quellen

Fehler in einer Anleitung, eine Rechnung, die anders geprüft wird als vom KoSIT-Validator, ein neuer Sonderfall: Issues und Pull Requests sind willkommen. Wie Tests und der Abgleich mit Java laufen, steht in CONTRIBUTING.md. Sicherheitslücken bitte wie in SECURITY.md beschrieben melden.

git clone https://github.com/pexon-consulting/e-rechnung
cd e-rechnung
python3 -m venv .venv && .venv/bin/pip install -e ".[dev,mcp]"
.venv/bin/pytest -q

Lizenz: MIT. Die KoSIT-Prüfregeln, die KoSIT-Visualisierung und die Testsuite stehen unter Apache-2.0, die enthaltenen CEN-Schematron-Regeln unter EUPL-1.2. Sie werden nicht mitgeliefert, sondern beim ersten Aufruf geladen, siehe NOTICE. Änderungen: CHANGELOG.md.

Primärquellen: § 14 UStG, § 27 UStG, BMF-FAQ zur E-Rechnung, XRechnung bei xeinkauf.de, KoSIT-Validator, ZUGFeRD bei FeRD.

Haftungsausschluss

  • Keine Steuer- oder Rechtsberatung. Die Anleitungen und das Werkzeug erklären Gesetz, BMF-Schreiben und technische Standards nach dem genannten Stand. Die Autoren sind keine Steuerberater und keine Rechtsanwälte. Ob ein Vorgang steuerlich richtig behandelt ist, klären Sie mit Ihrer Steuerberatung oder Ihrem Finanzamt.

  • Keine Gewähr. Die Software steht unter der MIT-Lizenz und wird ohne jede Gewährleistung bereitgestellt. Ein Ergebnis "gültig" bedeutet, dass die Datei die offiziellen Formatregeln erfüllt, nicht, dass die Rechnung inhaltlich oder steuerlich richtig ist.

  • Kein Ersatz für die Prüfung beim Empfänger. Rechnungsplattformen von Bund und Ländern und die Systeme Ihrer Kunden können zusätzliche Regeln anwenden.

  • DATEV-Buchungsvorschläge (Konten, BU-Schlüssel) sind Vorschläge und müssen vor dem Import von der Buchhaltung oder Steuerberatung freigegeben werden.

  • Rechtsstand und Versionen ändern sich. Prüfen Sie bei wichtigen Entscheidungen die verlinkten Primärquellen.

Dieses Projekt ist unabhängig und nicht mit der KoSIT, dem FeRD oder der DATEV eG verbunden. XRechnung, ZUGFeRD und DATEV sind Marken ihrer jeweiligen Inhaber.

Gepflegt von Pexon Consulting. Wer den Rechnungseingang von der E-Rechnung bis zur Buchung automatisieren will, findet bei uns Rechnungseingang automatisieren mit KI.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    InvoiceXML brings e-invoice compliance to your AI agent. Create, validate, convert, render, and extract structured invoices across UBL (Peppol BIS Billing 3.0, used worldwide), CII, Factur-X, ZUGFeRD, and XRechnung, all checked against the EN 16931 standard and official Schematron rules. Ask your assistant to generate a compliant invoice, validate one for errors, or convert between formats, with n
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to create and manage e-invoices through natural language, supporting EU compliance formats like ZUGFeRD and XRechnung, as well as US plain PDF invoices.
    7
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to locally parse, validate, audit, explain, generate, and convert XRechnung and ZUGFeRD/Factur-X e-invoices using official rule sets, fully offline with no API keys required.
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Read and check European e-invoices (Factur-X, ZUGFeRD, XRechnung, UBL, CII) from an AI assistant: contents in plain text plus an EN 16931 consistency check.
    2
    MIT