La Fase 2 de ZATCA (Fase de Integración) sustituyó a la Fase 1 (Fase de Generación) para la primera ola de contribuyentes en enero de 2023. Tres años y veinticuatro olas después, todo negocio registrado en IVA dentro del Reino está dentro del alcance. Si emites facturas en SAR, las estás emitiendo a través de Fatoora.
Qué exigen realmente las normas
- Las facturas fiscales estándar (B2B) deben cleararse en tiempo real — enviarse a ZATCA, validarse, sellarse con un UUID, y solo entonces enviarse al comprador.
- Las facturas fiscales simplificadas (B2C) siguen un modelo de reporting — se emiten primero con un QR codificado en TLV y se reportan a ZATCA dentro de 24 horas.
- Cada factura debe incluir un hash criptográfico encadenado que la enlaza con la factura anterior, además de una firma digital con un CSID (Cryptographic Stamp Identifier) emitido por Fatoora.
- El XML debe ajustarse a UBL 2.1 con las extensiones específicas de ZATCA definidas en la especificación de implementación de la Fase 2.
El QR TLV de ZATCA
El QR de la Fase 1 sobrevive en la Fase 2 como una cadena base64 en formato TLV (Tag-Length-Value). Cinco etiquetas obligatorias: nombre del vendedor, número de IVA, marca de tiempo ISO 8601, total con IVA y monto del IVA. La Fase 2 añade tres más — el hash del XML, la firma digital y la clave pública. La app móvil de ZATCA las valida, así que cualquier campo mal codificado hace que el QR falle en la verificación del comprador, incluso después de clearar la factura.
Las trampas operativas más comunes
- Desfase horario. Las facturas con marca de tiempo a más de 30 segundos del reloj de referencia de ZATCA se rechazan. Usa NTP, no el reloj de tu portátil.
- Roturas de la cadena de hash. Si emites una factura olvidando incluir el hash de la anterior, la cadena queda rota y hay que reonboarding del dispositivo completo con un CSID nuevo.
- Manejo de tasas mixtas. Mercancía al 15% mezclada con exportaciones a tasa cero en una sola factura necesita bloques <cac:TaxSubtotal> separados por tasa; colapsarlos en un único subtotal está entre las tres causas principales de rechazo.
MENAStrategy de Invocie implementa todo esto — generación de UUIDs, hash encadenado, QR TLV, UBL 2.1 con extensiones ZATCA — para que te concentres en emitir facturas, no en parsear la especificación de implementación.