Identifiants entreprise
Identifiants entreprise
Le module legal_ids extrait les identifiants d'entreprises françaises depuis une liste de POI déjà dotés d'un site web. Pour chaque site, le module localise et valide le SIRET (14 chiffres) et le SIREN (9 chiffres), et enregistre l'URL où l'identifiant a été trouvé. La somme de contrôle Luhn est appliquée à chaque candidat : les numéros de téléphone à neuf chiffres sont rejetés avant la sortie.
Ce module est le point d'entrée standard du pipeline legal-data : une fois un SIREN vérifié attaché à un item, des modules en aval comme legal_data peuvent interroger les registres officiels sans étape de rapprochement par nom.
Site web requis. Ce module lit le SIRET/SIREN dans les mentions légales du site web de chaque établissement : chaque ligne doit donc avoir une colonne
site_web. Si votre liste n'a que des noms ou des liens Google Maps (sans site web), utilisez plutôt Données société — il renvoie le même SIRET/SIREN en recherchant le nom dans l'annuaire SIRENE, sans site web.
Objectif
- Rattacher un identifiant d'entreprise française faisant autorité (SIREN/SIRET) à chaque POI.
- Conserver la provenance : chaque identifiant est accompagné de l'URL d'extraction.
- Fournir une clé propre et dédoublonnée pour l'enrichissement ultérieur (
legal_data,legal_mentions).
Entrées
Le module consomme une enriched_list de POI. Le champ minimal requis sur chaque item est site_web ; les items sans site sont filtrés à la création du job et comptés comme ignorés.
| Champ | Type | Requis | Notes |
|---|---|---|---|
site_web |
string | oui | Domaine racine ou URL quelconque du site cible. |
nom |
string | non | Transmis tel quel en sortie pour le contexte. |
adresse |
string | non | Transmis tel quel en sortie pour le contexte. |
Une liste de POI est typiquement produite par le module scrap, mais toute enriched_list portant site_web est acceptée.
Sorties
Chaque item d'entrée est retourné avec trois nouveaux champs. Les autres champs d'entrée sont transmis tels quels.
| Colonne | Type | Description |
|---|---|---|
siren |
string | Identifiant à 9 chiffres, validé Luhn. Vide si non trouvé. |
siret |
string | Identifiant d'établissement à 14 chiffres, validé Luhn. Vide si non trouvé. |
siret_source_url |
string | URL de la page d'extraction. Vide si non trouvé. |
Quand seul un SIREN est détecté, siret reste vide et les modules en aval peuvent opérer sur le SIREN seul. Les autres attributs de société — forme juridique, n° RCS, code NAF, effectif, dirigeants, finances — relèvent de legal_data.
Cycle de vie
Cycle de job standard — voir Cycle de vie des jobs. Les échecs sur des items individuels n'arrêtent pas le job : la ligne de sortie correspondante a simplement les champs siren/siret vides, et le compteur errors suit le nombre d'items terminés sans identifiant.
Pipeline
needs: poi_list
produces: enriched_list
legal_ids est rangé dans la catégorie enrich. Chaînes typiques :
scrap→legal_ids→legal_datascrap→legal_ids→legal_mentions
Endpoints
Créer un job
POST /api/jobs/legal-ids
Corps :
| Champ | Type | Requis | Description |
|---|---|---|---|
items |
tableau de POI | oui | Liste d'entrée. Chaque item doit porter site_web. |
source_job_id |
string (UUID) | non | Quand on enchaîne depuis un job précédent, ID du job amont pour la traçabilité. |
Réponse : objet Job standard, incluant id, status, output_filename, et l'estimation de coût en unités équivalent-France.
Le job créé est ensuite piloté par les endpoints habituels (GET /api/jobs/{id}, GET /api/jobs/{id}/download, etc.) partagés par tous les modules.
Quotas globaux et plafonds par job : voir Limites.
Erreurs
| Situation | Comportement |
|---|---|
Item sans site_web |
Écarté avant démarrage. Si aucun item ne reste, le job est rejeté. |
| Site joignable, aucun identifiant trouvé | Item terminé avec siren/siret vides. Comptabilisé dans le total d'erreurs. |
| POI non immatriculé (pas de SIREN/SIRET) | Idem : aucun identifiant inventé ; sorties vides. |
| Entreprise étrangère | Idem : seuls les identifiants français sont reconnus. |
| Candidat échouant à la validation Luhn | Écarté silencieusement ; aucun faux positif écrit en sortie. |
| Aucun item avec site web | Le job échoue avec un message explicite — ex. 0 ligne sur 120 a un site web (votre liste ne contient que des noms, des liens Google Maps et des téléphones) — et recommande legal_data pour obtenir le SIRET/SIREN par le nom. |
Et après
- Données entreprise — depuis un SIREN, récupère le dossier officiel complet : forme juridique, n° RCS, code NAF, effectif, dirigeants, finances.
- Mentions légales — extrait le bloc de mentions légales (éditeur, hébergeur, contact) depuis les mêmes sites.