Counterfoil rule note
Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.
The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.
Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-DEC-15/
Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL
Severity note: fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-18.
The Invoice total VAT amount in accounting currency (BT-111) may have at most 2 decimals. The statement says "allowed maximum number of decimals" and "is 2", and it ends with a period. It does not say shall. The context is the invoice or the credit note. This is a decimal limit, not the BR-53 presence check. The published test reads cbc:TaxAmount whose currencyID equals the tax currency code, with spaces around =. It writes <=2 with no space before <= and no space after the comma. The absent branch is not(...) and does not call exists.
Send the Invoice total VAT amount in accounting currency (BT-111) with at most 2 digits after the decimal point.
Illustration of the condition in the official statement. Not an example published by the source.
Fails the stated condition. The invoice total VAT amount in the accounting currency has 3 digits after the decimal point.
Passes the stated condition. That amount has 2 digits after the decimal point.
Copied from the source. Not reimplemented on this page.
/ubl:Invoice | /cn:CreditNote
(//cac:TaxTotal/cbc:TaxAmount[@currencyID = cbc:TaxCurrencyCode] and (string-length(substring-after(//cac:TaxTotal/cbc:TaxAmount[@currencyID = cbc:TaxCurrencyCode],'.'))<=2)) or (not(//cac:TaxTotal/cbc:TaxAmount[@currencyID = cbc:TaxCurrencyCode]))
All rule notes · JSON · Markdown · llms.txt · Invoice page · Privacy