BR-DE-17Mit 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).
Official rule text
The invoice type code (BT-3) should be one of the permitted UNTDID 1001 codes: 326, 380, 384, 389, 381, 875, 876 or 877. BR-DE-17 reports as a warning rather than an error, so an invoice carrying another code is not rejected for it.
- Severity
- Warning
- Applies to
- CII, UBL
- Rule set
- v2026-08-31
- Checked on
Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.
Why does BR-DE-17 happen?
Most systems default to 380 (commercial invoice), which is correct. Deviations usually appear on credit notes or construction-industry partial invoices where a custom code was set. More often it is a code that EN 16931 permits through BR-CL-01 and XRechnung does not list — 383 for a debit note, say, or 386 for a prepayment invoice. The invoice is then compliant with the norm and still draws this warning. Both syntaxes check the same eight codes; in the UBL expression they are simply hidden behind the variable name supportedInvAndCNTypeCodes.
What the validator checks
The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.
- UBL
normalize-space(cbc:InvoiceTypeCode) = $supportedInvAndCNTypeCodes or normalize-space(cbc:CreditNoteTypeCode) = $supportedInvAndCNTypeCodesVariables in it
- $supportedInvAndCNTypeCodes
- ('326', '380', '384', '389', '381', '875', '876', '877')
- CII
normalize-space(rsm:ExchangedDocument/ram:TypeCode) = ('326', '380', '384', '389', '381', '875', '876', '877')
Source: rule set v2026-08-31
How do you fix BR-DE-17?
Map your internal document type onto one of the permitted codes — 380 for a normal invoice, 326 for a partial invoice, 381 for a credit note. Of the eight, 381 is the only one BR-CL-01 will not accept in cbc:InvoiceTypeCode in UBL: there it belongs in the cbc:CreditNoteTypeCode of a CreditNote document.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cbc:InvoiceTypeCode>RE</cbc:InvoiceTypeCode><cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>Related rules
NormAPI provides technical validation, not tax or legal advice.