Vai al contenuto principale
EN 16931 · liste di codici

Errore BR-CL-23: l'unità di misura della riga non è un codice UN/ECE

Ogni riga di una fattura elettronica riporta la quantità con un'unità, scritta come codice della Raccomandazione 20 dell'UN/ECE: C62 per l'unità, per esempio. BR-CL-23 verifica che il codice sia nella lista, BR-23 che ci sia e PEPPOL-EN16931-R130 che l'unità del prezzo sia la stessa dell'unità della quantità.

FlexigoTech · Responsabile: Víctor Gómez · Aggiornato il 4 novembre 2026

In breve

Versioni
Odoo 17, 18, 19 e 20
Verificato
nel codice del modulo, versione 17.0 e 20.0 · nelle fonti collegate in fondo
Lettura
3 min
  1. BR-23, fatal «An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).» La riga deve riportare un'unità.
  2. BR-CL-23, fatal «Unit code MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extension» L'unità deve essere un codice della lista.
  3. PEPPOL-EN16931-R130, fatal «Unit code of price base quantity MUST be same as invoiced quantity.» Se il prezzo è riferito a una quantità base, la sua unità è la stessa di quella della riga.

Le prime due provengono da EN 16931 (Schematron validation-1.3.17). La terza è di Peppol BIS (3.0.22) e XRechnung la applica anch'essa.

Scheda delle regole sull'unità di misura
BR-CL-23, BR-23 e PEPPOL-EN16931-R130 su BT-130 e sull'attributo unitCode.

Da dove prende Odoo il codice

Il codice che Odoo scrive nel file proviene da un punto diverso a seconda della versione:

  • Odoo 17, 18 e 19: una tabella collega le unità di Odoo (tramite il loro identificativo esterno) ai codici UN/ECE. Un'unità creata da te non è in tabella e viene esportata come C62, unità.
  • Odoo 20: ogni unità di misura ha un proprio campo per il codice UN/ECE, ed è quel codice a finire nel file. Odoo lo converte in maiuscolo, ma non lo confronta con la lista.

BR-CL-23 scatta quando il codice nel file non è nella lista. In Odoo 20 basta un codice scritto male sull'unità di misura. In Odoo 17 a 19 la tabella fornisce sempre un codice della lista, quindi la regola scatta solo se il codice arriva per un'altra strada, per esempio da un modulo che lo modifica.

C'è poi un problema che nessuna regola rileva: un'unità personalizzata («pallet», «cartone da dodici») che in Odoo 17 a 19 diventa C62 senza avvisi. Il file supera BR-CL-23, perché C62 è in lista, ma il tuo cliente riceve «unità» dove tu vendevi cartoni.

Per chi riceve la fattura il codice conta: il suo software lo legge per abbinare la riga al proprio ordine e alla merce ricevuta. Se ha ordinato cartoni e la fattura dice unità, la quantità non torna con quanto ha ricevuto anche se l'importo è lo stesso, e la fattura si blocca nella sua verifica.

Con il nostro modulo XRechnung e ZUGFeRD

Il modulo include una propria tabella modificabile che collega le unità di Odoo ai codici UN/ECE, così ogni tua unità ottiene il suo codice in BT-130. Un'unità assente da quella tabella viene esportata come C62, come in Odoo 17 a 19, e l'unico avviso finisce nel registro del server, che non è visibile dalla fattura. Anche una riga senza unità esce come C62.

Tabella del modulo XRechnung che collega le unità di Odoo ai codici UN/ECE in Odoo 20
Minuti, unità, ore, metri quadrati, chilowattora e altre, con il rispettivo codice per BT-130. Schermata di Odoo 20 con dati dimostrativi.

In Odoo 18, 19 e 20, con l'abbonamento a FlexigoTech Cloud, ogni XRechnung e ogni ZUGFeRD EN 16931 viene validato con le regole di KoSIT, e un codice fuori lista compare come BR-CL-23 in Validation Errors. In Odoo 17 la versione pubblicata non effettua la validazione.

Cosa verificare

  1. Controlla quale unità riporta la riga nel XML (attributo unitCode).
  2. In Odoo 20, apri l'unità di misura e imposta il suo codice UN/ECE.
  3. In Odoo 17, 18 e 19, se usi unità personalizzate, tieni presente che escono come C62. Con il nostro modulo, su qualsiasi versione, aggiungine ciascuna alla sua tabella: quelle mancanti escono anch'esse come C62.
  4. Se il prezzo è riferito a una quantità base (per esempio, ogni cento unità), fai in modo che la sua unità sia la stessa della riga.
  5. Genera di nuovo il file e controlla l'attributo unitCode di ogni riga prima di inviarlo.

Continua a leggere

Errore UBL-SR-48: una riga della fattura con due imposte o senza nessunaUBL-SR-48 e BR-CO-04 richiedono una sola categoria IVA per riga della fattura elettronica. Il messaggio di Odoo 17, 18, 19 e 20, insieme a BR-25 e BR-16.Errore BR-CO-15 nella fattura elettronica: il totale con IVA non è imponibile più IVABR-CO-15, BR-CO-14, BR-CO-16 e BR-CO-17 verificano che i totali della fattura elettronica quadrino. Cosa somma ciascuna e quali falliscono per un centesimo.Errori BR-09 e BR-11: indirizzo del venditore o dell'acquirente senza codice paeseBR-09 e BR-11 chiedono il codice paese nell'indirizzo di venditore e acquirente; BR-08 e BR-10, l'indirizzo stesso. Avviso di Odoo 17, 18, 19 e 20 e cosa compilare.
Verificato nel codice del modulo (versione 17.0 e 20.0) e nelle fonti collegate

Fonti