Counterfoil rule note

BR-DEC-28

Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.

Country
EU
Syntax
UBL
Severity
fatal
Last verified
2026-10-18

Official statement

The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.

Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-DEC-28/

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.

Plain-language reading

The Invoice line charge base amount (BT-142) 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 starts with // and writes ChargeIndicator = true() with spaces around =. It is the same context as BR-43. The statement is not. This is a decimal limit, not the BR-43 presence check. The published test is the same string as BR-DEC-02. It reads cbc:BaseAmount and writes <=2 with no space before <=. It does not call exists.

What to change

Send the Invoice line charge base amount (BT-142) with at most 2 digits after the decimal point.

Illustration

Illustration of the condition in the official statement. Not an example published by the source.

Fails the stated condition. An invoice line charge base amount has 3 digits after the decimal point.

Passes the stated condition. That amount has 2 digits after the decimal point.

Published context and test

Copied from the source. Not reimplemented on this page.

//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]
string-length(substring-after(cbc:BaseAmount,'.'))<=2

All rule notes · JSON · Markdown · llms.txt · Invoice page · Privacy