Skip to content

Warning

UBL-CR-102: Leave the locale code out of the contract reference

In short

Warning: worth checking.

UBL-CR-102 means the contract reference in your UBL invoice or credit note carries a locale code (cbc:LocaleCode), which EN 16931 does not use. Delete that element from cac:ContractDocumentReference and check the file again.

On this page

What it means

The contract is referenced in a UBL invoice or credit note with cac:ContractDocumentReference. EN 16931 only reads the contract number from it (BT-12, in cbc:ID). This rule checks that the block does not also contain a locale code (cbc:LocaleCode), the language and country variant the contract document is written in.

Why it matters

EN 16931 recommends leaving the locale code out of the contract reference.

How to fix it

Ask the supplier of your invoicing software to stop exporting cbc:LocaleCode in the contract reference. If you build the XML yourself, delete cbc:LocaleCode from cac:ContractDocumentReference and leave cbc:ID as it is. Recheck the corrected file.

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 ContractDocumentReference LocaleCode

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-102 still fails, and which other rules do.

Updated 6 November 2026