Rechenregeln

BR-CO-10: Summe der Positionen (BT-106) stimmt nicht

BT-106 muss exakt der Summe aller Positionsnettobeträge (BT-131) entsprechen.

Steckbrief

Regel
BR-CO-10
Schweregrad
Fehler – die Rechnung ist ungültig
Regelwerk
EN 16931 – gilt für XRechnung und ZUGFeRD/Factur-X
Betroffene Felder
BT-106, BT-131
Syntax
CII & UBL

Rechnung jetzt prüfen

PDF oder XML hochladen – kostenlos, ohne Anmeldung, gegen die offiziellen Regelwerke.

Zum Online-Validator

Offizieller Wortlaut

[BR-CO-10] Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).

Quelle: offizielle Schematron zur EN 16931 (CEN), wie sie auch in XRechnung und ZUGFeRD/Factur-X geprüft wird.

Was die Regel verlangt

Die Summe der Positionsnettobeträge (BT-106) muss exakt der Summe aller Positionsnettobeträge (BT-131) entsprechen – auf den Cent, ohne Toleranz. Die Regel gehört zur EN 16931 und gilt deshalb für XRechnung ebenso wie für ZUGFeRD und Factur-X.

Nachlässe und Zuschläge auf Belegebene (BG-20, BG-21) gehören nicht in BT-106; sie gehen erst in den Gesamtbetrag ohne Umsatzsteuer (BT-109) ein. Positionsrabatte dagegen sind im Positionsnettobetrag bereits enthalten.

Typische Ursachen

  • Rundung: BT-106 wird aus ungerundeten Zwischenwerten (Menge × Preis) gebildet, die Positionen stehen gerundet in der XML.
  • Ein Rabatt auf die ganze Rechnung wurde schon in BT-106 abgezogen.
  • Positionen wurden nachträglich entfernt oder hinzugefügt, die Summe aber nicht neu berechnet.
  • Gutschrift- oder Minderpositionen mit negativem Betrag fehlen in der Summe.

So sieht es im XML aus

✗ CII – falsch
<ram:IncludedSupplyChainTradeLineItem>        <!-- Position 1 -->
    … <ram:LineTotalAmount>300.00</ram:LineTotalAmount> …
</ram:IncludedSupplyChainTradeLineItem>
<ram:IncludedSupplyChainTradeLineItem>        <!-- Position 2 -->
    … <ram:LineTotalAmount>49.99</ram:LineTotalAmount> …
</ram:IncludedSupplyChainTradeLineItem>
…
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    <ram:LineTotalAmount>350.00</ram:LineTotalAmount>  <!-- BT-106: 300.00 + 49.99 = 349.99 -->
    …
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
✓ CII – korrekt
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    <ram:LineTotalAmount>349.99</ram:LineTotalAmount>
    …
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

In UBL ist BT-106 cac:LegalMonetaryTotal/cbc:LineExtensionAmount.

Lösung in C#

Runden Sie jeden Positionsnettobetrag auf zwei Nachkommastellen, bevor Sie ihn setzen, und bilden Sie die Summe dann aus genau diesen Werten. Mit dem Facturexa Creator:

C#
// BT-106 aus den Positionen berechnen, nicht getrennt führen
rechnung.LineTotalAmount = rechnung.TradeLineItems.Sum(p => p.LineTotalAmount);

Tipp: Prüfen Sie erzeugte Rechnungen vor dem Versand mit dem Facturexa Validator – er meldet BR-CO-10 offline in Ihrer eigenen Anwendung.

Verwandte Regeln

Alle erklärten Prüfregeln