Counterfoil rule note
Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.
Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.
Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-44/
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.
Each Invoice line charge must have an Invoice line charge reason or an invoice line allowance reason code. The message names no BG id and no BT id. It says "an invoice line allowance reason code", and the word "invoice" there is lowercase. It says "shall have" and starts with "Each". It ends with a period. The context is an invoice line charge or a credit note line charge, with spaces around = on the charge indicator. The published test checks that an allowance-charge reason or an allowance-charge reason code exists.
On each invoice line charge, send an allowance-charge reason or an allowance-charge reason code.
Illustration of the condition in the official statement. Not an example published by the source.
Fails the stated condition. An invoice line charge or a credit note line charge has neither a reason nor a reason code.
Passes the stated condition. That line charge has a reason or a reason code.
Copied from the source. Not reimplemented on this page.
//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)
All rule notes · JSON · Markdown · llms.txt · Invoice page · Privacy