Saltar para o conteúdo principal
Portugal SAF-T (PT) File Checks

Arranque do Portugal SAF-T (PT) File Checks no Odoo, contado através de um caso

Para pôr a funcionar o Portugal SAF-T (PT) File Checks é preciso perceber três coisas: o formulário de configuração ATCUD que se cria a partir de Invoicing, os campos que ligam cada registo a uma empresa e a um esquema, e os estados de cada lista, como Draft, Generated, Validated, Validation Failed e Submitted na geração de ficheiros. Aqui percorremos tudo com uma empresa inventada, desde o primeiro dia até à primeira semana de utilização.

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

O essencial

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

Distribuições Ribeira, o fio condutor do caso

Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.

A Distribuições Ribeira é uma empresa inventada que fatura em Portugal a partir do Odoo 18 e que gere uma segunda sociedade na mesma base de dados. A Marta, responsável administrativa, tem de deixar pronto o Portugal SAF-T (PT) File Checks. O caso não tem números: o que interessa é que ecrãs abre, que campos verifica e que estados vai encontrando.

O módulo está publicado no Odoo Apps para 17.0, 18.0, 19.0 e 20.0, por isso a Marta escolhe a página da sua versão. Custa 9 € por versão do Odoo, pagamento único e sem IVA, nas quatro versões, e como inclui serviço local do FlexigoTech Cloud soma-se a subscrição de 29 €/mês ou 290 €/ano sem IVA (Pro: 58 €/mês ou 580 €/ano).

Primeiro dia: o formulário de configuração ATCUD

Ao criar uma nova configuração ATCUD a partir de Invoicing, a Marta encontra um formulário dividido em secções: informação da empresa, ATCUD, e-mail e notificações, e envio. Só aparece preenchido o URL do endpoint; o resto está vazio.

Formulário novo de configuração ATCUD em Invoicing com secções de informação da empresa, ATCUD, e-mail e notificações e envio
Configuração ATCUD acabada de criar, ainda sem dados: só traz o URL do endpoint e a parte inferior do ecrã fica cortada.

O que a Marta faz é percorrer o formulário secção a secção, de cima para baixo, incluindo a parte que não cabe no ecrã. O facto de o URL do endpoint já estar escrito não lhe diz nada sobre o resto, por isso não dá a configuração como concluída até a ter revisto toda.

Os campos que a Marta analisa ao pormenor

Antes de gerar o que quer que seja, a Marta revê os campos do módulo que lhe dizem respeito. Estes são os que identifica:

  • company_id: aparece em vários modelos do módulo como relação com res.company. Com duas sociedades na mesma base de dados, a Marta verifica a que empresa pertence cada registo.
  • schema_url, com a etiqueta SAF-T Schema URL: segundo a descrição do campo, é o URL de onde se obtém o esquema XSD do SAF-T português.
  • export_file_csv: um anexo (ir.attachment) descrito como Exported CSV format.
  • transaction_count, com a etiqueta Transaction Count: o número de transações incluídas no SAF-T.
  • name, com a etiqueta Request ID.
  • submission_id: relação com saft.submission, descrita como Related SAF-T submission if applicable.

A Marta não atribui a estes campos mais função do que a indicada pelo nome ou pela descrição. Se precisar de saber como se encadeiam internamente, está explicado em como funciona o módulo por dentro.

Os estados que cada registo pode ter

No segundo dia, a Marta aprende os valores de estado definidos pelo módulo. São quatro conjuntos diferentes, e convém não os misturar:

  • Campo state com Draft, Exported e Submitted.
  • Campo status com Draft, Processing, Approved e Denied.
  • Campo state com Draft, Generated, Validated, Validation Failed e Submitted. São os que aparecem na lista Generate SAF-T Files.
  • Campo state com Draft, Validated, Submitted, Accepted, Rejected, ATCUD Unreachable e Error.

Desta lista, a Marta anota os valores que quer ter controlados todos os dias: Validation Failed, Denied, Rejected, ATCUD Unreachable e Error. Não presume a causa de nenhum; quando surge um, procura o texto exato do aviso em o guia de mensagens de erro do módulo.

A primeira semana: o que revê todas as manhãs

Com a configuração feita, na primeira semana a Marta abre todas as manhãs os mesmos ecrãs pela mesma ordem. O percurso é este:

Percurso pelas listas Annual SAF-T Statistics, SAF-T Error Logs e Generate SAF-T Files em Invoicing
As estatísticas anuais SAF-T com empresa, ano, documentos, valor e estado; os registos de erros com data, tipo, gravidade, mensagem e a caixa de resolvido por assinalar; e a geração de ficheiros com períodos em Draft, Generated, Validated, Validation Failed e Submitted, com tamanho e transações a zero.
  • Em Invoicing › Annual SAF-T Statistics verifica as colunas Company, Year, Total Documents, Total Value e State, e confirma que cada linha corresponde à sociedade esperada.
  • Em SAF-T Error Logs lê a data, o tipo de erro, a gravidade e a mensagem de cada registo, e repara nos que continuam com a caixa de resolvido por assinalar.
  • Em Generate SAF-T Files revê o estado de cada período, do início ao fim, juntamente com o tamanho do ficheiro e as transações.

Na sua base de dados, com duas sociedades, a coluna Company é a primeira que a Marta verifica. A mesma lista tem botão New e pesquisa:

Lista de estatísticas anuais SAF-T com linhas por empresa, ano, total de documentos, valor total e estado, com botão New e pesquisa
A mesma lista de estatísticas anuais, com cinco linhas no estado Borrador ou Exportado.

O que se aprende com o caso da Ribeira

  • O formulário ATCUD novo aparece quase vazio, só com o URL do endpoint: reveja-o secção a secção, incluindo a parte que não cabe no ecrã, antes de o dar como concluído.
  • company_id está em vários modelos. Se tiver mais de uma sociedade, verifique a empresa de cada registo antes de mais nada.
  • Há quatro conjuntos de estados diferentes. Aprenda em que lista vê cada um e quais quer vigiar.
  • As três listas do percurso (estatísticas anuais, registos de erros e geração de ficheiros) são a rotina da Marta na primeira semana.

Como a FlexigoTech o ajuda

A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida, por isso podemos preparar consigo a configuração ATCUD e as sociedades. Se comprar o módulo na sua página em flexigotech.com, a subscrição inclui o módulo para as novas versões do Odoo; no Odoo App Store, pelo contrário, cada versão é comprada lá (página no Odoo Apps). Sem subscrição, ou com o serviço suspenso, para tudo o que a subscrição fornece, e os dados ficam no seu Odoo. Se ainda tem dúvidas sobre se lhe serve, veja primeiro o que cobre e o que é preciso antes de o instalar.

Continue a ler

Como funciona o Portugal SAF-T (PT) File Checks no Odoo por dentroQue menus o Portugal SAF-T (PT) File Checks acrescenta à Faturação, que modelos tem por trás, que estados vê nas listas e que parte usa um serviço externo.Erros do Portugal SAF-T (PT) File Checks: quando aparece cada mensagem e o que fazerCada mensagem de erro do Portugal SAF-T (PT) File Checks com o texto literal: quando aparece, o que significa e o que fazer no Odoo, da geração ao envio ATCUD.Portugal SAF-T (PT) File Checks: o que cobre, o que precisa antes e em que versão do OdooO que cobre o Portugal SAF-T (PT) File Checks segundo o README, o que precisa antes de o instalar (NIF, ATCUD, e-mail) e em que versões do Odoo está.
Verificado no código do módulo (versão 20.0) e nas fontes indicadas

Fontes