Huella o hash Verifactu: calcula el SHA-256 de un registro
Sitio independiente, no gubernamental
Carga un ejemplo de la Agencia Tributaria o escribe tus datos: la calculadora muestra la cadena que se resume y la huella resultante, y dice si coincide con la oficial.
Huella SHA-256
3C464DAF61…
Coincide con el resultado publicado por la AEAT
3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60
| Longitud | 64 caracteres hexadecimales |
Cadena que se resume
IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00
Los valores se toman tal cual, sin espacios al principio ni al final. Un solo carácter distinto cambia toda la huella.
Preparado por Radif Partners · Método · Normativa leída en el BOE y en la AEAT el 25 de octubre de 2026
La huella, o hash, es el resumen criptográfico que cada sistema informático de facturación añade a sus registros de alta y de anulación, según el artículo 12 del RD 1007/2023 y el artículo 13 de la Orden HAC/1177/2024. Se calcula con el algoritmo SHA-256 sobre una cadena formada por pares campo=valor unidos por el signo &. En un registro de alta entran ocho datos: NIF del emisor, serie y número, fecha de expedición, tipo de factura, cuota total, importe total, huella del registro anterior y fecha, hora y huso horario de generación. En uno de anulación, cinco. Como cada registro incluye la huella del anterior, los registros forman una cadena: si alguien cambia un céntimo de una factura ya registrada, su huella cambia y deja de coincidir con la que guarda el registro siguiente. El documento de la AEAT, versión 0.1.2, publica tres ejemplos con su resultado. Esta calculadora los reproduce carácter por carácter y te deja cambiar cualquier dato para ver el efecto. Sirve a quien programa o audita un sistema; un usuario no tiene que calcular nada, porque su programa lo hace solo.
Los campos que entran en la huella
| Orden | Registro de alta | Registro de anulación |
|---|---|---|
| 1 | IDEmisorFactura | IDEmisorFacturaAnulada |
| 2 | NumSerieFactura | NumSerieFacturaAnulada |
| 3 | FechaExpedicionFactura | FechaExpedicionFacturaAnulada |
| 4 | TipoFactura | Huella |
| 5 | CuotaTotal | FechaHoraHusoGenRegistro |
| 6 | ImporteTotal | |
| 7 | Huella | |
| 8 | FechaHoraHusoGenRegistro |
El artículo 13 de la Orden HAC/1177/2024 dice qué datos del registro se resumen, y el documento técnico de la AEAT dice cómo. Cada dato se escribe con el nombre de su campo, el signo igual y el valor, y los pares se unen con el signo &. Los valores van sin espacios al principio ni al final, la cadena se codifica en UTF-8 y el resultado de SHA-256 se expresa en hexadecimal con letras mayúsculas: sesenta y cuatro caracteres. Un registro de alta del ejemplo oficial empieza así: IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33.
Por qué un céntimo cambia toda la huella
Un buen algoritmo de resumen reacciona a cualquier cambio de la entrada con una salida completamente distinta, sin parecido con la anterior. Por eso no se puede retocar una factura y ajustar la huella a mano: habría que recalcular la del registro modificado y la de todos los que vienen detrás, y la del último ya puede estar en la Agencia Tributaria o firmada. Prueba a cambiar el importe del primer ejemplo oficial:
Huella SHA-256
Huella SHA-256
3C464DAF61AC…
| Huella completa | 3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60 |
| Cadena | IDEmisorFactura=89890001K&NumSerieFactura=123456… |
Huella, encadenamiento y registros de evento
El artículo 8.2 del RD 1007/2023 exige que los registros estén encadenados para poder seguir su rastro del primero al último. La huella es la herramienta para ello. En la modalidad no VERI*FACTU, el sistema además lleva un registro de eventos, también encadenado con su propia huella, donde anota hechos como la detección de anomalías o la exportación de registros. Si el sistema detecta que una cadena se ha roto, debe avisar.
Para un usuario, la huella es invisible: no aparece en la factura ni en el QR. Lo que ve el cliente es el código QR, que puede comprobar con el lector del QR. Las diferencias entre modalidades están en VERI*FACTU o no VERI*FACTU.