BR-CL-19: allowance reason code is not in UNCL 5189
Severity: fatal · Syntax: CII, UBL
Official message
Coded allowance reasons MUST belong to the UNCL 5189 code list
What this means
BR-CL-19 requires allowance reason code to be taken from UNCL 5189. Official text: Coded allowance reasons MUST belong to the UNCL 5189 code list
Typical cause
The value sent is not in UNCL 5189, or a free-text label was sent instead of a code.
How to fix it
Replace the value with a code from UNCL 5189. The sample 95 shows the shape of the value, not every allowed code.
UBL
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>CII
<ram:ReasonCode>95</ram:ReasonCode>
Business term
—
Related rules
Context and assertion
UBL cac:AllowanceCharge[cbc:ChargeIndicator = false()]/cbc:AllowanceChargeReasonCode
CII ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator = false()]/ram:ReasonCode
UBL
((not(contains(normalize-space(.), ' ')) and contains(' 41 42 60 62 63 64 65 66 67 68 70 71 88 95 100 102 103 104 105 ', concat(' ', normalize-space(.), ' '))))CII
((not(contains(normalize-space(.), ' ')) and contains(' 41 42 60 62 63 64 65 66 67 68 70 71 88 95 100 102 103 104 105 ', concat(' ', normalize-space(.), ' '))))
Check a file now, free of charge
curl -F "file=@rechnung.xml" https://checkxrechnung.com/v1/validate
Questions
What does BR-CL-19 actually check?
BR-CL-19 requires allowance reason code to be taken from UNCL 5189. Official text: Coded allowance reasons MUST belong to the UNCL 5189 code list
How do I fix BR-CL-19?
Replace the value with a code from UNCL 5189. The sample 95 shows the shape of the value, not every allowed code.
If BR-CL-19 passes, is the invoice legally compliant?
No. This page helps you read this one Schematron assertion. A pass is not a statement about tax law, portal acceptance, or bank overlays.