Jeder Validierungsfehler einer E-Rechnung hat eine eindeutige Regel-ID. Hier findest du alle 63 häufigen Fehler- und Warncodes nach EN 16931, den deutschen KoSIT-Regeln und PEPPOL BIS — 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.
Füge die Gruppe PAYMENT INSTRUCTIONS (BG-16) hinzu: mind. die Zahlungsart 'ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode' (BT-81) und die passende Zahlungsgruppe (BG-17 Überweisung / BG-18 Karte / BG-19 Lastschrift).
Lieferstadt (BT-77) ist eine Pflichtangabe und muss im strukturierten XML vorhanden sein.
So behebst du den Fehler
Wenn eine abweichende Lieferadresse (BG-15) angegeben ist, muss die Lieferstadt (BT-77) in 'ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CityName' gesetzt sein.
Liefer-PLZ (BT-78) ist eine Pflichtangabe und muss im strukturierten XML vorhanden sein.
So behebst du den Fehler
Wenn eine abweichende Lieferadresse (BG-15) angegeben ist, muss die Liefer-PLZ (BT-78) in 'ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode' gesetzt sein.
BR-DE-12 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
BR-DE-13 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
USt-ID/Steuernummer des Verkäufers ist eine Pflichtangabe und muss im strukturierten XML vorhanden sein.
So behebst du den Fehler
Wenn Steuercodes S/Z/E/AE/K/G/L/M verwendet werden, muss mind. die USt-ID (BT-31) ODER Steuernummer (BT-32) des Verkäufers in 'ram:SellerTradeParty/ram:SpecifiedTaxRegistration' vorhanden sein (schemeID 'VA' bzw. 'FC').
Gib Skonto/Zahlungsbedingungen (BT-20) im vorgeschriebenen Format in 'ram:SpecifiedTradePaymentTerms/ram:Description' an (#SKONTO#TAGE=..#PROZENT=..#).
BR-DE-19 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
BR-DE-20 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
Specification identifier (BT-24) nicht XRechnung-konform
So behebst du den Fehler
Der Specification identifier (BT-24) muss der XRechnung-Kennung entsprechen, z. B. 'urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0'.
BR-DE-23 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
BR-DE-24 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
BR-DE-25 ist in der aktuellen XRechnung-/EN-16931-Fassung nicht mehr als eigene Regel enthalten.
So behebst du den Fehler
Diese Regelnummer existiert in der aktuellen XRechnung-Fassung nicht mehr. Prüfe die aktuelle KoSIT-Spezifikation; der ursprüngliche Sachverhalt ist heute meist über eine andere BR-DE-Regel abgedeckt.
Bei Rechnungstyp 384 (Rechnungskorrektur) muss die Bezugsrechnung (PRECEDING INVOICE REFERENCE, BG-3) in 'ram:InvoiceReferencedDocument/ram:IssuerAssignedID' angegeben werden.
Specification identifier (BT-24) ist eine Pflichtangabe und muss im strukturierten XML vorhanden sein.
So behebst du den Fehler
Füge die Guideline-ID (Specification identifier, BT-24) hinzu: 'ram:GuidelineSpecifiedDocumentContextParameter/ram:ID', z. B. 'urn:cen.eu:en16931:2017' bzw. die XRechnung-Kennung.
Steuerdatum und Steuerdatum-Code schließen sich aus
So behebst du den Fehler
BT-7 (Steuerdatum) und BT-8 (Steuerdatum-Code) schließen sich gegenseitig aus — gib nur EINES an: entweder 'ram:TaxPointDate' oder 'ram:DueDateTypeCode'.
Gesamtbetrag ohne USt (BT-109) = Summe Netto-Positionen (BT-131) − Abschläge + Zuschläge auf Dokumentebene. Prüfe die Berechnung von 'ram:TaxBasisTotalAmount'.
Bei Steuerbefreiung (Kategorie 'E') muss die USt-ID/Steuernummer des Verkäufers vorhanden sein; Steuersatz 0, CalculatedAmount = 0 und 'ram:ExemptionReason' angeben.
Bei Steuerschuldumkehr (Kategorie 'AE', Reverse Charge) müssen die USt-ID des Verkäufers (BT-31) UND eine USt-ID/Steuernummer des Käufers vorhanden sein; CalculatedAmount = 0 und ExemptionReason angeben.
Zusatzregeln aus PEPPOL BIS Billing 3.0 — dem Regelwerk für den Rechnungsversand über das europäische PEPPOL-Netz. Sie gelten über die EN 16931 hinaus und erscheinen bei ZUGFeRD/XRechnung meist als Warnung oder Hinweis, sind aber verpflichtend, sobald die Rechnung tatsächlich über PEPPOL übertragen wird.
Die Rechnung muss den PEPPOL-Geschäftsprozess (BT-23) angeben. Er beschreibt, in welchem Verfahren die Rechnung übermittelt wird.
So behebst du den Fehler
Ergänze den Geschäftsprozess (BT-23) in 'ram:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID', üblicherweise mit dem Wert 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0'.
Es muss entweder eine Käuferreferenz (BT-10, z. B. Leitweg-ID) oder eine Bestellnummer (BT-13) angegeben werden, damit der Empfänger die Rechnung zuordnen kann.
So behebst du den Fehler
Gib die Käuferreferenz (BT-10) in 'ram:ApplicableHeaderTradeAgreement/ram:BuyerReference' an — in Deutschland ist das für Behörden die Leitweg-ID. Alternativ genügt eine Bestellnummer (BT-13) in 'ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID'.
Für PEPPOL BIS Billing 3.0 muss die Spezifikationskennung (BT-24) exakt den PEPPOL-Wert tragen. Andernfalls wird die Rechnung nicht als PEPPOL-konform erkannt.
So behebst du den Fehler
Setze BT-24 in 'ram:GuidelineSpecifiedDocumentContextParameter/ram:ID' auf 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'.
Das Dokument darf keine leeren XML-Elemente enthalten. Jedes vorhandene Element muss einen gültigen Wert tragen — oder ganz weggelassen werden.
So behebst du den Fehler
Entferne leere Tags aus dem XML. Ein Element wie <ram:Name></ram:Name> oder <ram:ID/> ist entweder mit einem gültigen Wert zu füllen oder komplett zu entfernen.
Die elektronische Adresse des Käufers (BT-49) muss angegeben werden — sie ist die Zustelladresse im PEPPOL-Netz.
So behebst du den Fehler
Ergänze BT-49 in 'ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID' mit passendem schemeID-Attribut, z. B. schemeID='EM' für eine E-Mail-Adresse oder '9958' für eine Leitweg-ID.
Die elektronische Adresse des Verkäufers (BT-34) muss angegeben werden — sie identifiziert den Absender im PEPPOL-Netz.
So behebst du den Fehler
Ergänze BT-34 in 'ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID' mit passendem schemeID-Attribut, z. B. schemeID='EM' für eine E-Mail-Adresse.
Bei Zahlung per SEPA-Lastschrift muss die Mandatsreferenz (BT-89) angegeben werden.
So behebst du den Fehler
Ergänze die Mandatsreferenz (BT-89) in 'ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID', wenn als Zahlungsart eine Lastschrift (Code 59/UNTDID 4461) angegeben ist.
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.