Rechenregeln

BR-CO-15: Bruttobetrag (BT-112) ≠ Netto + Umsatzsteuer

Der Bruttobetrag muss genau Nettobetrag plus Umsatzsteuer-Gesamtbetrag sein.

Steckbrief

Regel
BR-CO-15
Schweregrad
Fehler – die Rechnung ist ungültig
Regelwerk
EN 16931 – gilt für XRechnung und ZUGFeRD/Factur-X
Betroffene Felder
BT-112, BT-109, BT-110
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-15] Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

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

Was die Regel verlangt

Der Gesamtbetrag mit Umsatzsteuer (BT-112) muss genau der Summe aus Gesamtbetrag ohne Umsatzsteuer (BT-109) und Umsatzsteuer-Gesamtbetrag (BT-110) entsprechen. Die Regel gehört zur EN 16931 und gilt für XRechnung, ZUGFeRD und Factur-X.

Bereits gezahlte Beträge (BT-113) und Rundungsbeträge (BT-114) verändern nicht BT-112, sondern erst den Zahlbetrag (BT-115).

Typische Ursachen

  • Rundung pro Position: Der Bruttobetrag wird aus den gerundeten Bruttobeträgen der Positionen addiert statt aus Netto plus Steuer. Bei vielen Positionen weicht er dann um einige Cent ab.
  • Eine Anzahlung wurde von BT-112 abgezogen statt in BT-113 angegeben.
  • BT-110 enthält einen anderen Wert als die Summe der Steuerbeträge in der Aufschlüsselung (BT-117).
  • Fremdwährung: Der Steuerbetrag in Buchungswährung (BT-111) wurde versehentlich in die Summe übernommen.

So sieht es im XML aus

✗ CII – falsch
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    <ram:LineTotalAmount>300.00</ram:LineTotalAmount>
    <ram:TaxBasisTotalAmount>300.00</ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">57.00</ram:TaxTotalAmount>
    <ram:GrandTotalAmount>357.01</ram:GrandTotalAmount>   <!-- 300.00 + 57.00 = 357.00 -->
    <ram:DuePayableAmount>357.01</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
✓ CII – korrekt
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    <ram:LineTotalAmount>300.00</ram:LineTotalAmount>
    <ram:TaxBasisTotalAmount>300.00</ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">57.00</ram:TaxTotalAmount>
    <ram:GrandTotalAmount>357.00</ram:GrandTotalAmount>
    <ram:DuePayableAmount>357.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

In UBL ist BT-112 cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount.

Lösung in C#

Berechnen Sie die Summen nacheinander aus den Werten, die tatsächlich in der Rechnung stehen – nie aus eigenen Zwischenwerten. Mit dem Facturexa Creator:

C#
rechnung.TaxBasisAmount = rechnung.LineTotalAmount
    - (rechnung.AllowanceTotalAmount ?? 0) + (rechnung.ChargeTotalAmount ?? 0);   // BT-109
rechnung.TaxTotalAmount = rechnung.Taxes.Sum(t => t.TaxAmount ?? 0);         // BT-110
rechnung.GrandTotalAmount = rechnung.TaxBasisAmount + rechnung.TaxTotalAmount; // BT-112
rechnung.DuePayableAmount = rechnung.GrandTotalAmount;                         // BT-115 (ohne Anzahlung)

Verwandte Regeln

Alle erklärten Prüfregeln