Skip to content

Fatal

PEPPOL-EN16931-CL003: Charge reason code must be a valid UNCL 7161 code

In short

Fatal: fails the selected checks.

PEPPOL-EN16931-CL003 means a charge has a reason code (BT-105 or BT-145) that is not on the allowed list. Pick a valid code, such as FC for freight or ABL for additional packaging, or leave the code out and give the reason in words.

On this page

What it means

A charge, such as a delivery fee or a surcharge, can carry a reason code, either on the whole invoice (BT-105) or on a line (BT-145). The code must come from the UNCL 7161 list used by Peppol. These are short alphanumeric codes, for example FC (freight service), ABL (additional packaging), SAA (shipping and handling) or PC (packing). Free text such as "Shipping" and a discount code such as 95 fail. Discounts use a different list, checked by PEPPOL-EN16931-CL002.

Why it matters

Peppol BIS Billing 3.0 requires each charge reason code you provide to come from UNCL 7161.

How to fix it

In your invoicing software, set the charge reason code on the invoice or on the line to a valid UNCL 7161 code. You can also leave the code out and write the reason as text, such as "Delivery costs". If you build the XML yourself, the code is cbc:AllowanceChargeReasonCode inside the cac:AllowanceCharge whose cbc:ChargeIndicator is true. If you omit the code, remove cbc:AllowanceChargeReasonCode rather than leaving an empty element.

Once the file is corrected, check it again for free: Validate a Peppol BIS invoice

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

The rule as published

Read the rule on the publisher's site

Where this rule applies

Rule set Version
Peppol BIS Billing 3.0 (invoice) 2026.5
Peppol BIS Billing 3.0 (credit note) 2026.5
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether PEPPOL-EN16931-CL003 still fails, and which other rules do.

Updated 8 November 2026