Onde está o botão e quem chega até ele
O botão Verify Integrity está na vista da cadeia e no ecrã All Chain States (Asesoría). Existe nos quatro ramos publicados do módulo (Odoo 17, 18, 19 e 20) e não depende de nenhum estado: aparece sempre.
A ficha da cadeia abre-se a partir de Verifactu / SIF › Compliance Records › Chain State. Cada troço do menu exige as suas permissões e, se não tiveres uma, não vês esse troço:
Chain State:Auditor (read-only)ouSIF Manager.Compliance Records:Accountant,Auditor (read-only)ouSIF Manager.Verifactu / SIF:Accountant,Asesoría Operator,Auditor (read-only),Privacy OfficerouSIF Manager.

Verifactu / SIF › Compliance Records › Chain State e, por baixo, o botão Verify Integrity, presente no Odoo 17, 18, 19 e 20.
Chain State, ainda sem registos: uma única linha de YourCompany, ativa, com os totais a zero e o estado de integridade Unchecked.O que já acontece sem carregar no botão
O semáforo de cada cadeia é vermelho, âmbar ou verde. Segundo o código do Odoo 20.0, fica vermelho se a fila de envio da empresa tiver algum envio falhado ou em dead letter. Fica âmbar se houver envios pendentes ou em nova tentativa, se ao certificado ativo que caduca primeiro restarem menos de 30 dias (ou a empresa não tiver certificado ativo), ou se o estado de integridade da cadeia for por verificar ou quebrado. Nos restantes casos fica verde.
Esse semáforo não espera que carregues em nada. Recalculam-no a tarefa agendada Verifactu: Asesoría Cockpit RAG Refresh, que corre a cada cinco minutos e está ativa na instalação, e a tarefa Verifactu: Process Submission Queue, que corre a cada minuto e também está ativa na instalação. Recalcula-se ainda ao criar ou guardar um registo da fila de envio, e ao ativar o VeriFactu na ficha da empresa e guardá-la, o que além disso cria a cadeia se ainda não existia.
Essas vias atualizam o semáforo. O que o botão acrescenta é a verificação da cadeia, guardar o seu resultado e fazê-lo no momento, apenas para a cadeia que tens aberta.
Um caso para percorrer
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Lúcia trata da administração de uma empresa inventada, Hilados del Vallès, que já emite faturas com o módulo e tem a permissão SIF Manager. Antes de uma reunião com o seu contabilista quer saber se a cadeia de registos está íntegra.
- Abre
Verifactu / SIF › Compliance Records › Chain Statee entra na ficha da cadeia da sua empresa. - Carrega em
Verify Integrity. O botão trabalha sobre a cadeia aberta, uma de cada vez. - Espera o aviso: um de sucesso se a cadeia passar, ou um de falha com o número de registo e a série onde se quebra.
- O ecrã recarrega sozinho, sem que tenhas de atualizar o navegador.
O que verifica o botão, registo a registo
O botão lê de uma só vez todos os registos de criação e todas as anulações da empresa e ordena-os por número de registo. Parte de uma impressão digital anterior vazia, que é a semente do primeiro registo.
Para cada registo recalcula a impressão digital com os dados guardados:
- Nas criações: identificador do emissor, série e número, data de emissão, tipo de fatura, imposto total, montante total, impressão digital anterior e data e hora de geração com o respetivo fuso horário.
- Nas anulações: identificador do emissor, série e número, data de emissão, impressão digital anterior e data e hora de geração com o respetivo fuso horário.
Depois compara a impressão digital recalculada com a guardada. Nas anulações, se a guardada não coincidir com a calculada mas coincidir com a forma antiga de a calcular, o código dá-a por boa.
O princípio é o que usa a AEAT: a impressão digital é um SHA-256 do registo encadeado com o anterior, e a AEAT recalcula-a e, se não bater certo, aceita o registo com um erro que há que corrigir.
O que muda quando termina
Após a verificação, o botão faz três coisas, por esta ordem:
- Guarda a data e hora da verificação e o resultado completo.
- Recalcula o semáforo dessa cadeia nesse instante, sem esperar pela tarefa de cada cinco minutos.
- Mostra o aviso. Se a cadeia estiver correta, indica quantos registos foram verificados. Se estiver quebrada, indica o número de registo e a série da primeira falha e quantos registos foram revistos. O aviso de falha fica fixo no ecrã; o de sucesso não. Depois, o ecrã recarrega sozinho.
Os dois finais do caso
Se a cadeia da Hilados del Vallès passar, a Lúcia vê o aviso de sucesso com o total de registos verificados. O semáforo recalcula-se então com as regras acima: o estado de integridade por verificar ou quebrado deixa-o em âmbar, e os envios falhados põem-no em vermelho.
Se se quebrar, o aviso dá-lhe dois dados que pode anotar: o número de registo e a série da primeira falha, além de quantos registos foram revistos. Esse é o ponto a partir do qual começar a investigar.
O que leva a Lúcia daqui
- O botão está sempre à mão na vista da cadeia, mas chegar a ela depende das tuas permissões no menu.
- Cada clique verifica uma só cadeia, guarda o resultado e atualiza o semáforo dessa cadeia.
- Um aviso de cadeia quebrada dá-te o registo e a série da primeira falha.
- O semáforo já se atualiza sozinho; o botão serve para ter a verificação e o semáforo em dia no momento.
Se quiseres apoio com a tua instalação
A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se quiseres rever como fica o VeriFactu na tua instalação, escreve-nos.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigo_spain_verifactu 20.0 (1fdc980f): views/verifactu_cadena_views.xml
- Código do módulo: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_cadena.py
- Código do módulo: flexigo_spain_verifactu 20.0 (1fdc980f): models/res_company.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- flexigotech.com/en/services.html
