Navigazione

fino data services logo

Conoscenze · Fatturazione elettronica

Validare la fattura elettronica e leggere correttamente il rapporto di verifica

Quando una fattura elettronica emessa dal Suo software viene respinta, il Suo team deve capire dal rapporto di verifica quale campo ha generato la segnalazione e chi può correggerlo.

Mostriamo come leggere un rapporto di verifica e in quali punti la validazione va inserita nel Suo software.

Che cosa viene verificato nella validazione di una fattura elettronica

Un validatore verifica una fattura elettronica in successione rispetto a tre set di regole e registra ogni scostamento in un rapporto di verifica.

Schema XML della sintassi

Una fattura elettronica secondo la EN 16931 è disponibile in una di due sintassi, UBL o UN/CEFACT CII. Tutte le specifiche d’uso più comuni si basano su queste due sintassi, ad esempio XRechnung, ZUGFeRD e Peppol BIS Billing 3.0.

Lo schema XML della sintassi stabilisce quali elementi sono ammessi, in quale ordine devono comparire e quale tipo di dato hanno.

Gli errori di schema non hanno un ID della regola. Il parser XML li segnala con codici propri, ad esempio cvc-complex-type.2.4.a per un elemento in una posizione in cui lo schema non lo prevede.

In ZUGFeRD un file CII è incorporato in un PDF. Il validatore verifica la parte XML. In caso di scostamenti rispetto alla parte visiva, è questa parte a fare fede, secondo la circolare del Ministero federale delle Finanze (BMF-Schreiben) del 15 ottobre 2025 sull’introduzione della fattura elettronica obbligatoria.

Regole di business della EN 16931

Le regole di business controllano i dati di una fattura elettronica alla ricerca di errori logici, ad esempio se i campi obbligatori sono compilati e se i totali sono coerenti tra loro. Il Comitato europeo di normazione (CEN) pubblica queste regole come file Schematron su GitHub, rispettivamente per UBL e per CII.

Dal prefisso dell’ID della regola si riconosce il tipo di verifica. Le regole con BR e un numero verificano i campi obbligatori e la loro numerosità, BR-CO verifica calcoli e dipendenze tra campi, BR-CL verifica gli elenchi di codici e BR-DEC i decimali degli importi. Regole come BR-S, BR-AE o BR-IC verificano i dati relativi alle singole categorie IVA.

I file del CEN contengono inoltre regole specifiche della sintassi. Le regole con il prefisso UBL-CR, ad esempio, segnalano un avviso quando un file UBL contiene elementi che non appartengono al modello di dati della EN 16931.

Regole di XRechnung e Peppol BIS Billing 3.0

XRechnung e Peppol BIS Billing 3.0 sono specifiche d’uso della EN 16931, in termini tecnici CIUS (Core Invoice Usage Specification). Prescrivono campi aggiuntivi e integrano la EN 16931 con regole proprie. Una CIUS non può introdurre nuovi campi di dati.

Le regole di XRechnung iniziano con BR-DE e provengono dall’Ufficio di coordinamento per gli standard IT (Koordinierungsstelle für IT-Standards, KoSIT). Peppol BIS Billing 3.0 aggiunge regole con i prefissi PEPPOL-EN16931 e PEPPOL-COMMON nonché regole specifiche per paese.

L’identificativo della specifica in BT-24 stabilisce quale specifica d’uso si applica al file. Il validatore della KoSIT seleziona in base a questo identificativo lo scenario di verifica adatto. Un identificativo errato od obsoleto può quindi far sì che il file venga verificato rispetto ad altre regole o respinto.

Che cosa una validazione non verifica

Un validatore non riconosce se l’aliquota IVA è adeguata alla prestazione o se la descrizione della prestazione è sufficiente.

Secondo il Ministero federale delle Finanze tedesco, tutte le indicazioni obbligatorie ai fini IVA devono trovarsi nella parte strutturata della fattura elettronica. Un semplice rinvio a un allegato con la descrizione della prestazione non è sufficiente. Un nome articolo come «vedi allegato» in BT-153 supera comunque la validazione, perché nessuna regola valuta il contenuto di questo campo.

La KoSIT e il Forum per la fattura elettronica in Germania (Forum elektronische Rechnung Deutschland, FeRD) hanno pubblicato una tabella che associa alle indicazioni obbligatorie previste dalla legge tedesca sull’IVA i relativi campi BT. Sulla base di questa tabella può stabilire quali indicazioni obbligatorie il Suo software dovrebbe tutelare con propri controlli di plausibilità.

Struttura di un rapporto di verifica

Ogni voce del rapporto di verifica contiene di norma quattro informazioni.

ID della regola

L’ID della regola, come BR-CO-15 o BR-DE-2, rimanda alla regola nella documentazione del rispettivo set di regole.

Livello di gravità

Un validatore contrassegna ogni segnalazione come errore o come avviso. Nelle regole Peppol gli errori si chiamano fatal. Un avviso da solo di norma non porta al rifiuto. Alcuni validatori emettono inoltre indicazioni, cioè raccomandazioni per un’implementazione corretta senza influenza sul risultato. Alla fine del suo rapporto il validatore della KoSIT raccomanda di accettare o respingere il documento.

Peppol introduce spesso nuove regole dapprima come avviso e le eleva a errore in una release successiva. Con la versione 3.0.21, ad esempio, le regole PEPPOL-COMMON-R052 e PEPPOL-COMMON-R053 sono passate da avvisi a errori, come riportato nelle release notes di Peppol BIS Billing 3.0.

Posizione

La posizione è un’espressione XPath che punta all’elemento interessato nell’XML. Lo stesso numero BT si trova in UBL e in CII in punti diversi. L’importo della fattura IVA inclusa (BT-112) si trova in UBL nell’elemento cbc:TaxInclusiveAmount sotto cac:LegalMonetaryTotal, in CII nell’elemento ram:GrandTotalAmount sotto ram:SpecifiedTradeSettlementHeaderMonetarySummation.

Nelle regole che confrontano più campi, la posizione punta spesso a un elemento di livello superiore. Il valore che genera la segnalazione si trova allora tramite il testo del messaggio.

Testo del messaggio

Il testo del messaggio descrive la regola e indica per lo più i numeri BT coinvolti. Il messaggio relativo a BR-CO-15, ad esempio, afferma che l’importo della fattura IVA inclusa (BT-112) deve corrispondere alla somma dell’importo della fattura IVA esclusa (BT-109) e dell’importo IVA (BT-110).

Dalla versione 3.0.21 i testi delle regole Peppol iniziano con l’ID della regola.

Analizzare i rapporti di verifica nell'ordine giusto

Un rapporto di verifica lungo risale spesso a poche cause.

  1. Correggere gli errori di schema

    Finché il file non rispetta lo schema, i risultati delle regole di business sono poco significativi o mancano del tutto. Corregga quindi per prima cosa gli errori di schema nell'esportazione e poi validi di nuovo il file.

  2. Raggruppare le voci per ID della regola

    Un errore nella mappatura può comparire in ogni riga della fattura. Una fattura con 40 righe genera allora 40 voci relative alla stessa regola, che risalgono a un'unica causa. Analizzi quindi il rapporto per ID della regola.

  3. Riconoscere gli errori conseguenti

    Un elemento mancante può violare più regole contemporaneamente. Se manca il riepilogo IVA (BG-23), il validatore segnala ad esempio BR-CO-18 e in aggiunta regole della categoria IVA interessata, come BR-S-01. Corregga prima la causa e validi di nuovo, prima di trattare singolarmente le segnalazioni rimanenti.

  4. Dal numero BT al proprio modello di dati

    Il numero BT collega il rapporto di verifica al Suo software. Mantenga un'associazione tra ogni numero BT e il campo del database, il campo del modulo nella Sua interfaccia e la responsabilità. La responsabilità stabilisce se un errore lo corregge il Suo team o il Suo cliente, ad esempio quando mancano dati anagrafici.

  5. Valutare e documentare gli avvisi

    Decida per ogni avviso se correggerlo o accettarlo consapevolmente, e documenti la decisione. A ogni nuova release verifichi se un avviso accettato viene elevato a errore.

Cause di errore tipiche per gruppo di regole

Il gruppo di regole indica spesso già in quale punto del Suo software va applicata la correzione.

Errori di schema senza ID della regola

La causa sta nell’ordine degli elementi, nel namespace o in un tipo di dato errato nell’esportazione. La correzione va applicata nella funzione di esportazione, una volta per tutti i clienti.

BR con numero

La causa sta in un campo obbligatorio non mappato o vuoto nei dati anagrafici. La correzione va applicata nella mappatura o al campo obbligatorio nell’interfaccia.

BR-CO e BR-DEC

La causa sta in totali, arrotondamenti, sconti e maggiorazioni a livello di documento. La correzione va applicata nella logica di calcolo della creazione delle fatture.

BR-CL

La causa sta in un codice obsoleto o proprietario, ad esempio per unità di misura o paesi. La correzione va applicata agli elenchi di codici nel Suo software.

BR-S, BR-AE, BR-IC e altre categorie

Categoria IVA, aliquota e motivo di esenzione non sono coerenti tra loro. La correzione va applicata nella logica fiscale e nei dati anagrafici degli articoli.

UBL-CR

L’esportazione contiene elementi UBL al di fuori del modello di dati della EN 16931. La correzione va applicata nella funzione di esportazione.

BR-DE

Mancano i dati di contatto del venditore, i dati di pagamento o il riferimento dell’acquirente. La correzione va applicata per lo più ai dati anagrafici dei Suoi clienti.

PEPPOL-EN16931 e PEPPOL-COMMON

Manca l’indirizzo elettronico oppure un identificativo ha il formato errato. La correzione va applicata ai dati anagrafici e alla gestione degli ID Peppol.

Riferimento dell’acquirente mancante in XRechnung (BR-DE-15)

La regola BR-DE-15 segnala un riferimento dell’acquirente mancante in BT-10. Nelle fatture alla pubblica amministrazione vi si trova il Leitweg-ID dell’autorità. Per le fatture B2B, secondo il Ministero federale delle Finanze tedesco, ai fini IVA è sufficiente un segnaposto come «-», se il destinatario della fattura non indica un proprio identificativo. Il Suo software può quindi precompilare il campo per le fatture B2B con un segnaposto che i Suoi clienti possono sovrascrivere.

Differenze di arrotondamento nell’IVA (BR-S-09)

La regola BR-S-09 confronta l’importo IVA della categoria ad aliquota ordinaria con il prodotto di base imponibile e aliquota. Se il Suo software arrotonda l’IVA per riga e somma gli importi, il totale può discostarsene. Con molte righe lo scostamento può superare la tolleranza ammessa dalla regola. Calcoli quindi l’importo dell’imposta per categoria a partire da base imponibile e aliquota, come prescrive la regola.

Integrare la validazione nel Suo software

La validazione va inserita in cinque punti del Suo software e del Suo processo di sviluppo.

Prima dell’invio

Il Suo software dovrebbe validare ogni fattura elettronica subito dopo la creazione e bloccare l’invio in caso di errori. I Suoi clienti sanno farsene poco di un ID della regola o di un’espressione XPath. Traduca quindi le regole che i Suoi clienti possono correggere da soli in un’indicazione accanto al campo del modulo interessato. L’indicazione relativa a BR-DE-6, il numero di telefono del contatto del venditore in BT-42, può ad esempio essere «Indichi un numero di telefono per eventuali domande».

Gli errori che derivano dalla Sua mappatura o dalla Sua logica di calcolo non possono essere corretti dal cliente. Tali errori dovrebbero arrivare al Suo team come segnalazione interna.

Alla ricezione

Il Suo software dovrebbe validare anche le fatture elettroniche in entrata e mostrare il risultato accanto al documento. Conservi il file originale senza modifiche e il rapporto di verifica come documento separato accanto ad esso. Il Ministero federale delle Finanze tedesco richiede che almeno la parte strutturata di una fattura elettronica sia conservata integra nella sua forma originale.

Se una fattura passiva contiene errori, il Suo cliente può richiedere al mittente una fattura rettificata. Il Suo software può supportare questo passaggio, ad esempio con una richiesta al mittente già predisposta che contiene il rapporto di verifica.

Nei test automatizzati

Crei una raccolta di fatture di test che copra i Suoi tipi di fattura con i relativi codici, ad esempio 380 per una fattura e 384 per una fattura di rettifica. Copra inoltre ogni categoria IVA utilizzata dai Suoi clienti. A ciò si aggiungono sconti e maggiorazioni nonché ogni sintassi generata dal Suo software. Includa anche file volutamente errati e verifichi che il validatore li respinga.

Il validatore della KoSIT è un programma open source a riga di comando e può essere integrato in una pipeline di build. La KoSIT mette inoltre a disposizione una suite di test con fatture di esempio, adatta come punto di partenza per la Sua raccolta.

Dopo ogni aggiornamento dei set di regole

I set di regole cambiano anche senza un nuovo numero di versione. Per XRechnung 3.0.2 la KoSIT pubblica regolarmente bundle con correzioni di errori, l’ultimo nella versione del 31 agosto 2026. XRechnung 3.0 resta in vigore almeno fino al 31 luglio 2027.

La versione preliminare della specifica XRechnung 4.0 è stata pubblicata il 15 settembre 2026. Non è espressamente destinata all’uso in produzione, ma Le offre una prima panoramica delle funzionalità nuove e modificate. La versione finale dovrebbe essere pubblicata nella primavera del 2027 insieme ai componenti tecnici.

OpenPeppol pubblica regolarmente nuove release di Peppol BIS Billing 3.0, negli ultimi anni ogni volta a maggio e a novembre. La versione 3.0.21 è stata pubblicata il 20 maggio 2026 ed è vincolante dal 17 agosto 2026.

Pianifichi per ogni release una data fissa in cui validare la Sua raccolta di test rispetto alle nuove regole. Registri in ogni rapporto di verifica con quale versione del validatore e del set di regole è stato generato. Così potrà ricostruire un risultato anche quando le regole sono nel frattempo cambiate. Per il passaggio a XRechnung 4.0 il Suo ambiente di test dovrebbe poter verificare entrambe le versioni in parallelo.

Analizzare i rapporti di verifica su tutti i clienti

Se il Suo software genera fatture elettroniche per molti clienti, conviene analizzare i rapporti di verifica su tutti i clienti. Se lo stesso ID della regola compare improvvisamente presso molti clienti, la causa sta probabilmente nella mappatura o in un nuovo set di regole. Se compare solo presso un cliente, la causa sta più probabilmente nei suoi dati anagrafici.

Validazione con InvoiceRails

Può implementare completamente in proprio i passaggi descritti in questo articolo. L’impegno iniziale è contenuto, quello permanente no: set di regole, elenchi di codici e configurazioni di verifica cambiano più volte all’anno e ogni modifica deve confluire nei Suoi test, nel Suo invio e nella Sua pianificazione delle release.

Validazione, invio e manutenzione dei set di regole possono quindi essere affidati anche a un Peppol Access Point certificato come InvoiceRails.

Validatore di fatture elettroniche per verifiche singole

Il validatore di fatture elettroniche gratuito di InvoiceRails verifica file XML in UBL e CII nonché fatture PDF ibride, senza registrazione. Riconosce automaticamente sintassi, versione e profilo, tra cui XRechnung, Peppol BIS Billing 3.0, ZUGFeRD, Factur-X e altri profili della EN 16931. Valida poi il file rispetto allo schema XML e alle regole Schematron e di business del profilo riconosciuto. Il rapporto di verifica può essere scaricato come PDF o condiviso tramite link, ad esempio quando il Suo supporto discute con un cliente una fattura respinta.

L’API di InvoiceRails nel Suo software

InvoiceRails è il Peppol Access Point certificato OpenPeppol di fino data services. Il Suo software integra InvoiceRails tramite un’API REST e invia e riceve tramite essa fatture elettroniche per un numero qualsiasi di clienti, su richiesta in white label.

L’API offre la validazione come endpoint dedicato, anch’esso con riconoscimento automatico del profilo. Il Suo software può così verificare le fatture elettroniche subito dopo la creazione. Ogni segnalazione nella risposta contiene ID della regola, livello di gravità, testo del messaggio e posizione come XPath. Il Suo software può salvare l’ID della validazione con la fattura e richiamare di nuovo il risultato per almeno 90 giorni.

InvoiceRails valida ogni file che il Suo software invia tramite Peppol, anche senza questa chiamata. Il Suo software deve verificare in anticipo quali formati supporta un destinatario.

InvoiceRails verifica anche le fatture elettroniche in entrata e consegna al Suo software il file originale insieme ai dati della fattura estratti. Un webhook comunica al Suo software ogni modifica dello stato di consegna.

Il Suo software continua a occuparsi dell’associazione dei campi del Suo modello di dati, delle indicazioni comprensibili nella Sua interfaccia e dei controlli di plausibilità per le indicazioni obbligatorie che nessuna regola copre.

Domande frequenti

Il validatore della KoSIT verifica i documenti XML rispetto a schema e Schematron. La configurazione di verifica caricata determina quali regole si applicano. La KoSIT pubblica una configurazione per XRechnung e una per Peppol BIS Billing 3.0, basata sui file di verifica di OpenPeppol. Se non desidera mantenere in proprio i set di regole, può integrare la validazione tramite l’endpoint dell’API di InvoiceRails, che riconosce automaticamente il profilo. Il Ministero federale delle Finanze tedesco non raccomanda alcun validatore specifico. È importante che il Suo validatore utilizzi le versioni attualmente valide dei set di regole.

I validatori possono utilizzare versioni diverse dei set di regole o verificare il file rispetto a specifiche d’uso diverse. Un validatore che verifica solo la EN 16931, ad esempio, non segnala violazioni di regole di XRechnung come BR-DE-15. Alcuni validatori verificano inoltre regole proprie che non compaiono in alcun set di regole ufficiale. Confronti quindi per prima cosa le indicazioni di versione, la specifica verificata e l’origine dell’ID della regola segnalato.

Un rifiuto automatico non è obbligatorio. Secondo il Ministero federale delle Finanze tedesco, una validazione non è un presupposto diretto per il riconoscimento fiscale di una fattura. La decisione spetta ai Suoi clienti. Il Suo software dovrebbe mostrare loro a tal fine il rapporto di verifica.

È determinante il profilo indicato nell’identificativo della specifica BT-24. Secondo il Ministero federale delle Finanze tedesco, i profili MINIMUM e BASIC-WL non soddisfano i requisiti IVA di una fattura elettronica. Il Suo software dovrebbe quindi generare un profilo superiore per le fatture elettroniche.

Per approfondire

Che cos'è Peppol BIS Billing 3.0?
Fatturazione elettronica

Che cos'è Peppol BIS Billing 3.0?

Peppol BIS Billing 3.0 è la specifica di OpenPeppol per fatture e note di credito nella rete Peppol. Si tratta di una specifica d'uso (CIUS) della norma europea EN 16931.

Fatturazione elettronica in Belgio
Scheda informativa

Fatturazione elettronica in Belgio

In Belgio la fattura elettronica strutturata nel B2B è obbligatoria dal 1° gennaio 2026 contemporaneamente per l'emissione e per la ricezione, senza scaglionamento in base alle dimensioni dell'impresa…

XRechnung, ZUGFeRD e BIS Billing 3.0: quali formati di fattura elettronica dovrebbe supportare il Suo software
Fatturazione elettronica

XRechnung, ZUGFeRD e BIS Billing 3.0: quali formati di fattura elettronica dovrebbe supportare il Suo software

Dal 1° gennaio 2027 le imprese con un fatturato complessivo dell'anno precedente superiore a 800.000 euro devono inviare fatture elettroniche.

Validazione, invio e ricezione tramite un'unica API

Mostriamo come il Suo software valida, invia e riceve fatture elettroniche tramite InvoiceRails, per un numero qualsiasi di clienti.

Scopri InvoiceRails