# Histórico dos termos e condições e prova de aceitação: documentação

> Instalação Instale o módulo em Módulos > Gestor de módulos > Carregar um módulo enviando o ficheiro ZIP, ou copie a pasta dftermsversion para o diretório /modules/ da sua loja…

- Página: <https://www.datafirefly.com/pt/documentation/dftermsversion/>
- Idioma: pt
- Atualizado em: 2026-09-30
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dftermsversion/index.md), [en](https://www.datafirefly.com/en/documentation/dftermsversion/index.md), [es](https://www.datafirefly.com/es/documentation/dftermsversion/index.md), [de](https://www.datafirefly.com/de/documentation/dftermsversion/index.md), [it](https://www.datafirefly.com/it/documentation/dftermsversion/index.md), [pl](https://www.datafirefly.com/pl/documentation/dftermsversion/index.md), [nl](https://www.datafirefly.com/nl/documentation/dftermsversion/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Instalação

Instale o módulo em **Módulos > Gestor de módulos > Carregar um módulo** enviando o ficheiro ZIP, ou copie a pasta `dftermsversion` para o diretório `/modules/` da sua loja e clique em Instalar.

Na instalação, o módulo cria as suas tabelas, acrescenta dois separadores no menu **Encomendas** (**Versões dos termos** e **Registo de aceitações**) e importa o conteúdo da sua página CMS dos termos como rascunho. Os seus clientes ainda não veem nada: nenhuma versão está em vigor enquanto não publicar uma.

Confirme que a caixa dos termos e condições está ativada em **Parâmetros da loja > Definições de encomendas**. Sem ela, os clientes não assinalam nada antes de pagar e a prova é mais fraca. A página de configuração do módulo avisa-o se estiver desativada.

## Publicar a primeira versão

Abra **Encomendas > Versões dos termos**. O rascunho importado aparece com o estado Rascunho. Clique nele para o ler em cada idioma e depois em **Editar**, se necessário.

### Os campos de uma versão

- **Número de versão**: a etiqueta mostrada aos clientes, por exemplo 2026-10 ou 4.2. Tem de ser única.
- **Título e texto**: por idioma. Um idioma vazio recebe o texto do idioma predefinido na publicação.
- **Em vigor a partir de**: deixe vazio para aplicar a versão assim que for publicada. Uma data futura agenda a alteração. Uma data passada acrescenta uma versão anterior ao histórico (ver abaixo).
- **Resumo das alterações**: mostrado no histórico público.

Depois clique em **Publicar**. A versão fica bloqueada: o texto, a impressão digital SHA-256 e os PDF gerados em cada idioma deixam de poder mudar. Se o carimbo temporal estiver ativo, o módulo pede de imediato um carimbo à autoridade configurada.

Uma versão publicada deixa de poder ser editada ou eliminada. É isso que lhe dá valor de prova. Releia o rascunho antes de publicar.

## Alterar os seus termos

A partir de uma versão publicada, clique em **Criar uma nova versão a partir desta**. É criado um rascunho com o mesmo texto. Altere-o, preencha o resumo das alterações, escolha a data de entrada em vigor e publique.

### Comparar duas versões

Na vista de uma versão, o bloco **Comparar** propõe por predefinição a versão anterior, ou a versão em vigor se estiver num rascunho. Clique em **Ver as alterações**: os parágrafos alterados, adicionados e eliminados ficam realçados, palavra a palavra nos alterados, e os parágrafos sem alterações são recolhidos. Mude de idioma com os botões no canto superior direito.

### Agendar uma alteração

Uma versão publicada com data futura tem o estado Agendada. Passa automaticamente a ser a versão em vigor nessa data, sem tarefa cron. A página de configuração mostra a próxima versão agendada.

## O que o cliente vê

- **No pagamento**: acima dos métodos de pagamento, um aviso indica a versão em vigor, a respetiva data e uma ligação para o PDF, e ainda uma ligação para as versões anteriores se o histórico público estiver ativo.
- **No email de confirmação**: o PDF da versão aceite é anexado ao email `order_conf`.
- **Na conta**: o detalhe de cada encomenda lembra a versão aceite com uma ligação de download.
- **Na fatura**: uma menção à versão e à sua impressão digital, se a opção estiver ativa.

## O que o módulo regista em cada encomenda

Quando o passo de pagamento é apresentado, o módulo anota a versão mostrada ao cliente, com o endereço IP, o navegador e a hora. Na validação da encomenda regista a versão mostrada, a impressão digital SHA-256 do texto no idioma do cliente e estes dados de apresentação.

Se não foi registada nenhuma apresentação, por exemplo com um checkout que não chama o hook `displayPaymentTop`, o módulo regista a versão em vigor na data da encomenda com o método «Validação da encomenda». Uma encomenda criada no back office é registada com o método «Back office».

## Consultar a prova de uma encomenda

Na página da encomenda no back office, o cartão **Termos e condições aceites** mostra a versão, as datas, o IP, o método de registo, a verificação de integridade do texto e a posição da encomenda no registo. Três botões:

- **Dossiê de prova (ZIP)**: o ficheiro a enviar em caso de litígio (detalhes abaixo).
- **Certificado de aceitação (PDF)**: um documento com todos os dados registados, seguido do texto integral aceite.
- **Termos aceites (PDF)**: o PDF da versão, tal como anexado ao email.

### Conteúdo do dossiê de prova

- `01-acceptance-certificate.pdf`: o certificado de aceitação.
- `02-...pdf`: o PDF da versão aceite.
- `03-accepted-text.txt`: o texto de origem exato. O seu SHA-256 é igual à impressão digital registada com a encomenda.
- `04-version-timestamp/`: o manifesto da versão e o respetivo token de carimbo temporal `.tsr`.
- `05-register/`: a entrada da encomenda no registo, um extrato da cadeia (apenas identificadores e impressões digitais, sem dados de outros clientes) e a selagem que a abrange.
- `README.txt`: a explicação de cada ficheiro e os comandos de verificação, no idioma do funcionário.

## O registo selado

Cada aceitação contém a impressão digital do seu conteúdo e a impressão digital da aceitação anterior. Alterar, inserir ou eliminar um registo depois quebra esta cadeia. Em **Encomendas > Registo de aceitações**, o botão **Verificar o registo** recalcula toda a cadeia e indica a primeira entrada alterada, se existir.

### Selagens

Numa selagem, a autoridade aplica um carimbo temporal à impressão digital da última entrada do registo. Isso prova que todo o registo até essa entrada existia nessa data e também revela a eliminação das últimas entradas. Clique em **Selar agora** ou chame uma vez por dia, numa tarefa cron, o URL indicado no bloco **Selagem automática**:

```
0 3 * * * curl -s "https://a-sua-loja.pt/module/dftermsversion/cron?token=..." > /dev/null
```

O URL só sela o registo se tiverem sido registadas novas entradas desde a última selagem.

## Carimbo temporal por terceiros

O carimbo temporal RFC 3161 faz com que uma autoridade independente assine uma impressão digital juntamente com a data. O módulo usa-o para cada versão publicada (num manifesto com a impressão digital do texto em cada idioma) e para as selagens do registo.

Por predefinição, o módulo usa `http://timestamp.digicert.com`, gratuito e sem conta. Pode indicar outra autoridade na configuração, por exemplo `https://freetsa.org/tsr` ou uma autoridade qualificada eIDAS. O servidor da loja tem de conseguir contactar a autoridade.

Se a autoridade não responder na publicação, a versão é publicada na mesma. O erro aparece na vista da versão, com um botão **Aplicar carimbo agora** para tentar de novo.

## Loja existente: histórico e encomendas anteriores

Para abranger as encomendas feitas antes da instalação:

1. Publique primeiro a versão atual dos seus termos.
2. Crie uma versão por cada versão antiga dos seus termos, com a respetiva data real de entrada em vigor no passado, e publique-a. O módulo só recusa uma data passada se encomendas já associadas a outra versão caírem nesse período.
3. Em **Encomendas > Registo de aceitações**, o bloco **Encomendas anteriores** indica quantas encomendas não estão associadas a nenhuma versão. Clique em **Associar estas encomendas**: o processamento é feito por lotes, com uma barra de progresso.

Estas encomendas recebem a versão em vigor na respetiva data e ficam marcadas como **Associada a posteriori**, sem IP nem registo de apresentação. O módulo não afirma o que não constatou: estas associações indicam a versão aplicável, não provam uma apresentação.

## Definições do módulo

- **Anexar o PDF aos emails** e **Modelos de email**: `order_conf` por predefinição, pode acrescentar por exemplo `payment` ou `bankwire`.
- **Mostrar a versão no pagamento**: o aviso acima dos métodos de pagamento. Mesmo desativado, o módulo regista a versão apresentada.
- **Menção nas faturas**.
- **Histórico público de versões**: uma página com as versões publicadas e os respetivos PDF.
- **Atualizar a página CMS automaticamente**: quando uma versão entra em vigor, o seu texto substitui o da página CMS escolhida, para que a caixa do checkout aponte sempre para a versão certa. O botão **Atualizar a página CMS agora** força a sincronização.
- **Anonimizar os endereços IP**: guarda apenas a parte de rede do IP.
- **Carimbo temporal por terceiros** e **Autoridade de carimbo temporal**.
- **Pedidos de apagamento RGPD**: ver abaixo.
- **Eliminar todos os dados na desinstalação**: desativado por predefinição. Mantenha-o desativado, as suas versões e o seu registo são as suas provas.

## RGPD

O módulo liga-se ao módulo RGPD oficial do PrestaShop (psgdpr). As aceitações de um cliente são incluídas na exportação dos seus dados. Para os pedidos de apagamento, há duas opções:

- **Conservar a prova** (predefinição): os registos são mantidos, o que o artigo 17.3.e do RGPD permite para declarar, exercer ou defender um direito num processo judicial. Mencione-o na sua política de privacidade.
- **Apagar o endereço IP e o navegador**: estes campos são esvaziados. O registo continua verificável e uma impressão digital calculada no apagamento protege os restantes campos, mas a prova é mais fraca para esse cliente.

## Resolução de problemas

### O aviso não aparece no pagamento

Confirme que existe uma versão em vigor e que a opção de apresentação está ativa. Se o seu tema ou módulo de checkout não chamar o hook `displayPaymentTop`, as encomendas são registadas com a versão em vigor na data da encomenda.

### O PDF não é anexado ao email

Verifique a opção **Anexar o PDF aos emails** e o nome exato do modelo. Alguns módulos de pagamento enviam o seu próprio email de confirmação com outro nome de modelo: acrescente-o à lista.

### O carimbo temporal falha

A mensagem de erro indica a causa. Na maioria dos casos, o alojamento bloqueia as ligações de saída. Experimente outra autoridade ou peça ao seu fornecedor de alojamento que abra o acesso ao endereço da autoridade. Recomenda-se a extensão PHP cURL.

### A verificação do registo indica uma alteração

A mensagem indica a entrada em causa e o tipo de problema: conteúdo alterado, entrada inserida ou eliminada antes dela, ou entrada selada em falta. Restaure a tabela `dftv_acceptance` a partir de uma cópia de segurança anterior à alteração e volte a executar a verificação.

## Compatibilidade

- PrestaShop 8.0 a 9.x, o mesmo ZIP abrange os dois ramos.
- Multiloja e multilíngue.
- PDF gerados com o TCPDF integrado no PrestaShop, extensão PHP zip necessária para o dossiê de prova.
- Arquitetura ModuleAdminController, sem dependências Composer.
- Interface disponível em português, inglês, francês, espanhol, alemão, italiano, neerlandês e polaco.
