BR-CO-10: Sum of line net amounts (BT-106) is wrong
BT-106 must equal the exact sum of all invoice line net amounts (BT-131).
Fact sheet
- Rule
BR-CO-10- Severity
- Error – the invoice is invalid
- Rule set
- EN 16931 – applies to XRechnung and ZUGFeRD/Factur-X
- Affected fields
- BT-106, BT-131
- Syntax
- CII & UBL
Check your invoice now
Upload a PDF or XML – free, without sign-up, against the official rule sets.
Open the online validatorOfficial wording
[BR-CO-10] Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
Source: official EN 16931 Schematron (CEN), as also applied to XRechnung and ZUGFeRD/Factur-X.
What the rule requires
The sum of invoice line net amounts (BT-106) must equal the sum of all invoice line net amounts (BT-131) exactly – to the cent, with no tolerance. The rule is part of EN 16931 and therefore applies to XRechnung as well as to ZUGFeRD and Factur-X.
Document-level allowances and charges (BG-20, BG-21) do not belong in BT-106; they only enter the invoice total without VAT (BT-109). Line-level discounts, on the other hand, are already included in the line net amount.
Common causes
- Rounding: BT-106 is computed from unrounded values (quantity × price) while the lines are written rounded.
- A discount on the whole invoice was already subtracted in BT-106.
- Lines were removed or added later, but the sum was not recalculated.
- Credit lines with negative amounts are missing from the sum.
What it looks like in XML
<ram:IncludedSupplyChainTradeLineItem> <!-- line 1 -->
… <ram:LineTotalAmount>300.00</ram:LineTotalAmount> …
</ram:IncludedSupplyChainTradeLineItem>
<ram:IncludedSupplyChainTradeLineItem> <!-- line 2 -->
… <ram:LineTotalAmount>49.99</ram:LineTotalAmount> …
</ram:IncludedSupplyChainTradeLineItem>
…
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>350.00</ram:LineTotalAmount> <!-- BT-106: 300.00 + 49.99 = 349.99 -->
…
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>349.99</ram:LineTotalAmount>
…
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
In UBL, BT-106 is cac:LegalMonetaryTotal/cbc:LineExtensionAmount.
Fix in C#
Round each line net amount to two decimals before setting it, then build the sum from exactly these values. With the Facturexa Creator:
// Compute BT-106 from the lines instead of keeping it separately
invoice.LineTotalAmount = invoice.TradeLineItems.Sum(l => l.LineTotalAmount);
Tip: check generated invoices with the Facturexa Validator before sending them – it reports BR-CO-10 offline inside your own application.