BR-24: Nettobetrag der Rechnungsposition fehlt
Eine Rechnungszeile enthält keinen Positionsnettobetrag (BT-131). Meist berechnet die Software den Zeilenbetrag nicht, sondern erwartet ihn aus den Quelldaten.
Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).
BR-24 verlangt, dass jede Position ihren eigenen Nettobetrag ausweist. Ohne diesen Wert kann auch die Zeilensumme der Rechnung (BT-106) nicht geprüft werden.
Was die Regel prüft
Jede Rechnungszeile (BG-25, BG = Business Group der Norm) muss einen Nettobetrag haben, BT-131 (BT = Business Term): Menge mal Nettopreis, abzüglich Zeilennachlässen, zuzüglich Zeilenzuschlägen, ohne Umsatzsteuer. In der CII-Syntax steht der Wert als ram:LineTotalAmount in der ram:SpecifiedTradeSettlementLineMonetarySummation der Position, also im Abrechnungsteil der Zeile, nicht beim Preis.
Der Positionsnettobetrag ist eigenständig neben dem Einzelpreis (BT-146, geprüft durch BR-26): Der Preis sagt, was eine Einheit kostet, der Nettobetrag, was die Zeile insgesamt ergibt.
Warum sie in der Praxis fehlschlägt
Erster Auslöser: Die erzeugende Software überträgt Menge und Einzelpreis, rechnet aber den Zeilenbetrag nicht selbst aus, weil sie ihn aus den Quelldaten erwartet, wo er nicht vorkommt. Das Element bleibt dann leer oder fehlt.
Zweiter Auslöser: Verwechslung der beiden LineTotalAmount-Elemente. In CII gibt es den Namen zweimal: einmal pro Position (SpecifiedTradeSettlementLineMonetarySummation) und einmal im Kopfsummenblock (SpecifiedTradeSettlementHeaderMonetarySummation). Wer nur den Kopfwert schreibt, verletzt BR-24 in jeder Zeile.
So behebst du den Fehler
Berechne für jede Zeile Menge mal Preis (minus Zeilennachlass, plus Zeilenzuschlag) und schreib das Ergebnis mit maximal zwei Nachkommastellen (BR-DEC-23) in die Zeilensummation. Die Summe aller Zeilenbeträge muss anschließend exakt BT-106 ergeben (BR-CO-10), runde also pro Zeile, nicht erst am Ende. Belegschmied berechnet die Zeilenbeträge automatisch aus Menge und Preis.
XML-Beispiel: vorher und nachher
Die Position hat Preis und Menge, aber keinen Zeilenbetrag:
<!-- verletzt BR-24: SpecifiedLineTradeSettlement ohne LineTotalAmount -->
<ram:IncludedSupplyChainTradeLineItem>
<!-- … -->
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>65.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="HUR">8</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<!-- Steuerangaben … -->
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
Korrigiert mit Positionsnettobetrag (BT-131 = 8 × 65,00 EUR):
<ram:SpecifiedLineTradeSettlement>
<!-- Steuerangaben … -->
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>520.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
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.