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

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