BR-CO-12Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Offizieller Regeltext
Die Summe der Zuschläge auf Dokumentebene (BT-108) muss exakt der Summe der einzelnen Zuschlagsbeträge (BT-99) entsprechen — das Gegenstück zu BR-CO-11.
- Schweregrad
- Fehler
- Gilt für
- CII, UBL
- Regelwerk
- v2026-08-31
- Geprüft am
Geschrieben und gegen das offizielle KoSIT-Regelwerk geprüft von Dmytro Yalanskyi, NormAPI.
Warum tritt BR-CO-12 auf?
Wie bei BR-CO-11, nur auf der Zuschlagsseite: BT-108 stammt aus dem eigenen Rechnungsobjekt, die einzelnen Zuschläge werden gefiltert geschrieben. Ein häufiger Sonderfall ist ein Zuschlag, der versehentlich mit cbc:ChargeIndicator false im Dokument steht — er zählt dann als Abschlag und fällt aus der Summe, die ihn noch enthält.
Was der Validator prüft
Der Ausdruck, den das offizielle KoSIT-Regelwerk auswertet — nicht paraphrasiert, sondern aus der ausgelieferten Schematron-Datei gelesen. UBL und CII adressieren verschiedene Dokumentbäume, deshalb steht dieselbe Regel je Syntax anders da.
- UBL
xs:decimal(cbc:ChargeTotalAmount) = (round(sum(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]/xs:decimal(cbc:Amount)) * 10 * 10) div 100) or (not(cbc:ChargeTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]))- CII
(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()])and not (ram:ChargeTotalAmount)) or ram:ChargeTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()]/ram:ActualAmount[1])* 10 * 10 ) div 100)
Quelle: Regelwerk v2026-08-31
Wie behebt man BR-CO-12?
Summieren Sie BT-108 aus allen cac:AllowanceCharge mit cbc:ChargeIndicator true und schreiben Sie das Ergebnis nach cbc:ChargeTotalAmount (UBL) beziehungsweise ram:ChargeTotalAmount (CII). Ein Zuschlag gehört entweder in die Position oder auf Dokumentebene, nie in beide.
Im XML
Ausschnitt in UBL. Der CII-Pfad steht oben im Text — dieselbe Änderung, andere Elementnamen.
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">20.00</cbc:Amount>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
<cbc:ChargeTotalAmount currencyID="EUR">35.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal><cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">20.00</cbc:Amount>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
<cbc:ChargeTotalAmount currencyID="EUR">20.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal>Verwandte Regeln
- Rechenregeln und Querbezüge — wenn die Summen nicht zusammenpassen
- BR-CO-11 — Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).
- BR-CO-13 — 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).
NormAPI liefert technische Validierung, keine Steuer- oder Rechtsberatung.