Skip to content

BR-04: Invoice type code (BT-3) is missing

Official message

[BR-04] An Invoice shall have an Invoice type code (BT-3).

EN 16931 (CII) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-04] An Invoice shall have an Invoice type code (BT-3).

EN 16931 (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-04] An Invoice shall have an Invoice type code (BT-3).

Factur-X / ZUGFeRD EN 16931 · Error · Message language: English · Version: Factur-X 1.08 / ZUGFeRD 2.4
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
EN 16931 (CII), EN 16931 (UBL), Factur-X / ZUGFeRD EN 16931
Affected fields
BT-3

What does this mean?

Every invoice must have an invoice type code (BT-3) stating the type of document, e.g. 380 for a commercial invoice or 381 for a credit note. The element is missing or empty.

Typical causes

The generating system writes no document type.
The element exists but is empty.

How to fix the error

Enter the appropriate code from the UNTDID 1001 list, e.g. 380 (commercial invoice) or 381 (credit note).
CII: rsm:ExchangedDocument/ram:TypeCode, UBL: cbc:InvoiceTypeCode or cbc:CreditNoteTypeCode.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form ("Experte" view), section "Rechnungsdetails" (invoice details), select a code in the field "Art-Code (BT-3)" (type code). In the simple view ("Einfach") code 380 is set.

Example

Wrong

<rsm:ExchangedDocument>
  <ram:ID>INV-2026-0042</ram:ID>
  <ram:TypeCode></ram:TypeCode>
  ...
</rsm:ExchangedDocument>

Correct

<rsm:ExchangedDocument>
  <ram:ID>INV-2026-0042</ram:ID>
  <ram:TypeCode>380</ram:TypeCode>
  ...
</rsm:ExchangedDocument>
For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: /rsm:CrossIndustryInvoice

normalize-space(rsm:ExchangedDocument/ram:TypeCode) != ''

EN 16931 (UBL) (UBL)

Context: /ubl:Invoice | /cn:CreditNote

normalize-space(cbc:InvoiceTypeCode) != '' or normalize-space(cbc:CreditNoteTypeCode) !=''

Factur-X / ZUGFeRD EN 16931 (CII)

Technical ID in the source: FX-SCH-A-000013

Context: /rsm:CrossIndustryInvoice

(rsm:ExchangedDocument/ram:TypeCode!='')

Related validation rules

  • BR-01: Specification identifier (BT-24) is missing
  • BR-02: Invoice number (BT-1) is missing
  • BR-03: Invoice issue date (BT-2) is missing
  • BR-05: Invoice currency code (BT-5) is missing
  • BR-06: Seller name (BT-27) is missing
  • BR-07: Buyer name (BT-44) is missing

Last updated:
Explanation of the validation rule, not legal or tax advice.