Politique de confidentialité de l'app Todis Age Verification
Version du 14 novembre 2026
1. Qui traite les données
L'app « Todis Age Verification » (l'« app », appelée aussi shop-verify) est éditée par KOHEX, qui édite aussi Todis (todis.eu), le service qui vérifie l'âge. Todis est un service de KOHEX, pas une société distincte.
KOHEX, société à responsabilité limitée (SARL) au capital de 1 000 €, immatriculée au RCS de Besançon sous le numéro 918 862 830, dont le siège social est situé 20 allée des Sorentines, 25870 Châtillon-le-Duc. Numéro de TVA intracommunautaire : FR16918862830. Représentée par Raphaël Citeau, en qualité de gérant.
Contact, y compris pour toute question de confidentialité : contact@todis.eu. KOHEX n'a pas désigné de délégué à la protection des données, cette désignation n'étant pas obligatoire pour son activité.
Rôles.
- Pour les données des acheteurs de la boutique, le marchand est responsable du traitement ; KOHEX est sous-traitant et traite les données pour le compte du marchand, selon l'accord de traitement des données.
- Pour les données du marchand lui-même (article 3 bis), KOHEX est responsable du traitement.
2. Ce que l'app ne fait pas
- Aucune donnée d'identité de l'acheteur : ni nom, ni e-mail, ni téléphone, ni adresse, ni identifiant client, ni date de naissance, ni image. De la vérification, l'app ne reçoit que la réponse sur l'âge : 18 ans ou plus, ou non, qu'elle vienne du portefeuille ou de la pièce d'identité.
- Aucun marketing ni suivi : l'app ne fait ni publicité, ni profilage, ni mesure d'audience. Elle ne pose ni cookie ni stockage local dans l'admin.
- Aucun message à l'acheteur : l'app n'écrit jamais à l'acheteur. Le lien de vérification d'une commande mise en attente est envoyé par le marchand, depuis sa propre messagerie.
- Aucune vente ni partage de données, et rien de la commande n'est transmis à Todis.
- Aucun entraînement d'intelligence artificielle sur les données.
3. Données lues par les API de Shopify
| Source | Ce que l'app lit | Pourquoi |
|---|---|---|
| Installation de l'app | domaine myshopify de la boutique, jeton d'accès hors ligne de l'app et portées accordées ; aucune session en ligne, donc aucune donnée du personnel | appeler les API de Shopify pour la boutique |
Webhook orders/create | identifiant et date de la commande, identifiant du panier, attributs du panier, dont l'app ne lit que la vérification d'âge (todis_age_token) | contrôler la vérification à la création de la commande |
Webhooks orders/fulfilled, orders/cancelled | identifiant de la commande | effacer les données d'une attente |
Webhook fulfillment_orders/hold_released | identifiant de l'expédition | effacer les données d'une attente levée |
| Admin API, commandes et expéditions | expéditions de la commande et attentes posées ; nom de la commande (#1002) et sa langue, pour la page « Commandes en attente » et l'e-mail prérédigé, sans les garder | mettre en attente, lever l'attente, afficher la liste au marchand |
| Admin API, boutique | nom, fuseau horaire, domaine principal et langue par défaut de la boutique ; indication « boutique de développement » | lien et e-mail de vérification ; mode test de la facturation et mode démonstration |
| Admin API, règle de paiement | état de la règle de paiement de l'app | afficher et activer la protection |
| Facturation (Billing API, webhooks de facturation) | abonnement et achat de l'app : offre, plafond, période, état ; devise de facturation de la boutique, pour réserver les offres aux boutiques facturées en euros | facturer selon l'offre choisie |
| Admin de l'app (App Bridge) | état de l'intégration d'app sur le thème publié | afficher l'état de la protection |
Webhooks customers/data_request, customers/redact, shop/redact | identifiant de la demande et identifiants des commandes citées ; le bloc client (identifiant, e-mail, téléphone) n'est jamais lu | répondre aux demandes d'accès et d'effacement |
Webhooks shop/update, app/uninstalled, app/scopes_update | identifiant et date de mise à jour de la boutique ; désinstallation ; portées accordées | tenir à jour les informations de la boutique ; effacer à la désinstallation |
L'identifiant d'une commande est une donnée rattachable à un acheteur au sens de Shopify (données client protégées de niveau 1) ; l'app ne lit aucun champ de niveau 2 (nom, adresse, e-mail, téléphone).
Ce que l'app écrit chez Shopify : la règle de paiement de l'app (création et mise à jour) ; la mise en attente et la levée des expéditions ; l'étiquette « âge vérifié » sur une commande dont le contrôle a réussi ou dont l'attente a été levée par une nouvelle vérification réussie, ou « âge accepté par le marchand » sur une commande autorisée par le marchand après examen ; l'abonnement, l'achat Early Bird et les frais à l'usage ; les métachamps du mode démonstration ; le métachamp d'installation qui porte l'état de la vérification par pièce d'identité (active ou désactivée). Aucune de ces écritures ne porte de donnée d'identité de l'acheteur.
3 bis. Données du marchand traitées par KOHEX comme responsable
- Données : domaine de la boutique, nom de la boutique, état de l'abonnement et de la facturation, droit Early Bird, état de la vérification par pièce d'identité (active ou désactivée), date et version des conditions acceptées, échanges avec le support.
- Finalités : fournir l'app et son support, facturer, exécuter l'offre Early Bird, respecter les obligations légales de KOHEX.
- Bases légales : l'exécution du contrat avec le marchand, et les obligations légales de KOHEX (notamment comptables).
- Destinataires : Shopify, pour la facturation ; les prestataires d'hébergement de l'article 9.
- Durées : celles du tableau de l'article 8 ; les échanges avec le support, 3 ans après le dernier échange ; les pièces comptables, la durée imposée par la loi.
4. Données reçues de l'acheteur
- Identifiant du panier, envoyé par le navigateur de l'acheteur au départ de la vérification, sans la clé d'accès au panier, qui n'est ni conservée ni transmise.
- Réponse sur l'âge, rendue par Todis (portefeuille) ou par le navigateur de l'acheteur (pièce d'identité, article 4 bis) : 18 ans ou plus, ou non (ou l'échec de la vérification : refus, abandon, erreur, âge absent).
- Les pages de l'app dans la boutique ne lisent pas l'identifiant du client connecté (
logged_in_customer_id). - Sur une boutique de développement, un mode démonstration peut simuler la vérification : rien n'est demandé à l'acheteur et aucune vérification n'a lieu.
4 bis. Vérification par pièce d'identité dans le navigateur
Sauf si le marchand a désactivé cette option, l'acheteur sans portefeuille peut faire vérifier son âge par sa pièce d'identité et son visage. Cette vérification se déroule entièrement dans le navigateur de l'acheteur, sur son appareil : le programme de l'app, téléchargé depuis le serveur de l'app, utilise la caméra, avec l'autorisation que l'acheteur donne à son navigateur, pour demander un mouvement de tête et le contrôler, lire la pièce (carte nationale d'identité, passeport, permis de conduire ou titre de séjour) et en retenir la date de naissance, comparer le visage à la photo de la pièce et calculer si la personne a 18 ans ou plus.
Les images de la caméra, les données lues sur la pièce et les mesures du visage restent dans le navigateur de l'acheteur, en mémoire, le temps de la vérification ; elles ne sont ni envoyées à l'app, ni à Todis, ni à un tiers, ni conservées. La pièce n'est ni copiée ni enregistrée. L'app ne reçoit que la réponse sur l'âge, 18 ans ou plus, ou non, avec l'identifiant technique de la vérification. Elle garde cette réponse 15 minutes au plus, puis l'efface ; la ligne de facturation ne retient que des données techniques de facturation (date, méthode, montant), sans donnée de l'acheteur.
Sur un ordinateur, la page propose de poursuivre sur le téléphone : elle affiche un code que l'acheteur scanne avec son téléphone, et la vérification se fait sur le téléphone.
Données biométriques. La comparaison du visage filmé avec la photo de la pièce est un traitement de données biométriques au sens de l'article 9 du RGPD. Il est effectué sur le seul appareil de l'acheteur, pour le compte de la boutique, responsable du traitement, et repose sur le consentement explicite que l'acheteur donne en choisissant cette méthode, après avoir lu l'information affichée sur la page, puis en autorisant la caméra. Ce consentement est libre : l'acheteur peut à tout moment préférer le portefeuille ou s'adresser à la boutique pour un examen humain (article 7). Ni KOHEX ni la boutique n'ont accès aux images ni aux mesures du visage.
Information sur la page. Avant d'ouvrir la caméra, la page indique à l'acheteur, dans sa langue : que la vérification se fait sur son appareil ; que ses images et sa pièce d'identité ne sont pas envoyées ; que seule la réponse « 18 ans ou plus, ou non » est transmise à la boutique ; et où lire la présente politique.
5. Rôle de Todis
L'acheteur présente son portefeuille d'identité numérique sur la page de vérification servie par Todis. Todis vérifie la présentation et n'émet aucun justificatif. L'app ne voit pas la présentation : elle ne reçoit de Todis que l'issue de la vérification, par un message signé, qui fait foi pour la facturation et la levée d'une attente. Sauf si le marchand a désactivé la vérification par pièce d'identité, la page de Todis propose aussi un lien vers celle-ci ; Todis ne participe pas à cette vérification et n'en reçoit rien ; il n'est pas informé du remplacement : sa propre session reste simplement sans suite.
Ce que Todis garde de la présentation de l'acheteur. Todis garde la présentation, les attributs vérifiés et le nonce en mémoire seulement, 15 minutes. Il envoie à l'app un événement signé qui ne porte aucun attribut de l'acheteur ; il le garde 30 jours. Aucun identifiant de transaction n'est gardé.
Ce que Todis garde pour l'app :
- pour chaque boutique, une licence : le domaine myshopify et les adresses de retour vers la boutique, tant que l'app est installée ; à la demande d'effacement de la boutique, ils sont effacés, et il ne reste que l'identifiant de licence, une empreinte et des dates ;
- pour chaque vérification, un identifiant interne opaque et l'adresse de retour, transmis par l'app ;
- les événements de résultat, 30 jours, sous le seul identifiant de licence.
6. Usages
- vérifier l'âge avant le paiement d'un panier qui contient un produit soumis à l'âge, par le portefeuille ou, sauf si le marchand l'a désactivée, par la pièce d'identité ;
- contrôler, à la création de la commande, la vérification qu'elle porte ; mettre l'expédition en attente si ce contrôle échoue, et poser l'étiquette « âge vérifié » s'il réussit ;
- lever l'attente après une nouvelle vérification réussie, par le lien que le marchand envoie ;
- facturer le marchand selon son offre, sans aucune donnée de l'acheteur ;
- répondre aux demandes d'accès et d'effacement transmises par Shopify ;
- surveiller le bon fonctionnement du service, sans donnée de l'acheteur.
7. Décisions automatisées et recours
L'app prend deux décisions automatisées sur la réponse de la vérification, traitées comme ayant des effets significatifs pour l'acheteur :
- le blocage du paiement d'un panier qui contient un produit soumis à l'âge sans vérification valide ;
- la mise en attente de l'expédition d'une commande dont la vérification échoue au contrôle de la commande.
L'app n'annule jamais une commande. L'acheteur a deux recours, indépendants l'un de l'autre :
- se revérifier : pour un paiement bloqué, revenir au panier et passer commande depuis celui-ci ; pour une expédition en attente, suivre le lien de vérification que le marchand lui envoie ; une vérification réussie lève l'attente posée par l'app ;
- demander un examen humain au marchand, en contactant la boutique par ses moyens de contact habituels ; le marchand décide. S'il accepte un paiement bloqué, il envoie à l'acheteur un lien d'autorisation à usage unique ; la commande porte alors l'étiquette « âge accepté par le marchand ». L'app ne garde de cet examen que la date du lien et son usage, sans donnée de l'acheteur. C'est la seule voie d'un acheteur sans portefeuille compatible quand le marchand a désactivé la vérification par pièce d'identité, et celle d'un acheteur que cette vérification a refusé à tort.
8. Durées de conservation
| Donnée | Durée |
|---|---|
| Réponse d'une vérification par portefeuille (identifiant technique, issue), avant la remise du jeton d'âge | 15 minutes au plus |
| Jeton d'âge déjà utilisé, livraisons de webhook | 3 heures pour le jeton, 24 heures pour les livraisons |
| Commande en attente, sessions et événements de Todis (panier, commande, méthode, issue, expéditions) | 30 jours au plus |
| Liens d'autorisation du marchand (dates de création, d'expiration et d'usage, identifiant du panier) | 30 jours au plus |
| Réponse d'une vérification par pièce d'identité (identifiant technique, méthode, issue) | 15 minutes au plus |
| Demandes d'accès aux données et identifiants des commandes qu'elles citent | jusqu'à ce que le marchand les marque traitées, 60 jours au plus |
| Facturation et comptage des vérifications (date, méthode, montant), sans donnée de l'acheteur | 90 jours au plus |
| Données de la boutique (licence Todis, réglages, état de la protection et de la facturation, mode démonstration, état de la vérification par pièce d'identité) | jusqu'à la demande d'effacement de la boutique, que Shopify envoie 48 heures après la désinstallation |
| Droit Early Bird (empreinte du domaine, date d'achat) | tant que l'app est commercialisée, même après la demande d'effacement |
| Journaux de l'app et du système, sans donnée de l'acheteur | 31 jours au plus |
| Copies de sauvegarde | 30 jours au plus, en fonctionnement normal |
Après la désinstallation. Les données de la boutique sont effacées dès la désinstallation pour la session de l'app et l'état de facturation, puis entièrement à la demande d'effacement (shop/redact) que Shopify envoie 48 heures après la désinstallation, bien avant le délai de 30 jours. L'app demande alors à Todis d'anonymiser la licence de la boutique, et renouvelle la demande jusqu'à sa confirmation ; en attendant, elle ne garde que l'identifiant de licence et une empreinte, sans le domaine.
Droit Early Bird. Une boutique qui a acheté l'offre Early Bird garde son droit après la désinstallation et après la demande d'effacement : l'app en garde une empreinte du domaine myshopify, qui permet de reconnaître la boutique si elle réinstalle l'app sans permettre de retrouver son domaine, la date d'achat et l'indication « boutique de développement ». C'est la preuve de l'achat de 49 € et ce qui permet d'exécuter l'offre si la boutique réinstalle l'app. La base légale est l'exécution du contrat. Le marchand peut demander l'effacement de cette empreinte à contact@todis.eu, en renonçant à l'offre ; elle est aussi effacée quand l'app cesse d'être commercialisée.
Sauvegardes. Ce qu'un effacement retire de la base reste dans les copies prises avant lui, puis les quitte à leur expiration, 30 jours au plus après l'effacement en fonctionnement normal. Les copies ne sont jamais restaurées pour lire une donnée effacée ; après une restauration, les effacements de boutiques survenus depuis la copie sont réappliqués par notre procédure de restauration, avant la réouverture du service.
9. Lieu d'hébergement et transferts
- Serveur de l'app et Todis : des machines virtuelles chez Scaleway, à Paris, reliées par un réseau privé.
- Copies de sauvegarde : chez OVH, région de Gravelines (France), chiffrées ; et sur un serveur de KOHEX en France, chiffrées.
- Supervision : métriques et tableaux de bord sur le serveur de KOHEX, sans donnée de l'acheteur. Les métriques ne portent que l'identifiant de licence ; les tableaux de bord affichent le domaine de la boutique, lu à la demande auprès de l'app, sans le stocker.
- Alertes : envoyées vers un canal Slack de KOHEX ; elles ne portent que l'identifiant de licence de la boutique, sans donnée de l'acheteur. Slack Technologies, LLC peut traiter ces alertes aux États-Unis ; ce transfert est encadré par le Data Privacy Framework UE-États-Unis, auquel Slack adhère, et à défaut par les clauses contractuelles types de la Commission européenne.
10. Sécurité
- échanges chiffrés avec Shopify, la boutique, l'acheteur et Todis ;
- base de données de l'app et copies de sauvegarde chiffrées ;
- secrets dans un coffre, jamais dans le code ;
- aucune donnée de l'acheteur dans les métriques ni dans les journaux ;
- la page de vérification par pièce d'identité n'appelle aucun service tiers et ne transmet aucune image.
11. Droits des personnes
Acheteurs. L'acheteur exerce ses droits auprès de la boutique, responsable du traitement. Shopify transmet à l'app les demandes d'accès et d'effacement : le marchand voit dans l'app, page « Demandes d'accès aux données », les données détenues sur chaque commande citée, avec un texte à transmettre à l'acheteur ; une demande d'effacement efface aussitôt les données des commandes citées. Un acheteur qui écrit directement à KOHEX est renvoyé vers la boutique.
Marchands. Le marchand exerce ses droits d'accès, de rectification, d'effacement, de limitation, d'opposition et de portabilité sur ses propres données en écrivant à contact@todis.eu ; KOHEX répond sous un mois.
Réclamation. Toute personne peut introduire une réclamation auprès de la Commission nationale de l'informatique et des libertés (CNIL).
12. Modifications et contact
Cette politique est publiée à l'adresse https://shop-verify.todis.eu/legal/fr/confidentialite.html, et sa traduction anglaise à l'adresse https://shop-verify.todis.eu/legal/en/confidentialite.html.
KOHEX annonce toute modification importante de cette politique par e-mail et dans l'app, avant son application.
Contact : contact@todis.eu
Langue : le texte français fait foi ; la traduction anglaise en est une traduction fidèle.