BR-02fatal

How to fix BR-02

An Invoice shall have an Invoice number (BT-1).

What this rule checks

Each invoice must carry a unique invoice number (BT-1, mapped to cbc:ID) that identifies it within the seller's system. This number is essential for reconciliation, payment matching, and legal compliance. Tax authorities and buyers rely on it to reference the invoice in correspondence and accounting systems.

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:ID element at the Invoice root level with the invoice number value.

Common causes

  • The cbc:ID element is missing from the Invoice root.
  • The cbc:ID element is present but contains only whitespace.
  • The element was removed during an XML transformation or template error.
  • A copy-paste error placed cbc:ID inside a line item instead of the document level.

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 is missing -->
  <cbc:IssueDate>2024-01-15</cbc:IssueDate>
</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>
</Invoice>

Related rules

Validate your invoice

Upload your corrected invoice to check it passes BR-02 and all other EN 16931 and Peppol BIS 3.0 rules. Free, instant, no signup.