Fase 1 e fase 2 sono problemi diversi
La fase 1 (Generation) chiedeva una fattura elettronica strutturata, con un codice QR e un insieme definito di campi. Qualsiasi sistema di fatturazione in grado di produrre un documento conforme la soddisfaceva, e nulla usciva dalla vostra azienda. La fase 2 (Integration) è un lavoro di tutt’altra natura: il vostro sistema dialoga con la piattaforma della ZATCA per ogni fattura emessa, e l’amministrazione fiscale risponde.
È proprio questo cambiamento a cogliere impreparati i team. Un’implementazione di fase 1 è un formato di documento. Un’implementazione di fase 2 è un’integrazione in cui la disponibilità è critica, con chiavi crittografiche, certificati che scadono e una dipendenza esterna che si colloca fra la vostra cassa e la fattura stampata.
Convalida e comunicazione non sono lo stesso flusso
Le fatture fiscali standard, cioè i documenti tra imprese, seguono la convalida preventiva (clearance). Trasmettete la fattura alla ZATCA prima di consegnarla all’acquirente, ed essa diventa una fattura fiscale giuridicamente valida solo dopo che la ZATCA l’ha convalidata e ne ha restituito una copia firmata. Se la convalida non va a buon fine, la fattura non esiste ancora.
Le fatture fiscali semplificate, tipicamente gli scontrini dei punti vendita rivolti ai consumatori, seguono la comunicazione successiva (reporting). Emettete e consegnate subito lo scontrino, poi lo comunicate alla ZATCA in un secondo momento, entro la finestra pubblicata. Il cliente non attende mai la rete.
La conseguenza pratica è che il punto vendita e la fatturazione B2B richiedono comportamenti diversi in caso di guasto. La cassa di un negozio deve continuare a vendere quando cade la connessione e riconciliare in seguito. Una fattura B2B non deve essere considerata emessa finché non è stata convalidata.
Le componenti crittografiche, in ordine
L’integrazione è soprattutto una sequenza di credenziali. Ogni passaggio dipende dal precedente, e ciascuno è un punto in cui un’implementazione può arenarsi:
- Una coppia di chiavi e una richiesta di firma del certificato (CSR) generate per ciascun dispositivo o unità di fatturazione, con i dati di registrazione IVA esattamente nei campi che la ZATCA si aspetta.
- Un certificato di conformità, ottenuto trasmettendo la CSR con una password monouso rilasciata dal portale ZATCA: è il passaggio che fallisce più spesso, perché l’OTP ha una validità molto breve.
- Verifiche di conformità: fatture, note di credito e note di debito di esempio per ogni tipo che intendete emettere, tutte accettate prima di poter procedere oltre.
- Un certificato di produzione, quello che firma effettivamente i documenti reali, e che ha una data di scadenza di cui qualcuno deve farsi carico molto prima che arrivi.
Che cosa deve contenere la fattura
Il documento che trasmettete è un XML UBL 2.1, non un PDF. Al suo interno si trovano gli elementi che rendono la fattura verificabile: un hash crittografico della fattura precedente, che concatena i vostri documenti in modo che una fattura cancellata o inserita sia rilevabile; una firma digitale; e un codice QR che riporta nome del cedente, partita IVA, marca temporale, totale, importo dell’IVA e dati della firma in una codifica binaria definita.
Una versione leggibile resta importante, perché gli acquirenti vogliono un documento da archiviare: per questo la maggior parte delle implementazioni produce un PDF/A-3 con l’XML firmato incorporato, ottenendo un unico file leggibile e al tempo stesso verificabile automaticamente.
I guasti per cui vale la pena progettare
Chiunque abbia gestito questo processo in produzione si è scontrato con lo stesso breve elenco, e ogni voce è una scelta di progettazione, non un difetto da correggere più avanti:
- La ZATCA è irraggiungibile o lenta. Le fatture semplificate dovrebbero andare in coda ed essere comunicate più tardi; le fatture standard non possono comunque essere semplicemente emesse. Decidete in anticipo che cosa vede il cassiere.
- Un certificato scade. Il rinnovo è un’attività operativa pianificata, non un incidente: un certificato di produzione scaduto blocca del tutto la fatturazione.
- Una fattura viene respinta per un campo che il vostro ERP ammette e la ZATCA no: unità di misura insolite, sconti o righe di spedizione modellati in un modo che la mappatura XML non riesce a esprimere.
- La catena di hash si interrompe dopo un ripristino da backup o una modifica manuale al database, e ogni fattura successiva eredita il problema.
Che cosa chiedere a un fornitore
Dichiarare la conformità non costa nulla. Le domande utili sono specifiche: quali tipi di documento avete fatto convalidare e comunicato in produzione, non in ambiente di prova? Che cosa accade a una vendita quando la ZATCA va in timeout? Chi rinnova il certificato, e che cosa lo avvisa? Posso esportare il mio XML firmato e la catena di hash se cambio fornitore? Un fornitore che ha davvero gestito la fase 2 avrà risposte concrete, perché ciascuna di queste questioni gli è costata almeno una giornata.
Domande frequenti
Qual è la differenza tra la fase 1 e la fase 2 della ZATCA?
La fase 1 (Generation) chiedeva una fattura elettronica strutturata con un codice QR e un insieme definito di campi, e nulla usciva dalla vostra azienda. La fase 2 (Integration) è un lavoro di altra natura: il vostro sistema dialoga con la piattaforma della ZATCA per ogni fattura emessa, e l’amministrazione fiscale risponde. La fase 1 è un formato di documento; la fase 2 è un’integrazione in cui la disponibilità è critica, con chiavi crittografiche, certificati che scadono e una dipendenza esterna fra la cassa e la fattura stampata.
Qual è la differenza tra convalida e comunicazione nella fase 2?
Le fatture fiscali standard, cioè i documenti tra imprese, seguono la convalida: trasmettete la fattura alla ZATCA prima di consegnarla all’acquirente, ed essa è una fattura fiscale giuridicamente valida solo dopo che la ZATCA l’ha convalidata e ne ha restituito una copia firmata. Le fatture fiscali semplificate, tipicamente gli scontrini dei punti vendita, seguono la comunicazione: emettete e consegnate subito lo scontrino, poi lo comunicate alla ZATCA entro la finestra pubblicata. Il cliente non attende mai la rete.
Che cosa succede alla cassa quando la ZATCA è irraggiungibile o lenta?
I due flussi richiedono comportamenti diversi in caso di guasto, ed è una scelta di progettazione, non un difetto da correggere più avanti. Le fatture semplificate dovrebbero andare in coda ed essere comunicate più tardi, così la cassa continua a vendere quando cade la connessione e riconcilia in seguito. Una fattura standard non può comunque essere semplicemente emessa, quindi decidete in anticipo che cosa vede il cassiere.
Che cosa deve contenere, in concreto, una fattura di fase 2?
Il documento che trasmettete è un XML UBL 2.1, non un PDF. Contiene un hash crittografico della fattura precedente, che concatena i documenti in modo che una fattura cancellata o inserita sia rilevabile, una firma digitale e un codice QR con nome del cedente, partita IVA, marca temporale, totale, importo dell’IVA e dati della firma in una codifica binaria definita. Poiché gli acquirenti vogliono comunque un documento da archiviare, la maggior parte delle implementazioni produce un PDF/A-3 con l’XML firmato incorporato.
Che cosa chiedere a un fornitore sull’integrazione di fase 2?
Dichiarare la conformità non costa nulla, quindi rendete le domande specifiche. Quali tipi di documento avete fatto convalidare e comunicato in produzione anziché in ambiente di prova? Che cosa accade a una vendita quando la ZATCA va in timeout? Chi rinnova il certificato di produzione, e che cosa lo avvisa prima della scadenza? Posso esportare il mio XML firmato e la catena di hash se cambio fornitore?
Questa guida fornisce informazioni generali e non costituisce consulenza fiscale, contabile o legale. Le regole variano da Paese a Paese e cambiano nel tempo; prima di agire, verificare la situazione vigente presso la propria autorità fiscale o un consulente qualificato.
Pronto a gestire la Sua attività in un unico spazio di lavoro?