Blog · verifactu
La huella encadenada y el QR, explicados
Publicado el 2026-10-28
Dos elementos nuevos aparecen en toda factura desde que la norma antifraude está en vigor: una cadena larga de letras y números, y un código QR. La mayoría de la gente los ignora. Merecen cinco minutos, porque explican por qué el sistema funciona.
Qué es una huella, sin tecnicismos
Una huella es el resultado de pasar un texto por una función matemática que siempre devuelve una cadena de la misma longitud. Tiene tres propiedades que la hacen útil aquí:
- El mismo texto da siempre la misma huella. Sin excepciones y sin azar.
- Un cambio mínimo la cambia entera. Un céntimo de diferencia y la huella no se parece en nada a la anterior.
- No se puede volver atrás. De la huella no se reconstruye el texto.
La función que usa la norma produce una cadena de 64 caracteres hexadecimales en mayúsculas. Es la que ves impresa al pie de tus facturas.
Qué entra en la huella, y qué no
Esta es la parte que sorprende: en la huella entran muy pocos datos. Para un registro de alta, ocho campos, en un orden exacto y unidos de una forma exacta:
- El NIF de quien emite.
- El número de serie y número de la factura.
- La fecha de expedición.
- El tipo de factura.
- La cuota total y el importe total.
- La huella anterior.
- La fecha y hora con huso en que se generó el registro.
Y ya. Para un registro de anulación son cinco: los tres que identifican la factura anulada, la huella anterior y la fecha y hora.
Lo que no entra tiene tanto interés como lo que entra: la descripción de la operación, los datos del cliente, la calificación de cada línea, la moneda, el territorio, los descuentos. Todo eso viaja en el registro y se declara, pero no participa del cálculo.
Eso explica cosas que si no parecen mágicas:
- Una factura en dólares sella igual que una en euros, porque los importes que entran son siempre los euros ya convertidos.
- Una factura con IGIC sella igual que una con IVA, porque lo que entra es la suma de cuotas, no el nombre del impuesto.
- Un PDF en inglés sella igual que uno en español, porque el idioma es rótulo.
Por qué se encadena
Cada huella incluye la huella de la factura anterior. La primera de la cadena la lleva vacía, y a partir de ahí cada eslabón depende del anterior.
El efecto es el que se buscaba: no se puede borrar una factura del medio. Si desaparece, todas las posteriores dejan de cuadrar, porque su huella se calculó contando con ella. Y no se puede recalcular la cadena entera sin dejar rastro, porque la fecha y hora de generación de cada registro también entra.
Un detalle poco conocido: las anulaciones van en la misma secuencia que las altas. Si anulas una factura, ese registro de anulación ocupa su posición y la siguiente factura encadena con él, no con la última alta. Sin eso, no habría forma de saber sin ambigüedad cuál fue el último registro sellado.
Qué lleva el QR
El QR no contiene la factura. Contiene una dirección del servicio de cotejo de la Agencia Tributaria con cuatro datos:
- El NIF del obligado.
- El número de serie y número de factura.
- La fecha de expedición.
- El importe total.
Quien lo escanea llega al servicio y comprueba si esa factura consta. Nada más y nada menos.
La norma fija además cómo tiene que verse: entre 30 y 40 milímetros, con el nivel de corrección de errores que permite leerlo aunque esté algo sucio o doblado. Un QR de 15 milímetros no cumple aunque tu móvil lo lea.
Y junto al QR va la leyenda que indica que la factura es verificable. Es texto obligatorio, no un adorno de plantilla.
Qué hace Zeva, hasta el detalle raro
Sella con el algoritmo de la norma y devuelve la cadena de 64 caracteres en mayúsculas. El vector de ejemplo oficial de la administración se verifica en la propia batería de pruebas: si un cambio rompiera el cálculo, la prueba fallaría antes de llegar a producción.
El preimagen se guarda con la factura. El texto exacto que se pasó por la función queda embebido en el XML del registro. Eso permite que la función de verificación recalcule cada huella byte a byte en lugar de fiarse de un campo guardado. Es la diferencia entre comprobar y creer.
La numeración y la posición en la cadena se asignan bajo el mismo cerrojo. Dos personas emitiendo simultáneamente no pueden compartir número ni posición.
El QR se imprime a unos 35 milímetros, dentro del rango que exige la norma, con el nivel de corrección correcto, y se codifica tal cual se selló: el generador del PDF no recalcula nada, coge la dirección que ya quedó guardada al emitir. Si la recalculara, el papel y el registro podrían divergir.
El pie legal es inmune a la personalización. Puedes elegir plantilla, poner tu logo y tu color de marca; el bloque de QR, leyenda y huella se dibuja siempre en el color oscuro seguro sobre fondo blanco. Una marca con un color claro no puede dejar ilegible el elemento que la ley exige que se lea.
El entorno de cotejo se resuelve en el servidor y es obligatorio. La dirección del QR apunta a producción o a preproducción según la configuración del despliegue, nunca según un parámetro que llegue de fuera. Antes tenía producción como valor por defecto y se corrigió justamente por eso: un valor por defecto en un sitio así lo hereda por accidente cualquiera. Hoy hay que pedirlo explícitamente, y sale de la misma fuente que la transmisión, para que el papel impreso y lo que se remita no puedan divergir.
Hay un gate que impide transmitir facturas de prueba a producción. Se comprueba justo antes de enviar, no en un paso anterior que un cambio futuro pudiera saltarse.
Cómo encaja todo esto en los requisitos completos está en qué debe hacer tu software y en los requisitos técnicos. El resto de la emisión, en la facturación de Zeva.
Qué significa que la cadena esté rota
Si una verificación falla, no significa necesariamente fraude. Significa que los datos guardados no reproducen la huella guardada, y las causas posibles son pocas:
- Alguien tocó la base de datos por fuera de la aplicación.
- Una restauración parcial dejó facturas de dos momentos distintos mezcladas.
- Una migración mal hecha alteró un importe.
Ninguna es buena, y todas son mejores de descubrir un martes que en una comprobación. Por eso merece la pena que el botón de verificar exista y se pulse de vez en cuando.
Lo que exige el reglamento y cómo lo cumple Zeva hoy —incluido lo que todavía es hoja de ruta— está en cumplimiento VERI*FACTU.
Errores que se repiten
- Creer que el QR contiene la factura: contiene una dirección de cotejo con cuatro datos.
- Imprimir el QR pequeño para que quepa en el diseño, por debajo del tamaño exigido.
- Quitar la leyenda porque «afea» la plantilla.
- Tocar la base de datos para arreglar un importe de una factura ya emitida.
- Suponer que si la huella está impresa, la cadena está sana: son dos cosas distintas.
- No verificar nunca, y enterarse el día que alguien pregunta.
Comprobaciones que puedes hacer hoy
- Coge tu última factura: ¿lleva QR, leyenda y huella impresa?
- Mide el QR. ¿Está entre 30 y 40 milímetros?
- Escanéalo. ¿Te lleva al servicio de cotejo y aparece la factura?
- ¿Existe en tu sistema una función que reverifique la cadena entera?
- ¿Cuándo fue la última vez que alguien la ejecutó?
Si la última respuesta es «nunca», ese es el clic de esta semana.
Solicitar demo