fokan/docs/phase-0/etude-api-plaque.md
Gautier Stefanini 84c971b05b Audit de sécurité et fonctionnel : correctifs appliqués, quiz rejouable (D-018)
Sécurité : réclamation de foyer et consentement de rétractation déplacés
dans le webhook Stripe uniquement (jamais plus au rendu de page) ; mot de
passe Postgres régénéré et réseau dédié (fokan-net, base retirée de
ai-net) ; limitation de débit sur les routes publiques ; plafonds sur les
invitations ; jeton .ics dédié et révocable ; en-têtes de sécurité.

Fonctionnel : le mail « garder le lien » part réellement ; verrou en
mémoire sur l'enrichissement d'un foyer (course quiz/pg-boss) ; rattrapage
Crit'Air étendu au passage hebdomadaire ; webhook Stripe robustifié
(past_due/trialing ne coupent plus l'accès) ; champ P.2 proposé aussi sur
la voie déclarative du quiz (marque/modèle), pas seulement via le champ K.

Nouveau : un abonné peut rejouer son quiz pour mettre à jour son foyer
(garde-fou d'un rejeu par mois) — voir D-018 dans docs/decisions.md pour
le compromis retenu sur l'état des échéances.

Exploitation : CI GitHub Actions, ESLint, migrations Drizzle versionnées
(base existante baselinée, nouvelle migration jouée), healthcheck
/api/health. Code mort retiré.

Voir docs/audit-2026-07-28.md § 0 pour le détail complet, correctif par
correctif, et ce qui reste délibérément différé (sauvegardes, sourcing
des intervalles de courroie).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 13:05:55 +00:00

9.2 KiB

Phase 0 — Étude API plaque & sources de détection

Étude close — D-002 a été annulée par D-004 le 25/07/2026

Aucune API plaque n'est utilisée, et aucune ne le sera. Le champ K de la carte grise (numéro de réception communautaire), recopié par le foyer, identifie le véhicule dans le référentiel RDW Open Data — 2,9 M de configurations, domaine public, zéro coût variable, zéro licence, zéro contact commercial. Depuis D-017, la même source livre en plus le code moteur, c'est-à-dire la distribution.

Ce que cela change par rapport à l'arbitrage du § 10.6 du cadrage : la question « la plaque doit-elle être gratuite ou payante ? » n'a plus d'objet. Il n'y a plus de coût variable à arbitrer, donc plus de CAC caché, et l'identification du véhicule est offerte à tous.

Ce document est conservé pour la trace du raisonnement : il établit qu'aucune API plaque gratuite ne peut exister (la réutilisation du SIV exige une licence ministérielle avec redevance) et que la date réelle du contrôle technique n'est pas disponible en self-service. Ces deux constats restent vrais, et ce sont eux qui ont conduit à D-004. Voir pilier-vehicules.md pour l'état réel du pilier.

Décision d'origine, conservée telle quelle ci-dessous :

Décision D-002 (22/07/2026) : API plaque payante self-service (~5 c/req), 1 plaque offerte par quiz, cache + limite IP. Vérifié : aucune API gratuite ne peut exister — la réutilisation du SIV exige une licence ministérielle avec redevance, et HistoVec (gratuit) exige nom + numéro de formule de la carte grise. La date CT reste indisponible en self-service → fenêtre calculée depuis la 1re immatriculation. Contacts AAA Data/Autorigin (CT réelle) suspendus, réactivables.

État au 22 juillet 2026 — recherche préliminaire web ; les points marqués 📞 nécessitent un contact commercial pour être tranchés.

1. Le paysage des fournisseurs

Fournisseur Modèle Prix constaté Données CT / Crit'Air Verdict
AAA Data — SIvin® API B2B sous contrat, concessionnaire historique des données SIV 📞 non publié 75 M véhicules, plaque ou VIN → caractéristiques techniques ; « identifiants légaux pour assurance, carte grise et contrôle technique » 📞 à confirmer Le candidat sérieux — source officielle, à contacter en priorité
Autorigin (B2B) Rapports d'historique par plaque, API B2B 📞 non publié Historique complet : résultats de contrôles techniques, kilométrage, sinistres, situation administrative CT confirmé Le seul qui affiche la donnée CT ; probablement facturé au rapport (riche, donc cher ?) 📞
apiplaqueimmatriculation.com Self-service, packs mensuels Dès 39 €/mois sans engagement (~800 req/mois sur le pack standard → ~5 c/req) 80+ champs : marque, modèle, carburant, CO₂, code moteur, tecdocID, VIN non mentionnés Plan B économique pour l'effet waouh de base
api-plaque-immatriculation.com Self-service, paliers Gratuit 10 req/mois · 59 $/600 req (~9 c/req) · 199 $/5 000 (~4 c) · 299 $/10 000 (~3 c) 100+ champs (VIN, SRA, KType, puissance, CO₂, dimensions) non mentionnés Alternative self-service ; palier gratuit pratique pour le dev
AutomotivAPI (iziscar) API données auto européennes Non relevé Marque, modèle, motorisation, 1re immat, KType, codes SRA À creuser seulement si les deux ci-dessus déçoivent
API Particulier (ANTS) API officielle « extrait d'immatriculation » Gratuit Données du certificat d'immatriculation, temps réel SIV Inutilisable : réservée aux collectivités (stationnement résidentiel), DataPass + FranceConnect
HistoVec Interface publique Gratuit Historique + CT Pas d'API exploitable (confirmé, conforme au cadrage)

Le prix constaté (~3-10 centimes/requête en self-service) est dans la fourchette basse de l'estimation du cadrage (5-50 c). À ce tarif, la règle « 1 plaque offerte par quiz » coûte ~50-100 € pour 1 000 quiz complétés — coût d'acquisition borné et négligeable, le réglage pressenti (§ 7.3) est validé sous réserve des prix AAA Data.

2. Le point critique : la date réelle du prochain CT

Constat : aucune API self-service n'expose la date du prochain contrôle technique dans ses champs publics. La donnée existe (UTAC-OTC → HistoVec, et Autorigin la sert dans ses rapports), mais elle passe par des contrats B2B.

Deux voies, à mener en parallèle :

  1. 📞 Contact commercial AAA Data (SIvin) et Autorigin : demander explicitement « date de validité / date du dernier CT par plaque », le prix à l'appel, et les conditions (volumes minimums, engagement). C'est le scénario cible du cadrage (« date réelle obtenue par la plaque »).
  2. Plan B dégradé mais honnête — l'inférence par la date de 1re immatriculation (champ présent chez tous les fournisseurs) : 1er CT avant le 4e anniversaire, puis tous les 2 ans. Pour un véhicule de moins de 4 ans la date est exacte ; au-delà, on obtient une fenêtre estimée (parité des années + anniversaire), affinée par une micro-question optionnelle du quiz (« dernier CT : cette année / l'an dernier / aucune idée ») — conforme au § 4.3. L'effet waouh devient « Peugeot 308 de 2019, CT à prévoir vers mars 2027 » au lieu d'une date certaine : acceptable pour la Phase 0, à upgrader dès qu'un contrat CT est signé.

Décision recommandée pour la Phase 0 : démarrer avec un agrégateur self-service (essai gratuit puis pack ~39-59 €/mois) pour marque/modèle/année/motorisation + plan B CT, et lancer les deux contacts commerciaux immédiatement. L'architecture rend le changement indolore : la détection plaque est un adapter (§ 20.8 du cadrage), le fournisseur est interchangeable.

3. Détection adresse — open data confirmé, gratuit

Les trois sources du cadrage existent et sont servies par des API publiques gratuites :

Source API Usage fokan
BAN (Base Adresse Nationale) API Adresse — api-adresse.data.gouv.fr Autocomplétion + normalisation de l'adresse, clé de jointure
DPE ADEME « API DPE logements » (portail open data ADEME / data.gouv) Type de chauffage, année de construction, surface — la pré-suggestion du volet logement
BDNB (CSTB) « API BDNB Open » Caractéristiques bâtiment en complément/recoupement
Bonus découvert : IMOPE (Observatoire National des Bâtiments) API IMOPE 400+ attributs par adresse (DPE, énergie, technique, risques...) agrégés de 100+ sources — candidate pour remplacer les jointures manuelles DPE+BDNB par un seul appel ; vérifier conditions d'accès et fraîcheur

Conforme à la règle de gratuité (§ 7.3) : la détection adresse est offerte à tous. Toujours en suggestion corrigeable, jamais en vérité imposée.

4. Actions restantes de ce chantier

Révisé par D-002 :

  • Ouvrir un compte d'essai chez les deux self-service (apiplaqueimmatriculation.com, api-plaque-immatriculation.com — palier gratuit 10 req/mois pour le dev), comparer la qualité réelle sur ~20 plaques connues (exactitude marque/modèle/1re immat, champs utiles à l'entretien).
  • Choisir le fournisseur et implémenter l'adapter plaque (interchangeable par design, § 20.8).
  • Implémenter le réglage anti-abus : 1 plaque/quiz, cache par plaque normalisée, limite IP.
  • Tester la couverture réelle DPE/BDNB/IMOPE sur ~10 adresses connues (dont une récente et une rurale).
  • Table des préconisations courroie/révision par modèle (chantier base de connaissance) — croisée avec le modèle retourné par l'API.
  • 📞 Contacter AAA Data (SIvin®) / Autorigin pour la date CT réelle — suspendu, réactivable si le besoin se confirme.

Sources