Vai al contenuto principale
EN 16931 · totali

Errore BR-CO-15 nella fattura elettronica: il totale con IVA non è imponibile più IVA

BR-CO-15 è la regola di EN 16931 che verifica la somma più semplice di una fattura: totale con IVA uguale a totale senza IVA più IVA. Va insieme a BR-CO-14, BR-CO-16, BR-CO-17 e, per l'aliquota ordinaria, BR-S-08 e BR-S-09, e le applicano XRechnung, Factur-X e Peppol BIS. Un centesimo di arrotondamento basta per far fallire BR-CO-14 o BR-CO-15; BR-CO-17 e BR-S-09 ammettono fino a 1 € di differenza.

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

Le formule, come le scrive lo Schematron

RegolaTesto di 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).

Tutte e sei sono bloccanti. Leggile come una catena: le righe sommano la base di ciascuna aliquota (BR-S-08), ogni base per la sua aliquota dà l'IVA di quella aliquota (BR-CO-17 e BR-S-09), le IVA per aliquota sommano l'IVA totale (BR-CO-14), base più IVA dà il totale (BR-CO-15) e il totale meno quanto pagato più l'arrotondamento dà quanto resta da pagare (BR-CO-16).

Scheda delle regole sui totali di EN 16931
BR-CO-15 con BR-CO-14, BR-CO-16, BR-CO-17, BR-S-08 e BR-S-09: la catena di somme di una fattura.

Quali regole notano un centesimo

Non tutte contano i centesimi. BR-CO-17 e BR-S-09 confrontano l'IVA di ogni aliquota (BT-117) con la base per l'aliquota, ma lo Schematron concede loro un margine di 1 € in un senso o nell'altro. BR-S-08 confronta basi, quindi l'arrotondamento dell'IVA non la riguarda. BR-CO-14, BR-CO-15 e BR-CO-16 confrontano somme arrotondate a due decimali, senza margine: lì un centesimo è già un errore.

Il centesimo compare quando ci sono due modi di calcolare l'IVA. Odoo la calcola secondo il Tax Calculation Rounding Method dell'azienda:

Versione di OdooOpzioniPredefinita
Odoo 17 e 18Round per Line o Round GloballyPer riga
Odoo 19 e 20Round per Tax o Round per LinePer imposta

Con l'arrotondamento per riga, Odoo arrotonda l'IVA di ogni riga e poi le somma. In una fattura con molte righe di importi piccoli, quella somma può finire a un centesimo dall'IVA calcolata sulla base di ciascuna aliquota. Se tutte le cifre del file provengono dallo stesso calcolo, le somme quadrano. Se il file riporta l'IVA totale di Odoo accanto a un riepilogo ricalcolato per aliquota, fallisce BR-CO-14; se riporta il totale con IVA di Odoo accanto a un'IVA ricalcolata, fallisce BR-CO-15. Perché scatti BR-CO-17, la differenza deve superare 1 €.

Il metodo di arrotondamento è un'impostazione dell'azienda, non della singola fattura: cambiarlo incide sulle imposte calcolate da quel momento in poi. Fallo tra una fattura e l'altra, mai con una a metà.

Cosa fa il Factur-X di Odoo

Nel Factur-X (CII) di Odoo 18, 19 e 20, il totale con IVA (BT-112) viene scritto come somma della base (BT-109) e dell'IVA (BT-110) già presenti nel file, proprio per rispettare BR-CO-15. Questo assicura la regola della somma; il resto della catena dipende ancora dal fatto che il riepilogo quadri.

Con il nostro modulo XRechnung e ZUGFeRD

Il modulo genera l'XML con il proprio codice e oggi mescola i due calcoli. Calcola l'IVA di ogni aliquota (BT-117) come base per aliquota, e copia il totale con IVA (in UBL) o l'IVA totale (in CII) dalla fattura di Odoo. Con l'arrotondamento per riga, basta un centesimo di differenza: l'XML esce con BR-CO-15 in XRechnung UBL e con BR-CO-14 in XRechnung CII, il formato predefinito del modulo. Lo abbiamo verificato con il validatore di KoSIT. In Odoo 17 e 18, l'arrotondamento per riga è il valore predefinito.

Con un pagamento parziale fallisce BR-CO-16: l'importo da pagare (BT-115) è ciò che risulta ancora aperto in Odoo, ma il file non riporta l'importo già pagato (BT-113).

Fattura di Odoo 20 con la scheda XRechnung / ZUGFeRD del modulo
Esito della validazione e casella Ready to send sulla fattura. Schermata di Odoo 20 con dati dimostrativi; il rapporto nella schermata è di prova.

In Odoo 18, 19 e 20, con l'abbonamento a FlexigoTech Cloud, ogni XRechnung e ogni ZUGFeRD EN 16931 che il modulo genera passa dalle regole di KoSIT, che includono queste sei. Se una fallisce, viene scritta sulla fattura, in Validation Errors, e la fattura non viene segnata come Ready to send. In Odoo 17 la versione pubblicata non valida: il file esce con l'errore e senza avviso.

Cosa fare

  1. Guarda nel rapporto quale regola fallisce per prima: BR-S-08 indica le basi, BR-CO-14 il riepilogo, BR-CO-15 il totale e BR-CO-17 l'IVA di un'aliquota.
  2. Controlla il metodo di arrotondamento dell'azienda e, se emetti fatture elettroniche con molte righe, valuta con il tuo commercialista l'arrotondamento per imposta.
  3. BR-CO-16 compare con pagamenti parziali o con arrotondamento di cassa: l'importo pagato e quello di arrotondamento devono essere nel file. Con il nostro modulo, genera la XRechnung prima di registrare qualsiasi pagamento.
  4. Correggi e genera di nuovo; non modificare l'XML a mano.

Continua a leggere

Errori BR-E-10, BR-AE-10, BR-IC-10 e BR-G-10: il motivo di esenzione IVABR-E-10, BR-AE-10, BR-IC-10, BR-G-10 e BR-O-10 richiedono il motivo di esenzione; BR-S-10 e BR-Z-10 lo vietano. Come lo decide Odoo 17, 18, 19 e 20 e dove si modifica.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.Errori BR-DE-1, BR-61 e BR-DE-23 in XRechnung: le istruzioni di pagamentoBR-DE-1 richiede in XRechnung le istruzioni di pagamento (BG-16) e BR-61 il conto quando si paga con bonifico. Cosa scrive Odoo 17, 18, 19 e 20 e come correggerlo.
Verificato nel codice del modulo (versione 17.0 e 20.0) e nelle fonti collegate

Fonti