Dzzz

Qué contiene el QR de una factura electrónica ZATCA y cómo leerlo

Los cinco campos dentro del QR de una factura electrónica simplificada saudí, cómo funciona la codificación Base64 y TLV, y cómo leerlo en tu dispositivo sin subir nada.

Por qué hacerlo

Si compras en Arabia Saudita, habrás visto el pequeño cuadrado QR impreso al pie de un recibo o una factura. Procede de las normas de facturación electrónica de la Autoridad de Zakat, Impuestos y Aduanas (ZATCA). La mayoría de la gente nunca lo escanea, pero hay buenos motivos para hacerlo: comprobar que el total y el IVA de un recibo en papel coinciden con lo que codificó el vendedor, copiar el número de IVA del vendedor para un informe de gastos o leer la marca de tiempo de una factura de la que solo tienes una foto. Si tienes un pequeño negocio, quizá quieras ver qué mete tu propio sistema en el código.

El código no es un secreto cifrado. Es un texto corto y estructurado, y una vez que conoces su disposición es fácil de leer.

Cómo hacerlo, con la herramienta

Aquí trabajan dos herramientas juntas: el Lector de QR y códigos de barras para escanear y la página QR de factura ZATCA para decodificar los campos.

Qué hay dentro. El QR de una factura simplificada lleva cinco campos, cada uno guardado como etiqueta, longitud y valor, que es lo que significa «TLV»:

  1. Etiqueta 1: el nombre del vendedor.
  2. Etiqueta 2: el número de IVA del vendedor (15 dígitos).
  3. Etiqueta 3: la marca de tiempo de la factura.
  4. Etiqueta 4: el total de la factura con IVA.
  5. Etiqueta 5: el importe del IVA.

Todos esos bytes se convierten después a Base64, una forma de escribir datos binarios usando solo letras, dígitos y unos pocos símbolos para que viajen como texto normal. Ese texto en Base64 es lo que realmente guarda el código QR.

Escanéalo. Abre el Lector de QR y códigos de barras, pulsa Abrir la cámara y apúntala al código. No hay botón de disparo: lo lee solo. También puedes pulsar Subir una imagen o Pegar una imagen para una foto o una captura de pantalla. Si hay varios códigos en el encuadre, la herramienta los lista y te pide elegir uno. La tarjeta de resultado etiqueta el código como «QR de factura ZATCA» y ofrece Abrir en el decodificador ZATCA.

Decodifícalo. En la página QR de factura ZATCA, quédate en Decodificar. Puedes pulsar Pegar texto para la cadena Base64 en bruto, Subir imagen para una foto del código o Escanear para usar la cámara. La herramienta muestra entonces Total (con IVA), Monto del IVA, Vendedor, Número de IVA y Fecha y hora, cada uno con su botón de copiar.

Comprueba la aritmética. Compara el IVA con el total. Con el tipo general del 15 %, el IVA es el total menos (total ÷ 1,15): un total de 115,00 SAR debería mostrar 15,00 SAR de IVA. Si los números no cuadran, el recibo puede ser de artículos con tipo cero o exentos, o algo va mal.

Crea uno. La pestaña Generar pide el nombre del vendedor, el número de IVA y el total de la factura. La marca de tiempo llega rellena con la hora actual y el importe del IVA se rellena solo al 15 % hasta que lo edites. Puedes guardar la vista previa como PNG o SVG, o pulsar Copiar el Base64.

Qué tener en cuenta

Decodificar lee los campos; no los verifica. La herramienta lo dice en su propio aviso: campos decodificados, pero esto no verifica el sello de ZATCA ni el registro. Un QR que se decodifica sin problemas puede ser falso o erróneo, porque cualquiera puede construir un QR con cinco campos verosímiles. Nada de esto confirma que el vendedor esté realmente registrado.

La Fase 1 y la Fase 2 son distintas. Los cinco campos anteriores son los requisitos de la Fase 1 (emisión) para facturas simplificadas. Las fases posteriores, en términos generales, añaden la integración con los sistemas de ZATCA y etiquetas criptográficas adicionales, como una firma, dentro del QR. Cuando un código tiene etiquetas más allá de las cinco primeras, el decodificador las lista bajo «Hay campos criptográficos» con su número de etiqueta y su tamaño en bytes, pero no las comprueba. El generador crea solo los campos de la Fase 1, y la herramienta advierte de que cumplir con ZATCA por completo exige más que el QR, así que confirma tus obligaciones de facturación con ZATCA.

No todo QR es una factura. Si el código es un QR normal, la herramienta dice «El QR no es una factura electrónica de ZATCA». Si parte del código no se puede leer verás «Datos incompletos», y la solución es una foto más nítida con el código entero en el encuadre. Si el número de IVA no tiene 15 dígitos, la herramienta lo señala.

Trata el lector como cualquier lector. El lector nunca abre un enlace por sí solo y, en el caso de los enlaces, avisa primero de las direcciones acortadas, inseguras o que imitan a otras. Los escaneos se guardan en tu dispositivo en Escaneos recientes, y Borrar todo los elimina. En algunos dispositivos el lector está integrado; en otros se descarga un lector incluido de cerca de 1 MB, que queda en caché tras el primer uso. En ambos casos la decodificación ocurre en tu dispositivo y los datos de la factura no se suben.

Las facturas contienen datos comerciales. Un QR decodificado muestra el nombre y el número de IVA de un vendedor, y el total. Ten cuidado al pegar el texto decodificado en chats o formularios que no controlas.

Preguntas frecuentes

¿Está cifrado el código QR?

No. Los campos de la Fase 1 son texto plano, codificado en TLV y luego en Base64. Cualquiera puede decodificarlos, y por eso decodificar no prueba que la factura sea auténtica. Las etiquetas criptográficas adicionales de los códigos de fases posteriores tienen otro propósito y esta herramienta las lista, pero no las verifica.

¿Por qué el total y el IVA parecen distintos del recibo en papel?

Mira primero la marca de tiempo y los importes en los campos decodificados. Si el código dice un total y el recibo impreso dice otro, esa discrepancia es justo lo que buscabas y merece plantearse al vendedor. Recuerda también que algunos artículos no llevan IVA, lo que cambia la proporción.

¿Puedo comprobar con esto que un vendedor está realmente registrado en el IVA?

No. La herramienta decodifica los campos y solo puede avisar cuando el número de IVA no tiene 15 dígitos. Verificar el registro es un paso aparte con ZATCA.

Abrir la herramienta

QR de factura ZATCA

Lee lo que hay dentro del QR de una factura electrónica, o créalo

  • Sin conexión