Back to Compliance Hub
Warning

BR-DE-17

Invoice Type Code Not Recommended (BT-3)

What This Error Means

XRechnung recommends that the invoice type code in BT-3 is one of these UNTDID 1001 values: 326 (Partial Invoice), 380 (Commercial Invoice), 381 (Credit Note), 384 (Corrected Invoice), 389 (Self-billed Invoice), 875 (Partial Construction Invoice), 876 (Partial Final Construction Invoice) or 877 (Final Construction Invoice). BR-DE-17 is a warning ("should" rule), so the file stays valid, but some recipients may reject other codes.

Why this happens

BR-DE-17 fires when the invoice type code (BT-3) contains a value that is valid in the broad UNTDID 1001 code list but outside the subset XRechnung recommends: 326 (partial invoice), 380 (commercial invoice), 381 (credit note), 384 (corrected invoice), 389 (self-billed invoice) and the construction-industry codes 875, 876, 877. The rule is flagged as a warning in the KoSIT Schematron, so validation still passes. It commonly appears when ERP systems emit codes such as 393 (factored invoice) or 386 (prepayment invoice). A code outside UNTDID 1001 altogether, or 381 in a UBL Invoice document, is a different matter: that fails the fatal code list rule BR-CL-01.

How to Fix It

Set cbc:InvoiceTypeCode to one of: 326, 380, 381, 384, 389, 875, 876, 877. For standard invoices use 380. For credit notes use 381 in a UBL CreditNote (cbc:CreditNoteTypeCode).

Step-by-step

1) Decide what the document actually is. A normal invoice = 380. A partial invoice = 326. A credit note (reducing an earlier invoice) = 381. A corrected invoice = 384. Self-billing = 389. Construction down-payment/partial/final invoices = 875/876/877. 2) Set the type code to the chosen value. 3) In UBL, a credit note with 381 must be sent as a CreditNote document (root element CreditNote in the CreditNote-2 namespace, cbc:CreditNoteTypeCode); an Invoice with 381 fails BR-CL-01. In CII, 381 goes into the same rsm:ExchangedDocument/ram:TypeCode. 4) For 384, reference the invoice being corrected in BG-3 (BR-DE-26). 5) Map any internal/proprietary ERP type codes to the recommended subset during export. 6) Re-validate.

XML Example
<!-- Standard invoice (UBL Invoice) -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>

<!-- Credit note (UBL CreditNote) -->
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>

Fix Automatically

Upload your invoice to our Smart Repair engine. It checks the file against the full KoSIT rule set, including BR-DE-17, and corrects supported fields with a GoBD audit trail.

Open Smart Repair

Frequently asked questions

Which type code do I use for a normal invoice?

Use 380 (commercial invoice) for a standard outgoing invoice. This is by far the most common value and is always accepted by XRechnung.

How do I issue a credit note?

Use type code 381 and, in UBL, issue the document as a CreditNote (with the CreditNote namespace), not as an Invoice with a negative amount. Reference the original invoice number in BT-25.

What are codes 875, 876, 877 for?

They are construction-industry invoice types: 875 partial construction invoice (Abschlagsrechnung), 876 partial final invoice, and 877 final construction invoice (Schlussrechnung).

Related Errors

Other commonly encountered validation errors