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.
An Invoice shall have the Sum of Invoice line net amount (BT-106).
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
Laden Sie Ihre Datei hoch und sehen Sie in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.
Regeln, die oft zusammen auftreten
← Alle Fehlermeldungen im Überblick
Gepflegt von Emilio Irmscher, Gründer von Belegschmied. Über den Autor