Cuando se habla de VeriFactu, casi toda la conversación se centra en el código QR: cómo se ve, dónde va en la factura, qué tamaño tiene. Es lógico, porque es lo único que un cliente ve a simple vista cuando recibe una factura.
Pero la adaptación a la Ley Antifraude es algo más. De hecho, el QR es la parte más pequeña y menos exigente de todo el sistema. Lo que de verdad determina si tu facturación cumple con VeriFactu ocurre antes de que se genere el código, por detrás de la factura, y no se ve en ningún sitio.
En este artículo
Qué contiene realmente el código QR de VeriFactu
El reglamento (Real Decreto 1007/2023 y su desarrollo técnico, la Orden HAC/1177/2024, art. 21) es muy concreto: el QR solo debe codificar estos datos:- NIF del obligado a expedir la factura
- Número de serie y número de la factura
- Fecha de expedición
- Importe total de la factura
- La URL del servicio de cotejo de la AEAT (a la que apunta el propio QR)
En realidad el QR es deliberadamente minimalista, ya que solo incluye lo justo para que cualquiera pueda escanearlo y cotejar la factura que le acaban de dar con la información alojada en la sede electrónica de la AEAT.
Al escanearlo, el QR te lleva a una dirección del tipo www2.agenciatributaria.es/wlpl/TIKE-CONT/ValidarQR?nif=...&numserie=...&fecha=...&importe=..., donde la AEAT comprueba si existe un registro con esos datos. En realidad es, literalmente, una consulta online a una base de datos con los registros de facturación de la Agencia Tributaria. Nada más.
Lo que el QR no lleva (y mucha gente da por hecho que sí)
El QR no contiene ni el hash encadenado de la factura anterior ni ninguna firma electrónica. La propia AEAT lo aclara en su FAQ oficial:
La huella (hash) del registro de facturación "no forma parte de los datos incluidos en el QR tributario". Ni se codifica ahí, ni falta le hace.
El hash y la firma electrónica están en el registro de facturación, que no es la factura en papel o PDF. Ahí es donde de verdad se construye la garantía de integridad que requiere la normativa antifraude.
Confundir ambas cosas puede llevar a pensar que el QR es el que garantiza eso, cuando en realidad no es así.
Dónde está realmente el trabajo de adaptación
El código QR es la parte visible, pero esto es lo que hay detrás y es lo que de verdad hay que implementar bien:
- Encadenamiento del registro de facturación. Cada registro incorpora el hash (SHA-256) del registro anterior, formando una cadena. Si alguien altera un registro ya emitido, la cadena deja de cuadrar desde ese punto. Esto no tiene nada que ver con el QR: ocurre en el sistema interno, factura a factura.
- Elegir bien la modalidad. Existen sistemas VeriFactu que remiten cada registro a la AEAT prácticamente en tiempo real) y sistemas NO-VeriFactu que no remiten, pero deben conservar y firmar cada registro. La obligación de firma electrónica avanzada basada en certificado solo aplica a los sistemas NO-VeriFactu. Si tu software remite en tiempo real a Hacienda (la modalidad VERI*FACTU es la más habitual), no es necesario firmar cada registro ya que la propia remisión inmediata cumple esa función de garantía. Este es un punto donde muchos proveedores generan confusión, y es mucho más relevante para el negocio que el aspecto del QR.
- Integridad, conservación y trazabilidad del sistema. La normativa exige que el software garantice que los registros no se puedan borrar, modificar fuera de la cadena, ni generar facturas "insertadas" fuera de secuencia. Esto se audita a nivel de sistema, no de factura individual.
Cómo se verifica un QR en la práctica
No hay ninguna operación criptográfica offline al escanear un QR de VeriFactu. Lo que sucede en realidad es:
- El sistema decodifica la URL del QR.
- Al acceder a esa URL se envía la consulta al servicio de cotejo de la AEAT con esos cuatro parámetros (nif, numserie, fecha, importe).
- La AEAT responde si existe (o no) un registro de facturación que coincida.
Es una verificación por consulta, no por recomputación de hashes o validación de certificados desde el propio código QR. Esa parte, la que sí es criptográfica, se realiza en el propio sistema de facturación, al construir y encadenar cada registro, mucho antes de que exista ningún QR.
Por qué es importante entender la diferencia
Si un proveedor de software (o tú mismo, si desarrollas el tuyo) resume la adaptación a VeriFactu en "ya generamos el QR en la factura", está dando una falsa sensación de cumplimiento. Porque es posible tener un QR perfectamente formado y, aun así, un sistema que no encadena bien los registros, que no permite la trazabilidad o que no limita la alteración de registros de facturación, tal y como exige la normativa.
En definitiva, el QR no protege contra nada de eso. Solo es el enlace de consulta a la AEAT.
Conclusión
El QR de VeriFactu es sencillo por diseño: cuatro datos y una URL de cotejo. No es el mecanismo que garantiza la integridad de tus facturas, ni lleva dentro ninguna firma ni ningún hash. Es solo un requisito más de la Ley Antifraude, que se bene de incluir pero que por sí solo no garantiza ningún cumplimiento normativo.
Esa garantía se construye en el registro de facturación y en cómo el sistema de facturación lo encadena y, según la modalidad, lo remite o lo firma. Si vas a adaptar tu facturación a VeriFactu, presta atención al QR sin perder de vista el resto de requisitos del cumplimiento.




