BR-24EN 16931

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.

Regeltext im Prüfregelwerk

Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).

BG-25BT-131BT-146BT-129

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.

Regeln, die oft zusammen auftreten

← Alle Fehlermeldungen im Überblick