# BR-21

Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.

- Country: EU
- Syntax: UBL
- Severity: fatal
- Statement language: en
- Last verified: 2026-10-18

## Official statement

> Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).

Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-21/

Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL

Severity note: fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-18.

## Plain-language reading

Each invoice line (BG-25) must have an invoice line identifier (BT-126). The message says "shall have" and starts with "Each". It ends with a period. The context is the invoice line or the credit note line. The published test checks that the line identifier is not blank. The comparison is != '' with a space.

## What to change

Put a non-blank identifier (BT-126) on each invoice line or credit note line.

## Illustration

Illustration of the condition in the official statement. Not an example published by the source.

**Fails the stated condition.** An invoice line or a credit note line has no identifier, or that identifier is blank.

**Passes the stated condition.** The invoice line or the credit note line has a non-blank identifier.

## Published context and test

Copied from the source. Not reimplemented on this page.

```
cac:InvoiceLine | cac:CreditNoteLine
```

```
normalize-space(cbc:ID) != ''
```

[All rule notes](https://einvoicegoblin.com/rules/index.md) · [JSON](https://einvoicegoblin.com/rules/BR-21.json) · [HTML](https://einvoicegoblin.com/rules/BR-21/) · [llms.txt](https://einvoicegoblin.com/llms.txt) · [Invoice page](https://einvoicegoblin.com/) · [Privacy](https://einvoicegoblin.com/privacy.html)
