Verifactu Validator Spain
Controlla i tuoi registri di fatturazione — e la loro impronta concatenata — prima di inviarli all’AEAT. Nel browser, senza upload.
Che cos’è Verifactu e che cosa valida questo strumento?
Verifactu è la modalità con cui un sistema informatico di fatturazione spagnolo (SIF, disciplinato dal Regio Decreto 1007/2023 e dall’Ordine HAC/1177/2024) trasmette i dati all’AEAT, l’agenzia fiscale spagnola. L’AEAT non riceve una fattura in senso UBL, ma registri di fatturazione: un RegistroAlta per ogni fattura emessa e un RegistroAnulacion per ogni annullamento, raggruppati in un invio RegFactuSistemaFacturacion. Ogni registro porta una huella: un’impronta SHA-256 concatenata che incorpora la huella del registro precedente, così che la catena delle fatture non possa essere alterata senza che si veda. Questo validatore gratuito controlla il file su due livelli: prima contro l’XSD ufficiale dell’AEAT (SuministroLR.xsd e SuministroInformacion.xsd), poi contro i controlli di scarto che l’AEAT stessa pubblica in «Validaciones y errores» (v1.2.2, 08/04/2026), restituendo il codice ufficiale esatto — 1108, 1130, 1142, 1152, 1177, 1189/1190, 1195/1196, 1223… — e RICALCOLA la huella di ogni registro riproducendo i tre vettori ufficiali dell’AEAT. Tutto avviene nel browser: il registro non lascia mai il tuo dispositivo.
Validatore Verifactu: controlla i tuoi registri di fatturazione — e la loro huella — prima che li veda l’AEAT
I sistemi informatici di fatturazione spagnoli (SIF), disciplinati dal Regio Decreto 1007/2023 e dall’Ordine HAC/1177/2024, non inviano fatture all’AEAT: inviano registri di fatturazione. Un RegistroAlta per ogni fattura emessa, un RegistroAnulacion per ogni annullamento, raggruppati in un invio RegFactuSistemaFacturacion. L’AEAT li valida uno a uno e risponde con un codice: accettato, accettato con errori oppure scartato.
Lo strumento lavora su due livelli. Prima l’XSD ufficiale dell’AEAT (SuministroLR.xsd e SuministroInformacion.xsd): struttura, tipi, cardinalità ed enumerazioni chiuse. Poi i controlli di scarto che l’AEAT stessa pubblica in «Validaciones y errores» (v1.2.2, 08/04/2026), con il loro codice esatto: 1108 (il NIF dell’emittente diverso da quello dell’obbligato), 1114/1115, 1116/1117 e 1118/1119 (coerenza delle fatture rettificative e sostituite), 1130 (caratteri non ammessi in NumSerieFactura), 1138/1139 (macrodato), 1142 (CuotaRepercutida rispetto a imponibile e aliquota), 1152, 1177 (IdSistemaInformatico), 1189/1190 (il blocco Destinatarios, comandato dal TipoFactura), 1195/1196 (OperacionExenta e CalificacionOperacion sono esclusivi) e 1223.
E fa ciò che quasi nessuno fa: RICALCOLA la huella. Ogni registro porta un’impronta SHA-256 che incorpora la huella del registro precedente — da qui l’«hash concatenato» — e nessuno può verificarla senza rifare il calcolo, carattere per carattere. La nostra implementazione riproduce i tre vettori ufficiali del documento dell’AEAT «Especificaciones técnicas para generación de la huella o hash» (v0.1.2, 27/08/2024). Tutto avviene nel browser: il registro non viene mai trasmesso.
Punti chiave
- La huella è un SHA-256 CONCATENATO: ogni registro incorpora la huella del precedente. È ciò che rende la catena delle fatture inalterabile — e ciò che nessuno verifica senza rifare il calcolo.
- Una huella errata NON è uno scarto: è il codice 2000, della serie 2xxx «accettato con errori». L’AEAT registra comunque il registro e ne chiede la correzione. La nostra tassonomia segue quella dell’AEAT, non l’intuizione.
- L’errore 1142 è pura aritmetica: CuotaRepercutida rispetto a BaseImponibleOimporteNoSujeto e TipoImpositivo. L’XSD accetta quel registro senza batter ciglio; l’AEAT lo scarta.
- I codici 1189 e 1190 sono simmetrici: se il TipoFactura è F1, F3, R1, R2, R3 o R4 il blocco Destinatarios è obbligatorio; se è F2 o R5, è vietato.
- Circa metà dei controlli richiede un registro dell’AEAT (il censo dei NIF, lo storico dei duplicati, il certificato di firma). Lo strumento li elenca a schermo invece di nasconderli dietro un bollino verde.
Domande frequenti
Questo validatore invia il mio file all’AEAT?
No. Il registro viene letto e analizzato interamente nel tuo browser: nulla viene trasmesso. Validare qui non è trasmettere, e non sostituisce l’invio tramite il tuo canale.
Che cos’è esattamente la huella e perché la ricalcolate?
È l’impronta del registro: una stringa SHA-256 costruita da campi specifici del registro E dalla huella del registro precedente. Concatenati così, i registri formano una sequenza che non può essere alterata a posteriori senza spezzare la catena. Verificarla significa rifare il calcolo esatto — ordine dei campi, formattazione, codifica — ed è precisamente ciò che facciamo: la nostra implementazione riproduce i tre vettori ufficiali dell’AEAT.
Una huella errata fa scartare il registro?
No, ed è controintuitivo: la huella errata è il codice 2000, della serie 2xxx «accettato con errori». L’AEAT lo registra e ne chiede la correzione. Per questo compare come avviso e non come scarto: seguiamo la tassonomia dell’AEAT.
Che cosa significa l’errore 1142?
Che CuotaRepercutida non torna con BaseImponibleOimporteNoSujeto e TipoImpositivo nello stesso dettaglio. È un controllo aritmetico che l’XSD non potrà mai vedere, e una delle cause di scarto più frequenti.
Perché un registro «valido» qui potrebbe comunque essere scartato?
Perché alcuni controlli richiedono una banca dati irraggiungibile senza caricare il tuo file: se il NIF esiste nel censo (1109/4107), se il registro è duplicato nello storico dell’AEAT (3000), se il certificato di firma abilita il mittente (4112). Anche la tolleranza oraria (2004) non è implementabile: la soglia numerica non è pubblicata da nessuna parte — il testo ufficiale si interrompe letteralmente su «admitiéndose un margen de error de:». Lo strumento li elenca tutti, invece di lasciar credere che siano stati verificati.
Da dove vengono le regole?
Solo da documenti ufficiali: gli schemi XSD dell’AEAT (SuministroLR.xsd, SuministroInformacion.xsd), l’elenco «Validaciones y errores» v1.2.2 (08/04/2026) e le «Especificaciones técnicas para generación de la huella o hash» v0.1.2 (27/08/2024). Origen de los datos: Agencia Estatal de Administración Tributaria (schemi scaricati il 13/07/2026). ValidateFin è uno strumento indipendente, né certificato né patrocinato dall’AEAT.
ValidateFin is an independent tool. It is not certified, approved, affiliated with or endorsed by the Agencia Estatal de Administración Tributaria (AEAT), and nothing here should be read as suggesting otherwise. “Official” refers only to the artefacts used — the AEAT’s XSD schemas (SuministroLR.xsd, SuministroInformacion.xsd), its “Validaciones y errores” control list (v1.2.2, 08/04/2026) and its hash specification (“Especificaciones técnicas para generación de la huella o hash”, v0.1.2, 27/08/2024) — not to any accreditation of this tool. Origen de los datos: Agencia Estatal de Administración Tributaria — schemas and control lists retrieved on 13 July 2026. About half of the AEAT’s controls query a government registry (the censo for NIF checks, the duplicate history, the signing certificate) and cannot run in a browser; the tool lists them on screen rather than hiding them behind a green badge. Validating a file here does not submit it to the AEAT.