BR-CO-12
Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
What does this rule mean?
The sum of document-level charges (BT-108) does not equal the sum of the individual charge amounts (BT-99).
A total is a calculation, not an entry — it has to follow from the items, or the booking diverges from the document.
- BT-99
- Document level charge amount
- BT-108
- Sum of charges on document level
Official rule message (standard)
Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Where the rule applies
Syntax: CII · UBL
The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.
UBL
cac:LegalMonetaryTotal
CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Technical test
The rule passes when this Schematron expression holds true:
(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)How to fix it
Touches amounts, VAT or IBAN. We never change these automatically — correct them in your source data.
Recompute BT-108 as the sum of all BT-99.
Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.
Check an e-invoice here
Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.