Pappers Search¶
Contrôleur HTTP de proxy vers l'API Pappers pour la recherche d'entreprises côté porteur de projet (autocomplete SIREN / nom). Source : pappers-search.controller.ts.
Tous les endpoints requièrent un porteur de projet authentifié via better-auth (ProjectFinancingRequestOwnerGuard). Le guard récupère le ProjectOwner à partir de la session et le rattache à la requête.
GET /project-financing-request/pappers/search¶
Proxy vers l'endpoint /suggestions de Pappers. Renvoie tel quel la réponse Pappers (entreprises trouvées par nom et/ou SIREN). Voir pappers-search.controller.ts#L18-L36.
Pré-conditions¶
- Porteur de projet authentifié (la route ne porte pas de
:projectId, donc seul le check d'identité duProjectOwnerGuards'applique — pas de check d'appartenance projet).
Query params¶
Validés via bodySafeParse_zod(pappersSearchQuerySchema, queryParams) :
longueur par défaut à 10 côté provider Pappers si absent. types est jointuré en CSV avant transmission.
Response¶
Type PappersSearchResponse — voir le schéma pappersSearchResponse :
{
"resultats_nom_entreprise?": [
{
"siren": "string",
"nom_entreprise": "string",
"date_creation": "ISO date",
"domaine_activite": "string",
"siege": {
"code_pays": "string",
"code_postal": "string?",
"ville": "string?"
}
}
],
"resultats_siren?": [ /* ... même shape */ ]
}
Erreurs¶
| Code | Statut | Cause |
|---|---|---|
validation-body |
400 | q vide ou query params invalides |
pappers-search-failed |
400 | L'appel Pappers a échoué (réseau / 5xx) ou la réponse n'a pas validé le schéma |
GET /project-financing-request/pappers/company¶
Proxy vers l'endpoint /entreprise de Pappers. Renvoie un subset de la fiche entreprise (SIREN, siège, representants) pour préremplir le formulaire emprunteur après sélection. Voir pappers-search.controller.ts.
Pré-conditions¶
- Porteur de projet authentifié (même guard que
/search— pas de check d'appartenance projet).
Query params¶
Validés via bodySafeParse_zod(getPappersCompanyQuerySchema, queryParams) :
Response¶
Type GetPappersCompanyResponse :
{
"siren": "string",
"nom_entreprise": "string",
"siege": {
"code_pays": "string?",
"adresse_ligne_1": "string?",
"code_postal": "string?",
"ville": "string?"
},
"representants": [
{
"nom": "string?",
"denomination": "string?",
"prenom": "string?",
"prenom_usuel": "string?",
"date_de_naissance": "string?",
"ville_de_naissance": "string?",
"pays_de_naissance": "string?",
"personne_morale": "boolean?",
"qualite": "string?"
}
]
}
Erreurs¶
| Code | Statut | Cause |
|---|---|---|
validation-body |
400 | siren manquant ou invalide (≠ 9 digits) |
pappers-company-failed |
400 | L'appel Pappers a échoué (réseau / 5xx) ou la réponse n'a pas validé le schéma |
Liens¶
- Provider Pappers :
pappers.api.ts - Endpoint provider search :
search-for-company.endpoint.ts - Endpoint provider company :
get-company-by-siren.endpoint.ts - Guard :
project-financing-request-owner.guard.ts