# BR-CL-20 Il motivo di addebito codificato deve provenire da UNCL7161

Quando un motivo di addebito è codificato (BT-105 a livello documento, BT-145 a livello riga), il codice deve appartenere alla lista UNCL7161.

## Descrizione del problema

> **ERRORE**: Regola sulle liste di codici EN 16931 (BR-CL)

> **Dove viene controllata BR-CL-20**
>
> Un validatore controlla una fattura elettronica per fasi. Prima il file deve essere XML ben formato e conforme allo schema UBL o CII (XSD). Poi si applicano le regole di business della EN 16931: regole di base BR, calcoli BR-CO, liste di codici BR-CL, decimali BR-DEC e regole per categoria IVA come BR-S. Seguono le regole nazionali o di rete selezionate da BT-24: BR-DE per XRechnung, PEPPOL-EN16931 per Peppol BIS Billing. Il report elenca ogni regola violata: un errore significa rifiuto, i soli avvisi significano comunque accettazione. BR-CL-20: regola di lista codici EN 16931, fase «Regole EN 16931».

## Contesto e significato

Le maggiorazioni usano UNCL7161, una lista composta per lo più da codici alfabetici, mentre gli sconti usano i codici numerici UNCL5189 (BR-CL-19). La regola fallisce quando un codice di sconto come 95 è inviato su una maggiorazione, quando uno sconto è marcato come maggiorazione (ChargeIndicator true) o quando nel campo codice c’è un testo come "TRASPORTO". Esempio: le spese di spedizione a livello documento usano il codice FC con il motivo "Trasporto".

## Soluzione

Imposta il codice motivo addebito su un valore UNCL7161, ad es. FC (servizio di trasporto), PC (imballaggio), ABL (imballaggio aggiuntivo) o SAA (spedizione e movimentazione); indica ogni altro motivo come testo libero (BT-104 o BT-144). In UBL il codice è cbc:AllowanceChargeReasonCode in un cac:AllowanceCharge con cbc:ChargeIndicator true, in CII ram:ReasonCode in un ram:SpecifiedTradeAllowanceCharge.

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

## Esempi validi

- BT-105 = FC — servizio di trasporto
- BT-145 = ABL — imballaggio aggiuntivo a livello riga

## Esempi non validi

- BT-105 = 95 — codice di sconto (UNCL5189) su una maggiorazione
- BT-105 = TRASPORTO — testo libero anziché codice

## Esempi di codice

### XML valido
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
</cac:AllowanceCharge>
```

### XML non valido
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
</cac:AllowanceCharge>
```

## Campi interessati

- [BT-105 Codice motivo addebito a livello documento](/resources/xrechnung/bt-105-document-level-charge-reason-code)
- [BT-145 Codice motivo addebito a livello riga](/resources/xrechnung/bt-145-invoice-line-charge-reason-code)

## Regole correlate

- [BR-CL-19](/resources/kosit-validator-errors/br-cl-19-uncl5189-allowance-reason)

## 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.
