BR-04
The invoice has no invoice type code (BT-3).
ErrorEN 16931UBLCII
Why it happens
The type code is missing. It is a UNTDID 1001 code, not free text.
How to fix it
Set BT-3 — cbc:InvoiceTypeCode in UBL, ram:TypeCode in CII. Use 380 for a commercial invoice, 381 for a credit note, 384 for a corrected invoice, 326 for a partial invoice.
The official rule
EN 16931, EnglishAn Invoice shall have an Invoice type code (BT-3).
Technical detail — where the rule is evaluated and the exact test
| Syntax | Context and assertion |
|---|---|
| UBL | /ubl:Invoice | /cn:CreditNote |
normalize-space(cbc:InvoiceTypeCode) != '' or normalize-space(cbc:CreditNoteTypeCode) !='' | |
| CII | /rsm:CrossIndustryInvoice |
normalize-space(rsm:ExchangedDocument/ram:TypeCode) != '' |
Check your own invoice
Paste or drop your UBL or CII file into the free validator. It runs the official EN 16931 ruleset plus the German XRechnung layer and lists every rule that fires, BR-04 included — no signup, no limit.
Validate an e-invoice freeFixing the data at source instead? The CSV converter builds a compliant invoice from a spreadsheet export.