Peppol BIS Billing 3.0.21 · UBL

BR-33: Each Document level allowance (BG-20) shall have a Document level allowance reason…

Peppol BIS Billing 3.0.21 · UBL

fatalbusiness

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).

Stored validation assertion
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