Endpoints et facturation
Les recherches autonomes réussies utilisant une source de données d’entreprises payante sont facturées $0.50 par requête, quel que soit le nombre de candidats. Les résultats vides, les recherches échouées et les résultats fournis uniquement par d’autres sources ne sont pas facturés. Une récupération ultérieure du profil est facturée séparément. La récupération est vendue en trois niveaux de données, chacun avec son propre endpoint, tarifés par pays (tarifs par pays) :select correspond au niveau Lite : c’est ce qu’un workflow KYB hébergé facture pour une vérification de registre au niveau Lite, et il conserve le contrat qu’il a toujours eu. L’Europe désigne l’EEE, le Royaume-Uni et la Suisse.
Une recherche Shareholders ou UBO interroge la source de données d’actionnariat qui fournit ce niveau. Lorsque cette source indique qu’elle ne détient pas l’entreprise, la recherche interroge aussi les autres sources de registres du pays, afin qu’une entreprise absente de la source d’actionnariat soit tout de même proposée comme candidat au lieu de se terminer par une saisie manuelle. Les candidats trouvés de cette façon conservent le niveau que vous avez demandé : leur récupération revérifie la source d’actionnariat et, si elle ne détient toujours pas l’entreprise, le profil Lite est livré et facturé, avec registry_ownership_status: "not_held".
Vous payez le niveau livré. Chaque réponse contient
registry_tier_requested et registry_tier_delivered. Lorsque les registres du pays ne détiennent aucune donnée d’actionnariat, ou lorsque le registre ne contient aucun enregistrement d’actionnariat pour l’entreprise sélectionnée, une demande d’actionnariat est livrée et facturée au niveau le plus élevé disponible (généralement Lite), et registry_ownership_status indique la raison. Une demande UBO dont le rapport obtenu ne désigne aucune personne physique comme bénéficiaire effectif est livrée et facturée au niveau Shareholders.Gestion des versions. Les endpoints Shareholders et UBO n’existent que sur
/v3/. Les frais de recherche autonome s’appliquent aussi à /v2/kyb/search/ ; la récupération du profil est facturée séparément.Statut de l’actionnariat
registry_ownership_status indique ce qu’il est advenu de la partie actionnariat d’une demande Shareholders ou UBO :
not_held et unavailable sont tous deux livrés et facturés comme Lite, mais ne correspondent pas au même constat : not_held signifie que la source d’actionnariat ne couvre pas l’entreprise, c’est-à-dire une lacune de couverture, alors que unavailable signifie que les données n’ont pas été fournies, à cause d’une panne ou d’une section laissée vide par le registre. registry_data.ownership_error précise la raison. Les sélections qui signalaient auparavant unavailable parce que le registre d’actionnariat ne répertoriait pas l’entreprise signalent désormais not_held. Si vous traitez le statut de manière conditionnelle, traitez les deux comme une même livraison Lite. Deux de ses valeurs ont des sens différents et ne doivent pas être lues comme le même constat :
Une section que le registre n’a pas renvoyée est également consignée de façon structurée, sous
registry_data.section_errors, indexée par section (officers, shareholders, group_structure) avec le statut indiqué par la réponse du registre :
section_errors décrit la réponse que vous détenez, et non l’historique qui y a mené. Une section non renvoyée lors de la première requête, puis fournie lors d’un passage ultérieur (voir la récupération asynchrone ci-dessous), perd son entrée. Ainsi, registry_ownership_status, ownership_error et section_errors concordent toujours : une section delivered n’a jamais d’entrée, et no_owners_on_record n’est jamais accompagné d’une entrée pour shareholders. Une section n’est jamais livrée en partie : si le registre fournit la première page d’une liste puis échoue à en fournir une page ultérieure, la récupération n’est pas terminée lors de cette tentative. Une récupération pending est alors réessayée lors de son prochain passage, et une nouvelle requête reçoit l’erreur de registre indisponible. Une liste officers ou d’actionnaires livrée est donc toujours la liste complète détenue par le registre. Traitez une section figurant dans section_errors comme une donnée qui n’a jamais été livrée, et jamais comme un résultat vide : une liste officers ou d’actionnaires vide accompagnée d’une entrée section_errors pour cette section ne dit rien sur l’entreprise.
Actionnariat récupéré de manière asynchrone
Certains registres sont interrogés à la demande : la première requête portant sur une entreprise que la source n’a jamais consultée ne renvoie aucune section d’actionnariat pendant qu’elle est récupérée, et les données arrivent en quelques minutes. Signaler cela comme « aucun actionnariat enregistré » sous-estimerait une entreprise qui possède bel et bien des actionnaires. La requête revient donc avec le statutpending.
Pendant qu’une récupération est pending, fetch_status vaut également pending et la réponse a le statut 202 Accepted. Didit réessaie la section de son propre chef et termine la récupération sans aucun nouvel appel de votre part :
- une fois les données d’actionnariat arrivées, les actionnaires et les bénéficiaires effectifs apparaissent sur la vérification enregistrée,
registry_tier_deliveredprend la valeur du niveau fourni, et l’usage est facturé à ce niveau ; - si la section est toujours vide à la fin de la fenêtre de nouvelles tentatives, le statut devient
unavailableet la requête est livrée et facturée comme Lite.
request_id et interrogez GET /v3/session/{request_id}/decision/ jusqu’à ce que registry_checks[0].company.fetch_status vaille resolved. Ne relancez pas la demande de récupération tant qu’elle est pending : chaque nouveau POST est une requête distincte, facturée séparément.
Utilisez POST /v3/kyb/search/ pour trouver des entreprises candidates. La recherche ne crée pas de vérification enregistrée. L’entrée tier de la recherche détermine la chaîne qu’elle interroge. Voir niveau de recherche.
Les recherches dans les registres peuvent prendre environ 90 secondes. Envoyez webhook_url si vous voulez que Didit vous réponde immédiatement et envoie une notification à votre URL dès que les candidats sont prêts. Le callback de recherche n’est pas signé, délibérément : vous n’avez donc pas besoin de configurer un secret partagé pour cette notification légère.
Utilisez POST /v3/kyb/select/, POST /v3/kyb/shareholders/ ou POST /v3/kyb/ubo/ avec le kyb_response_id renvoyé pour récupérer le profil au niveau dont vous avez besoin. La récupération est facturable et enregistre le résultat sous forme de Manual Check dans la Business Console.
Déroulement type
- Recherchez par nom d’entreprise, numéro d’immatriculation et pays, sur le
tierque vous comptez acheter (basicest la chaîne Lite par défaut ;shareholdersetuborecherchent dans la chaîne de ce niveau). - Si
search_resolved=false, attendez le callbackwebhook_urlfacultatif au lieu d’interroger le serveur. - Présentez les candidats renvoyés à votre opérateur ou à votre client.
- Récupérez le
kyb_response_idcorrespondant au niveau dont vous avez besoin (select pour Lite, shareholders ou ubo). - Conservez le
request_idrenvoyé et utilisez-le pour récupérer le résultat enregistré de la vérification d’entreprise.
Rappel de recherche
Lorsque le fournisseur indique à Didit que la recherche est terminée, Didit envoie une requêtePOST vers votre webhook_url :
kyb_response_id renvoyé avec POST /v3/kyb/select/, POST /v3/kyb/shareholders/ ou POST /v3/kyb/ubo/ pour lancer la récupération facturable du profil du registre.