# BR-47 Il codice categoria IVA deve essere presente in ogni ripartizione IVA

Ai sensi della regola EN 16931 BR-47, ogni gruppo di ripartizione IVA (BG-23) deve indicare in BT-118 (TaxCategory ID) un codice categoria IVA del sottoinsieme UNTDID 5305 ammesso dalla norma (BR-CL-17 in UBL / BR-CL-18 in CII): "S" per l’aliquota ordinaria (usata anche per le aliquote ridotte, con l’aliquota in BT-119), "Z" per aliquota zero, "E" per esente, "AE" per inversione contabile, "K" per cessione intracomunitaria, "G" per esportazione fuori UE, "O" per operazioni fuori campo IVA, "L" per l’IGIC delle Canarie, "M" per l’IPSI di Ceuta e Melilla e "B" per la scissione dei pagamenti (solo Italia). Ogni ripartizione raggruppa imponibile (BT-116) e imposta (BT-117) per una categoria e un’aliquota.

## Descrizione del problema

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

## Contesto e significato

È una regola di base della norma EN 16931. Senza BT-118 né il destinatario né l’amministrazione finanziaria possono attribuire imponibile e imposta a una categoria, e le regole per categoria (BR-S, BR-AE, BR-E ecc.) non possono essere applicate. L’errore compare spesso quando un’esportazione scrive solo la percentuale in cac:TaxCategory. Un codice fuori dalla lista ammessa, come "AA" per un’aliquota ridotta, non attiva BR-47 ma fallisce su BR-CL-17 (UBL) o BR-CL-18 (CII).

## Soluzione

Nella configurazione fiscale dell’ERP assicurati che ogni ripartizione IVA in TaxTotal contenga il codice categoria. In UBL 2.1 compila <cac:TaxSubtotal><cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal> sotto <cac:TaxTotal>. In CII compila <ram:CategoryCode> sotto <ram:ApplicableHeaderTradeSettlement><ram:ApplicableTradeTax>.

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

## Esempi validi

- Ripartizione IVA BG-23 con BT-118 = "S" (Aliquota IVA ordinaria 19%)
- Ripartizione IVA BG-23 con BT-118 = "AE" (Inversione contabile)

## Esempi non validi

- cac:TaxSubtotal dichiara imponibile e imposta ma omette cbc:ID in cac:TaxCategory
- ram:ApplicableTradeTax CII con ram:TypeCode VAT, ram:BasisAmount e ram:CalculatedAmount ma senza ram:CategoryCode

## Esempi di codice

### XML valido
```
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

### XML non valido
```
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:Percent>19.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

## Campi interessati

- [BT-118 Codice categoria IVA](/resources/xrechnung/bt-118-vat-category-code)
- [BG-23 Ripartizione IVA](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-116 Imponibile per categoria IVA](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-117 Imposta per categoria IVA](/resources/xrechnung/bt-117-vat-category-tax-amount)

## Regole correlate

- [BR-CO-17](/resources/kosit-validator-errors/br-co-17-vat-category-tax-amount-must-match-base-times-rate)
- [BR-48](/resources/kosit-validator-errors/br-48-vat-breakdown-category-rate-required)
- [BR-CL-17](/resources/kosit-validator-errors/br-cl-17-uncl5305-document-tax-category)
- [BR-CL-18](/resources/kosit-validator-errors/br-cl-18-uncl5305-line-tax-category)

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