Especificación técnica

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.

— Formato y estructura

Qué contiene exactamente el QR

El QR codifica una URL HTTPS con la estructura:

https://www2.agenciatributaria.es/wlpl/TIKE-CONT/ValidarQR?nif=89890001K&numserie=12345678/G33&fecha=01-01-2024&importe=241.4

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:

https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR?...

Fuentes: AEAT — Características QR, Orden HAC/1177/2024.

— Dimensiones y posición

Especificaciones físicas en la factura

AtributoValor
EstándarISO/IEC 18004
Nivel de corrección de erroresM (Medium, ~15 %)
Tamaño impreso30 × 30 mm a 40 × 40 mm
Margen blanco mínimo (quiet zone)2 mm cada lado
Margen recomendado6 mm cada lado
Posición en factura verticalArriba, centrado o superior izquierdo
Posición en factura horizontalIzquierda
Posición en facturas multipáginaSólo en la primera página
Endpoint producciónwww2.agenciatributaria.es/wlpl/TIKE-CONT/ValidarQR
Endpoint preproducciónprewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR
— Librerías open source

Implementaciones verificadas en GitHub

Para el QR raw (sólo generar el código a partir de la URL):

  • Multi-lenguaje: nayuki/QR-Code-generator (Python, JavaScript, Java, C++, Rust).
  • Python: qrcode en PyPI con backend Pillow.
  • JavaScript: qrcode en npm, kjur/jsqrcode.

Para el ciclo completo VeriFactu (registros + envío AEAT + QR):

— FAQ

Preguntas frecuentes sobre el código QR de VeriFactu

Estructura, formato, dimensiones, validación y errores comunes al implementar.

Ver todas las preguntas
¿Qué contiene el código QR de VeriFactu?+
No contiene datos cifrados ni un JSON o XML. Es una URL HTTPS apuntando a la sede de la AEAT con cuatro parámetros en query string: NIF del emisor (nif), número y serie de factura (numserie), fecha en formato dd-mm-yyyy (fecha) e importe total (importe, decimal con punto). Ejemplo: https://www2.agenciatributaria.es/wlpl/TIKE-CONT/ValidarQR?nif=89890001K&numserie=12345678/G33&fecha=01-01-2024&importe=241.4. Está regulado por el Capítulo VIII de la Orden HAC/1177/2024 y el art. 7 del RD 1007/2023.
¿Qué tamaño debe tener el QR en la factura?+
Entre 30 × 30 mm y 40 × 40 mm en la factura impresa. Debe respetar un margen blanco (quiet zone) mínimo de 2 mm en cada lado, recomendado 6 mm. La codificación sigue el estándar ISO/IEC 18004 con nivel de corrección de errores M (medio, ~15 %). El tamaño coincide con el de TicketBAI vasco para mantener uniformidad visual en facturas que se emitan en ambos territorios.
¿Dónde se coloca el QR en la factura?+
Al principio de la factura, antes de que empiece el contenido. En facturas verticales: arriba, centrado o superior izquierdo. En horizontales: izquierda. Si hay obstáculos que hagan inconveniente esa ubicación, puede adoptarse otra siempre que sea claramente visible y se distinga del resto de elementos. Para facturas multipágina: sólo en la primera.
¿Es opcional el QR?+
No. Es obligatorio para todas las facturas (completas y simplificadas) emitidas por un Sistema Informático de Facturación (SIF) desde el 1 de enero o 1 de julio de 2027 según el tipo de contribuyente (calendario RD-ley 15/2025). Aplica también si la empresa elige modalidad No-VERI*FACTU.
¿Cómo se valida desde un móvil?+
El lector QR decodifica la URL HTTPS y abre el navegador. La sede AEAT consulta su base de datos: en modalidad VERI*FACTU devuelve confirmación de que la factura consta en AEAT con NIF emisor, serie/número, fecha e importe. En modalidad No-VERI*FACTU el receptor puede pulsar voluntariamente para enviar la información a la AEAT (útil para reportar facturas sospechosas).
¿Necesito librerías específicas AEAT para generar el QR?+
No. Cualquier librería estándar que implemente ISO/IEC 18004 con nivel M sirve. La única condición es que la URL codificada apunte a sede AEAT con los 4 parámetros correctos. Librerías open source válidas: nayuki/QR-Code-generator (multi-lenguaje), qrcode (Python con Pillow), zxing (Java/Android), kjur/jsqrcode (JavaScript). Para el ciclo completo VeriFactu: hectorsipe/aeat-verifactu, mdiago/VeriFactu (.NET), eseperio/verifactu-php.
¿Es lo mismo que el QR de TicketBAI?+
No. Comparten dimensiones físicas (30-40 mm) y estándar (ISO/IEC 18004) para uniformidad visual, pero apuntan a endpoints distintos (sede AEAT vs sede foral correspondiente) y los parámetros tienen semántica distinta. Una empresa con domicilio en País Vasco emite QR TicketBAI; una con domicilio en territorio común emite QR VeriFactu.
¿Qué pasa si el QR genera errores al imprimir?+
El nivel de corrección de errores M (~15 %) permite que el QR sea legible aunque tenga manchas o suciedad de hasta el 15 % de su superficie. Si la impresora corta el QR o lo deforma, hay que ajustar el diseño de plantilla. Los errores comunes son: margen blanco insuficiente, escala incorrecta al PDF, contraste tóner inadecuado. La AEAT no fija un nivel mínimo de calidad de impresión más allá del estándar ISO.
Empezar · Respuesta en 24h

¿Necesitas implementar el QR en tu software?

Si fabricas software o has heredado un sistema sin QR conforme, podemos ayudarte a desarrollarlo, certificar la declaración responsable y conectarlo al entorno de pruebas AEAT antes de pasar a producción.

Demo personalizada
Sin compromiso
Equipo en España