# PEPPOL-EN16931-R130 Il codice unità della base prezzo deve corrispondere al codice unità della quantità fatturata

In base alla regola Peppol PEPPOL-EN16931-R130, quando nella riga è indicato il codice unità di misura della quantità base del prezzo in BT-150 (attributo unitCode su BaseQuantity), questo deve essere identico al codice unità della quantità fatturata in BT-130 (attributo unitCode su InvoicedQuantity). L’uso di unità eterogenee sulla stessa riga rende ambiguo il controllo automatico dei prezzi.

## Descrizione del problema

> **ERRORE**: Regola Peppol BIS Billing 3.0 (OpenPeppol)

> **Dove viene controllata PEPPOL-EN16931-R130**
>
> 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. PEPPOL-EN16931-R130: regola Peppol BIS Billing, fase «Regole nazionali (CIUS)».

## Contesto e significato

PEPPOL-EN16931-R130 si applica solo se cbc:BaseQuantity è presente e ne confronta l’unitCode con quello della quantità fatturata. Unità diverse sulla stessa riga rendono ambiguo il calcolo del prezzo unitario, ad esempio una quantità in ore con un prezzo al pezzo. L’errore compare di solito quando il listino usa un’unità diversa dalla riga d’ordine o quando in BaseQuantity viene scritta un’unità predefinita come C62.

## Soluzione

Nell’anagrafica articoli o nelle tabelle di conversione delle unità dell’ERP allinea l’unità della quantità base del prezzo (BT-150) all’unità di fatturazione della riga (BT-130). In UBL 2.1 assicurati che <cbc:BaseQuantity unitCode="H87"> abbia lo stesso attributo unitCode di <cbc:InvoicedQuantity unitCode="H87">. Se il prezzo vale per una sola unità puoi omettere del tutto cbc:BaseQuantity.

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

## Esempi validi

- InvoicedQuantity unitCode = "H87" (pezzo) e BaseQuantity unitCode = "H87" (pezzo)
- InvoicedQuantity unitCode = "HUR" (ora) e BaseQuantity unitCode = "HUR" (ora)

## Esempi non validi

- InvoicedQuantity specificato in "HUR" (ore) mentre BaseQuantity indica unitCode = "C62" (unità)
- InvoicedQuantity specificato in "KGM" (chilogrammi) mentre BaseQuantity indica unitCode = "LTR" (litri)

## Esempi di codice

### XML valido
```
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">100</cbc:InvoicedQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">50.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="H87">100</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>
```

### XML non valido
```
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">100</cbc:InvoicedQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">50.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="C62">100</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>
```

## Campi interessati

- [BT-130 Codice unità di misura della quantità fatturata](/resources/xrechnung/bt-130-invoice-line-quantity-unit-of-measure-code)
- [BT-150 Codice unità di misura della quantità base del prezzo](/resources/xrechnung/bt-150-item-price-base-quantity-unit-code)
- [BG-25 Riga di fattura](/resources/xrechnung/bt-126-invoice-line-identifier)

## Regole correlate

- [BR-23](/resources/kosit-validator-errors/br-23-invoice-line-unit-code-must-be-present)
- [BR-26](/resources/kosit-validator-errors/br-26-invoice-line-item-net-price-must-be-present)
- [PEPPOL-EN16931-R120](/resources/kosit-validator-errors/peppol-en16931-r120-line-net-amount-formula)

## 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-peppol/)
- [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.
