Cas d'usage · KYB

API d'onboarding KYB

Vérifiez des sociétés UE + R-U en production en 30 lignes de code. SIREN, NIF, company_number → un profil registre complet et le criblage de sanctions en un seul appel REST.

Le problème

Onboarder une contrepartie B2B en finance réglementée en UE suppose de prouver quatre choses avant de transiger : que la société existe légalement, que vous savez qui la contrôle, qu'aucune des parties n'est sanctionnée, et qu'il n'y a pas de signal défavorable évident. L'outillage standard pour ça est fragmenté — un fournisseur pour les données espagnoles, un autre pour les données françaises, un troisième pour Companies House au Royaume-Uni, un quatrième pour les sanctions, parfois un cinquième pour la presse négative. Chaque contrat est annuel, au tarif opaque, et passe par un rendez-vous commercial.

Pour une fintech qui onboarde quelques centaines de clients B2B par mois, cet empilement de fournisseurs coûte cher et ralentit l'intégration. L'API Prometiam remplace les volets registre et sanctions par un seul jeu d'endpoints REST, avec une tarification prévisible à l'usage.

Le schéma d'intégration en 30 secondes

Trois endpoints couvrent le flux registre-et-sanctions du KYB. Exécutez-les dans cet ordre :

# 1. Résoudre la contrepartie par SIREN (France)
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?siren=552032534&country=FR' \
  -H 'Authorization: Bearer rk_live_...'

# 2. Récupérer le profil complet (dirigeants, capital, coordonnées registre)
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/1000000552033' \
  -H 'Authorization: Bearer rk_live_...'

# 3. Cribler la personne morale et chaque dirigeant en poste contre les sanctions
curl 'https://api.prometiam.com/functions/v1/risk-api/sanctions/screen?name=Renault&threshold=85' \
  -H 'Authorization: Bearer rk_live_...'

C'est toute la surface registre du KYB pour une contrepartie. Enveloppez ça dans une fonction, appelez-la depuis votre formulaire d'onboarding, et l'intégration tourne en moins d'une heure. Pour distinguer le SIREN (identifiant de la société) du SIRET (identifiant de l'établissement), voir SIREN vs SIRET (en anglais).

Un exemple Python réel

import os, requests

API = 'https://api.prometiam.com/functions/v1/risk-api'
HEAD = {'Authorization': f'Bearer {os.environ["PROMETIAM_API_KEY"]}'}

def kyb_check(siren: str, country: str = 'FR'):
    # Résoudre la société
    s = requests.get(f'{API}/companies/search', params={'siren': siren, 'country': country}, headers=HEAD).json()
    if not s.get('data'): return {'status': 'not_found'}
    company = s['data'][0]

    # Profil complet (dirigeants + coordonnées registre)
    detail = requests.get(f'{API}/companies/{company["id"]}', headers=HEAD).json()['data']

    # Sanctions sur la personne morale
    legal_hits = requests.get(f'{API}/sanctions/screen',
                              params={'name': detail['company_name'], 'threshold': 85},
                              headers=HEAD).json()['data']

    # Sanctions sur chaque dirigeant en poste
    officer_hits = []
    for c in detail.get('contacts', []):
        if not c.get('is_current'): continue
        h = requests.get(f'{API}/sanctions/screen',
                         params={'name': c['full_name'], 'threshold': 85, 'entity_type': 'person'},
                         headers=HEAD).json()['data']
        if h: officer_hits.append({'officer': c['full_name'], 'matches': h})

    return {
        'status': 'verified' if (not legal_hits and not officer_hits) else 'review',
        'company': detail,
        'sanctions': {'legal': legal_hits, 'officers': officer_hits},
    }

30 lignes, imports compris. Une application KYB construite sur cette base renvoie un verdict vérifié-ou-à-examiner en bien moins d'une seconde sur des résultats mis en cache.

Ce que vous recevez réellement

La réponse de /companies/{id} inclut tout ce dont un chargé de conformité a besoin pour remplir un dossier d'onboarding :

  • Identité : nom légal, NIF/SIREN/company_number, forme juridique, adresse, date de constitution
  • Coordonnées du registre : tomo / libro / folio / hoja précis pour l'Espagne, greffe d'immatriculation pour la France, enregistrement Companies House pour le Royaume-Uni
  • Dirigeants : mandats actuels et passés — nom, fonction, date de nomination, date de fin
  • Statut : active, dissoute, en liquidation, etc., mis à jour quotidiennement
  • Capital et objet : capital social déclaré (capital_amount + capital_currency) et l'objet social officiel (activity_description)

La réponse de /sanctions/screen renvoie les correspondances avec un score de confiance (0–100), la liste source (UE / ONU / OFAC / UK / Australie (DFAT) / gels FR / US CSL) et les éventuels alias. Vous fixez un seuil par appel pour maîtriser le taux de faux positifs.

Capture du tableau de bord client : la fiche d'une entreprise avec identifiants et signauxCapture du tableau de bord client : la fiche d'une entreprise avec identifiants et signaux
La même fiche dans le tableau de bord : identifiants, siège social et signaux d'insolvabilité, de sanctions (bêta) et de registre sur une page. Exemple : une société du Royaume-Uni. Ouvrir dans le tableau de bord

Adéquation tarifaire

Pour une fintech qui onboarde 500 contreparties B2B par mois, un appel KYB type représente environ 5 appels API par contrepartie (recherche + détail + 3 criblages de sanctions pour la personne morale et les principaux dirigeants). Ça fait 2 500 appels par mois, soit environ 5 500 crédits (11 par contrepartie : 1 la recherche, 1 le détail, 3 par criblage) — largement dans l'offre Professional (29,99 €/mois, 10 000 crédits par mois), qui couvre aussi les criblages de sanctions utilisés par ce flux. À 4 000 contreparties par mois (environ 44 000 crédits), l'offre Scale (99,99 €/mois, 50 000 crédits par mois) convient sans difficulté.

Pappers et Infogreffe ne publient pas de tarif API comparable à ce volume — voir Alternative à Pappers et Alternative à Infogreffe.

Modèles de mise en œuvre

Mettez en cache les recherches fréquentes. La plupart des fintechs B2B onboardent plusieurs fois les mêmes sociétés mères. Mettez en cache la réponse de /companies/{id} pendant 24 heures ; rafraîchissez à la demande ou via un rafraîchissement quotidien en arrière-plan.

Mode liste de surveillance. Combinez le KYB avec le schéma de surveillance de contreparties (en anglais) : stockez le company_id de chaque contrepartie onboardée et appelez /company-events/timeline quotidiennement pour détecter les événements post-onboarding (changement de dirigeant, réduction de capital, dissolution) qui devraient déclencher un réexamen. Les webhooks POST /monitor couvrent tous les pays servis sauf la France et le Chili ; pour la France, la surveillance passe par un appel quotidien à /company-events/timeline.

Ajustement du seuil de sanctions. Commencez à 85 (la valeur par défaut), puis ajustez selon le coût des faux positifs. Pour un onboarding à fort enjeu (crédit, traitement de paiements), 80 est le choix le plus prudent. Pour un enjeu faible (inscription newsletter, vérification d'une offre gratuite), 90 réduit le bruit.

Limites de périmètre, dites clairement

  • Les avis d'insolvabilité sont uniquement d'entreprise, sur seize marchés (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG).
  • La surveillance de portefeuille (POST /monitor) couvre tous les pays servis sauf la France et le Chili.
  • Le criblage de sanctions est en bêta.
  • Le criblage PPE est en bêta et limité à l'Espagne, sans parents ni proches associés (RCA).
  • L'Irlande est au niveau société — pas encore de dirigeants.
  • La Norvège n'a que des événements de changement du registre, depuis le 14 octobre 2026 (sans bulletin).
  • Les bénéficiaires effectifs se limitent au registre PSC britannique ; les données de dirigeants français, espagnols, irlandais, polonais ou norvégiens n'en sont pas.

Questions fréquentes

Qu'est-ce que le KYB ?
KYB (« Know Your Business ») est le processus réglementé de vérification d'une contrepartie professionnelle avant de transiger avec elle. Il suppose en général de confirmer l'existence légale (registre), les bénéficiaires effectifs, l'exposition aux sanctions et la presse négative. L'API Prometiam couvre les volets registre et sanctions dans un même jeu d'endpoints.

Quels pays couvre le KYB Prometiam ?
L'Espagne (BORME), la France (BODACC), le Royaume-Uni (Companies House), l'Irlande (CRO, au niveau société), la Pologne (KRS, au niveau société), la Norvège (Brønnøysundregistrene, sociétés et dirigeants), la Finlande (PRH/YTJ), la Suède (Bolagsverket), la Belgique (KBO), la Croatie (Sudski registar), le Danemark (CVR), l'Estonie (e-Business Register, RIK), la Slovaquie (RPO) et les États-Unis ; la Finlande, la Suède, la Belgique, la Croatie, le Danemark, l'Estonie, la Slovaquie et les États-Unis ne fournissent que des fiches société. Utilisez ?country=ES|FR|GB|IE|PL|NO|FI|SE|BE|HR|DK|EE|SK|CH|LV|CY|RO|US|LT|CA|AU|JP|IL|SG|CO|TW|BR|CZ|DE|AR|UA|RS|EC|NL|CL|NL|MX sur chaque endpoint.

Le KYB Prometiam inclut-il le criblage de sanctions ?
Oui — l'offre Professional (29,99 €/mois) inclut /sanctions/screen, qui compare par correspondance approximative sept sources : la liste consolidée de l'UE, l'ONU, l'OFAC, la UK Sanctions List (Royaume-Uni), l’Australie (DFAT), le Registre des gels français, plus la US Consolidated Screening List de listes de contrôle des exportations, en un seul appel. Le criblage de sanctions est en bêta.

Comment le KYB Prometiam se compare-t-il à Pappers ou Infogreffe pour la France ?
Pappers et Infogreffe restent la référence pour des besoins purement français — Pappers pour une UX moderne et Pappers Justice, Infogreffe pour les documents officiels comme l'extrait Kbis. Prometiam est plus adapté quand le périmètre dépasse la France ou que le criblage de sanctions doit vivre dans la même API que les données de registre. Voir Alternative à Pappers et Alternative à Infogreffe.

Les données sont-elles assez fraîches pour un onboarding en temps réel ?
Le BORME et le BODACC sont mis à jour quotidiennement depuis les registres officiels. Companies House est mis à jour en bloc mensuel plus un delta quotidien. /coverage renvoie la date latest_filing par pays.

En rapport