Counterfoil rule note
Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.
Amounts shall be decimal up to two fraction digits
Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-DT-01/
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.
Amounts shall be decimals with at most two fraction digits. The statement has no period and says shall. It is 50 characters. The flag is fatal. The context starts with //. It keeps a space before the quoted Amount and writes PriceAmount with no space before the quote. It excludes an ancestor cac:Price/cac:AllowanceCharge. The published test reads the string length after a quoted period and writes <=2 with no space before <=. It does not call count and it does not call exists.
Send amounts other than a price amount with at most two digits after the decimal point.
Illustration of the condition in the official statement. Not an example published by the source.
Fails the stated condition. An amount that is not a price amount has three digits after the decimal point.
Passes the stated condition. An amount that is not a price amount has two digits after the decimal point, or fewer.
Copied from the source. Not reimplemented on this page.
//*[ends-with(name(), 'Amount') and not(ends-with(name(),'PriceAmount')) and not(ancestor::cac:Price/cac:AllowanceCharge)]
string-length(substring-after(.,'.'))<=2
All rule notes · JSON · Markdown · llms.txt · Invoice page · Privacy