BR-CO-21: Nachlass auf Dokumentebene ohne Begründung
Ein Rabatt auf Rechnungsebene (BG-20) braucht einen Grund als Text (BT-97) oder als Code (BT-98). Fehlt beides, lehnt der Validator die Rechnung ab.
Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.
Ein Nachlass auf die gesamte Rechnung, etwa ein Treuerabatt, ist in der E-Rechnung erlaubt, aber begründungspflichtig: Der Empfänger soll maschinell erkennen können, warum der Betrag abgezogen wird.
Was die Regel prüft
Jeder Nachlass auf Dokumentebene (Gruppe BG-20; BG = Business Group, eine Feldgruppe der Norm EN 16931) muss mindestens eine von zwei Angaben enthalten: einen Grund als Freitext (BT-97, z. B. „Treuerabatt") oder einen Grund-Code (BT-98) aus der Codeliste UNTDID 5189. Beides zusammen ist ebenfalls zulässig, dann müssen Text und Code laut BR-CO-05 zueinander passen.
Die Regel ist inhaltsgleich mit BR-33; je nach Validator siehst du den einen oder den anderen Code für denselben Mangel. Für Zuschläge gilt das Gegenstück BR-CO-22, für Positionsnachlässe BR-CO-23.
Warum sie in der Praxis fehlschlägt
Häufigster Auslöser: In der Rechnungssoftware gibt es ein Rabattfeld nur mit Prozentsatz oder Betrag, aber ohne Begründungsfeld. Die Software schreibt dann ram:SpecifiedTradeAllowanceCharge mit Betrag, aber ohne ram:Reason und ohne ram:ReasonCode.
Zweiter Fall: Der Grund steht als Freitext irgendwo auf der Rechnung („3 % Bonus laut Rahmenvertrag" in einer Bemerkungszeile), wird aber nicht in das strukturierte Feld der Nachlass-Gruppe übernommen. Für den Validator zählt nur das Feld in BG-20.
So behebst du den Fehler
Trag zu jedem Nachlass einen kurzen Begründungstext ein. Der Freitext BT-97 genügt allein, ein Code ist nicht nötig, ein Wort wie „Rabatt" oder „Bonus" reicht formal aus. Wenn du zusätzlich einen Code setzt, nimm einen passenden Wert aus UNTDID 5189 (z. B. 95 für einen allgemeinen Rabatt) und achte darauf, dass Text und Code dasselbe aussagen.
In Belegschmied hat jede Nachlasszeile ein Pflichtfeld für den Grund, der Fall kann beim Erstellen also nicht auftreten.
XML-Beispiel: vorher und nachher
Nachlass mit Betrag und Steuerkategorie, aber ohne Begründung:
<!-- verletzt BR-CO-21: weder Reason noch ReasonCode vorhanden -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>50.00</ram:ActualAmount>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
Korrigiert mit Grund-Code (BT-98) und Freitext (BT-97):
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>50.00</ram:ActualAmount>
<ram:ReasonCode>95</ram:ReasonCode>
<ram:Reason>Rabatt</ram:Reason>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
Rechnung selbst prüfen
Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.