# BR-21 Factuurregelidentificatie is vereist

Elke factuurregel (BG-25) moet een factuurregelidentificatie (BT-126) hebben die uniek is binnen de factuur.

## Probleembeschrijving

> **FOUT**: Bedrijfsregel van EN 16931 (CEN)

> **Waar BR-21 wordt gecontroleerd**
>
> Een validator controleert een e-factuur in stappen. Eerst moet het bestand goed gevormde XML zijn die past bij het UBL- of CII-schema (XSD). Dan volgen de bedrijfsregels van EN 16931: BR-kernregels, BR-CO-berekeningen, BR-CL-codelijsten, BR-DEC-decimalen en regels per btw-categorie zoals BR-S. Daarna komen de nationale of netwerkregels die BT-24 kiest: BR-DE voor XRechnung, PEPPOL-EN16931 voor Peppol BIS Billing. Het rapport noemt elke geschonden regel: één fout betekent afwijzen, alleen waarschuwingen betekenen nog steeds accepteren. BR-21: kernregel van EN 16931, gemeld in de stap “EN 16931-regels”.

## Context en betekenis

Dit is een kernregel van EN 16931. Met de regelidentificatie kunnen creditnota’s, geschillen en correcties een specifieke regel aanspreken. BR-21 controleert alleen of de waarde gevuld is, niet of zij uniek is. De fout ontstaat meestal als een export een leeg regelnummer schrijft, bijvoorbeeld bij tekst- of subtotaalregels uit een pdf.

## Oplossing

Geef elke cac:InvoiceLine een cbc:ID-waarde, bijvoorbeeld 1, 2, 3, zodat geen regel zonder identificatie blijft.

- [XML valideren](/nl/xrechnung-validator?source=resource&rule=BR-21)
- [Factuur converteren](/nl/pdf-to-xrechnung?source=resource&rule=BR-21)

## Geldige voorbeelden

- BT-126 = 1 op de eerste regel, BT-126 = 2 op de tweede regel

## Ongeldige voorbeelden

- Een cac:InvoiceLine met een leeg cbc:ID (<cbc:ID></cbc:ID>), of in CII een regel met een lege ram:AssociatedDocumentLineDocument/ram:LineID; een ontbrekend cbc:ID geeft in UBL al een XML-schemafout

## Codevoorbeelden

### Geldig XML
```
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
</cac:InvoiceLine>
```

### Ongeldig XML
```
<cac:InvoiceLine>
  <cbc:ID></cbc:ID>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
</cac:InvoiceLine>
```

## Betrokken velden

- [BT-126 Factuurregelidentificatie](/resources/xrechnung/bt-126-invoice-line-identifier)

## Gerelateerde regels

- [BR-16](/resources/kosit-validator-errors/br-16-at-least-one-invoice-line-required)

## Validatietools

- [Officiële KoSIT-validator](https://github.com/itplr-kosit/validator): Draai de officiële KoSIT-validator met de XRechnung-configuratie om EN 16931- en XRechnung-regels te controleren.
- [PDF naar XRechnung converteren](/pdf-to-xrechnung): Vind validatiefouten tijdens de conversie en controleer elke correctie.

## Gerelateerde bronnen

- [Officiële specificatie](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Alle validatiefouten](/resources/kosit-validator-errors): Overzicht van de hier uitgelegde validatieregels uit EN 16931, XRechnung en Peppol.
