Counterfoil rule note

BR-CL-19

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

Coded allowance reasons MUST belong to the UNCL 5189 code list

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

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

A coded allowance reason must belong to the UNCL 5189 code list. The statement says MUST, writes UNCL 5189 with a space, and has no period. The context is an allowance whose charge indicator is false, with spaces around =. The test reads the element text and has a space after each comma. The list includes 41 and 105. The test does not call exists.

What to change

On an allowance, set the reason code to a value from the UNCL 5189 list, with no space in the code.

Illustration

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

Fails the stated condition. An allowance reason code contains a space, or it is not in the UNCL 5189 list.

Passes the stated condition. An allowance reason code is 41, with no space.

Published context and test

Copied from the source. Not reimplemented on this page.

cac:AllowanceCharge[cbc:ChargeIndicator = false()]/cbc:AllowanceChargeReasonCode
((not(contains(normalize-space(.), ' ')) and contains(' 41 42 60 62 63 64 65 66 67 68 70 71 88 95 100 102 103 104 105 ', concat(' ', normalize-space(.), ' '))))

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