BR-CO-13: Nettogesamtbetrag stimmt nicht
Der Gesamtbetrag ohne Umsatzsteuer (BT-109) muss der Summe der Positionen minus Nachlässe plus Zuschläge auf Belegebene entsprechen.
- Regelwerk
- EN 16931 (CEN)
- Syntax
- UBL und CII
- Betroffene Felder
- BT-107, BT-108, BT-109, BT-131
Offizieller Regeltext
Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).
Regeltext aus den Validierungsartefakten zu EN 16931 in Version 1.3.16 (CEN/TC 434, veröffentlicht von ConnectingEurope), Lizenz EUPL 1.2; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31.
Schweregrad
- UBL-Rechnung: Fehler
- UBL-Gutschrift: Fehler
- CII: Fehler
Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.
Typische Ursachen
Rundungsdifferenzen oder Nachlässe, die zwar abgezogen, aber nicht als Nachlass übertragen werden.
So behebst du den Fehler
BT-109 aus den übertragenen Werten berechnen – BT-106 minus BT-107 plus BT-108 – und auf zwei Nachkommastellen runden.
Geprüftes Beispiel: falsch und richtig
Die Auszüge stammen aus vollständigen, synthetischen Rechnungen des E-Rechnungs-Testkorpus. Geänderte Zeilen sind hervorgehoben. Beide Dateien werden in den automatischen Tests mit dem KoSIT-Validator geprüft.
Beispiel in UBL
Änderung gegenüber der gültigen Rechnung: Rechnungsbetrag ohne USt (BT-109) um 1 Cent zu hoch, Folgebeträge angepasst.
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">501.55</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">501.56</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">596.85</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">596.85</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine><cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">501.55</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">501.55</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">596.84</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">596.84</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-co-13-nettobetrag-falsch_ubl.xml (falsch) und standard_ubl.xml (richtig).
Beispiel in CII
Änderung gegenüber der gültigen Rechnung: Rechnungsbetrag ohne USt (BT-109) um 1 Cent zu hoch, Folgebeträge angepasst.
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>501.55</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>501.56</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">95.29</ram:TaxTotalAmount>
<ram:GrandTotalAmount>596.85</ram:GrandTotalAmount>
<ram:DuePayableAmount>596.85</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement> <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>501.55</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>501.55</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">95.29</ram:TaxTotalAmount>
<ram:GrandTotalAmount>596.84</ram:GrandTotalAmount>
<ram:DuePayableAmount>596.84</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-co-13-nettobetrag-falsch_cii.xml (falsch) und standard_cii.xml (richtig).
Testdateien zu BR-CO-13
- br-co-13-nettobetrag-falsch_ubl.xml – Rechnungsbetrag ohne USt (BT-109) um 1 Cent zu hoch, Folgebeträge angepasst
- br-co-13-nettobetrag-falsch_cii.xml – Rechnungsbetrag ohne USt (BT-109) um 1 Cent zu hoch, Folgebeträge angepasst
Technische Details: Kontext und Prüfausdruck aus dem Schematron
CII
Kontext:
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Prüfausdruck:
(xs:decimal(ram:TaxBasisTotalAmount[1]) = round((xs:decimal(ram:LineTotalAmount[1]) - xs:decimal(ram:AllowanceTotalAmount[1]) + xs:decimal(ram:ChargeTotalAmount[1])) * 10 * 10) div 100) or ((xs:decimal(ram:TaxBasisTotalAmount[1]) = round((xs:decimal(ram:LineTotalAmount[1]) - xs:decimal(ram:AllowanceTotalAmount[1])) * 10 * 10) div 100) and not(ram:ChargeTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount[1]) = round((xs:decimal(ram:LineTotalAmount[1]) + xs:decimal(ram:ChargeTotalAmount[1])) * 10 * 10) div 100) and not(ram:AllowanceTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount[1]) = round((xs:decimal(ram:LineTotalAmount[1])) * 10 * 10) div 100) and not(ram:ChargeTotalAmount) and not(ram:AllowanceTotalAmount))
UBL
Kontext:
cac:LegalMonetaryTotal
Prüfausdruck:
((cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10) div 100 )) or (not(cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10 ) div 100)) or ((cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount)) * 10 * 10 ) div 100)) or (not(cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = xs:decimal(cbc:LineExtensionAmount)))
Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.