What it means
UBL lets the tax details of a party carry a code that explains why the party is exempt from VAT. EN 16931 does not read it there. The reason for an exemption is given per VAT category in the VAT breakdown (BG-23), as a code (BT-121) or text (BT-120). This rule fails whenever cbc:ExemptionReasonCode is present in the seller's tax details.
Why it matters
This rule is a warning, so the invoice is still accepted. The recipient's software looks for the reason in the VAT breakdown and ignores it in the seller's details. It is worth fixing when the invoice is exempt from VAT, because the reason in the wrong place does not count.
How to fix it
In your invoicing software, set the exemption reason on the VAT category of the line or on the invoice, not on your company profile. If you build the XML yourself, delete cbc:ExemptionReasonCode from cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme. Then put the code in cbc:TaxExemptionReasonCode under cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory.
The rule as published
A UBL invoice should not include the AccountingSupplierParty Party PartyTaxScheme ExemptionReasonCode 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-CR-171 still fails, and which other rules do.