How to fix BR-04
An Invoice shall have an Invoice type code (BT-3).
What this rule checks
The invoice type code (BT-3, mapped to cbc:InvoiceTypeCode) tells the receiver whether the document is a standard invoice (380), a credit note (381), or another document type from the UNTDID 1001 code list. Without this code, the receiver cannot determine how to process the document or whether amounts should be debited or credited.
Referenced business terms
This rule references the following EN 16931 business term. Click through for the full definition, the UBL XPath and the cardinality.
How to fix it
Add a cbc:InvoiceTypeCode element at the Invoice root level with the appropriate UNTDID 1001 code (e.g. 380 for a commercial invoice, 381 for a credit note).
Common causes
- The cbc:InvoiceTypeCode element is missing.
- An invalid or unsupported type code was used (e.g. 999).
- The element was accidentally placed in a nested element instead of at the document root level.
- A CreditNote document is using Invoice type codes or vice versa.
Example: before (broken)
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ID>INV-2024-001</cbc:ID>
<cbc:IssueDate>2024-01-15</cbc:IssueDate>
<!-- cbc:InvoiceTypeCode is missing -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
</Invoice>Example: after (fixed)
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ID>INV-2024-001</cbc:ID>
<cbc:IssueDate>2024-01-15</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
</Invoice>Related rules
Validate your invoice
Upload your corrected invoice to check it passes BR-04 and all other EN 16931 and Peppol BIS 3.0 rules. Free, instant, no signup.