BR-DEC-25: Basisbetrag des Positionsnachlasses mit mehr als zwei Nachkommastellen
Der Grundbetrag, auf den sich ein Positionsnachlass bezieht (BT-137), darf höchstens zwei Nachkommastellen haben. Häufigster Auslöser: die Software übernimmt den ungerundeten internen Positionswert als Basis.
The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.
BR-DEC-25 betrifft nicht den Rabatt selbst, sondern die Bezugsgröße, aus der er berechnet wird. Sie taucht deshalb selten allein auf: Meist meldet der Validator gleichzeitig BR-DEC-24 für den Nachlassbetrag oder BR-DEC-23 für den Positionsnetto.
Was die Regel prüft
BT-137 (BT = Business Term, das nummerierte Feld der Norm) ist der Basisbetrag eines Positionsnachlasses: der Wert, auf den der Prozentsatz angewendet wird, typischerweise Menge mal Einzelpreis vor Abzug. In der CII-Syntax ist das ram:BasisAmount innerhalb von ram:SpecifiedTradeAllowanceCharge. Erlaubt sind höchstens zwei Nachkommastellen, geprüft wird die Schreibweise in der XML.
Warum sie in der Praxis fehlschlägt
- Die Software nimmt als Basis den internen, ungerundeten Positionswert: 26,5 m × 3,961 EUR ergibt 104,9665, und genau diese Zahl landet als Basis in der XML.
- Die Basis wird als Zwischenergebnis einer Gleitkomma-Rechnung übernommen, mit Artefakten wie
104.97000000000001.
Da der Nachlassbetrag aus derselben Zahl berechnet wird, zieht ein ungerundeter Basisbetrag fast immer weitere DEC-Meldungen nach sich.
So behebst du den Fehler
Runde die Basis kaufmännisch auf zwei Nachkommastellen und berechne den Nachlass aus dem gerundeten Wert, nicht umgekehrt. Die Reihenfolge lautet: erst Basis runden, dann Prozentsatz anwenden, dann das Ergebnis runden, dann den Positionsnetto aus den gerundeten Werten bilden. Beachte außerdem: Wer eine Basis angibt, sollte bei PEPPOL-Prüfung auch den Prozentsatz mitliefern (PEPPOL-EN16931-R042 verlangt beide zusammen). Belegschmied schreibt grundsätzlich nur centgenaue Beträge in die XML.
XML-Beispiel: vorher und nachher
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:CalculationPercent>2</ram:CalculationPercent>
<!-- verletzt BR-DEC-25: Basisbetrag mit vier Nachkommastellen -->
<ram:BasisAmount>104.9665</ram:BasisAmount>
<ram:ActualAmount>2.10</ram:ActualAmount>
<ram:Reason>Materialrabatt</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:CalculationPercent>2</ram:CalculationPercent>
<!-- korrekt: Basis auf Cent gerundet, Nachlass daraus berechnet -->
<ram:BasisAmount>104.97</ram:BasisAmount>
<ram:ActualAmount>2.10</ram:ActualAmount>
<ram:Reason>Materialrabatt</ram:Reason>
</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.