Salta al contingut principal
EN 16931 · llistes de codis

Error BR-CL-23: la unitat de mesura de la línia no és un codi UN/ECE

Cada línia d'una factura electrònica porta la seva quantitat amb una unitat, escrita com un codi de la Recomanació 20 de la UN/ECE: C62 per a unitat, per exemple. BR-CL-23 comprova que el codi sigui a la llista, BR-23 que n'hi hagi un i PEPPOL-EN16931-R130 que la unitat del preu sigui la mateixa que la de la quantitat.

FlexigoTech · Responsable: Víctor Gómez · Actualitzat el 4 de novembre de 2026

L'essencial

Versions
Odoo 17, 18, 19 i 20
Comprovat
al codi del mòdul, versió 17.0 i 20.0 · a les fonts enllaçades al final
Lectura
3 min
  1. BR-23, fatal «An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).» La línia ha de dur unitat.
  2. BR-CL-23, fatal «Unit code MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extension» La unitat ha de ser un codi de la llista.
  3. PEPPOL-EN16931-R130, fatal «Unit code of price base quantity MUST be same as invoiced quantity.» Si el preu va per una quantitat base, la seva unitat és la mateixa que la de la línia.

Les dues primeres són d'EN 16931 (Schematron validation-1.3.17). La tercera és de Peppol BIS (3.0.22) i XRechnung també l'aplica.

Targeta de les regles de unitat de mesura
BR-CL-23, BR-23 i PEPPOL-EN16931-R130 sobre BT-130 i l'atribut unitCode.

D'on treu Odoo el codi

El codi que Odoo escriu al fitxer surt d'un lloc diferent segons la versió:

  • Odoo 17, 18 i 19: té una taula que relaciona les unitats d'Odoo (pel seu identificador extern) amb codis UN/ECE. Una unitat que has creat tu no és a la taula i surt com a C62, unitat.
  • Odoo 20: cada unitat de mesura té el seu propi camp de codi UN/ECE, i és aquest codi el que va al fitxer. Odoo el passa a majúscules, però no el compara amb la llista.

BR-CL-23 salta quan el codi del fitxer no és a la llista. A Odoo 20 n'hi ha prou amb un codi mal escrit a la unitat de mesura. A Odoo 17 a 19 la taula sempre dona un codi de la llista, així que la regla només salta si el codi arriba per un altre camí, com un mòdul que el canviï.

Hi ha també un problema que cap regla veu: una unitat pròpia («palet», «caixa de dotze») que a Odoo 17 a 19 es converteix en C62 sense avisar. El fitxer passa BR-CL-23, perquè C62 és a la llista, però el teu client rep «unitats» on tu venies caixes.

Per a qui rep la factura, el codi compta: el seu programari el llegeix per casar la línia amb la seva comanda i amb l'entrada de mercaderia. Si va demanar caixes i la factura diu unitats, la quantitat no quadra amb el que va rebre encara que l'import sigui el mateix, i la factura es queda aturada en la seva revisió.

Amb el nostre mòdul XRechnung i ZUGFeRD

El mòdul porta la seva pròpia taula, editable, d'unitats d'Odoo a codis UN/ECE, perquè cada unitat teva tingui el seu codi a BT-130. Una unitat que no sigui a aquesta taula surt com a C62, igual que a Odoo 17 a 19, i l'únic avís queda al registre del servidor, que no es veu des de la factura. Una línia sense unitat també surt com a C62.

Taula del mòdul XRechnung que relaciona unitats d'Odoo amb codis UN/ECE a Odoo 20
Minuts, unitats, hores, metres quadrats, quilowatts hora i altres, amb el seu codi per a BT-130. Captura d'Odoo 20 amb dades de demostració.

A Odoo 18, 19 i 20, amb la subscripció a FlexigoTech Cloud, cada XRechnung i cada ZUGFeRD EN 16931 es valida amb les regles de KoSIT i un codi fora de la llista apareix com a BR-CL-23 a Validation Errors. A Odoo 17 la versió publicada no valida.

Què revisar

  1. Mira quina unitat porta la línia al XML (atribut unitCode).
  2. A Odoo 20, obre la unitat de mesura i posa-hi el seu codi UN/ECE.
  3. A Odoo 17, 18 i 19, si fas servir unitats pròpies, ten en compte que sortiran com a C62. Amb el nostre mòdul, en qualsevol versió, afegeix cada una a la seva taula: les que hi falten també surten com a C62.
  4. Si el preu va per quantitat base (per exemple, per cada cent unitats), que la seva unitat sigui la mateixa que la de la línia.
  5. Genera el fitxer de nou i comprova l'atribut unitCode de cada línia abans d'enviar-lo.

Continua llegint

Error UBL-SR-48: una línia de la factura amb dos impostos o sense capUBL-SR-48 i BR-CO-04 exigeixen una categoria d'IVA, i només una, a cada línia de la factura electrònica. L'avís d'Odoo 17, 18, 19 i 20, juntament amb BR-25 i BR-16.Error BR-CO-15 a la factura electrònica: el total amb IVA no és base més IVABR-CO-15, BR-CO-14, BR-CO-16 i BR-CO-17 comproven que els totals de la factura electrònica quadrin. Què suma cadascuna i quines fallen per un cèntim.Errors BR-09 i BR-11: l'adreça del venedor o del comprador sense codi de paísBR-09 i BR-11 demanen el codi de país a l'adreça del venedor i del comprador; BR-08 i BR-10, l'adreça mateixa. L'avís d'Odoo 17, 18, 19 i 20 i què emplenar.
Comprovat al codi del mòdul (versió 17.0 i 20.0) i a les fonts enllaçades

Fonts