Saltar para o conteúdo principal
VeriFactu

A tarefa «Verifactu: Nightly Integrity Check»: o que faz e o que verificar

A tarefa Verifactu: Nightly Integrity Check corre uma vez por dia, vem ativa ao instalar e, para cada cadeia ativa, recalcula a impressão digital de todos os seus registos e compara-a com a guardada. Se alguma não coincidir, para aí e lança o aviso de rutura da cadeia. Aqui tens o que faz em cada passagem e o que verificar se parece não fazer nada.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 5 de novembro de 2026

O essencial

Módulo
VeriFactu
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do módulo, versão 17.0 e 20.0 · nas fontes indicadas no fim
Leitura
4 min

O que faz em cada passagem

A tarefa procura as cadeias ativas e, para cada uma, chama a verificação de integridade. Tudo o que é importante acontece dentro dessa verificação: recalcula a impressão digital de cada registo e compara-a com a que foi guardada. A impressão digital é um SHA-256 do registo encadeado com o anterior, e a AEAT recalcula-a por sua conta: se não coincidir, aceita o registo com um erro que é preciso corrigir.

A tarefa existe em todos os ramos publicados do módulo (17.0, 18.0, 19.0 e 20.0), que está publicado no Odoo Apps para essas quatro versões. Este esquema resume a tarefa e o menu a partir do qual se abrem as cadeias:

Esquema feito com código, não um ecrã do Odoo: em cima a tarefa agendada que corre uma vez por dia e vem ativa ao instalar, por baixo o menu Verifactu / SIF › Compliance Records › Chain State
Esquema gerado a partir do código do módulo, não uma captura do Odoo.

Pormenores que não se veem na ficha

Só revê as cadeias ativas, uma a uma

A tarefa não percorre todas as cadeias que existam: procura apenas as ativas e lança a verificação de cada uma em separado. Cada cadeia pertence a uma empresa. Na ficha de All Chain States (Asesoría) tens o campo Company para saber de qual se trata.

Lê a cadeia inteira em cada passagem

A verificação faz uma consulta que junta os registos de criação e os de anulação da empresa e ordena-os por número de registo. Depois percorre-os do princípio ao fim. O código não parte de um ponto intermédio: cada passagem começa pelo primeiro registo.

Recalcula cada impressão digital a partir do que está guardado

Para cada registo de criação, o código reconstrói a impressão digital com estes dados guardados: NIF do emitente, número de série, data de emissão, tipo de fatura (F1 se estiver vazio), quota total calculada a partir das bases tributáveis, montante total, impressão digital do registo anterior e data e hora de geração com o respetivo fuso horário. O primeiro registo parte de uma impressão digital anterior vazia.

O NIF do emitente usa-se sem o prefixo ES. Se a empresa tiver um NIF próprio para o Verifactu, o código prefere-o ao número de IVA geral. Uma alteração em qualquer um desses dados depois de gerar o registo faz com que a impressão digital recalculada deixe de coincidir com a guardada.

As anulações calculam-se com outras etiquetas

Os registos de anulação usam a sua própria fórmula: não levam tipo de fatura, quota nem montante, e as suas etiquetas são as da fatura anulada. O código admite ainda as anulações geradas antes da versão 1.3.4 do módulo, que foram calculadas com as etiquetas dos registos de criação: se a impressão digital guardada coincidir com esse cálculo antigo, dá-a por boa.

Pára na primeira rutura e avisa

Assim que uma impressão digital guardada não coincide com a recalculada, a verificação pára: não continua com os registos seguintes dessa cadeia. Devolve quantos registos tinha verificado até aí e o primeiro registo partido, com o seu número de registo, o seu número de série, a impressão digital esperada e a guardada.

Esse mesmo passo lança o aviso de rutura da cadeia para a empresa, com o número de registo e o número de série onde se partiu. Se a cadeia inteira coincidir, a verificação devolve que passou, juntamente com o total de registos verificados.

A frequência é uma vez por dia, e no Odoo 17 repete-se sem fim

A tarefa corre uma vez por dia e vem ativa ao instalar. No Odoo 17.0 está configurada, além disso, para se repetir sem fim.

Se parece que não faz nada

Antes de suspeitares da tarefa, revê isto:

  • Existe alguma cadeia ativa? Se não houver nenhuma, a procura não devolve nada e não há nada a verificar.
  • A tarefa continua ativa? Vem ativa ao instalar, por isso, se não corre, confirma que continua ativa.
  • O que esperar de uma passagem correta? A tarefa limita-se a chamar a verificação de cada cadeia, e uma cadeia íntegra devolve que passou com o seu total de registos verificados. Uma rutura é o que lança o aviso de rutura da cadeia.
  • Vês o menu? As fichas de cada cadeia abrem-se a partir de Verifactu / SIF › Compliance Records › Chain State. Cada troço pede permissões diferentes.
Lista de Verifactu / SIF › Compliance Records › Chain State, com uma só linha da empresa de demonstração, ativa e com os totais a zero
A lista, ainda sem registos: uma única linha e o resto do ecrã vazio.

As permissões do menu, troço a troço

Se não tens a permissão de um troço, não vês esse troço. Estas são as que cada um pede:

Troço do menuPermissões que o mostram
Verifactu / SIFAccountant, Asesoría Operator, Auditor (read-only), Privacy Officer, SIF Manager
Compliance RecordsAccountant, Auditor (read-only), SIF Manager
Chain StateAuditor (read-only), SIF Manager

Com apenas a permissão Accountant veem-se os dois primeiros troços, mas não Chain State. Se alguém disser que não encontra o menu, vê primeiro as suas permissões.

Mais leituras e ajuda

Se estás a implementar o Odoo e queres que o VeriFactu se ajuste à tua faturação, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações por medida. Podes ver o módulo na sua ficha do Odoo Apps.

Continue a ler

O que faz o botão «Run Pre-flight» do VeriFactu EspañaO que faz o botão Run Pre-flight do VeriFactu España em Odoo: quando aparece, o que verifica em cada linha, o que guarda e que erros pode dar.
Verificado no código do módulo (versão 17.0 e 20.0) e nas fontes indicadas

Fontes