REVUE JURIDIQUE REQUISE

Politique de confidentialité

Ce que eSIM Zone collecte réellement, qui le reçoit réellement, et ce qui se passe lorsque vous supprimez votre compte.

Date d’effet: Non définie — REVUE JURIDIQUE REQUISE

Projet fondé sur les sources — en attente de revue juridique

Ce document a été rédigé à partir de ce que le logiciel eSIM Zone fait de manière vérifiable. Il n’a pas été revu ni approuvé par un juriste qualifié et ne constitue pas encore un document juridique contraignant. Chaque point qui n’a pas pu être prouvé à partir du produit est signalé ci-dessous plutôt que supposé.

1. Responsable du traitement

Le service eSIM Zone est exploité sous le nom commercial « eSIM Zone by Dream Digital ». Ce nom commercial est la seule identification d’entreprise présente dans nos supports publiés.

REVUE JURIDIQUE REQUISE

L’identité légale complète du responsable du traitement : dénomination sociale et forme juridique, adresse du siège social, numéro d’entreprise (BCE/KBO si société belge, SIREN/SIRET si société française) et numéro de TVA intracommunautaire. Aucun de ces éléments n’existe dans le produit ni dans sa configuration : aucun n’est donc affirmé ici.

REVUE JURIDIQUE REQUISE

La désignation éventuelle d’un délégué à la protection des données (DPO), et le cas échéant son nom et son adresse de contact. Aucun DPO n’est référencé dans le produit.

REVUE JURIDIQUE REQUISE

Une adresse de contact unique et faisant autorité pour les demandes relatives aux données personnelles. Le produit référence aujourd’hui plusieurs adresses de support contradictoires, réparties sur deux domaines différents (esimzone.fr et esimzone.com). L’une d’elles doit être désignée.

Source dans le produit
  • frontend/messages/fr.json — Footer.copyright : « © {year} eSIM Zone by Dream Digital »
  • Recherche SIREN / SIRET / TVA / BCE / RCS dans tout le dépôt : aucun identifiant d’entreprise

2. Données de compte conservées

Lors de la création de votre compte eSIM Zone, les champs suivants sont enregistrés :

  • Prénom et nom.
  • Adresse e-mail (unique, elle sert d’identifiant de connexion).
  • Numéro de téléphone, lorsque vous en fournissez un.
  • Pays.
  • Langue d’interface et devise d’affichage préférée, avec un indicateur précisant si vous les avez choisies vous-même ou si nous les avons déduites.
  • Votre mot de passe, conservé uniquement sous forme d’empreinte à sens unique — jamais en clair.
  • En cas de connexion via un fournisseur social : le nom du fournisseur, l’identifiant qu’il nous transmet, l’URL de votre avatar et la date de vérification de votre e-mail.
  • Votre code de parrainage, votre palier de parrainage, votre solde de points de fidélité et, le cas échéant, le partenaire qui vous a parrainé.
  • Quatre préférences de notification : commande, consommation, expiration et marketing.

Le marketing est désactivé tant que vous ne l’activez pas. L’indicateur marketing est créé à « faux » sur votre compte comme sur chaque appareil enregistré ; les trois autres sont créés activés, car ils concernent une eSIM que vous avez effectivement achetée.

Source dans le produit
  • app/Models/Customer.php:21-41, :48-60, :67-71
  • database/migrations/2025_08_20_102423_create_customers_table.php:17-26
  • database/migrations/2026_08_15_090000_add_notification_baseline_to_customers.php:32-38
  • database/migrations/2026_08_31_000000_add_locale_and_currency_preferences_to_customers_table.php:56-76

3. Données de paiement

Nous ne conservons jamais votre numéro de carte. Les paiements par carte sont traités par Paystack ; nous conservons un jeton émis par Paystack ainsi que les descripteurs non identifiants nécessaires pour vous montrer quelle carte vous avez enregistrée :

  • Un code d’autorisation émis par Paystack, conservé chiffré, et une signature de la passerelle.
  • Le réseau et le type de carte, les quatre derniers chiffres, le BIN, le mois et l’année d’expiration, et le code pays de l’émetteur.
  • La date de dernière utilisation.
  • Une preuve de consentement : l’horodatage de votre accord, l’adresse IP et l’agent utilisateur du navigateur à cet instant.

Les cartes enregistrées sont purgées automatiquement : une tâche planifiée quotidienne supprime toute carte expirée ou inutilisée depuis treize mois. Il s’agit de la seule durée de conservation réellement implémentée dans le service, et donc de la seule affirmée comme un fait dans cette politique.

Source dans le produit
  • database/migrations/2026_04_29_140000_create_customer_payment_methods_table.php:15, :28-57
  • app/Console/Commands/PurgeExpiredPaymentMethods.php:12, :30
  • app/Console/Kernel.php:265

4. Journaux de sécurité et d’audit

Les événements sensibles du compte sont consignés dans un journal d’audit. Chaque entrée enregistre l’événement, le client et l’objet concernés, l’adresse IP, l’agent utilisateur du navigateur et de courtes métadonnées structurées. Ces entrées existent pour qu’une action contestée — une carte enregistrée, une demande de suppression, un remboursement — puisse être prouvée a posteriori.

L’entrée d’audit consignant une demande de suppression de compte conserve délibérément l’adresse IP et l’agent utilisateur non masqués, car cette entrée est la preuve que la suppression a bien été demandée.

Source dans le produit
  • database/migrations/2026_04_29_141000_create_customer_audit_logs_table.php:14, :22-33
  • app/Modules/Customer/Services/AccountDeletion.php:88-101

5. Appareils et notifications push

Si vous enregistrez un appareil pour les notifications push, nous conservons la plateforme, la version et le numéro de build de l’application, la langue et le fuseau horaire de l’appareil, ainsi que vos quatre préférences de notification pour cet appareil. L’identifiant d’appareil est conservé uniquement sous forme d’empreinte SHA-256 — jamais en clair — et le jeton push est conservé à la fois sous forme d’empreinte (identité) et chiffré (livraison).

Les abonnements push web conservent le triplet W3C WebPush standard : une URL de point de terminaison et les deux clés associées.

REVUE JURIDIQUE REQUISE

Si l’envoi push sortant vers Apple (APNs) et Google (Firebase Cloud Messaging) est actif en production. L’enregistrement est implémenté et actif ; le code décrit l’envoi effectif vers Apple et Google comme soumis à une autorisation distincte. Cette politique ne peut donc affirmer ni que votre jeton est transmis à Apple ou Google aujourd’hui, ni le contraire.

Source dans le produit
  • database/migrations/2026_08_15_010000_create_push_devices_table.php:47-69
  • config/push.php:49-63 ; app/Modules/Push/Controllers/PushDeviceController.php:24, :34-47

6. Diagnostics de l’application mobile

L’application mobile contient une couche de diagnostic volontairement étroite. Elle ne peut émettre que six types d’événements — erreur applicative, échec d’appel API, performance d’écran, échec d’une étape de paiement, entrée dans l’aide à l’installation et consommation indisponible — et chacun ne transporte que des valeurs issues d’une liste fixe et énumérée. Aucun texte libre n’est accepté.

Cette couche refuse en outre toute propriété dont le nom ou la valeur ressemble à une donnée personnelle ou sensible. Sont notamment bloqués : adresse e-mail, numéro de téléphone, prénom, nom, identifiant client, identifiant d’appareil, coordonnées de localisation, ICCID, chaînes d’activation QR et LPA, jetons, identifiants d’accès, noms de fournisseurs, coûts et marges, ainsi que le texte des notifications et des messages de discussion.

En production, cette couche est configurée sans destination réseau et sans persistance. Elle ne transmet rien, ni à nous ni à un tiers. Elle existe pour que ce comportement puisse être activé délibérément plutôt que par accident.

Source dans le produit
  • mobile/src/observability/telemetry.ts:1-8, :56-62, :106-113, :149, :225, :246-247

7. Conversations de support et demandes de contact

Les conversations avec notre assistant, et chacun de leurs messages, sont conservées avec votre compte. Il s’agit de texte libre que vous avez saisi : il peut contenir tout ce que vous avez choisi d’y mettre — noms, numéros de téléphone, projets de voyage. Il est supprimé purement et simplement lorsque vous supprimez votre compte.

Si vous utilisez le formulaire de contact, nous conservons le nom, l’adresse e-mail, l’objet et le message que vous avez envoyés, ainsi que l’adresse IP d’origine.

Source dans le produit
  • app/Modules/Customer/Services/AccountDeletion.php:196-211
  • app/Http/Controllers/Api/ContactController.php

8. Destinataires réels de vos données

Cette liste est dérivée du code qui effectue les appels sortants, et non d’un modèle générique. Chaque entrée indique ce qui est réellement transmis.

  • Paystack (paiements). Reçoit votre adresse e-mail et votre nom d’affichage à chaque paiement, avec le montant, la devise, la référence de transaction et le nom du forfait acheté. Les débits sur carte enregistrée transmettent les mêmes éléments.
  • Fournisseurs d’eSIM — Airalo, Telna et eSIM Go. Lors d’un achat ordinaire, ils reçoivent un identifiant de produit, une quantité et notre référence de commande interne. Ils ne reçoivent ni votre nom ni votre adresse e-mail. Seule exception : une demande de remboursement adressée à Airalo transmet votre adresse e-mail, Airalo l’exigeant pour identifier la commande.
  • BotMarketing (messagerie WhatsApp Business). Si vous recevez nos messages WhatsApp, ce prestataire reçoit votre numéro de téléphone au format international ainsi que vos prénom et nom ; c’est le canal par lequel transite le message de livraison de l’eSIM. Votre numéro de téléphone est l’identifiant utilisé pour la conversation.
  • api.qrserver.com. Lorsqu’une eSIM est livrée par WhatsApp, le code d’activation est transmis à ce service d’images tiers pour générer l’image du QR code.
  • Sentry (diagnostic d’erreurs). Actif uniquement lorsqu’un point de collecte est configuré. Lorsqu’il l’est, il est configuré pour ne pas joindre de données personnelles par défaut, et l’enregistrement de session est désactivé côté site comme côté serveur.
  • Google Analytics. Actif uniquement lorsqu’un identifiant de mesure est configuré. La collecte automatique des pages vues est désactivée et les chemins de page sont envoyés explicitement ; aucun identifiant utilisateur n’y est joint.
  • Envoi d’e-mails. Les e-mails transactionnels — dont la livraison de l’eSIM — sont envoyés à votre adresse via SMTP.
  • Notre hébergeur, OVHcloud. L’application, la base de données et le cache s’exécutent sur un unique serveur virtuel OVHcloud.
REVUE JURIDIQUE REQUISE

L’identité du prestataire d’envoi d’e-mails en production. Le dépôt ne contient que les valeurs par défaut du framework et de l’environnement de développement : le prestataire réel ne peut pas être nommé à partir du code source et doit être relevé dans l’environnement de production.

REVUE JURIDIQUE REQUISE

Si CinetPay est encore un prestataire de paiement actif. Un contenu déjà publié dans le produit cite CinetPay aux côtés de Paystack, alors que la passerelle de paiement active dans le code est Paystack ; CinetPay ne subsiste que dans un chemin de réconciliation. L’une des deux affirmations est obsolète et doit être corrigée avant publication.

REVUE JURIDIQUE REQUISE

L’inventaire formel des sous-traitants et les contrats de sous-traitance (article 28 RGPD) pour chacun des destinataires ci-dessus. Cette section décrit ce que le logiciel transmet ; elle ne prouve pas qu’un contrat existe avec chaque destinataire.

Source dans le produit
  • app/Modules/Payment/Gateways/PaystackGateway.php:70-79 ; app/Services/Payment/PaystackProvider.php:77-107
  • app/Modules/Fulfillment/Services/FulfillmentService.php:271-276
  • app/Modules/Providers/Drivers/Airalo/AiraloProvider.php:538-542, :582-587, :948-961
  • app/Services/TelnaPurchaseService.php:260-264 ; app/Modules/Providers/Drivers/EsimGo/EsimGoProvider.php:338-349
  • app/Services/BotMarketingService.php:548-558, :597-599 ; app/Services/WhatsAppService.php:80
  • frontend/instrumentation-client.ts:17, :28-32 ; frontend/instrumentation.ts:34, :53 ; .env.example:157-161
  • frontend/app/[locale]/layout.tsx:86, :90-93 ; frontend/components/AnalyticsPageView.tsx:16-19
  • config/mail.php:16 ; app/Modules/Fulfillment/Services/FulfillmentNotifier.php:238 ; docs/RUNBOOK.md:11-16

9. Cookies et stockage sur votre appareil

Le site dépose un cookie de suivi propriétaire. Le fait de suivre un lien partenaire ou de parrainage dépose un cookie nommé ezone_ref, d’une durée de trente jours, qui enregistre quel partenaire vous a envoyé afin qu’un achat ultérieur lui soit attribué.

Des cookies de session et de protection CSRF sont déposés par le framework applicatif comme élément nécessaire à votre connexion. Lorsque Google Analytics est activé, Google dépose ses propres cookies de mesure.

Le site conserve également des données dans le stockage de votre navigateur plutôt que dans des cookies : votre jeton de session, un identifiant de discussion et votre historique de messages, un compteur de visites, et des indicateurs mémorisant les bandeaux déjà vus. L’application mobile conserve votre session dans le trousseau du système d’exploitation, limitée à cet appareil et lisible uniquement lorsqu’il est déverrouillé.

REVUE JURIDIQUE REQUISE

Un mécanisme de consentement aux cookies. Il n’existe aujourd’hui ni bandeau de consentement ni contrôle de refus dans le produit. Le cookie de parrainage de trente jours est déposé lors de la redirection, et Google Analytics se charge là où il est configuré — dans les deux cas avant tout recueil de consentement. Au regard de la directive ePrivacy et du RGPD, cela exige une décision juridique puis une implémentation ; cette politique n’affirmera pas qu’un consentement est recueilli alors que le code montre le contraire.

Source dans le produit
  • frontend/app/r/[code]/route.ts:5-6, :34-39 ; frontend/components/admin/ReferralLinkSection.tsx:28
  • frontend/lib/api.ts:66-79 ; mobile/src/auth/session-store.ts:73-80
  • Aucun composant de consentement ni dépendance CMP dans frontend/ ou mobile/

10. Sessions et authentification

L’accès à l’API utilise des jetons porteurs. Un jeton de session web est configuré pour expirer au bout de 24 heures. Un jeton émis à un appareil mobile est configuré pour expirer au bout de 30 jours. La déconnexion, comme la suppression du compte, révoquent immédiatement tous les jetons.

Source dans le produit
  • config/sanctum.php:16, :36, :38 ; app/Models/Customer.php:13 ; app/Modules/Customer/Services/AccountDeletion.php:103

11. Durées de conservation

Une seule durée de conservation est implémentée et appliquée : les moyens de paiement enregistrés sont supprimés après treize mois sans utilisation, ou dès leur expiration.

Au-delà, les enregistrements transactionnels — commandes, paiements, provisionnement d’eSIM, écritures de portefeuille, réconciliation et audit — sont conservés après la suppression d’un compte, car un revendeur d’eSIM a des obligations comptables, fiscales, de gestion des litiges et de réconciliation fournisseur qui survivent au compte. Le service ne définit délibérément pas de durée pour ces enregistrements, et aucune purge n’est planifiée.

REVUE JURIDIQUE REQUISE

La durée légale de conservation des pièces transactionnelles et comptables, déterminée pour la juridiction applicable, et le processus de purge ou d’archivage correspondant. Un contenu déjà publié ailleurs dans le produit affirme une durée de cinq ans ; ce chiffre n’est implémenté nulle part dans le service et n’est pas repris ici comme un fait.

Source dans le produit
  • app/Console/Commands/PurgeExpiredPaymentMethods.php:30
  • app/Modules/Customer/Services/AccountDeletion.php:20-26, :28-35

12. Suppression de votre compte

La suppression de compte anonymise plutôt qu’elle n’efface. Lorsque vous supprimez votre compte, celui-ci devient immédiatement inutilisable et les données personnelles qu’il contient sont écrasées sur place.

Écrasé ou supprimé immédiatement :

  • Votre nom est remplacé par « Deleted Account » et votre adresse e-mail par une adresse de substitution définitivement non routable.
  • Téléphone, pays, langue, devise préférée, avatar, lien de connexion sociale, date de vérification de l’e-mail et code de parrainage sont effacés.
  • Votre mot de passe est remplacé par une valeur aléatoire inutilisable et toutes les préférences de notification sont désactivées.
  • Tous les jetons de session sont révoqués, et chaque appareil push enregistré et abonnement push web est supprimé.
  • Chaque moyen de paiement enregistré est définitivement supprimé — y compris ceux que vous aviez déjà retirés — avec le code d’autorisation chiffré, la signature de la passerelle, les descripteurs de carte et l’adresse IP de consentement.
  • Votre panier, les connexions en attente, ainsi que toutes les conversations de support et leurs messages sont supprimés.
  • Votre nom est retiré de tout avis que vous avez laissé et de tout enregistrement de parrainage vous nommant.

Délibérément conservé :

  • Commandes, paiements, enregistrements de provisionnement d’eSIM, écritures de portefeuille et données de réconciliation, pour les motifs comptables et de litige décrits ci-dessus.
  • Une entrée d’audit consignant la demande de suppression, incluant l’adresse IP et l’agent utilisateur de la demande.
  • Le lien partenaire, le solde de points de fidélité et le palier de parrainage rattachés au compte.

La suppression est disponible aujourd’hui dans l’application mobile, depuis votre compte, et exige une confirmation : la ressaisie de votre mot de passe, ou la saisie du mot DELETE si vous vous êtes connecté via un fournisseur social.

REVUE JURIDIQUE REQUISE

La suppression de compte n’est pas fonctionnelle sur le site web : le bouton de confirmation de l’écran des réglages du compte est désactivé en dur. Un client qui n’utilise pas l’application mobile n’a donc aujourd’hui aucun moyen autonome d’exercer son droit à l’effacement. Il faut soit achever le contrôle web, soit publier ici une voie de recours fonctionnelle (une adresse e-mail nommée, surveillée et traitée) avant la mise en ligne.

Source dans le produit
  • app/Modules/Customer/Services/AccountDeletion.php:20-53, :57-58, :103-216
  • routes/api/customer.php:93 ; app/Modules/Customer/Controllers/AccountDeletionController.php:14, :27, :73-77, :85-104
  • mobile/src/app/account/delete.tsx ; mobile/src/account-deletion/gateway.ts:29-38
  • frontend/app/[locale]/account/settings/page.tsx:419, :472

13. Vos droits

Lorsque le RGPD vous est applicable, vous disposez du droit d’accéder à vos données, de faire rectifier les données inexactes, d’obtenir leur effacement, de limiter le traitement ou de vous y opposer, à la portabilité de vos données, et de retirer votre consentement à tout moment lorsque le traitement repose sur celui-ci. Vous avez également le droit d’introduire une réclamation auprès d’une autorité de contrôle.

REVUE JURIDIQUE REQUISE

L’adresse à laquelle adresser les demandes des personnes concernées, la procédure de réponse, et l’identité de l’autorité de contrôle compétente — laquelle dépend de l’établissement du responsable de traitement, non encore déterminé à la section 1.

REVUE JURIDIQUE REQUISE

Une procédure documentée pour les demandes d’accès et de portabilité. L’effacement est implémenté dans le logiciel ; l’accès et l’export ne le sont pas. Un processus manuel doit donc exister et être décrit avant que cette section puisse les promettre.

15. Lieu de traitement de vos données

L’application, sa base de données et son cache s’exécutent tous sur un unique serveur virtuel fourni par OVHcloud.

REVUE JURIDIQUE REQUISE

La région du centre de données OVHcloud hébergeant le serveur, et donc la question de savoir si les données client résident dans l’Union européenne. Le nom d’hôte du serveur identifie le fournisseur mais pas la région : aucune affirmation de résidence européenne n’est faite ici.

REVUE JURIDIQUE REQUISE

Le mécanisme de transfert — décision d’adéquation, clauses contractuelles types ou autre — pour chacun des destinataires de la section 8 qui traite des données hors de l’EEE.

Source dans le produit
  • docs/RUNBOOK.md:16 ; deploy/deploy.sh:4 ; docs/MARKETING_BRIEF.md:22

16. Mineurs

REVUE JURIDIQUE REQUISE

L’âge minimum pour détenir un compte et l’existence éventuelle d’une vérification d’âge. Le produit ne comporte ni barrière d’âge ni champ d’âge : aucun âge minimum n’est affirmé ici.

17. Date d’effet et modifications

REVUE JURIDIQUE REQUISE

La date d’effet de la présente politique. Elle est délibérément laissée vide plutôt qu’antidatée, et doit être fixée le jour où la revue juridique est achevée et la politique publiée.