Error codes

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.