Ce document est un projet, rédigé à partir du fonctionnement réel de l'application, vérifié dans sa documentation technique. Il n'a pas été relu par un juriste et doit l'être avant toute mise en production. Il ne constitue aucune déclaration de conformité.
1. Le cadre légal
Le traitement des données à caractère personnel au Burkina Faso est régi par la loi n° 001-2021/AN du 30 mars 2021 portant protection des personnes à l'égard du traitement des données à caractère personnel, qui a remplacé la loi n° 010-2004/AN du 20 avril 2004.
L'autorité de contrôle est la Commission de l'Informatique et des Libertés (CIL), autorité administrative indépendante. Elle peut prononcer des sanctions.
La loi impose notamment une collecte licite, loyale et transparente, des finalités déterminées, explicites et légitimes, et des garanties de sécurité et de confidentialité. Elle rend en outre obligatoire la déclaration des traitements auprès de la CIL.
La déclaration à la CIL n'a pas été effectuée, à notre connaissance. C'est une démarche à accomplir, pas un fait acquis, et cette page ne prétend pas le contraire. Doivent être renseignés ici, une fois la démarche faite :
- la référence et la date du récépissé de déclaration ;
- l'identité complète du responsable de traitement : dénomination, forme juridique, siège social, RCCM, IFU ;
- l'adresse électronique et l'adresse postale auxquelles adresser une demande d'exercice de droits ;
- le nom et les coordonnées du correspondant à la protection des données, s'il en est désigné un.
2. Qui traite quoi
Deux rôles se distinguent, et la distinction est importante :
- L'entreprise utilisatrice est responsable de traitement pour les données qu'elle saisit — ses clients, ses élèves, ses commandes, ses ventes. C'est elle qui décide de les collecter et de ce qu'elle en fait.
- GANDYAM360 agit comme sous-traitant pour ces données-là : elles sont hébergées et traitées pour le compte de l'entreprise, selon ses instructions, et pour aucune autre finalité.
- GANDYAM360 est responsable de traitement pour ce qui relève de son propre fonctionnement : les comptes utilisateurs (identification, authentification), le journal d'audit et les rapports techniques d'erreur.
3. Le mode démonstration
À la date de cette version, le site public fonctionne en mode démonstration. Ce que vous saisissez en parcourant la démonstration est écrit dans le stockage local de votre navigateur, sous les clés préfixées g360-demo:, et n'est envoyé à aucun serveur. Vider les données du site dans votre navigateur les efface entièrement.
Les sections qui suivent décrivent le traitement effectué une fois l'application branchée sur son serveur. Aucune donnée réelle n'y a encore été traitée : le service n'a pas été mis en production.
4. Données traitées
Les catégories ci-dessous sont relevées dans le modèle de données du serveur, pas décrites de mémoire.
| Catégorie | Données |
|---|---|
| Compte utilisateur | Adresse e-mail, nom complet, mot de passe haché, rôle, état actif, date du dernier accès. |
| Entreprise | Nom, pays, devise, statut de l'abonnement, identifiant d'URL. |
| Contacts | Nom affiché, type (personne ou société), numéros de téléphone, adresse électronique, adresse postale. |
| Élèves (activité école) | Nom, prénom, année de naissance, sexe, statut, nom et téléphone du responsable, montants dus et versements. Ces données concernent des mineurs. |
| Commandes et ventes | Nom et téléphone du client, lignes de commande, paiements, nom de l'employé qui a encaissé ou créé la pièce. |
| Notifications | Canal, destinataire (numéro ou adresse), objet, contenu du message de campagne, statut d'envoi, date, erreur éventuelle. |
| Fichiers | Nom d'origine, type, taille, auteur du dépôt, et le contenu du fichier lui-même. |
| Écritures comptables | Écritures, lignes, tiers rattachés, séquences de numérotation. |
| Journal d'audit | Auteur de l'action, rôle, action, entité concernée, résumé, date. Ce résumé ne contient jamais de secret : ni mot de passe, ni empreinte, ni jeton. |
Ne sont pas collectés : aucune donnée de carte bancaire ni de paiement en ligne, aucune donnée de géolocalisation, aucun profil publicitaire. Le modèle de données ne comporte aucun champ d'adresse IP.
5. Finalités
- Fournir le service : enregistrer et restituer l'activité de l'entreprise, produire ses documents et ses écritures.
- Authentifier les utilisateurs et contrôler leurs accès.
- Envoyer les messages que l'entreprise décide d'adresser à ses propres clients.
- Assurer la traçabilité des actions sensibles, par le journal d'audit.
- Diagnostiquer les pannes, au moyen de rapports techniques expurgés de toute donnée personnelle (section 11).
- Respecter les obligations légales de conservation comptable.
6. Isolation entre entreprises
Chaque entreprise ne voit que ses propres données. La séparation ne repose pas seulement sur le code applicatif, qui pourrait oublier un filtre : elle est appliquée par la base de données elle-même.
- Chaque ligne porte l'identifiant de son entreprise, et une politique Row Level Security de PostgreSQL filtre lectures et écritures sur cet identifiant, y compris pour le propriétaire des tables.
- Le rôle de base de données qui sert l'intégralité du trafic applicatif ne peut pas contourner cette politique.
- L'identifiant de l'entreprise est déduit du jeton d'authentification, côté serveur. Aucune interface ne l'accepte du client, il ne peut donc pas être falsifié depuis un navigateur.
- Les rares accès inter-entreprises réservés à l'exploitation exigent un motif et sont journalisés dans la même transaction que l'accès lui-même.
- Ces règles sont vérifiées par des tests automatisés qui tentent l'accès croisé et le voient refusé.
7. Durées de conservation
Tant que le compte est actif, les données sont conservées pour permettre l'usage du service. À la fermeture du compte, la suppression est effectuée module par module, et elle n'est jamais totale :
| Données | À la fermeture du compte |
|---|---|
| Comptes utilisateurs et jetons de session | Supprimés. Plus aucune authentification n'est possible. |
| Données d'exploitation (ventes, stock, commandes, élèves, dépôts, contacts, fichiers, notifications) | Supprimées. |
| Écritures comptables | Conservées dix ans au titre du SYSCOHADA révisé. Obligation légale, qui survit à la fin de l'abonnement. |
| Contacts cités comme tiers d'une écriture | Conservés, faute de quoi l'écriture comptable deviendrait illisible. Le rapport de suppression en donne le décompte. |
| Journal d'audit | Archivé, y compris la trace de la suppression elle-même : qui l'a demandée, quand, pourquoi. Un audit qui s'efface n'est pas un audit. |
| Fiche d'identité de l'entreprise | Conservée, au statut « résiliée ». |
La suppression est immédiate et définitive : il n'existe ni délai de grâce, ni restauration à partir de l'export.
Une limite connue, et dite : la suppression retire les références aux fichiers déposés, mais les octets de ces fichiers restent aujourd'hui sur le support de stockage ; leur effacement demande une opération manuelle. La correction est identifiée.
8. Destinataires et sous-traitants
Les données ne sont ni vendues, ni louées, ni cédées. Le seul flux de données personnelles vers un tiers est le suivant :
- Meta — WhatsApp Cloud API, pour l'acheminement des messages WhatsApp. Sont transmis le numéro de téléphone du destinataire et le contenu du message. Ce transfert a lieu hors du Burkina Faso et obéit aux règles propres de Meta.
Le suivi des erreurs est auto-hébergé sur la même machine que l'application : ces données ne sortent pas du serveur (section 11). Aucun service d'analyse d'audience, aucune régie publicitaire, aucun réseau social embarqué.
Le canal SMS n'est pas ouvert : aucun opérateur n'a été retenu. Il n'existe aucun prestataire de paiement, le service ne comportant pas de paiement en ligne.
- Identité de l'hébergeur et pays d'hébergement : aucun nom d'hébergeur ne figure dans la documentation du produit, et aucun n'est inventé ici.
- Liste des transferts hors du Burkina Faso, et garanties encadrant chacun d'eux.
- Opérateur SMS retenu, le cas échéant, et fournisseur d'envoi d'e-mails.
9. Messages adressés à vos clients
Le service permet à l'entreprise utilisatrice d'envoyer des messages WhatsApp aux contacts qu'elle a elle-même enregistrés : alertes liées à une commande, ou campagnes qu'elle compose et déclenche.
C'est l'entreprise utilisatrice qui est responsable du consentement de ses propres clients, de l'information qu'elle leur doit et du traitement de leurs demandes de retrait. GANDYAM360 intervient comme sous-traitant : il achemine les messages qu'elle a décidé d'envoyer, aux destinataires qu'elle a choisis.
Aucun mécanisme de recueil de consentement ni de désinscription (mot-clé STOP, lien de retrait) n'existe aujourd'hui dans l'application. Le décrire ici une fois implémenté, et faire signer à chaque entreprise utilisatrice un accord de sous-traitance précisant cette répartition des responsabilités.
10. Sécurité
- Mots de passe : hachés avec bcrypt, jamais stockés en clair, jamais rechargés par défaut depuis la base, et absents de tout export.
- Jetons de session : le jeton d'accès vit quinze minutes et est signé par clé asymétrique. Le jeton de renouvellement est à usage unique, remplacé à chaque emploi, et n'est conservé en base que sous forme d'empreinte. Un rejeu détecté révoque toute la famille de jetons.
- Cookies : les jetons sont portés par des cookies
httpOnly, hors de portée du JavaScript, avec l'attributSameSite. - CSRF : trois couches — l'attribut du cookie, une liste blanche d'origines, et un en-tête dédié exigé sur toute requête modifiante authentifiée par cookie.
- Limitation de débit sur les routes d'authentification, et réponse identique quelle que soit la cause d'un échec de connexion, pour ne rien révéler.
- Chiffrement en transit : en production, l'accès au service se fera exclusivement en HTTPS. Le service n'ayant pas encore été mis en production, ce point reste à vérifier sur l'installation réelle.
Limites connues, et dites plutôt que tues : un compte désactivé peut rester accepté jusqu'à quinze minutes, le temps que son jeton d'accès expire ; les échecs d'authentification ne sont pas tracés ; le compte d'administration de la plateforme n'est pas encore protégé par une double authentification ; les données ne sont pas chiffrées au repos.
Vérifier et documenter : terminaison TLS et politique HSTS, chiffrement de la connexion à la base de données avec validation du certificat, chiffrement au repos, et procédure de notification en cas de violation de données — délai, autorité destinataire, information des personnes.
11. Suivi des erreurs
Lorsqu'une erreur technique survient, un rapport est envoyé à un outil de suivi auto-hébergé sur la même machine que l'application. Les données ne sortent pas du serveur.
Ce rapport est construit champ par champ, par liste blanche : type d'erreur, message tronqué et expurgé, pile d'appels, identifiant de requête, identifiant technique de l'entreprise, chemin de la route sans ses paramètres, méthode et code d'erreur.
Ne sont jamais transmis : adresse e-mail, nom, téléphone, montant, corps de requête, en-têtes, cookies, adresse IP, ni paramètres de requête à la base. Les adresses et numéros qui se seraient glissés dans un message d'erreur sont masqués avant l'envoi, et un test automatisé échoue si un nom ou une adresse ressort dans un rapport. Le suivi est désactivé par défaut : sans configuration explicite, aucune connexion sortante n'est ouverte.
12. Cookies et stockage local
Le service n'emploie aucun cookie publicitaire ni de mesure d'audience. Seuls des cookies strictement nécessaires sont posés :
| Nom | Rôle | Durée |
|---|---|---|
gandyam_access | Jeton d'authentification. httpOnly. | 15 minutes |
gandyam_refresh | Renouvellement de la session sans nouvelle saisie du mot de passe. httpOnly. | 30 jours |
g360-csrf | Protection contre les requêtes intersites forgées. httpOnly. | Le temps de la session |
Le stockage local de votre navigateur conserve en outre votre préférence d'apparence, claire ou sombre (g360-apparence), et les données de la démonstration (g360-demo:…). Ces informations ne quittent jamais votre appareil.
13. Vos droits
Vous disposez d'un droit d'accès, de rectification, d'effacement, d'opposition et de portabilité sur vos données.
- Accès et portabilité : un export complet des données du compte est produit au format JSON, lisible et réutilisable.
- Rectification : les données saisies par l'entreprise sont modifiables directement dans l'application par les utilisateurs habilités.
- Effacement : la fermeture du compte déclenche la suppression décrite en section 7, sous les réserves légales qui y sont énoncées. Un client qui demande l'effacement de ses données n'obtient pas l'effacement de sa comptabilité : la conservation décennale répond à une obligation légale.
Si vous êtes le client, l'élève ou le correspondant d'une entreprise qui utilise GANDYAM360, adressez-vous d'abord à cette entreprise : c'est elle qui décide du traitement de vos données, et nous n'agissons que sur ses instructions.
Canal d'exercice des droits — adresse électronique, adresse postale, formulaire — et délai de réponse annoncé. Aucune coordonnée n'est inventée ici.
14. Réclamation auprès de la CIL
Si vous estimez que vos droits ne sont pas respectés, vous pouvez saisir la Commission de l'Informatique et des Libertés du Burkina Faso.
Coordonnées officielles de la CIL — adresse, téléphone, site — à recopier depuis une source officielle et à vérifier à la date de publication.
15. Évolution de cette politique
Cette politique peut être modifiée pour suivre l'évolution du service ou de la réglementation. La version applicable est celle publiée sur cette page, dont la date figure en tête. Les modifications substantielles sont portées à la connaissance des entreprises utilisatrices avant leur entrée en vigueur.
Les présentes se lisent avec les conditions générales d'utilisation .