Zum Inhalt springen

BR-CO-15: Rechnungsgesamtbetrag mit Umsatzsteuer weicht ab

Der Bruttobetrag der Rechnung (BT-112) muss exakt die Summe aus Nettogesamtbetrag (BT-109) und Umsatzsteuersumme (BT-110) sein. Meist fehlt oder überzählt ein Cent, weil brutto kalkuliert oder ein Rundungsbetrag eingerechnet wurde.

Stand:

BR-CO-15· CEN-Schematron 1.3.16 (EN 16931), Validator-Konfiguration XRechnung 2026-08-31
[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

Betroffen:BT-109BT-110BT-112

Was die Regel prüft

Auf Deutsch: Gesamtbetrag der Rechnung mit Umsatzsteuer (BT-112) = Gesamtbetrag ohne Umsatzsteuer (BT-109) + Summe der Umsatzsteuer (BT-110). In der Visualisierung heißen BT-109 und BT-112 beide „Gesamtsumme“; gemeint ist einmal der Netto-, einmal der Bruttobetrag.

CII-Elemente jeweils in ram:SpecifiedTradeSettlementHeaderMonetarySummation
BegriffUBLCII
BT-109 nettocac:LegalMonetaryTotal/cbc:TaxExclusiveAmountram:TaxBasisTotalAmount
BT-110 Umsatzsteuercac:TaxTotal/cbc:TaxAmount mit currencyID der Rechnungswährungram:TaxTotalAmount mit currencyID der Rechnungswährung
BT-112 bruttocac:LegalMonetaryTotal/cbc:TaxInclusiveAmountram:GrandTotalAmount

UBL: Es muss genau ein cbc:TaxAmount direkt in cac:TaxTotal geben, dessen currencyID der Rechnungswährung (BT-5) entspricht. Dann gilt BT-112 = round((BT-109 + BT-110) × 100) ÷ 100, ohne Toleranz.

CII: Dieselbe Rechenregel, ebenfalls mit genau einem passenden ram:TaxTotalAmount. Zusätzlich gilt die Regel als erfüllt, wenn ram:GrandTotalAmount gleich ram:TaxBasisTotalAmount ist. Das deckt Rechnungen ohne Umsatzsteuer ab, bei denen BT-110 fehlt.

Nicht in BT-112 gehören bereits gezahlte Beträge (BT-113) und der Rundungsbetrag (BT-114). Beide wirken erst auf den fälligen Betrag (BT-115).

Typische Ursachen

  • Brutto-Kalkulation: Die Software addiert die Bruttopreise zu BT-112 und rechnet Netto und Steuer daraus zurück. Ein selbst gerechnetes Beispiel (nicht aus der Testsuite): zwei Artikel zu je 9,99 € brutto bei 19 %. Brutto zusammen 19,98 €. Netto je Artikel 8,39 €, zusammen 16,78 €; Steuer 16,78 € × 19 % = 3,19 €; Netto plus Steuer ergibt 19,97 €. Steht 19,98 € in BT-112, schlägt BR-CO-15 an.
  • Eine Rundung auf glatte Beträge, etwa auf 5 Cent, wird in BT-112 eingerechnet statt als Rundungsbetrag BT-114 ausgewiesen.
  • Eine Anzahlung wird von BT-112 abgezogen. BT-112 bleibt unverändert, die Anzahlung gehört in BT-113.
  • UBL mit Steuerwährung (BT-6): Der zweite cac:TaxTotal für die Steuer in Buchungswährung (BT-111) trägt versehentlich ebenfalls die Rechnungswährung als currencyID. Dann gibt es zwei passende Steuerbeträge, und die Bedingung „genau einer“ schlägt fehl.
  • Das Attribut currencyID fehlt an BT-110 oder ist anders geschrieben, etwa eur. Dann findet der Validator keinen Steuerbetrag in Rechnungswährung.

Beispiel aus der KoSIT-Testsuite

Testdatei 01.17a zeigt den Unterschied zwischen BT-112 und dem Zahlbetrag. Die Rechnung hat einen Steuersatz von 7 % und einen Rundungsbetrag von 0,01 €:

UBL: Steuer, Summen und Rundungsbetrag
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">314.86</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>7</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">314.86</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">314.86</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">336.9</cbc:TaxInclusiveAmount>
  <cbc:PayableRoundingAmount currencyID="EUR">0.01</cbc:PayableRoundingAmount>
  <cbc:PayableAmount currencyID="EUR">336.91</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/01.17a-INVOICE_ubl.xml (Apache 2.0)

CII: dieselben Beträge; die Schemareihenfolge stellt den Rundungsbetrag vor BT-112
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:LineTotalAmount>314.86</ram:LineTotalAmount>
  <ram:TaxBasisTotalAmount>314.86</ram:TaxBasisTotalAmount>
  <ram:TaxTotalAmount currencyID="EUR">22.04</ram:TaxTotalAmount>
  <ram:RoundingAmount>0.01</ram:RoundingAmount>
  <ram:GrandTotalAmount>336.9</ram:GrandTotalAmount>
  <ram:DuePayableAmount>336.91</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/01.17a-INVOICE_uncefact.xml (Apache 2.0)

Nachgerechnet aus Testdatei 01.17a
SchrittRechnungErgebnis
Umsatzsteuer BT-110314,86 € × 7 % = 22,0402 €22,04 €
BR-CO-15: BT-109 + BT-110314,86 € + 22,04 €336,90 € = BT-112
Fälliger Betrag BT-115336,90 € + Rundungsbetrag 0,01 €336,91 €

Hätte die Software den Rundungscent in BT-112 eingerechnet und dort 336,91 € geschrieben, wäre BR-CO-15 verletzt. Dass BT-112 in der Datei als 336.9 mit nur einer Nachkommastelle steht, ist unschädlich, weil der Validator Dezimalzahlen vergleicht.

Lösung

In der Rechnungssoftware

  1. Stellen Sie die Summenbildung für E-Rechnungen auf Netto-Basis um: Positionen netto summieren, Steuer je Steuersatz aus der Nettosumme berechnen, Brutto als Netto plus Steuer bilden.
  2. Bei Bruttopreisen im Einzelhandel prüfen Sie, ob Ihr Programm eine eigene Rundungslogik für E-Rechnungen anbietet; die Differenz zum gewohnten Bruttobetrag gehört dann in den Rundungsbetrag.
  3. Erfassen Sie Anzahlungen als gezahlten Betrag (BT-113), nicht als Abzug vom Rechnungsbetrag.

Im XML

  1. UBL: cbc:TaxInclusiveAmount = cbc:TaxExclusiveAmount + cac:TaxTotal/cbc:TaxAmount in Rechnungswährung; Rundung in cbc:PayableRoundingAmount.
  2. CII: ram:GrandTotalAmount = ram:TaxBasisTotalAmount + ram:TaxTotalAmount mit currencyID der Rechnungswährung; Rundung in ram:RoundingAmount.
  3. Bei abweichender Steuerwährung: zweiten cac:TaxTotal nur mit cbc:TaxAmount in der Steuerwährung ausgeben, ohne cac:TaxSubtotal.
  4. Prüfen Sie die Datei erneut mit E-Rechnung prüfen; bleibt ein Cent Differenz, liegt die Ursache meist schon in BT-109 oder in BR-CO-10.

E-Rechnung prüfen

Quellen

  1. EN16931 Validation artefacts v1.3.16 (CEN-Schematron)ConnectingEurope, eInvoicing-EN16931 (GitHub), 13. April 2026 · geprüft am 7. November 2026
  2. Validator-Konfiguration XRechnung 2026-08-31 (Release v2026-08-31, verwendet CEN-Schematron 1.3.16)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026
  3. XRechnung-Testsuite 2026-08-31 (Release v2026-08-31)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026

Weiterlesen

Grundlage: CEN-Schematron 1.3.16 (EN 16931), Validator-Konfiguration XRechnung 2026-08-31. Stand .