Startseite › Wissen › BR-CO-16
BR-CO-16: Fälliger Zahlungsbetrag (BT-115) falsch
Der fällige Betrag (BT-115) muss Bruttobetrag (BT-112) minus bereits gezahlter Betrag (BT-113) plus Rundungsbetrag (BT-114) sein. Wer weniger als das Brutto verlangt, muss die Differenz also strukturiert ausweisen.
Originaltext der Regel
Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
Technische Prüfung (Schematron/XPath)
| Regelwerk | Kontext | Test |
|---|---|---|
| EN 16931, UBL | cac:LegalMonetaryTotal | (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:PayableRoundingAm … |
| EN 16931, CII | //ram:SpecifiedTradeSettlementHeaderMonetarySummation | (xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) - xs:decimal(ram:TotalPrepaidAmount[1]) + xs:decimal(ram:RoundingAmount[1])) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) + xs:decimal(ram:RoundingAmount[1])) and not(ram:TotalPrepaidAmount)) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) - xs:decimal(ram:TotalPrepaidAmount[1])) and not(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:deci … |
Aus der offiziellen XRechnung 3.0.2 (KoSIT-Konfiguration 2026-08-31).
Typische Ursachen
- Anzahlung oder Abschlag wurde vom Zahlbetrag abgezogen, aber nicht als „Paid amount“ (BT-113) angegeben – wie im Beispiel.
- Bargeld-Rundung ohne Rundungsbetrag (BT-114).
So beheben Sie den Fehler
- Vorauszahlungen in UBL als
cbc:PrepaidAmount, in CII alsram:TotalPrepaidAmountangeben. - Rundungsdifferenzen als
cbc:PayableRoundingAmountbzw.ram:RoundingAmount.
Beispiel: vorher und nachher
Fehlerhaft
<cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">1190.00</cbc:TaxInclusiveAmount>
<!-- hier fehlt die Angabe -->
<cbc:PayableAmount currencyID="EUR">1000.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Korrigiert
<cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">1190.00</cbc:TaxInclusiveAmount>
<cbc:PrepaidAmount currencyID="EUR">190.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">1000.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Ausschnitt aus einer vollständigen XRechnung 3.0 (UBL). Ergebnis mit dem KoSIT-Validator: Die fehlerhafte Variante erzeugt BR-CO-16 und wird abgelehnt; die korrigierte Variante wird akzeptiert.
Hintergrund: E-Rechnung empfangen und prüfen
Verwandte Themen
Keine Steuer- oder Rechtsberatung: Diese Seite erklärt technische Prüfregeln und dient der Orientierung. Verbindlich sind Gesetz, BMF-Schreiben und das offizielle KoSIT-Regelwerk. Bei steuerlichen Fragen wenden Sie sich an Ihre Steuerberatung. Stand: 2026-10-06, geprüft mit XRechnung 3.0.2 (KoSIT-Konfiguration 2026-08-31).