Zum Hauptinhalt springen
EN 16931 · Summen

Fehler BR-CO-15 in der E-Rechnung: Gesamtbetrag mit USt ist nicht Netto plus USt

BR-CO-15 ist die Regel von EN 16931, die die einfachste Summe einer Rechnung prüft: Gesamtbetrag mit USt gleich Gesamtbetrag ohne USt plus USt. Sie gehört zu BR-CO-14, BR-CO-16, BR-CO-17 und, für den Regelsatz, zu BR-S-08 und BR-S-09, und XRechnung, Factur-X und Peppol BIS wenden sie alle an. Ein Rundungscent genügt, damit BR-CO-14 oder BR-CO-15 scheitert; BR-CO-17 und BR-S-09 erlauben bis zu 1 € Abweichung.

FlexigoTech · Verantwortlich: Víctor Gómez · Aktualisiert am 4. November 2026

Das Wichtigste

Versionen
Odoo 17, 18, 19 und 20
Geprüft
im Quellcode des Moduls, Version 17.0 und 20.0 · in den Quellen am Ende
Lesezeit
4 Min.

Die Formeln, so wie das Schematron sie schreibt

RegelText von EN 16931 (Schematron validation-1.3.17)
BR-CO-15Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
BR-CO-14Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).
BR-CO-16Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
BR-CO-17VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
BR-S-08For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
BR-S-09The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).

Alle sechs sind fatal. Lesen Sie sie als Kette: Die Zeilen ergeben die Basis je Satz (BR-S-08), jede Basis mal ihrem Satz ergibt die USt dieses Satzes (BR-CO-17 und BR-S-09), die USt je Satz ergibt die USt gesamt (BR-CO-14), Basis plus USt ergibt den Gesamtbetrag (BR-CO-15), und der Gesamtbetrag minus Bezahltes plus Rundung ergibt den offenen Betrag (BR-CO-16).

Übersicht der Summenregeln von EN 16931
BR-CO-15 mit BR-CO-14, BR-CO-16, BR-CO-17, BR-S-08 und BR-S-09: die Summenkette einer Rechnung.

Welche Regeln einen Cent bemerken

Nicht alle zählen Cent. BR-CO-17 und BR-S-09 vergleichen die USt je Satz (BT-117) mit Basis mal Satz, doch das Schematron lässt ihnen 1 € Spielraum in beide Richtungen. BR-S-08 vergleicht Basen, daher beeinflusst die Rundung der USt sie nicht. BR-CO-14, BR-CO-15 und BR-CO-16 vergleichen auf zwei Dezimalstellen gerundete Summen, ohne Spielraum: Dort ist ein Cent schon ein Fehler.

Der Cent entsteht, wenn es zwei Wege gibt, die USt zu berechnen. Odoo berechnet sie nach der Einstellung Tax Calculation Rounding Method des Unternehmens:

Odoo-VersionOptionenStandard
Odoo 17 und 18Round per Line oder Round GloballyPro Zeile
Odoo 19 und 20Round per Tax oder Round per LinePro Steuer

Bei der Rundung pro Zeile rundet Odoo die USt jeder Zeile und addiert dann. Bei einer Rechnung mit vielen kleinen Zeilen kann diese Summe einen Cent von der USt abweichen, die auf der Basis je Satz berechnet wird. Stammen alle Zahlen der Datei aus derselben Berechnung, stimmen die Summen. Enthält die Datei die USt-Gesamtsumme von Odoo neben einer je Satz neu berechneten Aufstellung, scheitert BR-CO-14; enthält sie den Gesamtbetrag mit USt von Odoo neben einer neu berechneten USt, scheitert BR-CO-15. Damit BR-CO-17 anschlägt, muss die Abweichung 1 € übersteigen.

Die Rundungsmethode ist eine Unternehmenseinstellung, keine Einstellung je Rechnung: Eine Änderung wirkt sich auf die ab diesem Moment berechneten Steuern aus. Nehmen Sie sie zwischen zwei Rechnungen vor, niemals bei einer halb fertigen.

Was die Factur-X von Odoo macht

In der Factur-X (CII) von Odoo 18, 19 und 20 wird der Gesamtbetrag mit USt (BT-112) als Summe aus Basis (BT-109) und USt (BT-110) geschrieben, die bereits in der Datei stehen, eben um BR-CO-15 zu erfüllen. Das sichert die Summenregel; die übrige Kette hängt weiterhin davon ab, dass die Aufstellung aufgeht.

Mit unserem Modul für XRechnung und ZUGFeRD

Das Modul erzeugt das XML mit eigenem Code und vermischt heute beide Berechnungen. Die USt je Satz (BT-117) berechnet es als Basis mal Satz und übernimmt den Gesamtbetrag mit USt (in UBL) bzw. die USt gesamt (in CII) aus der Odoo-Rechnung. Bei der Rundung pro Zeile genügt ein Cent Abweichung: Das XML kommt mit BR-CO-15 in XRechnung UBL und mit BR-CO-14 in XRechnung CII heraus, dem Standardformat des Moduls. Wir haben es mit dem Validator von KoSIT geprüft. In Odoo 17 und 18 ist die Rundung pro Zeile der Standard.

Bei einer Teilzahlung scheitert BR-CO-16: Der offene Betrag (BT-115) ist, was in Odoo noch offen ist, die Datei enthält aber nicht den bereits gezahlten Betrag (BT-113).

Odoo-20-Rechnung mit dem Reiter XRechnung / ZUGFeRD des Moduls
Validierungsergebnis und Kontrollkästchen Ready to send auf der Rechnung. Screenshot aus Odoo 20 mit Demodaten; der Bericht im Screenshot ist ein Testbericht.

In Odoo 18, 19 und 20 durchläuft mit dem Abonnement FlexigoTech Cloud jede XRechnung und jede ZUGFeRD EN 16931, die das Modul erzeugt, die Regeln von KoSIT, zu denen diese sechs gehören. Scheitert eine, wird sie auf der Rechnung unter Validation Errors vermerkt, und die Rechnung wird nicht als Ready to send markiert. In Odoo 17 validiert die veröffentlichte Version nicht: Die Datei geht mit dem Fehler und ohne Warnung hinaus.

Was zu tun ist

  1. Sehen Sie im Bericht nach, welche Regel zuerst scheitert: BR-S-08 weist auf die Basen, BR-CO-14 auf die Aufstellung, BR-CO-15 auf den Gesamtbetrag und BR-CO-17 auf die USt eines Satzes.
  2. Prüfen Sie die Rundungsmethode des Unternehmens und besprechen Sie bei vielen Zeilen in E-Rechnungen mit Ihrem Steuerberater die Rundung pro Steuer.
  3. BR-CO-16 tritt bei Teilzahlungen oder Kassenrundung auf: Der bezahlte Betrag und der Rundungsbetrag müssen in die Datei. Erzeugen Sie mit unserem Modul die XRechnung, bevor Sie eine Zahlung erfassen.
  4. Korrigieren und neu erzeugen; bearbeiten Sie das XML nicht von Hand.

Weiterlesen

Fehler BR-E-10, BR-AE-10, BR-IC-10 und BR-G-10: der Befreiungsgrund der UmsatzsteuerBR-E-10, BR-AE-10, BR-IC-10, BR-G-10 und BR-O-10 verlangen den Befreiungsgrund, BR-S-10 und BR-Z-10 verbieten ihn. So setzen ihn Odoo 17 bis 20.Fehler BR-09 und BR-11: Adresse von Verkäufer oder Käufer ohne LändercodeBR-09 und BR-11 verlangen den Ländercode in den Adressen von Verkäufer und Käufer, BR-08 und BR-10 die Adresse selbst. Meldung in Odoo und was einzutragen ist.Fehler BR-DE-1, BR-61 und BR-DE-23 in XRechnung: die ZahlungsanweisungenBR-DE-1 verlangt in XRechnung die Zahlungsanweisungen (BG-16), BR-61 das Konto bei Überweisung. Was Odoo 17, 18, 19 und 20 schreibt und wie Sie es beheben.
Geprüft im Quellcode des Moduls (Version 17.0 und 20.0) und in den verlinkten Quellen

Quellen