BR-12EN 16931

BR-12: Summe der Positionsnettobeträge fehlt

In der Rechnung fehlt die Summe der Positionsnettobeträge (BT-106). Meist legt die Software den Summenblock unvollständig an oder lässt ihn bei positionslosen Belegen leer.

Regeltext im Prüfregelwerk

An Invoice shall have the Sum of Invoice line net amount (BT-106).

BT-106BT-131

BR-12 ist die erste von vier Regeln, die den Summenblock am Ende der Rechnung absichern: BR-12 bis BR-15 verlangen je einen der vier Pflichtbeträge.

Was die Regel prüft

Die Rechnung muss die Summe aller Positionsnettobeträge enthalten, in der Norm BT-106 (BT = Business Term, das nummerierte Feld der Norm). Das ist die reine Addition der Nettobeträge aller Rechnungszeilen (BT-131), noch vor Abzug von Nachlässen und vor Zuschlägen auf Dokumentebene. In der CII-Syntax von ZUGFeRD und XRechnung ist das ram:LineTotalAmount innerhalb der ram:SpecifiedTradeSettlementHeaderMonetarySummation.

Ob der Wert auch rechnerisch stimmt, prüft eine andere Regel: BR-CO-10 verlangt BT-106 = Σ BT-131. BR-12 verlangt nur, dass das Feld überhaupt da ist.

Warum sie in der Praxis fehlschlägt

Erster Auslöser: Die erzeugende Software schreibt den Summenblock nur teilweise, etwa Gesamtbetrag und Zahlbetrag, aber keine Zeilensumme. Das passiert gern bei selbstgebauten Konvertern, die eine PDF-Rechnung nachbauen: Auf dem Papier steht die Zeilensumme oft nicht als eigene Zahl, also wird sie im Mapping vergessen.

Zweiter Auslöser: Belege ohne echte Positionen, zum Beispiel Abschlags- oder Pauschalrechnungen, bei denen nur ein Endbetrag erfasst wurde. Ohne Positionen berechnet die Software keine Zeilensumme, und das Feld bleibt leer. Dann meldet der Validator meist zusätzlich BR-16 (mindestens eine Rechnungszeile).

So behebst du den Fehler

Stell sicher, dass die Rechnung mindestens eine Position mit Nettobetrag hat und die Software daraus ram:LineTotalAmount befüllt. Der Wert ist keine Eingabe, sondern eine Ableitung: Summe aller ram:LineTotalAmount der einzelnen Positionen, mit maximal zwei Nachkommastellen (BR-DEC-09). Belegschmied berechnet den kompletten Summenblock automatisch aus den Positionen, dieses Feld kann dort nicht fehlen.

Wenn du XML von Hand oder per Skript baust: Schreib alle vier Summenfelder (BT-106, BT-109, BT-112, BT-115) immer zusammen, dann erledigst du BR-12 bis BR-15 in einem Zug.

XML-Beispiel: vorher und nachher

Der Summenblock enthält nur Gesamt- und Zahlbetrag:

<!-- verletzt BR-12: LineTotalAmount fehlt -->
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:GrandTotalAmount>1190.00</ram:GrandTotalAmount>
  <ram:DuePayableAmount>1190.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

Korrigiert mit Zeilensumme (BT-106) und Nettobetrag (BT-109):

<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:LineTotalAmount>1000.00</ram:LineTotalAmount>
  <ram:TaxBasisTotalAmount>1000.00</ram:TaxBasisTotalAmount>
  <ram:TaxTotalAmount currencyID="EUR">190.00</ram:TaxTotalAmount>
  <ram:GrandTotalAmount>1190.00</ram:GrandTotalAmount>
  <ram:DuePayableAmount>1190.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

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