Counterfoil rule note

UBL-SR-31

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

Document level charge reason shall occur maximum once

Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-SR-31/

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 document level charge reason shall occur at most once. The statement has no period and says shall. It is 53 characters. The flag is fatal. The context is an allowance charge whose charge indicator is true. That comparison writes = with a space on each side. The published test counts cbc:AllowanceChargeReason. That test string is the same as UBL-SR-30. The count comparison has a space before <= and a space after it.

What to change

On a document-level charge, send at most one charge reason.

Illustration

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

Fails the stated condition. A document-level charge has two charge reasons.

Passes the stated condition. A document-level charge has one charge reason, or none.

Published context and test

Copied from the source. Not reimplemented on this page.

cac:AllowanceCharge[cbc:ChargeIndicator = true()]
(count(cbc:AllowanceChargeReason) <= 1)

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