Salta al contingut principal
EN 16931 · totals

Error BR-CO-15 a la factura electrònica: el total amb IVA no és base més IVA

BR-CO-15 és la regla d'EN 16931 que comprova la suma més simple d'una factura: total amb IVA igual a total sense IVA més IVA. Va acompanyada de BR-CO-14, BR-CO-16, BR-CO-17 i, per al tipus general, BR-S-08 i BR-S-09, i les apliquen XRechnung, Factur-X i Peppol BIS. Un cèntim de redondeig n'hi ha prou perquè falli BR-CO-14 o BR-CO-15; BR-CO-17 i BR-S-09 admeten fins a 1 € de diferència.

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
5 min

Les fórmules, tal com les escriu el Schematron

ReglaText d'EN 16931 (Schematron validation-1.3.17)
BR-CO-15Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
BR-CO-14Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).
BR-CO-16Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
BR-CO-17VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
BR-S-08For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
BR-S-09The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).

Les sis són fatals. Llegeix-les com una cadena: les línies sumen la base de cada tipus (BR-S-08), cada base per el seu tipus dona l'IVA d'aquell tipus (BR-CO-17 i BR-S-09), els IVA per tipus sumen l'IVA total (BR-CO-14), base més IVA dona el total (BR-CO-15) i el total menys el que s'ha pagat més el redondeig dona el que queda per pagar (BR-CO-16).

Fitxa de les regles de totals d'EN 16931
BR-CO-15 amb BR-CO-14, BR-CO-16, BR-CO-17, BR-S-08 i BR-S-09: la cadena de sumes d'una factura.

Quines regles noten un cèntim

No totes compten cèntims. BR-CO-17 i BR-S-09 comparen l'IVA de cada tipus (BT-117) amb la base per el tipus, però el Schematron els deixa un marge d'1 € amunt o avall. BR-S-08 compara bases, així que el redondeig de l'IVA no l'afecta. BR-CO-14, BR-CO-15 i BR-CO-16 comparen sumes arrodonides a dos decimals, sense marge: aquí un cèntim ja és un error.

El cèntim apareix quan hi ha dues maneres de calcular l'IVA. Odoo el calcula segons l'ajust Tax Calculation Rounding Method de l'empresa:

Versió d'OdooOpcionsPer defecte
Odoo 17 i 18Round per Line o Round GloballyPer línia
Odoo 19 i 20Round per Tax o Round per LinePer impost

Amb el redondeig per línia, Odoo arrodoneix l'IVA de cada línia i després suma. En una factura amb moltes línies d'imports petits, aquesta suma pot quedar a un cèntim de l'IVA calculat sobre la base de cada tipus. Si totes les xifres del fitxer surten del mateix càlcul, les sumes quadren. Si el fitxer porta l'IVA total d'Odoo al costat d'un desglossament refet per tipus, falla BR-CO-14; si porta el total amb IVA d'Odoo al costat d'un IVA refet, falla BR-CO-15. Perquè salti BR-CO-17, la diferència ha de passar d'1 €.

El mètode de redondeig és un ajust de l'empresa, no de cada factura: canviar-lo afecta els impostos que es calculin des d'aquell moment. Fes-ho entre factures, mai amb una a mitges.

Què fa el Factur-X d'Odoo

En el Factur-X (CII) d'Odoo 18, 19 i 20, el total amb IVA (BT-112) s'escriu com la suma de la base (BT-109) i de l'IVA (BT-110) que ja van al fitxer, just per complir BR-CO-15. Això assegura la regla de la suma; la resta de la cadena continua depenent que el desglossament quadri.

Amb el nostre mòdul XRechnung i ZUGFeRD

El mòdul genera el XML amb el seu propi codi i avui barreja els dos càlculs. L'IVA de cada tipus (BT-117) el calcula com a base per tipus; el total amb IVA (en UBL) i l'IVA total (en CII) els copia de la factura d'Odoo. Amb el redondeig per línia, un cèntim de diferència n'hi ha prou: el XML surt amb BR-CO-15 a XRechnung UBL i amb BR-CO-14 a XRechnung CII, el format que el mòdul fa servir per defecte. Ho hem comprovat amb el validador de KoSIT. A Odoo 17 i 18, el redondeig per línia és el valor per defecte.

Amb un pagament parcial falla BR-CO-16: l'import a pagar (BT-115) és el que queda pendent a Odoo, però el fitxer no porta l'import ja pagat (BT-113).

Factura d'Odoo 20 amb la pestanya XRechnung / ZUGFeRD del mòdul
Resultat de la validació i casella Ready to send a la factura. Captura d'Odoo 20 amb dades de demostració; l'informe de la captura és de prova.

A Odoo 18, 19 i 20, amb la subscripció a FlexigoTech Cloud, cada XRechnung i cada ZUGFeRD EN 16931 que genera el mòdul passa per les regles de KoSIT, que inclouen aquestes sis. Si una falla, queda escrita a la factura, a Validation Errors, i la factura no es marca com a Ready to send. A Odoo 17 la versió publicada no valida: el fitxer surt amb el fallo i sense avís.

Què fer

  1. Mira a l'informe quina regla falla primer: BR-S-08 apunta a les bases, BR-CO-14 al desglossament, BR-CO-15 al total i BR-CO-17 a l'IVA d'un tipus.
  2. Revisa el mètode de redondeig de l'empresa i, si emets factures electròniques amb moltes línies, valora el redondeig per impost amb el teu assessor.
  3. BR-CO-16 apareix amb pagaments parcials o amb redondeig de caixa: l'import pagat i el de redondeig han d'anar al fitxer. Amb el nostre mòdul, genera la XRechnung abans de registrar cap pagament.
  4. Corregeix i genera de nou; no edites el XML a mà.

Continua llegint

Errors BR-E-10, BR-AE-10, BR-IC-10 i BR-G-10: el motiu d'exempció de l'IVABR-E-10, BR-AE-10, BR-IC-10, BR-G-10 i BR-O-10 demanen el motiu d'exempció; BR-S-10 i BR-Z-10 el prohibeixen. Com ho decideix Odoo 17, 18, 19 i 20 i on es canvia.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.Errors BR-DE-1, BR-61 i BR-DE-23 a XRechnung: les instruccions de pagamentBR-DE-1 demana a XRechnung les instruccions de pagament (BG-16) i BR-61 el compte quan es paga per transferència. Què escriu Odoo 17, 18, 19 i 20 i com arreglar-ho.
Comprovat al codi del mòdul (versió 17.0 i 20.0) i a les fonts enllaçades

Fonts