Skip to main content

BR-CO-13 Invoice total without VAT must equal line total minus allowances plus charges

The Invoice total amount without VAT (BT-109) must equal the Sum of invoice line net amount (BT-106) minus the Sum of allowances on document level (BT-107) plus the Sum of charges on document level (BT-108).

Problem Description

ERROR

EN 16931 calculation and consistency rule (BR-CO)

Interactive pipeline

Click a stage to see what it checks, or type a rule ID to light up the stage that reports it.

Try:

BR-CO-13 EN 16931 calculation rule

Reported in stage 2: EN 16931 rules.

Level error: the report recommends rejecting the invoice.

Stage 2 · What it checks

  • The core business terms are present (BR-01 to BR-65).
  • Totals add up and related fields agree (BR-CO); codes and decimals are valid (BR-CL, BR-DEC).
  • Each VAT category is consistent: S, Z, E, AE, K, G, O, L, M (BR-S, BR-Z, BR-AE, BR-IC …).

Example codes

Typical fix

Recalculate totals and VAT from the line data, and correct the VAT category in the source data.

A validator checks an e-invoice in stages. First the file must be well-formed XML that matches the UBL or CII schema (XSD). Then the EN 16931 business rules run: BR core rules, BR-CO calculations, BR-CL code lists, BR-DEC decimals and VAT-category rules such as BR-S. Next come the national or network rules that BT-24 selects: BR-DE for XRechnung, PEPPOL-EN16931 for Peppol BIS Billing. The report lists every failed rule: one error means reject, warnings alone still mean accept. BR-CO-13: EN 16931 calculation rule, reported in the stage “EN 16931 rules”. Rule sets: KoSIT validator 1.6.3 with the XRechnung configuration of 31 Aug 2026 (EN 16931 artefacts 1.3.16), Peppol BIS Billing 3.0.21.

Context and Significance

BR-CO-13 checks the invoice total without VAT (UBL: cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount; CII: ram:TaxBasisTotalAmount) exactly against BT-106 − BT-107 + BT-108. BR-CO-15 and BR-CO-16 each check their own equation with the BT-109 value stated in the file, so they do not fail automatically; a wrong BT-109 often leads to a wrong gross total or amount due as well. A typical cause is a document level allowance or charge that is included in BT-109 but missing from BT-107 or BT-108.

Solution

Recompute BT-109 = BT-106 − BT-107 + BT-108 (treat a missing BT-107 or BT-108 as zero) and write the result into the totals block (UBL: cbc:TaxExclusiveAmount; CII: ram:TaxBasisTotalAmount).

Quick actions

Valid Examples

  • BT-106 = 200.00, BT-107 = 10.00, BT-108 = 5.00 → BT-109 = 195.00
  • BT-106 = 100.00, no allowances or charges → BT-109 = 100.00

Invalid Examples

  • BT-106 = 200.00, BT-107 = 10.00, BT-108 = 5.00 but BT-109 = 200.00
  • BT-109 left equal to BT-106 even though BT-107 > 0 and there are no charges

Affected Fields

Validation Tools