Skip to content

Warning

UBL-CR-662: Discount and charge reason codes should have no listID attribute

In short

Warning: worth checking.

UBL-CR-662 means a reason code for a discount or a charge has a listID attribute, which EN 16931 does not use. Remove the attribute and keep the code.

On this page

What it means

This rule checks every cbc:AllowanceChargeReasonCode in the file, on the whole invoice or on a line, and flags it if it has a listID attribute. These are the reason codes for discounts (BT-98, BT-140) and charges (BT-105, BT-145). EN 16931 fixes the lists, UNTDID 5189 for discounts and UNTDID 7161 for charges, so naming a list with listID is not used.

Why it matters

EN 16931 does not use listID on discount or charge reason codes. The check covers these attributes anywhere in the file, not just at document level.

How to fix it

Remove listID from every cbc:AllowanceChargeReasonCode and keep the reason codes unchanged. If your software adds the attribute, ask its supplier to correct the export, then check the new file again.

Once the file is corrected, check it again for free: Validate an invoice against EN 16931

Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice

The rule as published

A UBL invoice should not include the AllowanceChargeReasonCode listID

Where this rule applies

Rule set Version
EN 16931 (UBL) 1.3.17
EN 16931 (UBL credit note) 1.3.17
XRechnung 3.0 (UBL) 3.0.2
XRechnung 3.0 (UBL credit note) 3.0.2
Peppol BIS Billing 3.0 (invoice) 2026.5
Peppol BIS Billing 3.0 (credit note) 2026.5
SI-UBL 2.0 / NLCIUS (invoice) 2.0.3.13
SI-UBL 2.0 / NLCIUS (credit note) 2.0.3.13
France CTC (UBL invoice) 1.4.0-04
France CTC (UBL credit note) 1.4.0-04
CIUS-RO UBL Invoice 1.0.9 1.0.9
CIUS-RO UBL Credit Note 1.0.9 1.0.9
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether UBL-CR-662 still fails, and which other rules do.

Updated 6 November 2026