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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
14. Bases légales des traitements
Ce que le logiciel démontre, c’est que la communication marketing est traitée séparément et sur base d’opt-in : l’indicateur marketing est créé désactivé sur les comptes comme sur les appareils, tandis que les notifications de commande, de consommation et d’expiration sont créées activées car elles concernent une eSIM que vous avez achetée.
La cartographie formelle de chaque finalité de traitement vers sa base légale au titre de l’article 6 — contrat, intérêt légitime, consentement ou obligation légale — accompagnée d’une analyse d’intérêt légitime pour tout traitement fondé sur cette base. Il s’agit d’une qualification juridique, que le code ne peut pas trancher.
Source dans le produit
- database/migrations/2026_08_15_090000_add_notification_baseline_to_customers.php:32-38
- database/migrations/2026_08_15_010000_create_push_devices_table.php:64-69
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.
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.
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
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
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.