BR-DEC-12
The invoice total without VAT (BT-109) has more than two decimal places.
ErrorEN 16931UBLCII
Why it happens
An unrounded computed value was written straight into the document — 1234.5678 instead of 1234.57.
How to fix it
Round every monetary amount to exactly two decimals before serialising. This rule has siblings for nearly every amount field, so fix the rounding step rather than the single value.
The official rule
EN 16931, EnglishThe allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.
Technical detail — where the rule is evaluated and the exact test
| Syntax | Context and assertion |
|---|---|
| UBL | cac:LegalMonetaryTotal |
string-length(substring-after(cbc:TaxExclusiveAmount,'.'))<=2 | |
| CII | //ram:SpecifiedTradeSettlementHeaderMonetarySummation |
string-length(substring-after(ram:TaxBasisTotalAmount,'.'))<=2 |
Check your own invoice
Paste or drop your UBL or CII file into the free validator. It runs the official EN 16931 ruleset plus the German XRechnung layer and lists every rule that fires, BR-DEC-12 included — no signup, no limit.
Validate an e-invoice freeFixing the data at source instead? The CSV converter builds a compliant invoice from a spreadsheet export.