Jeder Validierungsfehler einer E-Rechnung hat eine eindeutige Regel-ID. Hier findest du alle 48 häufigen Fehler- und Warncodes nach EN 16931 und den deutschen KoSIT-Regeln — jeweils mit Bedeutung, betroffenem Feld, konkretem Korrekturvorschlag und XPath.
Eine E-Rechnung wird gegen die europäische Norm EN 16931 geprüft. Verstößt sie gegen eine Geschäftsregel (Business Rule, BR), meldet der Validator einen Fehler mit eindeutiger ID — etwa BR-DE-1. Das Präfix BR-DE kennzeichnet deutsche Zusatzregeln der KoSIT, Codes wie BR-1 stammen direkt aus der EU-Norm. Jeder Code verweist auf ein Feld (Business Term, BT-xxx) und lässt sich gezielt korrigieren.
Was ist ein Validierungsfehler bei einer E-Rechnung?
Ein Validierungsfehler bedeutet, dass eine E-Rechnung gegen eine Geschäftsregel der Norm EN 16931 oder gegen eine deutsche KoSIT-Regel (BR-DE) verstößt. Jeder Fehler hat eine eindeutige Regel-ID (z. B. BR-DE-1), bezieht sich auf ein bestimmtes Feld (Business Term, BT-xxx) und muss behoben werden, damit die Rechnung konform und verarbeitbar ist.
Was bedeutet das Präfix BR-DE bei einem Fehlercode?
BR steht für Business Rule (Geschäftsregel), DE für die deutschland-spezifischen Zusatzregeln der KoSIT. BR-DE-Regeln gelten zusätzlich zu den europäischen EN-16931-Regeln und sind für deutsche E-Rechnungen verbindlich. Codes ohne DE (z. B. BR-1) stammen direkt aus der europäischen Norm.
Was ist der Unterschied zwischen einem Fehler und einer Warnung?
Ein Fehler (error) macht die Rechnung nicht konform — sie muss korrigiert werden. Eine Warnung (warning) weist auf eine Empfehlung oder einen möglichen Konflikt hin, blockiert die Konformität aber nicht zwingend. Der ZUGFeRD Validator kennzeichnet beide getrennt im Feld severity.
Was sind BT-Felder in einer E-Rechnung?
BT steht für Business Term. Die Norm EN 16931 nummeriert jedes Datenfeld einer Rechnung als BT-xxx, z. B. BT-1 für die Rechnungsnummer oder BT-31 für die USt-ID des Verkäufers. Fehlercodes verweisen auf das BT-Feld, das den Verstoß ausgelöst hat.
Wie behebe ich einen Validierungsfehler in einer ZUGFeRD-Rechnung?
Suche den Fehlercode in diesem Lexikon, lies den Korrekturvorschlag und passe das angegebene XML-Element (über den XPath identifizierbar) an. Validiere die Rechnung anschließend erneut. Der ZUGFeRD Validator liefert zu jedem Fehler automatisch Regel-ID, Feld, Korrekturvorschlag und XPath als strukturiertes JSON.
Deutsche Geschäftsregeln (BR-DE)
Zusätzliche Pflichtregeln der KoSIT für Deutschland, die über die europäische Norm EN 16931 hinausgehen. Sie sind für ZUGFeRD und XRechnung im deutschen B2B- und B2G-Umfeld verbindlich.
Die USt-ID des Verkäufers (BT-31) oder die Steuernummer (BT-32) muss angegeben werden.
So behebst du den Fehler
Füge im Element 'ram:SellerTradeParty' ein Unterelement 'ram:SpecifiedTaxRegistration' hinzu. Für USt-ID: schemeID='VA' mit Wert 'DE123456789'. Für Steuernummer: schemeID='FC' mit der Steuernummer.
Das Zahlungsmittelverfahren (BT-81) muss angegeben werden.
So behebst du den Fehler
Füge 'ram:TypeCode' im Element 'ram:SpecifiedTradeSettlementPaymentMeans' hinzu. Gängige Codes: '58' für SEPA-Überweisung, '59' für SEPA-Lastschrift, '30' für Überweisung.
Wenn eine Zahlungsbedingung angegeben wird, muss sie als Freitext formuliert sein.
So behebst du den Fehler
Füge 'ram:Description' im Element 'ram:SpecifiedTradePaymentTerms' mit einer textuellen Beschreibung hinzu, z.B. 'Zahlbar innerhalb von 30 Tagen ohne Abzug'.
Die Art des Prozesses (BT-23) muss angegeben werden.
So behebst du den Fehler
Füge 'ram:ID' im Element 'ram:SpecifiedExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter' hinzu, z.B. 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0'.
Die Spezifikationskennung (BT-24) muss angegeben werden.
So behebst du den Fehler
Füge 'ram:ID' im Element 'ram:SpecifiedExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter' hinzu. Für ZUGFeRD 2.x EN16931: 'urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931'.
Die Käuferreferenz (BT-10) muss für XRechnung-Rechnungen angegeben werden.
So behebst du den Fehler
Füge 'ram:BuyerReference' im Element 'ram:ApplicableHeaderTradeAgreement' mit der Leitweg-ID oder internen Bestellreferenz des Käufers hinzu, z.B. '04011000-1234-34' für Behörden.
Füge 'ram:DateTimeString' im Element 'rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString' hinzu. Format: 'YYYYMMDD' mit format='102', z.B. '20260401'.
Der Rechnungsgesamtbetrag (BT-112) muss der Summe aller Positionen entsprechen.
So behebst du den Fehler
Überprüfe die Berechnung: BT-112 = Summe aller BT-131 (Nettopositionen) + BT-107 (Summe Zuschläge) - BT-108 (Summe Nachlässe) + BT-110 (Steuer). Stelle sicher dass alle Positionen korrekt summiert sind.
Der Zahlungsmittelcode (BT-81) muss aus der Codeliste UNTDID 4461 stammen.
So behebst du den Fehler
Verwende einen gültigen Code aus UNTDID 4461, z.B. '58' für SEPA-Überweisung, '59' für SEPA-Lastschrift, '30' für Banküberweisung, '10' für Barzahlung, '97' für Verrechnung.
Der Steuercode der Rechnungsposition muss aus der Codeliste UNCL5305 stammen.
So behebst du den Fehler
Verwende gültige UNCL5305-Codes: 'S' für normaler Steuersatz, 'Z' für 0% Steuersatz, 'E' für steuerbefreit, 'AE' für Reverse Charge, 'K' für innergemeinschaftliche Lieferung.
Für den Steuersatz S (normaler Steuersatz) muss ein Steuerbetrag angegeben werden.
So behebst du den Fehler
Füge 'ram:CalculatedAmount' im Element 'ram:ApplicableTradeTax' mit dem berechneten Steuerbetrag hinzu. Für Deutschland: 19% auf den Nettobetrag, z.B. bei 100 EUR netto = 19 EUR Steuer.
Lade deine ZUGFeRD- oder XRechnung-Datei hoch — du bekommst jeden Fehler mit Regel-ID, Feld, Korrekturvorschlag und XPath zurück. Im Browser oder per API.