Account
English

BR-DE-17: Invoice type code is not in the XRechnung subset

XRechnung rule · Warning · UBL / CII

StandardXRechnung 3.0.2 (KoSIT, German CIUS of EN 16931)SeverityWarning: the invoice is accepted but should be correctedSyntaxUBL, CIIBusiness terms
  • BT-3 Invoice type code
Applies toXRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it.

Official rule text

[BR-DE-17] Only the following codes from the code list UNTDID 1001 shall be transmitted in the element "Invoice type code" (BT-3): 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) and 381 (Credit note), 875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).

Official text (German): Mit dem Element "Invoice type code" (BT-3) sollen ausschließlich folgende Codes aus der Codeliste UNTDID 1001 übermittelt werden: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) und 381 (Credit note),875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).

Why this error occurs

XRechnung narrows the UNTDID 1001 list: only 326 (partial invoice), 380 (commercial invoice), 384 (corrected invoice), 389 (self-billed invoice), 381 (credit note), 875, 876 and 877 (construction invoices) should be used in BT-3. The rule compares cbc:InvoiceTypeCode / cbc:CreditNoteTypeCode (UBL) or rsm:ExchangedDocument/ram:TypeCode (CII) with that list and raises a warning otherwise. Typical offenders are 386 (prepayment invoice), 383 (debit note) or 82 (metered services), which are valid in EN 16931 but not expected by German authorities.

How to fix it

Map your document types to the allowed codes: regular invoice 380, partial/instalment invoice 326, correction 384, credit note 381 (as cn:CreditNote in UBL), self-billing 389, construction partial/partial-final/final 875/876/877. A down-payment request is normally sent as 380 or 326 with the prepayment shown in the line text; the final invoice then uses BT-113 (prepaid amount) for the amounts already paid. This is a warning, but many receivers treat it as an error.

Example (valid)

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>

What the validator checks

Checked element (context):

UBL

/ubl:Invoice | /cn:CreditNote

Test (XPath):

normalize-space(cbc:InvoiceTypeCode) = $supportedInvAndCNTypeCodes         or normalize-space(cbc:CreditNoteTypeCode) = $supportedInvAndCNTypeCodes

CII

/rsm:CrossIndustryInvoice

Test (XPath):

normalize-space(rsm:ExchangedDocument/ram:TypeCode) = ('326', '380', '384', '389', '381', '875', '876', '877')

Check your invoice

Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

Frequently asked questions

What does BR-DE-17 mean?

BR-DE-17 is a xrechnung rule: Only the following codes from the code list UNTDID 1001 shall be transmitted in the element "Invoice type code" (BT-3): 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) and 381 (Credit note), 875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).

Will my invoice be rejected because of BR-DE-17?

No. BR-DE-17 is a warning: the invoice is accepted but the recipient sees the notice. Fix it anyway, warnings often become errors in later rule versions.

Which formats does BR-DE-17 apply to?

XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL and CII.

Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.