ErrorEN 16931Needs confirmation

BR-CL-19

Coded allowance reasons MUST belong to the UNCL 5189 code list

What does this rule mean?

The reason code of an allowance (BT-98, BT-140) is not in the UNCL 5189 code list.

Only a code from the list can be assigned automatically at the buyer; an unknown code has to be resolved by hand.

Official rule message (standard)

Coded allowance reasons MUST belong to the UNCL 5189 code list

Where the rule applies

Syntax: CII · UBL

The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.

UBL

  • cac:AllowanceCharge[cbc:ChargeIndicator = false()]/cbc:AllowanceChargeReasonCode

CII

  • ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator = false()]/ram:ReasonCode

Technical test

The rule passes when this Schematron expression holds true:

((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(.), ' '))))

How to fix it

A wrong code-list value. A tool can suggest a valid code, but you confirm the correct one.

Use a code from UNCL 5189 (e.g. 95 = discount) — or give the reason as text only.

Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.

Check an e-invoice here

Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.

100% local — no upload, no account.

Related rules

← Back to the error library