BR-31: Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92)
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).
exists(cbc:Amount)BR-31 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-92.
What this rule requires
The rule requires that every document-level allowance (BG-20) also carries a document-level allowance amount (BT-92). It is fatal, so an invoice that does not satisfy it fails validation. In UBL, the allowance is an cac:AllowanceCharge with cbc:ChargeIndicator set to false, and the amount must be present as a child cbc:Amount. In CII, the allowance is a ram:SpecifiedTradeAllowanceCharge whose ram:ChargeIndicator has udt:Indicator = false, and the amount must be present as a sibling ram:ActualAmount. The test checks only that the respective element exists, not its value.
How to fix
For each document-level allowance, ensure the amount element is present in the XML. In UBL, add a cbc:Amount child inside the cac:AllowanceCharge where cbc:ChargeIndicator is false and populate it with the allowance amount. In CII, add a ram:ActualAmount sibling after the ram:ChargeIndicator whose udt:Indicator is false and populate it with the allowance amount. If an allowance is present but no amount is available, check the source data or mapping: the amount must be supplied as part of the allowance. The rule does not specify a minimum or format for the amount, only that the element exists.
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-31.
Validate an invoice against these rules · All release changes