# BR-21 Identificativo di riga fattura obbligatorio

Ogni riga di fattura (BG-25) deve avere un identificativo di riga (BT-126) univoco all’interno della fattura.

## Descrizione del problema

> **ERRORE**: Regola di business della norma EN 16931 (CEN)

## Contesto e significato

È una regola di base della norma EN 16931. L’identificativo di riga consente a note di credito, contestazioni e correzioni di riferirsi a una riga specifica. BR-21 verifica solo che il valore sia compilato, non che sia univoco. L’errore nasce di solito da un’esportazione che scrive un numero di riga vuoto, ad esempio per righe di testo o di subtotale riprese da un PDF.

## Soluzione

Assegna a ogni cac:InvoiceLine un valore cbc:ID, ad esempio 1, 2, 3, in modo che nessuna riga resti senza identificativo.

- [Valida XML](/it/xrechnung-validator?source=resource&rule=BR-21)
- [Converti fattura](/it/pdf-to-xrechnung?source=resource&rule=BR-21)

## Esempi validi

- BT-126 = 1 sulla prima riga, BT-126 = 2 sulla seconda riga

## Esempi non validi

- Un cac:InvoiceLine con cbc:ID vuoto (<cbc:ID></cbc:ID>), oppure una riga CII con ram:AssociatedDocumentLineDocument/ram:LineID vuoto; in UBL l’assenza di cbc:ID è già un errore di schema XML

## Esempi di codice

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

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

## Campi interessati

- [BT-126 Identificativo di riga fattura](/resources/xrechnung/bt-126-invoice-line-identifier)

## Regole correlate

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

## Strumenti di validazione

- [Validatore KoSIT ufficiale](https://github.com/itplr-kosit/validator): Esegui il validatore ufficiale KoSIT con la configurazione XRechnung per controllare le regole EN 16931 e XRechnung.
- [Converti PDF in XRechnung](/pdf-to-xrechnung): Individua gli errori di validazione durante la conversione e verifica ogni correzione.

## Risorse correlate

- [Specifiche ufficiali](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Tutti gli errori di validazione](/resources/kosit-validator-errors): Panoramica delle regole di validazione EN 16931, XRechnung e Peppol spiegate qui.
