# BR-55: Add the preceding invoice number to the billing reference

Each `cac:BillingReference` must hold `cac:InvoiceDocumentReference` with a `cbc:ID`. Leave the billing reference out if there is no preceding invoice.

- Layer: EN 16931
- Severity: fatal (the document is invalid)
- Topics: Process and references
- Official definition: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-55/
- Explanation last updated: 2026-09-24

## The short answer

`BR-55` fails when a `cac:BillingReference` has no `cac:InvoiceDocumentReference` holding a `cbc:ID`. Write the number of the earlier invoice the document refers to in `cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID`, or remove the billing reference if there is no earlier invoice.

Only a reference to an invoice counts. A `cac:CreditNoteDocumentReference` or `cac:SelfBilledInvoiceDocumentReference` in its place still fails, and both of those elements are outside the EN 16931 model.

## What the rule checks

The rule runs for each `cac:BillingReference` and passes when it finds a `cbc:ID` inside a `cac:InvoiceDocumentReference` child. The issue date beside the number is optional: when tried, a reference with only the invoice number passed.

It tests presence, not content. When tried, an empty `cbc:ID` inside `cac:InvoiceDocumentReference` did not report this rule; the empty element was reported by `PEPPOL-EN16931-R008` instead.

A `cac:InvoiceDocumentReference` with no `cbc:ID` element fails the XSD layer, because UBL requires an identifier in every document reference, so this rule is never reached for it.

Other kinds of reference do not count. When tried, a billing reference holding a `cac:CreditNoteDocumentReference` reported `BR-55`, `UBL-SR-07` and the warning `UBL-CR-039`.

| Term | Meaning | UBL element |
|---|---|---|
| BG-3 | Preceding Invoice reference | `cac:BillingReference` |
| BT-25 | Preceding Invoice reference | `cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID` |
| BT-26 | Preceding Invoice issue date | `cac:BillingReference/cac:InvoiceDocumentReference/cbc:IssueDate` |

## How an integration ends up here

Possible causes, from the shape of the rule rather than from measured usage:

- The template always writes `cac:BillingReference` and fills the invoice reference inside it only for credit notes and corrective invoices.
- A credit note is raised without a link to the original invoice, and the export writes an empty billing reference instead of leaving it out.
- The original document is referenced with the wrong UBL element, such as `cac:CreditNoteDocumentReference`.

## How to fix it

1. Establish whether the document refers to an earlier invoice. A credit note or corrective invoice refers to the invoice it corrects; an ordinary invoice may have no preceding invoice at all.
2. If there is one, write its number, exactly as issued, to `cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID`, and its issue date to `cbc:IssueDate` beside it when you have it.
3. If there is none, remove `cac:BillingReference` altogether.
4. Use `cac:InvoiceDocumentReference` for the reference; it is the only element the model maps the preceding invoice reference to.

## Before and after

These are fragments, not complete documents. The complete synthetic documents they come from are linked below.

Fragment of the failing invoice: the billing reference is present but holds nothing

```xml
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:OrderReference>
  <cbc:ID>PO-456</cbc:ID>
</cac:OrderReference>
<cac:BillingReference>
</cac:BillingReference>
<cac:ContractDocumentReference>
  <cbc:ID>CONTRACT-789</cbc:ID>
</cac:ContractDocumentReference>
```

Fragment of the corrected invoice: the billing reference names invoice PRIOR-001 and its issue date

```xml
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:OrderReference>
  <cbc:ID>PO-456</cbc:ID>
</cac:OrderReference>
<cac:BillingReference>
  <cac:InvoiceDocumentReference>
    <cbc:ID>PRIOR-001</cbc:ID>
    <cbc:IssueDate>2026-08-08</cbc:IssueDate>
  </cac:InvoiceDocumentReference>
</cac:BillingReference>
<cac:ContractDocumentReference>
  <cbc:ID>CONTRACT-789</cbc:ID>
</cac:ContractDocumentReference>
```

The corrected invoice has a `cac:InvoiceDocumentReference` with number `PRIOR-001` and issue date 2026-08-08 inside `cac:BillingReference`; the failing one has the wrapper alone. Two more findings come with it. `UBL-SR-07` is the UBL syntax binding stating the same requirement, so it fires on exactly the same condition, and `PEPPOL-EN16931-R008` fires because the billing reference element has no content at all. Restoring the invoice reference clears all three.

### What the validator reported

- The failing invoice reports **BR-55**, `UBL-SR-07` and [PEPPOL-EN16931-R008](https://ironfang.uk/docs/finance/rules/PEPPOL-EN16931-R008.md). The corrected document passes every layer with no findings.
  - [Download the failing XML](https://ironfang.uk/finance/rule-examples/BR-55-invalid.xml)
  - [Download the corrected XML](https://ironfang.uk/finance/rule-examples/invoice-rich.xml)

Recorded on phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, the engine behind the free validator, using synthetic data. A recorded result is regression evidence for these documents; it is not a certification.

## Where it applies

- Applies to `Invoice` and `CreditNote`. When tried, a credit note with an empty billing reference reported the same three rules.
- Reported in the EN 16931 layer; the empty-element finding comes from the Peppol layer.
- The rule only checks a billing reference that is present. When tried, a credit note from a seller with a GB postal address and no billing reference at all passed every layer, but a seller in the Netherlands must include one on a credit note (`NL-R-001`).
- The number is not matched against earlier documents: the validator cannot tell whether `PRIOR-001` exists.

## Related rules

- [PEPPOL-EN16931-R008 reports the empty billing reference, and an empty invoice number inside it, which this rule lets through](https://ironfang.uk/docs/finance/rules/PEPPOL-EN16931-R008.md)
- [NL-R-001 makes the billing reference compulsory on credit notes from sellers in the Netherlands](https://ironfang.uk/docs/finance/rules/NL-R-001.md)
- [BR-02 covers the document number itself, which is a different element from the preceding invoice number](https://ironfang.uk/docs/finance/rules/BR-02.md)

## Scope and source

Written for Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, as applied to UBL 2.1 Invoice and CreditNote documents. Other profiles, syntaxes and releases can define this identifier differently. Guidance version 2026-09-24.1: source checked 2026-09-24, explanation last updated 2026-09-24.

[The official definition of BR-55](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-55/) carries the normative wording and test. This page is our explanation of it, not a copy.

Guidance does not change the engine verdict. Fixing this finding does not mean the document passes every layer, and validation does not certify legal or tax compliance or transmit a document over Peppol.

## Links

- [This rule as a web page](https://ironfang.uk/docs/finance/rules/BR-55)
- [Free Peppol invoice validator](https://ironfang.uk/tools/peppol-validator)
- [Rule index](https://ironfang.uk/docs/finance/rules.md)
- [Ironfang Finance API docs](https://ironfang.uk/docs/finance)
- The same rule is available to MCP clients as the tool `finance.rule.get` on https://mcp.ironfang.uk/mcp
