Privacy policy — Klikage: Age Verification
Shopify app published by Pikali. Last updated 2026-11-11.
Klikage lets a Shopify store verify that a visitor is of legal age before buying age-restricted products. This policy explains what data is processed, where, for how long, and by whom. In short: the facial estimate never leaves the visitor's browser, every record is stored in the merchant's own Shopify store, and Pikali's server keeps no personal data.
1. Roles
The merchant operating the store is the data controller. Pikali (publisher of the app) acts as a processor on the merchant's behalf for the operations described below, under Article 28 GDPR. For the app server itself (shop session, anonymous technical sessions, logs), Pikali is the controller.
2. Facial age estimation (automatic check)
The estimate runs entirely in the visitor's browser with the open-source library face-api.js, loaded from Shopify's CDN and from Pikali's server (model files). The camera stream, images and biometric measurements are processed in the device's memory and are never transmitted, to Pikali or to the merchant. Only the result (adult: yes/no, and the method) is kept: as a cookie on the visitor's device (duration set by the merchant, 30 days by default), as a signed token in the shopping cart (so that checkout can be unlocked), and, for logged-in customers, on the customer account in the merchant's store (metafields klikage.age_verified, age_verified_at, age_verified_method).
3. Verification on the phone (QR code)
A visitor without a camera can finish on a phone. Pikali's server creates a technical session (random identifier, 15 minutes, store domain, status) with no personal data, deleted automatically. The estimate on the phone follows section 2.
4. Manual approval request
When the automatic check is inconclusive, the visitor may ask the merchant for a manual approval: full name, e-mail, optional phone number and message and, if the merchant requires it, an ID document (jpg, png or pdf, resized on the visitor's device). These data are stored in the merchant's Shopify store (app-owned record and Shopify Files), readable by the merchant, and sent to the merchant by e-mail (except the document, which is only available in the merchant's admin). The document is destroyed as soon as the merchant approves or refuses the request; the request itself is anonymized after the retention period chosen by the merchant (7 to 90 days, 30 by default). Pikali's server processes these data in memory only, to transmit them to Shopify and to send the notification e-mail; nothing is written to Pikali's disks.
5. E-mails
Notification to the merchant (new request) and decision e-mails to the visitor (approved / refused) are sent through Pikali's e-mail provider (LWS, France). No copy is kept after sending.
6. Data kept by Pikali's server
| Data | Purpose | Retention |
|---|---|---|
| Store access token (Shopify session) | Operate the app for the store | Until the app is uninstalled |
| QR technical sessions (random ids, status) | Hand-off to the phone | 15 minutes, purged hourly |
| Server logs (method, path, status code, duration — no query string, no body) | Security and operations | About 50 MB rolling (5 files) |
No personal data of visitors or customers is stored on Pikali's server. Server located in Germany (Hetzner Online GmbH, data processing agreement under Art. 28 GDPR), within the European Union.
7. Sub-processors
Shopify (store data, Files, CDN), Hetzner Online GmbH (Germany, hosting of the app server), LWS (France, transactional e-mail).
8. Security
TLS everywhere; signed requests between the store and the app server (Shopify app proxy); per-store signed tokens; access to Pikali's accounts protected by two-factor authentication; least privilege (the app only requests the Shopify permissions it uses). In case of a security incident affecting a store's data, Pikali informs the merchant within 48 hours.
9. Rights of visitors and customers
Requests to access, rectify or erase data are addressed to the merchant, who holds the data. The merchant can delete a request, destroy a document and clear the age flag at any time from the app and from the customer page. Shopify's GDPR webhooks (customer data request, customer erasure, store erasure) are implemented: erasure of a customer removes their approval requests and age flag in the store. Visitors in the EU may also lodge a complaint with their supervisory authority (in France, the CNIL).
10. Accuracy notice
The automatic estimate is probabilistic and may be wrong (lighting, glasses, masks, about ±5 years). It does not constitute a formal identity verification; merchants subject to such an obligation should rely on manual approval or a dedicated identity verification service.
11. Contact
PIKALI SARL, capital 100 €, RCS Saverne, SIREN 104 038 211, TVA FR73104038211, 37 rue Principale, 67310 Dahlenheim, France — contact@pikali.fr — +33 1 62 04 56 70