# Versiebeheer van algemene voorwaarden en acceptatiebewijs: documentatie

> Installatie Installeer de module via Modules > Modulebeheer > Een module uploaden door het ZIP-bestand te versturen, of kopieer de map dftermsversion naar de map /modules/ van uw winkel en…

- Pagina: <https://www.datafirefly.com/nl/documentation/dftermsversion/>
- Taal: nl
- Bijgewerkt op: 2026-09-30
- Andere talen: [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), [pt](https://www.datafirefly.com/pt/documentation/dftermsversion/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Installatie

Installeer de module via **Modules > Modulebeheer > Een module uploaden** door het ZIP-bestand te versturen, of kopieer de map `dftermsversion` naar de map `/modules/` van uw winkel en klik op Installeren.

Bij de installatie maakt de module haar tabellen aan, voegt ze twee tabbladen toe in het menu **Bestellingen** (**Versies van de voorwaarden** en **Acceptatieregister**) en importeert ze de inhoud van uw CMS-pagina met voorwaarden als concept. Uw klanten zien nog niets: er geldt geen enkele versie zolang u er geen publiceert.

Controleer of het vinkje voor de algemene voorwaarden is ingeschakeld in **Winkelparameters > Bestellingsinstellingen**. Zonder dat vinkje vinken klanten niets aan voordat ze betalen en is het bewijs zwakker. De configuratiepagina van de module waarschuwt u als het is uitgeschakeld.

## Uw eerste versie publiceren

Open **Bestellingen > Versies van de voorwaarden**. Het geïmporteerde concept staat in de lijst met de status Concept. Klik erop om het in elke taal te lezen en klik zo nodig op **Bewerken**.

### De velden van een versie

- **Versienummer**: het label dat klanten zien, bijvoorbeeld 2026-10 of 4.2. Het moet uniek zijn.
- **Titel en tekst**: per taal. Een lege taal krijgt bij publicatie de tekst van de standaardtaal.
- **Geldig vanaf**: leeg laten om de versie direct bij publicatie toe te passen. Een toekomstige datum plant de wijziging. Een datum in het verleden voegt een eerdere versie toe aan de geschiedenis (zie verderop).
- **Samenvatting van de wijzigingen**: getoond in de openbare versiegeschiedenis.

Klik daarna op **Publiceren**. De versie wordt vergrendeld: de tekst, de SHA-256-vingerafdruk en de in elke taal aangemaakte PDF's kunnen niet meer veranderen. Als tijdstempels zijn ingeschakeld, vraagt de module direct een tijdstempel aan bij de ingestelde dienst.

Een gepubliceerde versie kan niet meer worden bewerkt of verwijderd. Juist dat geeft haar bewijswaarde. Lees het concept goed na voordat u publiceert.

## Uw voorwaarden wijzigen

Klik in een gepubliceerde versie op **Nieuwe versie maken op basis van deze**. Er wordt een concept met dezelfde tekst aangemaakt. Pas het aan, vul de samenvatting van de wijzigingen in, kies de ingangsdatum en publiceer.

### Twee versies vergelijken

In de weergave van een versie stelt het blok **Vergelijken** standaard de vorige versie voor, of de geldende versie als u in een concept zit. Klik op **Wijzigingen tonen**: gewijzigde, toegevoegde en verwijderde alinea's worden gemarkeerd, per woord bij gewijzigde alinea's, en ongewijzigde alinea's worden ingeklapt. Wissel van taal met de knoppen rechtsboven.

### Een wijziging inplannen

Een versie die met een toekomstige datum is gepubliceerd, heeft de status Gepland. Ze wordt op die datum automatisch de geldende versie, zonder cronjob. De configuratiepagina toont de volgende geplande versie.

## Wat de klant ziet

- **Bij het betalen**: boven de betaalmethoden vermeldt een melding de geldende versie, de datum en een link naar de PDF, plus een link naar eerdere versies als de openbare geschiedenis is ingeschakeld.
- **In de bevestigingsmail**: de PDF van de geaccepteerde versie wordt toegevoegd aan de e-mail `order_conf`.
- **In het klantaccount**: de details van elke bestelling tonen de geaccepteerde versie met een downloadlink.
- **Op de factuur**: een vermelding van de versie en haar vingerafdruk, als de optie is ingeschakeld.

## Wat de module bij elke bestelling vastlegt

Wanneer de betaalstap wordt getoond, noteert de module de versie die aan de klant is getoond, met zijn IP-adres, browser en het tijdstip. Bij de bevestiging van de bestelling legt ze de getoonde versie vast, de SHA-256-vingerafdruk van de tekst in de taal van de klant en deze weergavegegevens.

Als er geen weergave is vastgelegd, bijvoorbeeld bij een checkout die de hook `displayPaymentTop` niet aanroept, legt de module de versie vast die op de besteldatum gold, met de vastlegwijze „Bevestiging van de bestelling". Een bestelling die in de backoffice is aangemaakt, wordt vastgelegd met de wijze „Backoffice".

## Het bewijs van een bestelling bekijken

Op de bestelpagina in de backoffice toont de kaart **Geaccepteerde algemene voorwaarden** de versie, de datums, het IP-adres, de vastlegwijze, de integriteitscontrole van de tekst en de positie van de bestelling in het register. Drie knoppen:

- **Bewijsdossier (ZIP)**: het bestand dat u bij een geschil doorstuurt (details hieronder).
- **Acceptatiecertificaat (PDF)**: een document met alle vastgelegde gegevens, gevolgd door de volledige geaccepteerde tekst.
- **Geaccepteerde voorwaarden (PDF)**: de PDF van de versie, zoals bij de e-mail gevoegd.

### Inhoud van het bewijsdossier

- `01-acceptance-certificate.pdf`: het acceptatiecertificaat.
- `02-...pdf`: de PDF van de geaccepteerde versie.
- `03-accepted-text.txt`: de exacte brontekst. De SHA-256 ervan is gelijk aan de vingerafdruk die bij de bestelling is vastgelegd.
- `04-version-timestamp/`: het manifest van de versie en haar tijdstempeltoken `.tsr`.
- `05-register/`: de registerregel van de bestelling, een uittreksel uit de keten (alleen ID's en vingerafdrukken, geen gegevens van andere klanten) en de verzegeling die haar dekt.
- `README.txt`: de uitleg bij elk bestand en de controleopdrachten, in de taal van de medewerker.

## Het verzegelde register

Elke acceptatie bevat de vingerafdruk van haar inhoud en de vingerafdruk van de vorige acceptatie. Een regel achteraf wijzigen, invoegen of verwijderen verbreekt deze keten. In **Bestellingen > Acceptatieregister** berekent de knop **Register controleren** de hele keten opnieuw en toont hij de eerste gewijzigde regel, als die er is.

### Verzegelingen

Bij een verzegeling geeft de dienst een tijdstempel aan de vingerafdruk van de laatste registerregel. Dat bewijst dat het hele register tot die regel op die datum bestond, en het brengt ook het verwijderen van de laatste regels aan het licht. Klik op **Nu verzegelen**, of roep de URL uit het blok **Automatische verzegeling** één keer per dag aan via een cronjob:

```
0 3 * * * curl -s "https://uw-winkel.nl/module/dftermsversion/cron?token=..." > /dev/null
```

De URL verzegelt het register alleen als er sinds de laatste verzegeling nieuwe regels zijn vastgelegd.

## Tijdstempel door een derde

Bij een RFC 3161-tijdstempel ondertekent een onafhankelijke dienst een vingerafdruk samen met de datum. De module gebruikt dit voor elke gepubliceerde versie (op een manifest met de vingerafdruk van de tekst in elke taal) en voor de verzegelingen van het register.

Standaard gebruikt de module `http://timestamp.digicert.com`, gratis en zonder account. In de configuratie kunt u een andere dienst opgeven, bijvoorbeeld `https://freetsa.org/tsr` of een gekwalificeerde eIDAS-dienst. De winkelserver moet de dienst kunnen bereiken.

Als de dienst bij publicatie niet antwoordt, wordt de versie toch gepubliceerd. De fout verschijnt in de weergave van de versie, met een knop **Nu tijdstempel plaatsen** om het opnieuw te proberen.

## Bestaande winkel: geschiedenis en eerdere bestellingen

Zo dekt u bestellingen van vóór de installatie:

1. Publiceer eerst de huidige versie van uw voorwaarden.
2. Maak per eerdere versie van uw voorwaarden een versie aan met haar werkelijke ingangsdatum in het verleden en publiceer die. De module weigert een datum in het verleden alleen als bestellingen die al aan een andere versie zijn gekoppeld in die periode vallen.
3. In **Bestellingen > Acceptatieregister** toont het blok **Eerdere bestellingen** hoeveel bestellingen aan geen enkele versie zijn gekoppeld. Klik op **Deze bestellingen koppelen**: de verwerking gebeurt in batches met een voortgangsbalk.

Deze bestellingen krijgen de versie die op hun datum gold en worden gemarkeerd als **Achteraf gekoppeld**, zonder IP-adres en zonder weergavespoor. De module beweert niets wat ze niet heeft vastgesteld: deze koppelingen geven de toepasselijke versie aan, ze bewijzen geen weergave.

## Module-instellingen

- **PDF bijvoegen bij e-mails** en **E-mailsjablonen**: standaard `order_conf`, u kunt bijvoorbeeld `payment` of `bankwire` toevoegen.
- **Versie tonen bij het afrekenen**: de melding boven de betaalmethoden. Ook als die uit staat, legt de module de getoonde versie vast.
- **Vermelding op facturen**.
- **Openbare versiegeschiedenis**: een pagina met de gepubliceerde versies en hun PDF's.
- **CMS-pagina automatisch bijwerken**: wanneer een versie ingaat, vervangt haar tekst de inhoud van de gekozen CMS-pagina, zodat het vinkje in de checkout altijd naar de juiste versie linkt. De knop **CMS-pagina nu bijwerken** forceert de synchronisatie.
- **IP-adressen anonimiseren**: bewaart alleen het netwerkdeel van het IP-adres.
- **Tijdstempel door een derde** en **Tijdstempeldienst**.
- **AVG-verwijderverzoeken**: zie hieronder.
- **Alle gegevens verwijderen bij de-installatie**: standaard uitgeschakeld. Laat het zo, uw versies en uw register zijn uw bewijs.

## AVG

De module koppelt aan de officiële AVG-module van PrestaShop (psgdpr). De acceptaties van een klant zitten in de export van zijn gegevens. Voor verwijderverzoeken zijn er twee opties:

- **Bewijs bewaren** (standaard): de gegevens blijven bewaard, wat artikel 17.3.e AVG toestaat voor de instelling, uitoefening of onderbouwing van een rechtsvordering. Vermeld dit in uw privacyverklaring.
- **IP-adres en browser wissen**: deze velden worden leeggemaakt. Het register blijft controleerbaar en een vingerafdruk die bij het wissen wordt berekend, beschermt de overige velden, maar het bewijs voor die klant is zwakker.

## Problemen oplossen

### De melding verschijnt niet bij het betalen

Controleer of er een geldende versie is en of de weergaveoptie is ingeschakeld. Als uw thema of checkoutmodule de hook `displayPaymentTop` niet aanroept, worden bestellingen vastgelegd met de versie die op de besteldatum gold.

### De PDF wordt niet bij de e-mail gevoegd

Controleer de optie **PDF bijvoegen bij e-mails** en de exacte naam van het sjabloon. Sommige betaalmodules versturen een eigen bevestigingsmail onder een andere sjabloonnaam: voeg die aan de lijst toe.

### Het tijdstempel mislukt

De foutmelding geeft de oorzaak. Meestal blokkeert de hostingprovider uitgaande verbindingen. Probeer een andere dienst of vraag uw hostingprovider de toegang tot het adres van de dienst open te zetten. De PHP-extensie cURL wordt aanbevolen.

### De registercontrole meldt een wijziging

De melding noemt de betreffende regel en het soort probleem: gewijzigde inhoud, regel ervoor ingevoegd of verwijderd, of verzegelde regel verdwenen. Zet de tabel `dftv_acceptance` terug vanuit een back-up van vóór de wijziging en start de controle opnieuw.

## Compatibiliteit

- PrestaShop 8.0 tot 9.x, hetzelfde ZIP-bestand dekt beide takken.
- Multistore en meertalig.
- PDF's aangemaakt met de in PrestaShop ingebouwde TCPDF, PHP-extensie zip vereist voor het bewijsdossier.
- Architectuur ModuleAdminController, zonder Composer-afhankelijkheid.
- Interface beschikbaar in het Nederlands, Engels, Frans, Spaans, Duits, Italiaans, Pools en Portugees.
