VeriFactu Fase 3: Invio all'AEAT
Che cos'è la Fase 3
La Fase 3 di VeriFactu è l'invio automatico dei registri di fatturazione all'Agenzia delle Entrate (AEAT) tramite messaggi SOAP/XML. Complementa le fasi precedenti (hash SHA-256 e QR) con la trasmissione effettiva di ogni registrazione e annullamento di fattura al sistema SII dell'AEAT.
Con questa fase attiva, Frihet genera l'XML conforme all'Ordinanza HAC/1177/2024, lo firma con il tuo certificato digitale e lo invia direttamente ai server dell'AEAT. Tutto avviene in background, senza intervento manuale.
Certificato digitale
Per inviare registri all'AEAT hai bisogno di un certificato digitale valido. Frihet accetta certificati in formato .pfx o .p12.
Dove ottenere un certificato
| Emittente | Tipo | Costo |
|---|---|---|
| FNMT (Fabrica Nacional de Moneda y Timbre) | Persona fisica o giuridica | Gratuito |
| CamCert (Camaras de Comercio) | Azienda | Variabile |
| ACCV (Comunitat Valenciana) | Regionale | Gratuito |
Caricare il certificato
- Vai a Impostazioni > Conformità
- Nella sezione Certificato Digitale, clicca su Carica certificato
- Seleziona il tuo file
.pfxo.p12 - Inserisci la password del certificato
La password del tuo certificato viene crittografata con AES-256-GCM prima di essere memorizzata. Non viene mai salvata in testo in chiaro.
Sandbox vs Produzione
Il toggle Modalità sandbox in Impostazioni > Conformità permette di inviare i registri all'ambiente di test dell'AEAT prima di attivare l'invio reale.
- Sandbox: i registri vengono inviati all'endpoint di test. L'AEAT li convalida ma non li registra ufficialmente. Utile per verificare che il certificato e i dati siano corretti.
- Produzione: i registri vengono inviati all'endpoint ufficiale. Le fatture vengono registrate nel sistema SII dell'AEAT.
Attiva la modalità sandbox durante i primi giorni per confermare che il tuo certificato funzioni correttamente e che i dati vengano generati senza errori.
Invio automatico
Attivazione
- Vai a Impostazioni > Conformità
- Attiva il toggle Invia automaticamente all'AEAT
Con questo toggle attivo, ogni fattura emessa o annullata viene inviata automaticamente:
Flusso di registrazione (fattura emessa)
- Viene calcolato l'hash SHA-256 della fattura (stringa immutabile)
- Viene generato l'XML di registrazione conforme alla specifica AEAT
- Viene firmato l'XML con il tuo certificato digitale
- Viene inviato via SOAP all'endpoint dell'AEAT
- Viene memorizzata la risposta (CSV assegnato o errore)
Flusso di annullamento (fattura annullata)
- Viene calcolato l'hash di annullamento con i 5 campi richiesti
- Viene generato l'XML di annullamento
- Viene firmato e inviato all'endpoint dell'AEAT
- Viene memorizzata la risposta e lo stato di annullamento
Entrambi i flussi sono fire-and-forget: l'utente può continuare a lavorare mentre l'invio viene elaborato in background.
Invio manuale
Se l'invio automatico non è attivo, o se hai bisogno di reinviare una fattura specifica:
- Apri la fattura in questione
- Clicca sul menu delle azioni (tre punti)
- Seleziona Invia all'AEAT
- Viene mostrato un dialogo di conferma con l'anteprima dell'hash
- Conferma per avviare l'invio
L'invio manuale segue lo stesso flusso tecnico di quello automatico.
Stati di invio
Ogni fattura mostra un badge con il suo stato di invio all'AEAT:
| Stato | Badge | Descrizione |
|---|---|---|
| In sospeso | Outline (senza colore) | Hash calcolato, invio non avviato |
| Inviato | Grigio | Messaggio SOAP inviato, in attesa di risposta dall'AEAT |
| Accettato | Verde | L'AEAT ha accettato la registrazione e ha assegnato un codice CSV |
| Rifiutato | Rosso | L'AEAT ha rifiutato la registrazione. Vedi dettaglio dell'errore |
| Errore | Rosso | Errore tecnico nell'invio (rete, certificato, timeout) |
Consultare lo stato
Lo stato di invio è visibile in:
- La vista di dettaglio di ogni fattura (badge accanto al numero)
- L'elenco generale delle fatture (colonna di stato)
- Il registro ampliato (colonne aggiuntive)
Tentativi automatici
Quando un invio fallisce per errore tecnico (timeout, errore di rete, servizio AEAT non disponibile), Frihet ritenta automaticamente:
- Frequenza: ogni 15 minuti
- Numero massimo di tentativi: 3
- Dopo 3 fallimenti: lo stato diventa Errore e richiede intervento manuale
Per ritentare manualmente una fattura con stato Errore:
- Apri la fattura
- Sul badge di stato rosso, clicca su Ritenta
- Viene eseguito un nuovo tentativo di invio
Indicatori nel PDF
Le fatture accettate dall'AEAT includono informazioni aggiuntive nel PDF generato:
- Badge "Registrata all'AEAT" nell'intestazione del documento
- Codice CSV assegnato dall'AEAT, accanto al QR di verifica
Questi indicatori appaiono solo quando lo stato di invio è Accettato.
Registro ampliato
Con la Fase 3 attiva, il registro delle fatture emesse include 3 colonne aggiuntive:
| Colonna | Descrizione |
|---|---|
| Stato Invio AEAT | Stato dell'invio del registro di registrazione (In sospeso, Inviato, Accettato, Rifiutato, Errore) |
| CSV AEAT | Codice sicuro di verifica assegnato dall'AEAT all'accettazione della registrazione |
| Stato Annullamento AEAT | Stato dell'invio del registro di annullamento (se applicabile) |
Queste colonne vengono aggiunte alla fine del CSV esportato, dopo le 12 colonne standard.
Risoluzione dei problemi
"Certificato non configurato"
Non è stato caricato un certificato digitale. Vai a Impostazioni > Conformità e carica il tuo file .pfx o .p12.
"NIF non configurato"
Il profilo fiscale non ha un NIF. Vai a Impostazioni > Profilo Fiscale e completa il tuo identificativo fiscale.
Errore SOAP / Errore di connessione
Possibili cause:
- Certificato scaduto: verifica la data di validità del tuo certificato. I certificati FNMT hanno una validità di 4 anni.
- Password errata: ricarica il certificato con la password corretta.
- Servizio AEAT non disponibile: l'AEAT ha finestre di manutenzione. Il sistema ritenterà automaticamente.
- Dati fiscali incompleti: verifica che il tuo NIF, indirizzo fiscale e dati aziendali siano completi.
Un certificato scaduto blocca tutti gli invii. Rinnova il tuo certificato presso l'FNMT o CamCert prima della data di scadenza.
Fattura rifiutata dall'AEAT
L'AEAT può rifiutare una registrazione per:
- NIF dell'emittente non corrisponde al certificato
- Formato della data errato
- Tipo di fattura non valido per l'operazione
Controlla il messaggio di errore nel dettaglio della fattura. Correggi i dati e usa Ritenta per inviare nuovamente.
Calendario legale
L'obbligo di invio all'AEAT ha scadenze scaglionate secondo il RDL 15/2025:
| Tipo di contribuente | Data limite |
|---|---|
| Società (S.L., S.A.) | 1° gennaio 2027 |
| Lavoratori autonomi (persona fisica) | 1° luglio 2027 |
Frihet supporta già l'invio all'AEAT. Si raccomanda di attivare la modalità sandbox in anticipo per convalidare la configurazione prima che l'obbligo entri in vigore.
Relazione con altre fasi
- Fase 1 (Hash SHA-256): viene calcolato automaticamente per ogni fattura. È la base della registrazione. Vedi VeriFactu.
- Fase 2 (QR AEAT): il codice QR nel PDF si collega alla sede elettronica dell'AEAT per la verifica.
- Fase 3 (Invio AEAT): questa pagina. Trasmissione effettiva della registrazione all'AEAT tramite SOAP/XML.
Precedente: VeriFactu | Successivo: Immutabilità e registrazione