O que é esta tarefa e de quanto em quanto tempo corre
O que é e como vem configurada?
É uma tarefa agendada do módulo de VeriFactu que trabalha sobre a fila de envio à AEAT. Vem ativa ao instalar e corre a cada minuto. Está nas ramas publicadas para Odoo 17.0, 18.0, 19.0 e 20.0; na 17.0 está configurada para se repetir sem fim.

Envia à AEAT a cada minuto?
A tarefa executa-se a cada minuto, mas isso não significa um pedido por minuto. Cada resposta da AEAT traz TiempoEsperaEnvio, os segundos até ao envio seguinte. Segundo o código do Odoo 20.0, o módulo guarda essa hora para a empresa e não lhe envia nada antes de ela chegar (com uma exceção que verás mais abaixo).
Onde vejo as entradas que processa?
No menu Verifactu / SIF › AEAT Submission › Submission Queue. Cada troço do menu exige permissões e, se não tiveres uma, não vês esse troço. O troço AEAT Submission exige Accountant, Auditor (read-only) ou SIF Manager. O troço Verifactu / SIF exige um destes: Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer ou SIF Manager. O campo Reference de cada entrada vê-se na sua ficha, na de AEAT Errors, dentro do grupo Queue Entry, e também na lista.

O que faz em cada passagem
Que empresas atende e quando salta uma?
Só percorre as empresas que têm VeriFactu ativado. Para cada uma consulta duas horas guardadas, uma delas a do tempo de espera da última resposta da AEAT. Se ainda não chegou alguma dessas horas, salta a empresa nesta passagem e regista-o no log do servidor. A exceção é a espera da última resposta: se há 1.000 entradas ou mais à espera (pendentes ou em nova tentativa), a empresa não espera por ela.
O que faz com as entradas de uma empresa?
Pede o lote da fila dessa empresa e, se não há nada, termina com ela sem mais. As entradas que não têm nem registo nem anulação associados marca-as como falhadas. As restantes ordena-as por número de registo, porque cada registo nomeia o seu predecessor no encadeamento. Depois prepara cada uma como adição ou como anulação e envia-as juntas num único pedido à AEAT. Segundo a AEAT, um envio leva de 1 a 1.000 registos.
O que acontece com a resposta, ou com a falha?
Se a AEAT responde, o módulo aplica a cada entrada o seu resultado. A resposta traz EstadoEnvio (Correcto, ParcialmenteCorrecto ou Incorrecto) e um estado por registo (Correcto, AceptadoConErrores ou Incorrecto). Se traz tempo de espera, o módulo guarda a hora até à qual essa empresa não volta a enviar. Se o pedido falha com um 429, o módulo trata-o por um caminho diferente do dos restantes erros. Com qualquer outro erro, passa cada entrada pelo tratamento de erro HTTP e, se alguma entrada fica descartada, lança um único alerta para todo o lote em vez de um por fatura. No fim da empresa, pede à sua cadeia um único recálculo para todas as entradas.
Reenvia o que a AEAT já aceitou?
Um registo duplicado volta da AEAT com o código 3000. Se já consta como correto ou aceite com erros, não é preciso reenviá-lo.
Se parece que não faz nada
O que verifico primeiro?
Verifica que a tarefa continua ativa (vem ativa ao instalar), que a empresa tem VeriFactu ativado e que a lista de Submission Queue tem entradas. Vê também se a empresa está numa espera: após uma resposta da AEAT aguarda o tempo que esta indicou, e essa passagem fica registada no log do servidor. Uma passagem com o lote vazio termina sem enviar nada. Se o problema está no certificado, a AEAT redireciona sem certificado para a página de erro 4033 («não se deteta certificado») e, com um certificado que não valida, para a 4011.
Um erro numa empresa bloqueia as outras?
Segundo o código, não. Cada empresa é processada dentro do seu próprio controlo de erros: se falha, o erro fica no log do servidor com o nome da empresa e a tarefa segue para a seguinte.
O que é o resumo de saúde do final?
Quando termina com todas as empresas, e só se algo falhou durante a passagem, a tarefa prepara um resumo de saúde para o FlexigoTech Cloud com fins de monitorização. Não o envia em cada passagem, mas a intervalos mínimos entre relatórios. Leva o número de entradas pendentes ou em nova tentativa e das descartadas, e os erros agrupados por tipo, código e quantas vezes ocorreram.
Ajuda com a tua implementação
Se estás a implementar o Odoo e queres rever como fica esta fila com as tuas empresas, na FlexigoTech implementamos Odoo 17, 18, 19 e 20 e desenvolvemos conectores e integrações à medida.
Continue a ler
Verificado no código do módulo (versão 17.0 e 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigo_spain_verifactu 20.0 (1fdc980f): data/verifactu_crons.xml
- Código do módulo: flexigo_spain_verifactu 17.0 (8d43d727): data/verifactu_crons.xml
- Código do módulo: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_cola_envio.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- sede.agenciatributaria.gob.es/Sede/errores/erro4033.html
- flexigotech.com/en/services.html
