BT-112Invoice total amount with VATBT-113Paid amountBT-114Rounding amountBT-115Amount due for payment
Offizieller Regeltext
[BR-CO-16] Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
Der normative Text ist Englisch und wird unverändert zitiert.
Warum dieser Fehler auftritt
Der fällige Betrag (BT-115) muss dem Bruttobetrag (BT-112) abzüglich des bereits gezahlten Betrags (BT-113) zuzüglich des Rundungsbetrags (BT-114) entsprechen. Die Regel prüft cac:LegalMonetaryTotal/cbc:PayableAmount gegen cbc:TaxInclusiveAmount, cbc:PrepaidAmount und cbc:PayableRoundingAmount (UBL) bzw. ram:DuePayableAmount gegen ram:GrandTotalAmount, ram:TotalPrepaidAmount und ram:RoundingAmount (CII). Sie schlägt meist fehl, wenn die Software nach einer Teilzahlung den offenen Restbetrag schreibt, ohne auch die Anzahlung auszuweisen, oder das Vorzeichen des Rundungsbetrags falsch setzt.
So beheben Sie den Fehler
Formel: BT-115 = BT-112 - BT-113 + BT-114, auf 2 Nachkommastellen gerundet; fehlende BT-113 oder BT-114 zählen als 0. Bei erhaltener Anzahlung diese als positiven Wert in cbc:PrepaidAmount / ram:TotalPrepaidAmount eintragen und cbc:PayableAmount / ram:DuePayableAmount entsprechend reduzieren. cbc:PayableRoundingAmount / ram:RoundingAmount nur für Bargeldrundung verwenden, mit dem Vorzeichen der Anpassung (z. B. -0.02 oder 0.03). Bei einer vollständig bezahlten Rechnung ist PrepaidAmount gleich TaxInclusiveAmount und PayableAmount 0.00.
Beispiel (gültig)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">200.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">238.00</cbc:TaxInclusiveAmount>
<cbc:PrepaidAmount currencyID="EUR">100.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">138.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Was der Validator prüft
Geprüftes Element (Kontext):
UBL
cac:LegalMonetaryTotalTest (XPath):
(exists(cbc:PrepaidAmount) and not(exists(cbc:PayableRoundingAmount)) and (xs:decimal(cbc:PayableAmount) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and not(exists(cbc:PayableRoundingAmount)) and xs:decimal(cbc:PayableAmount) = xs:decimal(cbc:TaxInclusiveAmount)) or (exists(cbc:PrepaidAmount) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = xs:decimal(cbc:TaxInclusiveAmount)))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))
Rechnung prüfen
Legen Sie Ihre XML- oder PDF-Datei im Validator ab; jede verletzte Regel ist mit ihrer Seite hier verlinkt. Kostenlos, ohne Konto, die Datei wird nicht gespeichert.
Dieselbe Prüfung per API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateVerwandte Regeln
BR-CO-15Bruttosumme (BT-112) ist nicht Netto plus UmsatzsteuerBR-CO-25Fälliger Betrag ohne Fälligkeitsdatum oder ZahlungsbedingungenBR-14An Invoice shall have the Invoice total amount with VATBR-15An Invoice shall have the Amount due for paymentBR-DEC-14The allowed maximum number of decimals for the Invoice total amount with VAT is 2BR-DEC-16The allowed maximum number of decimals for the Paid amount is 2BR-DEC-17The allowed maximum number of decimals for the Rounding amount is 2BR-DEC-18The allowed maximum number of decimals for the Amount due for payment is 2
Häufige Fragen
Was bedeutet BR-CO-16?
BR-CO-16 ist eine EN-16931-Kernregel: Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
Wird meine Rechnung wegen BR-CO-16 abgelehnt?
Ja. BR-CO-16 ist als „fatal“ eingestuft; Validatoren (KoSIT, Peppol Access Points, ZRE/OZG-RE) weisen die Rechnung zurück, bis der Fehler behoben ist.
Für welche Formate gilt BR-CO-16?
Jede EN-16931-Rechnung: XRechnung, ZUGFeRD 2.x / Factur-X (Profile EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0 sowie nationale CIUS. Syntax: UBL und CII.
Quelle: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Katalog erzeugt aus dem offiziellen Schematron am 2026-10-14.