Código QR VeriFactu: especificación oficial y cómo implementarlo
Especificación técnica completa del QR obligatorio en cada factura desde 2027. ISO/IEC 18004 nivel M, dimensiones 30-40 mm, URL HTTPS a sede AEAT con 4 parámetros. Endpoint, formato, posición, validación móvil y librerías open source.
El código QR de VeriFactu está regulado por el Capítulo VIII de la Orden HAC/1177/2024 (BOE 28 de octubre de 2024), que desarrolla técnicamente el artículo 7 del RD 1007/2023. No contiene datos cifrados: es una URL HTTPS apuntando a la sede de la AEAT con cuatro parámetros (NIF, número de serie, fecha e importe). Codificación ISO/IEC 18004 nivel M, dimensiones 30 × 30 mm a 40 × 40 mm, posición al inicio de la factura, obligatorio en todas las facturas emitidas por un SIF desde 2027.
Qué contiene exactamente el QR
El QR de VeriFactu no es un dibujo decorativo: codifica una URL HTTPS real que apunta al servicio de cotejo de la AEAT, con cuatro parámetros fijos en la cadena de consulta que identifican de forma única cada factura emitida. Así queda la estructura completa, con un ejemplo real:
Los cuatro parámetros obligatorios:
- nif — NIF del emisor de la factura.
- numserie — Número y serie de factura (puede contener barras y caracteres alfanuméricos).
- fecha — Fecha de expedición en formato dd-mm-yyyy.
- importe — Importe total con punto decimal. Hasta 12 enteros + 2 decimales.
Para entorno de pruebas (preproducción AEAT), el endpoint cambia a:
Fuentes: AEAT — Características QR, Orden HAC/1177/2024.
Especificaciones físicas en la factura
La AEAT no deja el tamaño ni la posición a criterio libre: fija un estándar de código, un margen mínimo para que el lector no falle y una zona de la factura donde tiene que aparecer siempre. Esto es lo que exige la especificación técnica.
| Atributo | Valor |
|---|---|
| Estándar | ISO/IEC 18004 |
| Nivel de corrección de errores | M (Medium, ~15 %) |
| Tamaño impreso | 30 × 30 mm a 40 × 40 mm |
| Margen blanco mínimo (quiet zone) | 2 mm cada lado |
| Margen recomendado | 6 mm cada lado |
| Posición en factura vertical | Arriba, centrado o superior izquierdo |
| Posición en factura horizontal | Izquierda |
| Posición en facturas multipágina | Sólo en la primera página |
| Endpoint producción | www2.agenciatributaria.es/wlpl/TIKE-CONT/ValidarQR |
| Endpoint preproducción | prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR |
Implementaciones verificadas en GitHub
Si lo que necesitas es solo generar el código a partir de la URL ya compuesta, sin más lógica de facturación detrás, estas librerías de QR raw resuelven la parte gráfica en varios lenguajes de programación distintos, sin coste de licencia:
- Multi-lenguaje: nayuki/QR-Code-generator (Python, JavaScript, Java, C++, Rust).
- Python:
qrcodeen PyPI con backend Pillow. - JavaScript:
qrcodeen npm,kjur/jsqrcode.
Para el ciclo completo VeriFactu (registros + envío AEAT + QR):
- .NET / C#: mdiago/VeriFactu (paquete NuGet).
- PHP: jdgOpenCode/verifactu, eseperio/verifactu-php.
- Ruby: mybooking-es/verifactu-rb.
- Esquemas XSD oficiales: hectorsipe/aeat-verifactu.
- Wiki comunitaria: verifactu-aeat.github.io.
— FAQ
Preguntas frecuentes sobre el código QR de VeriFactu
Estructura exacta de la URL, formato del código, dimensiones físicas mínimas, cómo se valida contra el servicio de la AEAT y los errores más comunes que vemos al implementar el QR en un sistema de facturación que todavía no lo tenía integrado.
Ver todas las preguntas¿Qué contiene el código QR de VeriFactu?+−
¿Qué tamaño debe tener el QR en la factura?+−
¿Dónde se coloca el QR en la factura?+−
¿Es opcional el QR?+−
¿Cómo se valida desde un móvil?+−
¿Necesito librerías específicas AEAT para generar el QR?+−
¿Es lo mismo que el QR de TicketBAI?+−
¿Qué pasa si el QR genera errores al imprimir?+−
Profundiza en VeriFactu técnico
El QR es solo una pieza del sistema. Si estás implementando VeriFactu de verdad, te interesa también el hash y el encadenamiento entre facturas, si tu software actual ya está homologado y cómo lo resolvemos nosotros en el módulo de ERPNext.
Las normas, en su fuente
Lo que se afirma aquí sobre la normativa sale de estos textos oficiales, no de un resumen de terceros ni de un blog citando a otro blog. Enlazamos siempre la versión consolidada, así que cuando la norma se modifica el enlace sigue llevando a la que está en vigor y no a una redacción que ya no aplica.
- Real Decreto 1007/2023, de 5 de diciembre, por el que se aprueba el Reglamento que establece los requisitos que deben adoptar los sistemas y programas informáticos o electrónicos que soporten los procesos de facturación
El reglamento de VeriFactu: qué tiene que cumplir tu programa de facturación.
- Orden HAC/1177/2024, de 17 de octubre, por la que se desarrollan las especificaciones técnicas, funcionales y de contenido referidas en el Reglamento que establece los requisitos que deben adoptar los sistemas y programas informáticos de facturación
Las especificaciones técnicas de VeriFactu: formato del registro, huella y código QR.
- Real Decreto-ley 15/2025, de 2 de diciembre, por el que se adoptan medidas urgentes para favorecer la actividad inversora de las entidades locales y de las comunidades autónomas, y por el que se modifica el Real Decreto 1007/2023
La prórroga de VeriFactu: lleva los plazos al 1 de enero de 2027 para las personas jurídicas y al 1 de julio de 2027 para el resto.
¿Necesitas implementar el QR en tu software?
Si fabricas software de facturación o has heredado un sistema sin QR conforme, podemos ayudarte a desarrollarlo desde cero, preparar la declaración responsable y conectarlo al entorno de pruebas de la AEAT antes de pasar a producción de verdad final.