Aller au contenu

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é du ProjectOwnerGuard s'applique — pas de check d'appartenance projet).

Query params

Validés via bodySafeParse_zod(pappersSearchQuerySchema, queryParams) :

{
  q: string (min 1),
  longueur?: number (coerce),
  types?: string[],
}

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) :

{
  siren: string (9 digits)
}

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