# BR-21 Identifiant de ligne de facture requis

Chaque ligne de facture (BG-25) doit comporter un identifiant de ligne (BT-126) unique au sein de la facture.

## Description du problème

> **ERREUR**: Règle métier de la norme EN 16931 (CEN)

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. L’identifiant de ligne permet aux avoirs, litiges et corrections de viser une ligne précise. BR-21 vérifie seulement que la valeur est renseignée, pas qu’elle est unique. L’erreur provient le plus souvent d’un export qui écrit un numéro de ligne vide, par exemple pour des lignes de texte ou de sous-total reprises d’un PDF.

## Solution

Attribuez à chaque cac:InvoiceLine une valeur cbc:ID, par exemple 1, 2, 3, afin qu’aucune ligne ne reste sans identifiant.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-21)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-21)

## Exemples valides

- BT-126 = 1 sur la première ligne, BT-126 = 2 sur la deuxième ligne

## Exemples invalides

- Un élément cac:InvoiceLine avec un cbc:ID vide (<cbc:ID></cbc:ID>), ou une ligne CII dont ram:AssociatedDocumentLineDocument/ram:LineID est vide ; en UBL, l’absence de cbc:ID est déjà une erreur de schéma XML

## Exemples de code

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

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

## Champs concernés

- [BT-126 Identifiant de ligne de facture](/resources/xrechnung/bt-126-invoice-line-identifier)

## Règles associées

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

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
