Cotejo · referencia técnica
El código QR de la factura
Qué lleva dentro el QR de una factura Verifactu: las cuatro URL base del servicio de cotejo, los cuatro parámetros obligatorios, las reglas de codificación y los errores que dejan una factura sin poder cotejarse.
En corto. El QR no lleva los datos de la factura: lleva una URL al servicio de cotejo de la AEAT con la información de la factura como parámetros. Quien lo escanea acaba en una página de la sede electrónica que le dice si esa factura le consta a Hacienda.
Son cuatro parámetros obligatorios, y solo esos cuatro: nif, numserie, fecha (DD-MM-AAAA) e importe (con punto decimal, nunca coma).
1. Las cuatro URL base
Cuál te toca depende de si tu sistema emite facturas verificables —es decir, si remite los registros a la AEAT— y del entorno al que apuntes:
| Sistema | Entorno | URL base |
|---|---|---|
| Verificable | Producción | https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR |
| No verificable | Producción | https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQRNoVerifactu |
| Verificable | Pruebas | https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR |
| No verificable | Pruebas | https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQRNoVerifactu |
No imprimas la URL de pruebas en una factura real
prewww2.aeat.es es el Portal de Pruebas Externas. Es un despiste fácil de cometer al pasar a producción y deja el QR apuntando a un entorno que no es el bueno.
2. Los cuatro parámetros
La URL del QR debe incorporar únicamente estos cuatro, todos obligatorios:
| Parámetro | Formato | Longitud | Descripción |
|---|---|---|---|
nif | NIF | 9 | NIF del obligado a expedir la factura |
numserie | Texto, ASCII 32-126 | Máx. 60 | Nº de serie + nº de factura |
fecha | DD-MM-AAAA | 10 | Fecha de expedición |
importe | Decimal con punto | Máx. 12 + 2 | Importe total de la factura |
Los valores van con URL encoding en UTF-8 y solo admiten caracteres ASCII imprimibles (del 32 al 126).
// La URL del QR. Codifica SIEMPRE los valores: un "&" en el número de serie
// parte la URL si va sin codificar.
const base = "https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR";
const params = {
nif: "89890001K",
numserie: "12345678&G33", // el "&" se convertirá en %26
fecha: "01-09-2024", // DD-MM-AAAA
importe: "241.4", // punto decimal, nunca coma
};
const url = base + "?" + Object.entries(params)
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join("&");
// …/ValidarQR?nif=89890001K&numserie=12345678%26G33&fecha=01-09-2024&importe=241.43. Los errores que más se repiten
Un «&» sin codificar en el número de serie
Es el error que la propia AEAT publica como ejemplo de URL incorrecta. Si el número de serie contiene un & y no se codifica, la URL se parte y aparece un parámetro que no existe. La factura deja de poder cotejarse.
Mal: …&numserie=12345678&G33&fecha=…
Bien: …&numserie=12345678%26G33&fecha=…
Coma decimal en el importe
El separador decimal es el punto: 1210.00, nunca 1210,00. Tampoco lleva símbolo de moneda ni separador de millares.
El parámetro «formato» en el QR
formato=json nunca puede ir en la URL del código QR de la factura: la norma lo prohíbe expresamente. Existe para que el sistema informático que recibe una factura electrónica pueda cotejarla y obtener la respuesta en json, pero no se imprime.
4. El código impreso en la factura
La norma también regula el papel. El código debe medir entre 30×30 y 40×40 mm y usar el nivel M de corrección de errores (ISO/IEC 18004:2015), con al menos 2 mm de margen blanco alrededor de los cuatro lados —se recomiendan 6—. y contraste suficiente con el fondo.
Va al principio de la factura, antes del contenido, y debe ser el primer QR que aparezca si hay más. Si la factura ocupa varias páginas, solo va en la primera.
Encima del código va siempre el texto «QR tributario:», que sirve para distinguirlo de cualquier otro QR de la factura. Y si el sistema emite facturas verificables, justo debajo debe aparecer «VERI*FACTU» o «Factura verificable en la sede electrónica de la AEAT».
5. Fuentes oficiales
Todo lo anterior sale del documento de la AEAT, que es la fuente de verdad. Si algo de esta página lo contradice, mándanos un aviso: tiene razón él.
- Detalle de las especificaciones técnicas del código «QR» de la factura y de la «URL» del servicio de cotejo (v0.5.0, 10/12/2025)
- Sistemas Informáticos de Facturación (SIF) y VERI*FACTU, sede electrónica de la AEAT
El marco legal es el Real Decreto 1007/2023 y el capítulo VIII de la Orden HAC/1177/2024.
La otra mitad de la norma es el hash que encadena los registros: la huella de un registro Verifactu.