La version courte : vos données restent chez vous.
Permis 101 est conçu pour fonctionner sans rien savoir de vous : aucun compte, aucune publicité, aucun profil. Votre progression d’étude vit sur votre appareil et, quand iCloud est disponible, dans votre iCloud personnel — ou, sur Android, dans la sauvegarde de votre compte Google — jamais sur nos serveurs. Ce que nous recevons se limite à des statistiques d’utilisation anonymes, aux signalements de questions que vous choisissez d’envoyer, à des empreintes anti-fraude lors de la vérification d’un achat (section 4), et aux métadonnées techniques que tout serveur reçoit. Cette page fait l’inventaire complet, donnée par donnée.
1 · Aucun compte
L’app ne demande jamais de créer un compte : pas de courriel, pas de mot de passe, pas de numéro de téléphone, pas de profil. Il n’existe chez nous aucune base de données d’utilisateurs — il n’y a rien à pirater, rien à revendre.
2 · Ce qui vit sur votre appareil
Tout ce que l’app sait de votre étude reste local. Concrètement, elle conserve sur votre appareil — votre iPhone ou votre iPad, ou, sur Android, votre téléphone :
- votre journal de pratique : chaque question répondue, réussie ou non, avec sa date, et les résultats de vos examens blancs — c’est de là que vient le score de préparation ;
- votre profil local : le prénom que vous entrez (facultatif), votre situation (première fois, échange d’un permis étranger, ou reprise — et les sections à reprendre le cas échéant), la date d’examen si vous en fixez une ;
- le résultat d’examen réel que vous déclarez vous-même dans l’app, si vous choisissez de le faire ;
- un marqueur local indiquant que l’achat est débloqué, et la banque de questions téléchargée.
Rien de tout cela n’est transmis à nos serveurs. Supprimez l’app et les données locales disparaissent avec elle.
3 · Synchronisation iCloud et sauvegarde Android
Sur iPhone et iPad, quand votre appareil est connecté à iCloud, la synchronisation se fait automatiquement : votre journal de pratique, votre prénom, votre situation, votre date d’examen et vos résultats auto-déclarés sont aussi copiés dans votre iCloud personnel — l’espace privé que vous fournit Apple, auquel nous n’avons pas accès. Cela vous permet de retrouver votre progression sur vos autres appareils. Ces données ne transitent jamais par nos serveurs — nous n’en avons pas pour vos données. L’app ne comporte pas d’interrupteur pour cette synchronisation : elle suit les réglages iCloud de votre iPhone, et si iCloud n’est pas disponible, l’app fonctionne simplement en local.
À savoir : supprimer l’app efface les données locales, mais pas les copies déjà présentes dans votre iCloud — elles restent dans votre compte Apple, sous votre contrôle, et sont réutilisées si vous réinstallez l’app. Pour vous en défaire complètement, écrivez-nous (section 13) et nous vous indiquerons la marche à suivre.
Sur Android, il n’y a pas de synchronisation : l’app ne copie rien d’un appareil à l’autre. Elle s’en remet à la sauvegarde automatique d’Android : si la sauvegarde est activée dans les réglages de votre téléphone, c’est le système qui copie, de temps à autre, votre journal de pratique, votre prénom, votre situation, votre date d’examen et vos résultats auto-déclarés dans la sauvegarde de votre compte Google — l’espace privé que vous fournit Google, auquel nous n’avons pas accès — et qui les remet en place quand vous configurez un nouveau téléphone avec le même compte. C’est Android qui décide quand la sauvegarde a lieu et quand elle est restaurée, pas l’app ; l’app ne comporte pas d’interrupteur pour cette sauvegarde, elle suit les réglages de votre téléphone, et si la sauvegarde est désactivée, l’app fonctionne simplement en local. Ces données ne transitent jamais par nos serveurs. Ne font jamais partie de la sauvegarde : le marqueur local d’achat (c’est Google Play qui fait foi de l’achat — section 4), la banque de questions téléchargée (elle se retélécharge) et les données de statistiques anonymes (l’identifiant aléatoire décrit à la section 5 est propre à chaque installation).
À savoir, là aussi : supprimer l’app sur Android efface les données locales, mais pas la sauvegarde déjà présente dans votre compte Google — elle reste sous votre contrôle, dans les réglages de sauvegarde de votre téléphone, et Android peut la réutiliser si vous réinstallez l’app.
4 · Achat et preuve d’achat
Le déblocage complet s’achète par la boutique de votre appareil — l’App Store sur iPhone et iPad, Google Play sur Android : c’est Apple ou Google qui traite le paiement. Nous ne recevons jamais votre nom, votre adresse ni vos informations de paiement. Pour livrer la banque de questions complète, l’app présente à notre serveur une preuve d’achat, qui ne contient ni nom, ni adresse, ni donnée de paiement.
- Sur l’App Store, la preuve est signée par Apple : elle contient un numéro de transaction attribué par Apple — un identifiant que seul Apple peut relier à une personne. Notre serveur vérifie la signature lui-même, sans rien envoyer à Apple.
- Sur Android, la preuve est un jeton d’achat émis par Google Play, que Google ne signe pas. Pour s’assurer que l’achat existe, notre serveur transmet ce jeton à Google — à son service pour développeurs (l’API Google Play Developer, hébergée aux États-Unis) — et Google lui répond si l’achat est valide. Contrairement à la vérification d’Apple, c’est donc une communication de notre serveur vers Google ; elle ne contient que le jeton, un identifiant que seul Google peut relier à une personne, et rien de votre étude.
Dans les deux cas, notre serveur répond à l’app par un jeton d’accès valable une dizaine de minutes. Le numéro de transaction ou le jeton d’achat lui-même n’est pas conservé, et il n’existe chez nous aucun registre de qui a acheté quoi.
Pour prévenir et détecter la fraude — par exemple une preuve d’achat copiée puis publiée, qui permettrait à n’importe qui de télécharger la banque de questions —, le serveur conserve toutefois une trace minimale de chaque vérification :
- une empreinte cryptographique de l’identifiant de la transaction — le numéro de transaction Apple ou, sur Android, le numéro de commande Google Play (à défaut, le jeton d’achat) : un code calculé avec une clé secrète conservée hors de la base de données. L’empreinte ne permet pas de retrouver l’identifiant, et encore moins une personne ;
- un indicateur de réseau dérivé de l’adresse IP : une empreinte du réseau d’origine, calculée de la même façon — jamais l’adresse elle-même ;
- l’environnement de la transaction (achat réel, ou environnement de test d’Apple ou de Google), un compteur de vérifications et des dates.
Ces empreintes servent uniquement à repérer l’utilisation abusive d’une même preuve d’achat depuis un nombre anormal de réseaux — un usage de prévention et de détection de la fraude au sens de la Loi 25. Elles sont supprimées automatiquement au plus 90 jours après la dernière vérification, quelle que soit la boutique. La restauration d’achat passe elle aussi entièrement par Apple ou, sur Android, par Google.
5 · Statistiques anonymes
Pour savoir quelles parties de l’app sont utiles et détecter les bogues, l’app envoie des événements d’utilisation anonymes. La liste complète :
- première installation, ouverture, mise à jour et passage à l’arrière-plan de l’app (les événements standards de cycle de vie) ;
- tapes répétées (« rage clicks »), sur iPhone et iPad seulement : si vous touchez plusieurs fois, rapidement, le même endroit de l’écran, le module natif de PostHog envoie un événement contenant la position du toucher à l’écran et le nom technique de l’écran hôte — jamais le contenu affiché, jamais ce que vous étudiez, jamais ce que vous tapez au clavier (le clavier et les champs de texte sont exclus de cette détection). Cet événement nous sert à repérer les boutons qui semblent ne pas répondre, pour les corriger. Sur Android, cette détection n’existe pas ;
- parcours d’accueil : commencé, situation choisie (l’une des trois seulement : première fois, échange d’un permis étranger, ou reprise), terminé ;
- langue de l’app changée — au parcours d’accueil ou dans les réglages : l’événement indique la langue désormais active (français ou anglais, l’une des deux seulement). Il remplace l’ancien « intérêt exprimé pour une version anglaise », un simple compteur sans aucune propriété, que les anciennes versions de l’app, antérieures au choix de langue, envoient encore ;
- comment vous avez entendu parler de l’app, si vous choisissez de répondre à la question posée tout à la fin du parcours d’accueil. Une seule réponse, jamais obligatoire, parmi douze choix fermés (App Store, Google Play — l’app ne propose que la boutique de votre appareil —, recherche Google ou le web, TikTok, Instagram, Facebook, YouTube, un assistant d’IA comme ChatGPT ou Claude, un proche, un groupe ou un forum en ligne, une école de conduite, autre) — c’est le seul outil d’attribution de l’app : aucun suivi publicitaire d’installation n’existe. Passer la question n’envoie rien du tout — l’absence de réponse n’est pas une donnée — et aucun identifiant n’accompagne la réponse au-delà de l’identifiant aléatoire d’installation décrit plus bas ;
- étude : séance de pratique, révision, examen blanc, entraîneur de scénarios et quiz des panneaux — chacun « commencé » et « terminé », avec le nombre de questions et de bonnes réponses ; pour la pratique, aussi la section choisie (ou « toutes »), le mode sans fin (oui ou non) et s’il s’agit d’une reprise de vos erreurs (oui ou non) ; pour l’examen blanc, le verdict par section ;
- banque gratuite épuisée : l’écran de pratique affiche qu’il ne reste plus de questions gratuites à pratiquer — nous comptons combien de fois cet écran est atteint, sans aucune autre précision ;
- explication du score de préparation consultée : l’événement indique le verdict affiché à ce moment (prêt, presque, ou pas encore — l’un des trois seulement), jamais le score lui-même ni le détail par section ;
- achat : écran de déblocage affiché (et depuis quelle porte), achat commencé, achat complété — ces événements, comme les trois qui suivent (achat échoué, annulé, en attente), portent aussi la variante de l’écran de déblocage affichée (l’une de deux, tirée au sort une fois par installation et conservée sur l’appareil seulement) ; restauration demandée, avec son issue — l’une des trois seulement : achats restaurés, rien à restaurer, ou échec ;
- achat échoué, avec la cause — choisie dans une liste fermée de huit : achats désactivés sur l’appareil, boutique indisponible (l’App Store ou, sur Android, Google Play), produit introuvable, réseau, serveur occupé, erreur de serveur, vérification refusée, achat déjà en attente. Jamais le message d’erreur lui-même — et la même variante de l’écran de déblocage ;
- achat annulé : vous fermez la fenêtre de paiement d’Apple ou de Google sans acheter — l’événement indique seulement depuis quelle porte de l’app la fenêtre avait été ouverte, et la variante de l’écran de déblocage ; achat en attente : une demande d’autorisation (par exemple l’approbation d’un parent) est en cours — les deux mêmes propriétés, la porte et la variante, rien d’autre ;
- déblocage rétabli : un achat interrompu, une demande d’autorisation familiale approuvée plus tard ou, sur Android, un paiement en attente confirmé plus tard, qui aboutit sans qu’aucun écran ne l’attende. Cet événement ne porte aucune propriété ;
- résultat d’examen réel que vous déclarez vous-même (réussi, échoué ou pas encore passé — et, en cas d’échec, quelles sections) ; synchronisation iCloud devenue active (sur iPhone et iPad) ;
- partage : bouton « Partager ma réussite » touché après un examen blanc réussi (le geste seulement — jamais la destination choisie ni le contenu partagé) ;
- invitation à noter l’app : deux événements. Le premier signale qu’un des cinq moments prévus est atteint pour la première fois sur cette installation — un examen blanc réussi, les trois sections rendues « prêt », la moitié de la banque couverte avec une semaine d’étude d’affilée, une séance de pratique d’au moins huit questions réussie à 75 % ou plus (une séance de pratique — jamais le mini-test d’accueil), ou un examen réel que vous déclarez réussi ; il porte lequel des cinq, et rien d’autre. Le second signale que l’app a effectivement demandé au système — iOS, ou Google Play sur Android — d’afficher son invitation d’évaluation, ce qui n’arrive pas à chaque fois : l’app s’impose au plus une demande par version (les mises à jour correctives n’en rouvrent aucune) et au moins soixante jours entre deux. Celui-là ne porte aucune propriété. Ni l’un ni l’autre ne dit si la fenêtre est apparue, ni si vous avez noté l’app : c’est le système qui décide, et il ne nous le dit pas. L’app ne demande jamais rien après un échec ou une séance ratée ;
- capture d’écran, sur iPhone et iPad seulement : si vous prenez une capture d’écran pendant que l’app est à l’écran, iOS le signale à l’app et nous comptons l’événement, avec pour seule précision la zone de l’app concernée (pratique, examen blanc, révision, scénarios, panneaux, statistiques ou autre) — jamais l’image elle-même, à laquelle l’app n’a pas accès, et jamais la question affichée. Ce compteur nous sert à savoir dans quelle mesure le contenu est copié par capture d’écran ; il ne bloque rien et ne vous avertit de rien. Sur Android, l’app ne compte pas les captures d’écran ;
- rapports d’erreur et de plantage : lorsqu’une erreur survient dans l’app, nous en recevons le type (le nom technique de l’erreur, par exemple « StateError ») et une empreinte anonyme — un code court calculé à partir du message et de la pile d’appels. Le message lui-même, les chemins de fichiers et le contenu de l’écran sont supprimés sur votre appareil, avant l’envoi. Seule exception : si l’app se ferme brutalement (un plantage au niveau du système iOS), le rapport est produit par le module natif de PostHog et envoyé à la réouverture ; celui-là est écrit hors de notre portée et échappe donc à ce filtrage. C’est un rapport technique — pile d’appels et état du programme au moment du plantage — et non un relevé de votre étude : ni votre progression, ni vos réponses, ni votre prénom n’y sont joints par l’app. Sur Android, l’équivalent est une erreur non gérée dans la partie Java de l’app (rare : l’essentiel de l’app est écrit dans un langage dont les erreurs passent par le filtrage décrit ci-dessus) ; ce rapport-là est produit par le module Android de PostHog et échappe lui aussi à ce filtrage. Les plantages au niveau du système Android lui-même ne sont pas captés par l’app.
À la seule exception des plantages système décrits ci-dessus, les propriétés jointes à ces événements sont uniquement des nombres, des oui/non et des choix fermés — jamais l’identifiant d’une question, jamais de texte libre, jamais votre prénom, jamais votre date d’examen. Ces événements sont traités par PostHog, hébergé dans l’Union européenne (Francfort, Allemagne). Concrètement :
- aucun profil personnel n’est créé ;
- les événements portent un identifiant aléatoire propre à l’installation, rattaché à aucune identité — il n’y en a pas ;
- chaque événement indique aussi le canal d’installation de l’app — l’un de six choix fermés : App Store, TestFlight (les versions d’essai que nous exécutons nous-mêmes), Google Play, chargement direct (une installation faite hors boutique — sur Android, nos propres essais), version de développement, ou indéterminé. Cette étiquette sert à exclure nos propres essais des statistiques, pour qu’ils ne soient pas comptés comme de vraies utilisations ;
- pas d’« autocapture » des interactions — à la seule exception de la détection des tapes répétées décrite ci-dessus, sur iPhone et iPad —, pas d’enregistrement d’écran ni de session ;
- l’app ne recueille aucune donnée de localisation et ne demande aucun accès à vos contacts ; côté PostHog, la déduction du pays ou de la ville à partir de l’adresse IP (« GeoIP ») est désactivée dans le projet ;
- rien n’est utilisé à des fins publicitaires ni vendu à qui que ce soit.
Vous pouvez refuser ces statistiques : dans l’app, ouvrez Réglages et désactivez « Partager des statistiques anonymes ». L’app cesse alors de recueillir quoi que ce soit — événements d’utilisation comme rapports d’erreur et de plantage — et ne s’y remet pas au redémarrage. Votre choix reste sur votre appareil ; il ne nous est pas communiqué.
Une réserve, sur iPhone et iPad, pour la même raison technique qu’au dernier point ci-dessus : si l’app se ferme brutalement pendant que les statistiques sont désactivées, le module natif de PostHog peut quand même écrire un rapport de plantage sur votre appareil — il est écrit hors de notre portée et nous ne pouvons pas l’en empêcher. Rien n’en part tant que les statistiques restent désactivées ; si vous les réactivez un jour, ce rapport-là peut être envoyé avec les suivants. Sur Android, l’app n’installe aucun module de ce genre : rien n’est écrit tant que les statistiques sont désactivées.
6 · Signalements de questions
Si vous utilisez « Signaler cette question » dans l’app, nous recevons exactement trois choses : votre commentaire (facultatif), l’identifiant de la question et la version du contenu — rien d’autre, et aucun identifiant d’appareil ou de personne n’y est joint. Le signalement est anonyme : n’y inscrivez pas de renseignements personnels. Si vous en inscrivez malgré tout et souhaitez leur suppression, écrivez-nous (section 13). Les signalements sont conservés le temps de vérifier et corriger la question, puis au plus 24 mois, avant d’être supprimés.
7 · Métadonnées de serveur
Comme tout service en ligne, notre serveur (utilisé uniquement pour la preuve d’achat, le téléchargement de la banque de questions et les signalements) voit l’adresse IP des requêtes qu’il reçoit. Elle apparaît dans des journaux techniques temporaires et sert à limiter les abus (limitation du débit) ; ces traces s’effacent automatiquement en quelques heures ou jours et ne sont jamais reliées à votre étude — le serveur ne sait pas qui étudie quoi. Le serveur est hébergé chez Fly.io (Toronto, Canada) et sa base de données chez Neon (États-Unis) ; cette base ne contient que les signalements de questions, des compteurs anti-abus temporaires et les empreintes de vérification d’achat décrites à la section 4.
8 · Ce site web
permis101.com est un site statique : aucun témoin (cookie), aucun script d’analyse, aucune police téléchargée d’un tiers. Le site est servi par Cloudflare, notre hébergeur, qui traite les requêtes réseau nécessaires pour livrer les pages — comme tout hébergeur web.
Les liens « App Store » de ce site portent une étiquette de campagne — le nom de la page d’où vous partez, inscrit dans l’adresse du lien — qu’Apple comptabilise de façon agrégée dans les statistiques qu’elle destine aux développeurs. Rien n’est déposé ni lu sur votre appareil, et nous ne recevons aucune donnée individuelle : seulement des totaux par campagne, établis par Apple selon ses propres règles de confidentialité.
Les liens « Google Play » de ce site, s’il y en a, fonctionnent de la même façon : une étiquette de campagne (« referrer ») inscrite dans l’adresse du lien, que Google comptabilise de façon agrégée dans sa console pour développeurs. Sur Android, l’app ne lit jamais cette étiquette : elle n’interroge pas le service d’Android qui permettrait de la retrouver après l’installation, et nous ne recevons de Google que des totaux.
9 · Sous-traitants et fournisseurs
- Apple — sur iPhone et iPad : paiement et restauration d’achat (App Store) ; iCloud, en tant que fournisseur de votre espace personnel.
- Google — sur Android : paiement et restauration d’achat (Google Play) ; l’API Google Play Developer (États-Unis), à laquelle notre serveur transmet le jeton d’achat pour confirmation (section 4) ; la sauvegarde Android, en tant que fournisseur de votre espace personnel (votre compte Google).
- PostHog (Union européenne, Francfort) — statistiques d’utilisation anonymes et rapports d’erreur.
- Fly.io (Toronto, Canada) — hébergement du serveur de l’app.
- Neon (États-Unis) — base de données du serveur (signalements de questions, compteurs anti-abus, empreintes de vérification d’achat).
- Cloudflare — hébergement de ce site web.
Aucun autre tiers ne reçoit de données. Aucune donnée n’est vendue, louée ni partagée à des fins publicitaires.
10 · Conservation
- Données d’étude : sur vos appareils et, selon l’appareil, dans votre iCloud personnel ou dans la sauvegarde de votre compte Google, sous votre contrôle — nous n’en détenons aucune copie.
- Preuve d’achat : le jeton d’accès expire après une dizaine de minutes ; le numéro de transaction Apple n’est pas conservé ; jeton d’achat Google : non conservé — transmis à Google pour confirmation, puis oublié.
- Empreintes de vérification d’achat (anti-fraude, section 4) : au plus 90 jours après la dernière vérification.
- Signalements de questions : au plus 24 mois.
- Journaux techniques et compteurs anti-abus (adresses IP) : effacement automatique, de quelques heures à quelques jours.
- Statistiques anonymes : conservées par PostHog sous forme agrégée, sans identité à laquelle les relier.
11 · Votre droit de regard (Loi 25 et RGPD)
Permis 101 vise la conformité à la Loi 25 (Québec) et au RGPD (l’exploitant est établi en Europe) de la façon la plus simple qui soit : ne détenir à peu près aucun renseignement personnel. Vous avez le droit de demander l’accès aux renseignements que nous détenons sur vous, leur rectification ou leur suppression — dans les faits, il n’y a normalement rien à communiquer, puisque vos données d’étude sont chez vous. Si vous avez une question, une demande ou une préoccupation, écrivez-nous (section 13) et nous vous répondrons dans les trente jours. Vous pouvez aussi vous adresser à la Commission d’accès à l’information du Québec.
12 · Responsable de la protection des renseignements personnels
Le responsable de la protection des renseignements personnels est Julien Courbebaisse, l’exploitant (section 13). Vous pouvez le joindre à [email protected].
13 · Exploitant et contact
Permis 101 est développé et exploité par Julien Courbebaisse, travailleur autonome (autónomo) enregistré en Espagne (NIE : Y8924027H) — une adresse postale est fournie sur demande. Pour toute question sur cette politique ou sur vos données : [email protected], ou la page Soutien. Les conditions d’utilisation complètent cette politique.
14 · Modifications
Si cette politique change, la nouvelle version sera publiée ici, avec sa date de mise à jour. Cette politique est rédigée en français. Si une traduction en est offerte, c’est par commodité : en cas de divergence, la version française prévaut.