What it means
Each charge, marked in UBL by cbc:ChargeIndicator set to true, may carry its reason text (cbc:AllowanceChargeReason) only once. For a charge on the whole invoice this is the charge reason (BT-104). The reason code (BT-105) is a separate field and can sit next to the text.
Why it matters
EN 16931 allows at most one reason text in each charge block where cbc:ChargeIndicator is true.
How to fix it
Keep at most one reason text for each charge in your invoicing software, for example "Packaging" or "Delivery costs". If it has two descriptions, join them into one short text. In the XML, each cac:AllowanceCharge with cbc:ChargeIndicator true may contain only one cbc:AllowanceChargeReason; a code goes in cbc:AllowanceChargeReasonCode.
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
Document level charge reason shall occur maximum once 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 |
Check your file
Drop your e-invoice to see whether UBL-SR-31 still fails, and which other rules do.
Related rules
- UBL-SR-32 A VAT breakdown row can give only one VAT exemption reason
- UBL-SR-33 A supporting document can have only one description
- UBL-SR-34 Each invoice line can carry only one note
- UBL-SR-35 A line can refer to only one purchase order line
- UBL-SR-36 A line can have only one invoice line period
- UBL-SR-37 A line can have only one price discount