El QR tributario, parámetro a parámetro
Qué codifica exactamente, por qué no lleva datos del cliente, cómo se escapa el número de factura y por qué el QR que apunta a preproducción es el error más silencioso del reglamento.
¿Qué contiene el código QR de una factura VeriFactu?
Una URL al validador de la AEAT con cuatro parámetros: el NIF del emisor, el número de factura, la fecha de expedición y el importe total. No contiene la huella ni datos del destinatario.
El número de factura debe ir URL-encoded (una barra viaja como %2F) y el importe con dos decimales, igual que en la huella y en el XML. El validador de producción y el de preproducción son hosts distintos.
Fuente: Orden HAC/1177/2024, de 17 de octubre · Real Decreto 1007/2023, de 5 de diciembre
El QR de VeriFactu no contiene la factura: contiene una URL al validador de la AEAT con cuatro datos que permiten localizarla.
# Cuatro parámetros. Ni la huella, ni el desglose, # ni un solo dato del cliente. https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR ?nif=B12345678 &numserie=F2026%2F0184 &fecha=26-08-2026 &importe=107.00 # El %2F es la barra del número de factura, escapada. # Sin escapar, el validador no encuentra la factura.
| Parámetro | Qué es |
|---|---|
nif | NIF del emisor. |
numserie | Número de factura, URL-encoded. |
fecha | Fecha de expedición en dd-mm-aaaa, igual que en la huella. |
importe | Importe total con dos decimales, igual que en la huella y en el XML. |
El QR que apunta a preproducción es el error más silencioso del reglamento.
// Producción https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR // Preproducción https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR // Dejar la de preproducción cableada no rompe nada visible: // la factura sale, el QR es válido, el cliente lo escanea // y su factura «no consta». Solo engaña.
El escapado del número
Un número con barra —F2026/0184— tiene que viajar como F2026%2F0184. Sin escapar, el validador no encuentra la factura y el cliente ve un error.
El entorno cableado
Es el fallo que más caro sale porque no falla: la factura se imprime, el QR se escanea y el validador de pruebas responde que no consta. Para cuando alguien lo reporta, llevas meses de facturas impresas.
El host del QR no es el de la remisión
El validador vive en www2 y el servicio SOAP donde se remiten los registros en www1. Son servicios distintos y confundirlos cuesta un día entero, porque apuntar la remisión a www2 no da un error claro.
| Elemento | Cuándo |
|---|---|
| Código QR | En toda factura emitida por un sistema sujeto al reglamento. |
| Leyenda VERI*FACTU | Solo cuando remites en modalidad VERI*FACTU. Un sistema NO VERI*FACTU imprime el QR pero no esa leyenda. |
El QR se genera en el momento del alta y no cambia con el resultado de la remisión. No hace falta esperar a que la AEAT conteste para imprimir la factura, y esperar sería un error: la remisión puede tardar por control de flujo.
¿Qué QR tiene que llevar una factura con VeriFactu?
Un QR que codifique la URL del validador de la AEAT con cuatro parámetros: NIF del emisor, número de factura, fecha de expedición e importe total. No lleva la huella ni datos del destinatario.
¿El QR contiene datos personales del cliente?
No. Solo NIF del emisor, número, fecha e importe. Quien escanea el QR no obtiene información sobre el destinatario de la factura.
¿Hay que esperar a la respuesta de la AEAT para imprimir el QR?
No. El QR y la huella se calculan en el momento de crear el registro y no cambian con el resultado de la remisión. Bloquear la impresión hasta que Hacienda conteste es un error de diseño.
¿Qué pasa si el QR apunta al entorno de pruebas?
La factura parece correcta y el QR es escaneable, pero lleva al validador de preproducción, donde la factura no consta. No produce ningún error visible: es el fallo más silencioso de la implementación.
Última revisión normativa: Especificaciones de huella AEAT v0.1.2 Revisado por el equipo técnico de verifactu.co