A fase 1 e a fase 2 são problemas diferentes
A fase 1 (Geração) exigia uma fatura eletrónica estruturada, com código QR e um conjunto fixo de campos. Qualquer sistema de faturação capaz de produzir um documento conforme cumpria o requisito, e nada saía das suas instalações. A fase 2 (Integração) é um trabalho de outra natureza: o seu sistema passa a comunicar com a plataforma da ZATCA em cada fatura que emite, e a autoridade tributária responde.
É precisamente esta mudança que apanha as equipas desprevenidas. Uma implementação da fase 1 é um formato de documento. Uma implementação da fase 2 é uma integração cuja disponibilidade é crítica, com chaves criptográficas, certificados que caducam e uma dependência externa que se interpõe entre o seu operador de caixa e a fatura impressa.
Autorização prévia e comunicação não são o mesmo fluxo
As faturas fiscais normais — documentos entre empresas — passam pela autorização prévia (clearance). Submete a fatura à ZATCA antes de a entregar ao comprador, e esta só é uma fatura fiscal juridicamente válida depois de a ZATCA a autorizar e devolver uma cópia assinada. Se a autorização falhar, ainda não tem fatura.
As faturas fiscais simplificadas — os talões típicos de venda a consumidores no ponto de venda — passam pela comunicação (reporting). Emite e entrega o talão de imediato e comunica-o depois à ZATCA, dentro do prazo publicado. O cliente nunca fica à espera da rede.
A consequência prática é que o seu ponto de venda e a sua faturação entre empresas precisam de comportamentos diferentes perante uma falha. A caixa de uma loja tem de continuar a vender quando a ligação cai e reconciliar mais tarde. Uma fatura entre empresas não pode ser considerada emitida enquanto não for autorizada.
As peças criptográficas, pela ordem certa
A integração é, no essencial, uma sequência de credenciais. Cada passo depende do anterior, e cada um é um ponto onde uma implementação pode ficar bloqueada:
- Um par de chaves e um pedido de assinatura de certificado (CSR) gerados por dispositivo ou por unidade de faturação, com os dados do seu registo de IVA exatamente nos campos que a ZATCA espera.
- Um certificado de conformidade, obtido submetendo esse CSR com uma palavra-passe de utilização única (OTP) do portal da ZATCA — é o passo que mais vezes falha, porque o OTP expira rapidamente.
- Verificações de conformidade: faturas, notas de crédito e notas de débito de exemplo, de cada tipo que pretende emitir, todas aceites antes de poder avançar.
- Um certificado de produção, que é o que efetivamente assina os documentos reais — e cuja data de expiração tem de ter um responsável muito antes de chegar.
O que a própria fatura tem de conter
O documento que submete é XML UBL 2.1, não um PDF. Nele encontram-se os elementos que tornam a fatura verificável: um hash criptográfico da fatura anterior, que encadeia os seus documentos de modo que uma fatura apagada ou inserida seja detetável; uma assinatura digital; e um código QR com o nome do vendedor, o número de IVA, a data e hora, o total, o montante de IVA e os dados da assinatura numa codificação binária definida.
A versão legível continua a importar — os compradores querem um documento que possam arquivar —, pelo que a maioria das implementações gera um PDF/A-3 com o XML assinado incorporado, obtendo um único ficheiro que é ao mesmo tempo legível e verificável por máquina.
Os modos de falha para os quais vale a pena conceber
Qualquer sistema que tenha operado isto em produção encontrou a mesma lista curta, e cada ponto é uma decisão de conceção e não um erro a corrigir mais tarde:
- A ZATCA está inacessível ou lenta. As faturas simplificadas devem ficar em fila e ser comunicadas depois; as faturas normais não podem simplesmente ser emitidas na mesma. Decida antecipadamente o que o operador de caixa vê.
- Um certificado caduca. A renovação é uma tarefa operacional planeada, não um incidente — um certificado de produção caducado interrompe totalmente a faturação.
- Uma fatura é rejeitada por um campo que o seu ERP permite mas a ZATCA não — unidades de medida invulgares, descontos ou linhas de portes modelados de uma forma que o mapeamento XML não exprime.
- A cadeia de hashes quebra-se após um restauro a partir de cópia de segurança ou uma edição manual da base de dados, e todas as faturas seguintes herdam o problema.
O que perguntar a um fornecedor
Declarações de conformidade não custam nada. As perguntas úteis são concretas: que tipos de documento já viu autorizados e comunicados em produção, e não no ambiente de testes? O que acontece a uma venda quando a ZATCA não responde a tempo? Quem renova o certificado, e o que o alerta? Posso exportar o meu XML assinado e a cadeia de hashes se sair? Um fornecedor que tenha realmente operado a fase 2 terá respostas concretas, porque cada uma destas questões já lhe custou um dia de trabalho em algum momento.
Perguntas frequentes
Qual é a diferença entre a fase 1 e a fase 2 da ZATCA?
A fase 1 (Geração) exigia uma fatura eletrónica estruturada, com código QR e um conjunto fixo de campos, e nada saía das suas instalações. A fase 2 (Integração) é um trabalho de outra natureza: o seu sistema comunica com a plataforma da ZATCA em cada fatura que emite, e a autoridade tributária responde. A fase 1 é um formato de documento; a fase 2 é uma integração de disponibilidade crítica, com chaves criptográficas, certificados que caducam e uma dependência externa entre o operador de caixa e a fatura impressa.
Qual é a diferença entre autorização prévia e comunicação na fase 2?
As faturas fiscais normais — documentos entre empresas — passam pela autorização prévia: submete a fatura à ZATCA antes de a entregar ao comprador, e esta só é uma fatura fiscal juridicamente válida depois de a ZATCA a autorizar e devolver uma cópia assinada. As faturas fiscais simplificadas — os talões típicos do ponto de venda — passam pela comunicação: emite e entrega o talão de imediato e comunica-o depois à ZATCA, dentro do prazo publicado. O cliente nunca fica à espera da rede.
O que acontece na caixa quando a ZATCA está inacessível ou lenta?
Os dois fluxos precisam de comportamentos diferentes perante uma falha, e isso é uma decisão de conceção e não um erro a corrigir mais tarde. As faturas simplificadas devem ficar em fila e ser comunicadas depois, para que a caixa de uma loja continue a vender quando a ligação cai e reconcilie posteriormente. Uma fatura normal não pode simplesmente ser emitida na mesma, por isso decida antecipadamente o que o operador de caixa vê.
O que tem de conter, afinal, uma fatura da fase 2?
O documento que submete é XML UBL 2.1, não um PDF. Contém um hash criptográfico da fatura anterior — que encadeia os seus documentos de modo que uma fatura apagada ou inserida seja detetável —, uma assinatura digital e um código QR com o nome do vendedor, o número de IVA, a data e hora, o total, o montante de IVA e os dados da assinatura numa codificação binária definida. Como os compradores continuam a querer um documento que possam arquivar, a maioria das implementações gera um PDF/A-3 com o XML assinado incorporado.
O que devemos perguntar a um fornecedor sobre a integração da fase 2?
Declarações de conformidade não custam nada, por isso faça perguntas concretas. Que tipos de documento já viu autorizados e comunicados em produção, e não no ambiente de testes? O que acontece a uma venda quando a ZATCA não responde a tempo? Quem renova o certificado de produção, e o que o alerta antes de caducar? Posso exportar o meu XML assinado e a cadeia de hashes se sair?
Este guia é informação geral e não constitui aconselhamento fiscal, contabilístico ou jurídico. As regras variam de país para país e mudam ao longo do tempo; confirme a situação em vigor junto da sua autoridade tributária ou de um consultor qualificado antes de agir.
Pronto para gerir a sua operação num único espaço de trabalho?