BR-33: Each Document level allowance (BG-20) shall have a Document level allowance reason…
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)BR-33 is a fatal rule in the business layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected. It refers to BG-20, BT-97, BT-98.
What this rule requires
Each Document level allowance (BG-20) must have at least one of a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98). In UBL, this means that within every cac:AllowanceCharge where cbc:ChargeIndicator is false, either cbc:AllowanceChargeReason or cbc:AllowanceChargeReasonCode must exist. In CII, within the ram:SpecifiedTradeAllowanceCharge whose ram:ChargeIndicator has udt:Indicator set to false, either ram:Reason or ram:ReasonCode must exist. This is a fatal rule, so a document that does not satisfy it fails validation.
How to fix
Ensure each document-level allowance contains at least one reason element. In UBL, add cbc:AllowanceChargeReason or cbc:AllowanceChargeReasonCode inside the relevant cac:AllowanceCharge. In CII, add ram:Reason or ram:ReasonCode inside the relevant ram:SpecifiedTradeAllowanceCharge. The rule only checks for the presence of one of these elements; it does not specify allowed code values, so if using a reason code, check the applicable code list.
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-33.
Validate an invoice against these rules · All release changes