QR de factura electrónica ZATCA (Saudi FATOORA)

ZATCA (Autoridad de Zakat, Impuestos y Aduanas) de Arabia Saudí exige un QR en cada factura fiscal emitida en el Reino. La Fase 1 es TLV simplificado; la Fase 2 añade sellado criptográfico a través de la integración con la plataforma FATOORA. Las facturas no conformes son rechazadas por el software contable del comprador y son inválidas para la deducción del IVA.

Especificación canónica:ZATCA E-Invoicing Resolution & Implementing Regulations, vigente hasta 2026.
Fase 1 (generación): en vigor desde el 4 de diciembre de 2021. Todas las empresas registradas en el IVA deben emitir facturas digitales con QR.
Fase 2 (integración): lanzamiento por oleadas según tamaño de empresa desde el 1 de enero de 2023. Añade firma digital + autorización ZATCA para facturas estándar e informes en tiempo real para facturas simplificadas.

Qué es

El QR codifica una cadena Base64. Decodifica el Base64 para obtener una secuencia TLV binaria con 5 campos obligatorios en orden fijo:

TagCampoTipoNotas
01Nombre del vendedorCadena UTF-8Nombre comercial del vendedor. Árabe y latín ambos aceptados.
02Número de registro de IVA15 dígitosEmpieza con 3 para entidades saudíes. Formato: 3XXXXXXXXXXXXX3.
03Marca de tiempo de la facturaISO 8601P.ej. 2026-04-18T10:30:00Z. Debe incluir zona horaria.
04Total de la factura (con IVA)Cadena decimalP.ej. 115.00. La divisa es implícitamente SAR.
05Importe del IVACadena decimalP.ej. 15.00. Actualmente 15% tipo estándar.
06Hash de la factura (Fase 2)Base64 SHA-256SHA-256 del XML de la factura canónica.
07Firma digital (Fase 2)Base64ECDSA sobre el hash de la factura usando el certificado CSID del vendedor.
08Clave pública (Fase 2)Base64 X.509Clave pública ECDSA del vendedor (del CSID).
09Sello ZATCA (Fase 2)Base64Contrafirma de ZATCA. Presente solo después de la autorización de ZATCA.

Cada registro TLV es 1 byte de tag + 1 byte de longitud + <longitud> bytes de valor. La secuencia completa se codifica en Base64 para convertirse en el payload del QR.

Fase 1 (simplificada) vs Fase 2 (integración)

AspectoFase 1Fase 2
Contenido QRSolo tags 01–05Tags 01–05 más 06, 07, 08, opcionalmente 09
Integración ZATCANinguna, offlineAPI en tiempo real para facturas simplificadas, flujo de autorización para facturas estándar
Certificados requeridosNoSí, CSID (Cryptographic Stamp Identifier) emitido por ZATCA
Fecha de vigencia2021-12-04 (todas las empresas)2023-01-01 (oleadas progresivas por ingresos)
Alcance de la facturaB2C (simplificada) + B2B (estándar)B2C simplificada: informe en tiempo real. B2B estándar: autorización (prevalidación) antes de emitir.

Vectores de prueba canónicos

Ejemplo TLV (antes de Base64):

01 0A "Acme Saudi" 02 0F "300000000000003" 03 14 "2026-04-18T10:30:00Z" 04 06 "115.00" 05 05 "15.00"

Después de la codificación Base64:

AQpBY21lIFNhdWRpAg8zMDAwMDAwMDAwMDAwMDMDFDIwMjYtMDQtMThUMTA6MzA6MDBaBAYxMTUuMDAFBTE1LjAw
CasoEntradasPrefijo Base64
Fase 1, simplificada mínimaseller=Acme Saudi
vat=300000000000003
time=2026-04-18T10:30:00Z
total=115.00
vat_amount=15.00
AQpBY21lIFNhdWRp...
Nombre de vendedor en árabeseller=شركة أكمي
vat=300000000000003
...
Nombre del vendedor codificado en UTF-8 dentro del TLV antes de Base64.
Factura estándar Fase 2Todo lo anterior más hash=<SHA-256 Base64>
signature=<ECDSA Base64>
public_key=<X.509 Base64>
Base64 mucho más largo. Los decodificadores deben tolerar tags adicionales después del 05.

Errores comunes

Compatibilidad de escáneres

LectorSoporteNotas
App ZATCA FATOORANativoApp oficial del Ministerio; verifica firmas de Fase 2 contra la PKI de ZATCA.
Software contable saudí (SAP B1, Oracle, Microsoft Dynamics)Nativo (post-2023)Las versiones localizadas saudíes tienen análisis ZATCA en el pipeline AP.
Cámara iOSBase64 en brutoNo reconocido como factura fiscal. El usuario debe abrir la app FATOORA.
Cámara Android / Google LensBase64 en brutoIgual, sin análisis nativo.
Herramientas de auditoría de terceros (PwC, KPMG, unidades saudíes de Deloitte)NativoLas suites de tecnología de auditoría analizan y verifican las firmas de Fase 2.

Ver también

Referencias de especificación verificadas el 2026-04-18 (ZATCA E-Invoicing Resolution, vigente). Próxima revisión: 2026-07-18.