BR-33
Every document-level allowance (BG-20) must carry a reason — in plain text (BT-97), as a code (BT-98), or both. An amount with no justification is something the recipient cannot check.
- Severity
- Error
- Applies to
- CII, UBL
- Rule set
- v2026-01-31
Official rule text
Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).
Why does BR-33 happen?
This rule and BR-CO-21 are one check written twice in the norm. They always report together: a single missing reason produces two error codes, not two errors.
How do you fix BR-33?
Set cbc:AllowanceChargeReason or cbc:AllowanceChargeReasonCode inside cac:AllowanceCharge in UBL, ram:Reason or ram:ReasonCode in CII. That clears BR-CO-21 at the same time. On the code and the text agreeing, see BR-CO-21 as well.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge><cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Mengenrabatt</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge>NormAPI provides technical validation, not tax or legal advice.