BR-04fatal

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.