BR-44: Each Invoice line charge shall have an Invoice line charge reason or an invoice line…
Peppol BIS Billing 3.0.20 · UBL
Original rule text
[BR-44]-Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)BR-44 is a fatal rule in the business layer of Peppol BIS Billing 3.0.20 · UBL. An invoice that breaks it is rejected.
What this rule requires
Each line charge (a cac:AllowanceCharge with cbc:ChargeIndicator = true) under cac:InvoiceLine or cac:CreditNoteLine must contain at least one of cbc:AllowanceChargeReason (free-text reason) or cbc:AllowanceChargeReasonCode (coded reason). The test exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode) means one is enough; both are not required. The rule only checks for the presence of these elements, not their content.
How to fix
In the invoice or generating system, find the line charge that caused the error and add at least one of the two child elements. For example, add <cbc:AllowanceChargeReason> with the reason text, or add <cbc:AllowanceChargeReasonCode> with a code value from the applicable code list referenced by the specification. If both are missing, the document fails validation.
Guidance on this rule. The original text above is authoritative.
Where to go next
No published Peppol BIS Billing UBL release comparison lists a change to BR-44.
Validate an invoice against these rules · All release changes