Skip to content

Ironfang Finance - Rule reference

BR-DEC-14: Write the total with VAT with no more than two decimals

cbc:TaxInclusiveAmount has more than two digits after the decimal point. Write the invoice total amount with VAT to two decimals at most.

EN 16931Fatal: the document is invalidTotals

On this page

The short answer

BR-DEC-14 fails when cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount has more than two characters after the decimal point. Write the total with VAT as 80.20, not 80.200.

The recorded failure is padding only: 68.50 plus VAT of 11.70 is 80.20, and the third digit is a zero. UBL-DT-01 reports the same element.

What the rule checks

The rule looks at cbc:TaxInclusiveAmount in cac:LegalMonetaryTotal and counts every character after the decimal point, whitespace included; when tried, 80.20 followed by a space failed this rule and UBL-DT-01.

The value is checked by BR-CO-15, not here. When tried, an unrounded 80.204 reported BR-CO-15 at the document root as well, because that rule compares the total exactly with 68.50 + 11.70 rounded to two decimals, which is 80.20. BR-CO-16 did not object, since with a rounding amount present it rounds both sides of its comparison.

The totals either side of this one have rules of their own: the total without VAT is BR-DEC-12, and the amount due is BR-DEC-18.

TermMeaningUBL element
BT-112Invoice total amount with VATcac:LegalMonetaryTotal/cbc:TaxInclusiveAmount

How an integration ends up here

Possible causes, from the shape of the rule rather than from measured usage:

  • The total with VAT is computed as net plus VAT at full precision and written without a final rounding.
  • VAT is added per line at three or four decimals and the gross total is built from those figures.
  • A decimal column with a scale of three is written out at full scale.

How to fix it

  1. Add the written total without VAT and the written VAT total, both already at two decimals, and round the result.
  2. Write it to cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount with no more than two decimals and nothing around the digits.
  3. Recalculate the amount due from the rounded total with VAT.

Validate your corrected invoice

Before and after

These are fragments, not complete documents. The complete synthetic documents they come from are linked below.

Fragment of the failing invoice: 68.50 plus 11.70 VAT written as 80.200

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <!-- VAT breakdowns omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">80.200</cbc:TaxInclusiveAmount>
  <!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>

Fragment of the corrected invoice: the total with VAT written as 80.20

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <!-- VAT breakdowns omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
  <!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>

The failing invoice gives the total with VAT as 80.200 and the corrected invoice as 80.20; the total without VAT, the VAT total and every later figure are identical. Because the value is the same, BR-CO-15 accepts both. The failing document reports BR-DEC-14 at cac:LegalMonetaryTotal and UBL-DT-01 at cbc:TaxInclusiveAmount. UBL-DT-01 applies two decimals to all amount elements except item net prices and allowance amounts inside cac:Price, so the total with VAT, like every other monetary total, cannot fail one without the other.

What the validator reported

Recorded on phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, the engine behind the free validator, using synthetic data. A recorded result is regression evidence for these documents; it is not a certification.

Where it applies

  • Applies to UBL Invoice and CreditNote. When tried, a credit note with a total with VAT of 80.200 reported the same pair.
  • The count does not depend on the currency the total is in.
  • A total with VAT of zero or below is counted in the same way, since a minus sign stands before the decimal point.

Scope and source

Written for Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, as applied to UBL 2.1 Invoice and CreditNote documents. Other profiles, syntaxes and releases can define this identifier differently. Guidance version 2026-09-28.1: source checked 2026-09-28, explanation last updated 2026-09-28.

The official definition of BR-DEC-14 carries the normative wording and test. This page is our explanation of it, not a copy.

Guidance does not change the engine verdict. Fixing this finding does not mean the document passes every layer, and validation does not certify legal or tax compliance or transmit a document over Peppol.