Counterfoil rule note

BR-CO-05

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 allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.

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

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 statement says a document-level allowance reason code (BT-98) and a document-level allowance reason (BT-97) shall indicate the same type of allowance, and the published test is true(). The statement ends with a period and does not say MUST. The context is an invoice or a credit note allowance whose charge indicator is false, with spaces around = and around the bar. The test does not compare the reason code with the reason text. It does not call exists.

What to change

When both the document-level allowance reason code (BT-98) and the reason (BT-97) are present, make them name the same allowance type. The published test is true().

Illustration

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

Fails the stated condition. A document-level allowance has a reason code and a reason text that name different allowance types.

Passes the stated condition. A document-level allowance has a reason code and a reason text that name the same allowance type.

Published context and test

Copied from the source. Not reimplemented on this page.

/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
true()

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