What it means
In a UBL invoice or credit note, this rule checks that the document-level contract reference (BT-12), cac:ContractDocumentReference, contains no cbc:DocumentTypeCode. An empty element still counts as present.
Why it matters
EN 16931 does not use a document type code in the contract reference.
How to fix it
In your invoicing software, clear the document type code stored with the contract reference. Keep the contract number. If you build the XML yourself, remove cbc:DocumentTypeCode from cac:ContractDocumentReference and keep cbc:ID. Export the corrected file and check it 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 ContractDocumentReference DocumentTypeCode 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-098 still fails, and which other rules do.
Related rules
- UBL-CR-099 Leave the document type out of the contract reference
- UBL-CR-100 Leave the XPath out of the contract reference
- UBL-CR-101 Leave the language out of the contract reference
- UBL-CR-102 Leave the locale code out of the contract reference
- UBL-CR-103 Leave the version out of the contract reference
- UBL-CR-104 Leave the status code out of the contract reference