A Fase 2 da ZATCA (Fase de Integração) substituiu a Fase 1 (Fase de Geração) para a primeira vaga de contribuintes em janeiro de 2023. Três anos e vinte e quatro vagas depois, todo o negócio registado em IVA no Reino está abrangido. Se emite faturas em SAR, está a emiti-las via Fatoora.
O que as regras pedem mesmo
- As faturas fiscais standard (B2B) têm de ser clearadas em tempo real — submetidas à ZATCA, validadas, carimbadas com um UUID e só depois enviadas ao comprador.
- As faturas fiscais simplificadas (B2C) seguem um modelo de reporting — são emitidas primeiro com um QR codificado em TLV e reportadas à ZATCA dentro de 24 horas.
- Cada fatura tem de incluir um hash criptográfico encadeado que a liga à fatura anterior, mais uma assinatura digital com um CSID (Cryptographic Stamp Identifier) emitido pela Fatoora.
- O XML tem de obedecer ao UBL 2.1 com as extensões específicas da ZATCA definidas na especificação de implementação da Fase 2.
O QR TLV da ZATCA
O QR da Fase 1 sobrevive na Fase 2 como uma string base64 em formato TLV (Tag-Length-Value). Cinco tags obrigatórias: nome do vendedor, número de IVA, timestamp ISO 8601, total com IVA e valor de IVA. A Fase 2 adiciona mais três — o hash do XML, a assinatura digital e a chave pública. A app móvel da ZATCA valida-os, por isso qualquer campo mal codificado faz o QR falhar a verificação do lado do comprador, mesmo depois de a fatura estar clearada.
As armadilhas operacionais mais comuns
- Desvio temporal. Faturas com timestamp a mais de 30 segundos do relógio de referência da ZATCA são rejeitadas. Usa NTP, não o relógio do teu portátil.
- Quebras na cadeia de hash. Se emites uma fatura e esqueces o hash da anterior, a cadeia está partida e o dispositivo inteiro tem de fazer re-onboarding com um CSID novo.
- Tratamento de IVA misto. Bens a 15% misturados com exportações a taxa zero numa única fatura precisam de blocos <cac:TaxSubtotal> separados por taxa; colapsá-los num só subtotal é uma das três principais causas de rejeição.
A MENAStrategy da Invocie implementa tudo isto — geração de UUIDs, encadeamento de hash, QR TLV, UBL 2.1 com extensões ZATCA — para te concentrares em emitir faturas, não em interpretar a especificação de implementação.