BR-DEC-01: Nachlass auf Dokumentenebene mit mehr als zwei Nachkommastellen
Der Betrag eines Nachlasses auf Dokumentenebene (BT-92) darf höchstens zwei Nachkommastellen haben. Häufigster Auslöser: ein prozentualer Rabatt wird berechnet und ungerundet in die XML geschrieben.
The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.
BR-DEC-01 gehört zur BR-DEC-Serie, die für alle Geldbeträge der Rechnung die Schreibweise prüft: maximal zwei Nachkommastellen, wie es Cent-Beträge eben haben.
Was die Regel prüft
BT-92 (BT = Business Term, das nummerierte Feld der Norm) ist der Betrag eines Nachlasses auf Dokumentenebene, also eines Rabatts, der auf die ganze Rechnung wirkt statt auf eine einzelne Position. Er fließt über BR-CO-11 in die Summe der Nachlässe (BT-107) und darüber in die Nettosumme der Rechnung ein.
Geprüft wird die Schreibweise in der XML, nicht der rechnerische Wert: 25.13 ist zulässig, 25.125 nicht, und auch 25.130 mit angehängter Null fällt durch, weil drei Zeichen nach dem Punkt stehen.
Warum sie in der Praxis fehlschlägt
Nachlässe auf Dokumentenebene sind fast immer prozentual: 3 % Treuerabatt, 5 % Aktionsnachlass. Die Rechnung dahinter erzeugt fast zwangsläufig krumme Werte, 3 % von 837,45 EUR sind 25,1235 EUR. Schreibt die Software das Ergebnis der Prozentrechnung direkt in die XML, statt vorher auf Cent zu runden, ist die Regel verletzt.
Der zweite Auslöser ist Gleitkomma-Arithmetik: Aus 0,03 × 837,45 wird intern etwas wie 25.123499999999997, und genau diese Zeichenkette landet in der Datei.
So behebst du den Fehler
Runde BT-92 kaufmännisch auf zwei Nachkommastellen, bevor der Wert in die XML geschrieben wird. Prüfe danach, ob die Summenkette noch aufgeht: BT-107 muss die Summe aller gerundeten BT-92-Werte sein (BR-CO-11), sonst löst du mit der Korrektur die nächste Meldung aus. Wenn du den Nachlass zusätzlich mit Basisbetrag (BT-93) und Prozentsatz (BT-94) angibst, müssen auch diese zum gerundeten Betrag passen. Belegschmied gibt alle Beträge fest mit zwei Nachkommastellen aus, der Fall tritt dort nicht auf.
XML-Beispiel: vorher und nachher
Ein Rabatt von 3 % auf 837,45 EUR, ungerundet übernommen:
<ram:ApplicableHeaderTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<!-- verletzt BR-DEC-01: vier Nachkommastellen -->
<ram:ActualAmount>25.1235</ram:ActualAmount>
<ram:Reason>Treuerabatt 3 %</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
<!-- … -->
</ram:ApplicableHeaderTradeSettlement>
Korrigiert, kaufmännisch auf Cent gerundet:
<ram:ApplicableHeaderTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>25.12</ram:ActualAmount>
<ram:Reason>Treuerabatt 3 %</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
<!-- … -->
</ram:ApplicableHeaderTradeSettlement>
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.