Saltar para o conteúdo principal
VeriFactu

O que faz o botão Generate Access Export (art.15) do VeriFactu

O botão Generate Access Export (art.15) do DSAR Wizard procura, na empresa escolhida, os registos e anulações que coincidem com um NIF ou um nome, guarda o resultado como ficheiro JSON (o código tenta guardar também um PDF) e deixa um evento no registo de eventos do módulo.

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 20.0 · nas fontes indicadas no fim
Leitura
5 min

O caso: um pedido de acesso numa gestoria

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

Asesoría Ribera, uma gestoria inventada para este exemplo, recebe o pedido de uma pessoa que quer saber que dados seus constam da faturação de um cliente. A responsável de privacidade da gestoria trabalha no Odoo com VeriFactu España (AEAT RRSIF Compliance) e tem de tirar essa informação do módulo.

O botão existe nas ramas 17, 18, 19 e 20 do módulo, publicado no Odoo Apps para essas quatro versões. O que se segue descreve o código do Odoo 20.0.

Esquema feito com código, não um ecrã do Odoo: o caminho do menu até ao DSAR Wizard e, por baixo, o botão Generate Access Export (art.15)
Esquema gerado a partir do código do módulo (com os rótulos em inglês do código): o menu e o botão, que existe no Odoo 17, 18, 19 e 20.

Como chega ela ao botão

A ficha abre-se a partir de Verifactu / SIF › Privacy / GDPR › DSAR Wizard. Cada troço do menu exige permissões e, se não tiver uma, não vê esse troço: Privacy / GDPR veem-no Privacy Officer e SIF Manager; Verifactu / SIF veem-no também Accountant, Asesoría Operator e Auditor (read-only).

Uma vez na ficha, o botão não depende de nenhuma condição da vista: vê-se nas quatro versões. Os passos dela são estes:

  1. Abre o menu e entra na ficha do DSAR Wizard. Os campos do pedido estão no grupo Request Details.
  2. Olha para o campo Company. Por defeito traz a empresa ativa, e a pesquisa faz-se apenas dentro da empresa que figurar aí.
  3. Escreve em Data Subject NIF / Name o NIF da pessoa ou o seu nome.
  4. Se a gestoria tiver um número de processo, anota-o em Request Reference.
  5. Carrega em Generate Access Export (art.15).

O rótulo do botão muda com o idioma do Odoo. Com o Odoo em castelhano é o de cima; com o Odoo em catalão, Generar Exportació d'Accés (art.15).

Esquema feito com código a partir das traduções do módulo, não um ecrã do Odoo: o texto Generate Access Export (art.15) e a sua versão em castelhano e em catalão
Esquema com o rótulo do botão segundo o idioma do Odoo.

O que faz o botão, por ordem

Ao carregar nele, o código faz isto, um passo após o outro:

  • Pega no texto escrito em Data Subject NIF / Name, tira-lhe os espaços das pontas e pesquisa com ele na empresa escolhida.
  • Monta o resultado, que leva o texto que escreveste, o nome da empresa e duas listas: os registos e as anulações encontrados.
  • Guarda esse resultado como ficheiro JSON no próprio assistente, com o nome dsar_access_export_ seguido dos primeiros vinte carateres do que escreveste e a extensão .json.
  • Tenta gerar ainda um PDF (mais abaixo, o que o código faz se não correr bem).
  • Regista um evento (secção seguinte).
  • Volta a abrir a mesma ficha do assistente numa janela emergente, com o mesmo registo.

O código descreve esta extração como uma leitura dos campos de dados pessoais sem alterar nenhum registo da cadeia.

O que procura e o que exporta

BlocoOnde procuraQue dados extrai
RegistosIdentificador ou nome da contraparteNúmero de série, data de emissão, nome, tipo de identificador, identificador e total
AnulaçõesApenas o identificador da contraparteNúmero de série, data de emissão e identificador

A coincidência é «contém», sem distinguir maiúsculas de minúsculas. Se a Asesoría Ribera escrever só um pedaço de um nome, entram todos os registos dessa empresa cujo nome ou identificador contenha esse pedaço. E se escrever um nome, as anulações não se procuram por ele, só por identificador.

O que fica registado

Depois de gerar o ficheiro, o botão cria um evento no registo de eventos do módulo, para a empresa escolhida. O evento leva a data e hora, o utilizador que carregou no botão, uma descrição com o NIF ou nome escrito, o NIF ou nome e a referência do pedido como contexto (a referência fica vazia se não a preencheste), uma impressão digital calculada sobre esses dados e um número de sequência próprio da empresa.

A referência do pedido viaja para o evento; o ficheiro JSON da exportação não a inclui. E a ordem importa: se a geração do ficheiro parar com um erro, o código não chega a registar o evento.

Outras ações que deixam eventos

O evento do botão não é o único que se regista desta forma. Ao guardar a ficha de uma empresa, se tiver sido alterado o ambiente da AEAT, o responsável do SIF ou o âmbito do VeriFactu, também fica um evento. Além disso, o botão padrão de cancelar uma fatura, que o módulo alarga, e a tarefa agendada Verifactu: Clock Drift Check, que corre a cada hora e está ativa ao instalar, chegam a esse mesmo registo. Para o que o módulo acrescenta às faturas, vê este artigo.

O PDF que o código tenta guardar

Além do JSON, o código tenta gerar um PDF com o mesmo assistente e, se conseguir, guarda-o com o nome dsar_access_export_ mais os primeiros vinte carateres do que foi escrito e a extensão .pdf. Se essa geração falhar, o código captura o erro, anota um aviso no registo do servidor e segue com o JSON e o evento.

O que aprender com o caso

  • Confirma o campo Company antes de carregar: a pesquisa limita-se a ela.
  • Escreve o NIF completo quando o tiveres; um nome parcial pode trazer mais registos do que o esperado, e as anulações só saem por identificador.
  • Anota a Request Reference se quiseres que o evento a leve: o JSON exportado não a inclui.

Como a FlexigoTech ajuda

A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se quiseres rever quem deve ter as permissões do menu de privacidade, ou ajustar o módulo ao vosso processo, escreve-nos.

Continue a ler

O que o VeriFactu España acrescenta à fatura do Odoo e quando atuaCampos que o VeriFactu España acrescenta à fatura do Odoo, quando cria o registo ao publicá-la e como verificar que atuou, passo a passo.«Only a SIF Manager can retry AEAT submissions.»: quando aparece e o que fazerO que significa o aviso «Only a SIF Manager can retry AEAT submissions.» no VeriFactu para Odoo: quando aparece, que botões o provocam e como resolver.O que faz o botão Generate Export do VeriFactu Espanha no OdooO que faz o botão Generate Export do VeriFactu Espanha no Odoo: quem o vê, o que gera cada tipo de exportação e o evento que deixa registado.
Verificado no código do módulo (versão 20.0) e nas fontes indicadas

Fontes