Développeur — clés d'API et API REST
Émettez et gérez des clés d'API, configurez leurs portées, et utilisez l'API REST de Certivant pour créer des demandes de vérification et synchroniser le statut KYC depuis vos propres systèmes, par programmation.
Ce que cela permet de faire
L'API REST de Certivant permet à vos propres systèmes de créer des demandes de vérification, de téléverser des documents et de récupérer les statuts, sans passer par le tableau de bord. Deux cas d'usage principaux :
- Intégrer la vérification à votre propre parcours d'inscription. Votre formulaire d'inscription envoie les données à votre backend, votre backend appelle Certivant, et le demandeur reçoit un lien vers le parcours hébergé de Certivant.
- Synchroniser le statut des vérifications dans votre entrepôt de données ou votre CRM. Combinez-la avec les webhooks pour que vos systèmes se mettent à jour à chaque changement de statut.
L'authentification de l'API repose sur des clés d'API que vous émettez depuis le tableau de bord. La documentation complète des points de terminaison se trouve à l'adresse /app/{votre-org}/kyc/developer — cette page couvre la gestion des clés et la vue d'ensemble conceptuelle.
Où le trouver
KYC → Développeur dans la barre latérale gauche. (Les clés d'API se trouvaient autrefois sous les paramètres KYC/B ; elles disposent désormais de leur propre page d'accueil Développeur.)
Le portail développeur est un centre unique doté d'un menu de gauche :
- Aperçu et démarrage rapide — votre URL de base, l'authentification et une requête prête à copier-coller dans 8 langages (cURL, JavaScript, TypeScript, Python, PHP, Go, Java, C#). Les extraits sont préremplis avec votre hôte réel et un espace réservé pour votre clé.
- Clés d'API — lister, créer et révoquer vos clés.
- Référence des points de terminaison — chaque point de terminaison d'intégration (
/v1) avec sa méthode, son chemin, ses portées et ses paramètres, ainsi qu'un lien vers le bac à sable interactif de l'API. - Gestionnaires de webhooks — gestionnaires prêts à l'emploi qui vérifient les signatures, dans 6 langages (voir aussi Webhooks).
- Limite de débit — la limite effective par minute de votre organisation, affichée en lecture seule.
- FAQ — les questions que posent le plus souvent les intégrateurs.
Émettre une clé d'API
Cliquez sur Nouvelle clé
La carte Clés API en haut de la page Développeur liste vos clés avec leur environnement, leurs autorisations, leur date de création et leur dernière utilisation. Chaque ligne comporte des boutons pour modifier, effectuer la rotation et révoquer la clé.

Une boîte de dialogue s'ouvre.

Donnez-lui un nom
Choisissez un libellé qui indique où la clé est utilisée : « Backend de production (Heroku) », « Pipeline CI », « Dev local — ordinateur d'Alice ». Le nom apparaît dans le journal d'audit à côté de chaque action API.
Choisissez les portées
Les autorisations sont définies clé par clé. Il existe deux façons de les accorder, que vous pouvez combiner :
| Portée | Ce qu'elle permet |
|---|---|
kyc:read | Lire tout : demandes, documents, formulaires, analyses. |
kyc:write | Créer et modifier : demandes, téléversements de documents, envois de formulaires, vérifications en direct. |
kyc:submit | Transmettre une demande au traitement automatisé. |
kyc:manage | Actions privilégiées : remplacer des décisions, supprimer des documents, effacer ou exporter les données d'un demandeur. |
Ou choisissez des autorisations plus restreintes, par ressource (Lecture, Écriture, Soumission, Gestion pour chaque ressource) :
| Ressource | Portées | Couvre |
|---|---|---|
| Vérifications | verifications:read · write · submit · manage | Demandes de vérification, KYB, EDD, signaux de fraude |
| Formulaires | forms:read · write · manage | Liste des formulaires, envoi d'un formulaire, suivi de livraison |
| Documents | documents:read · write · manage | Documents des demandes |
| Vérification d'identité en direct | live_id:read · write | Planification et suivi des appels de vérification en direct |
| Webhooks | webhooks:read · manage | Points de terminaison de webhooks (doivent être accordés explicitement) |
| Analyses | analytics:read | Analyses et synthèse de tri |
| Confidentialité et effacement | privacy:manage | Demandes de suppression, effacement, export par demandeur |
Gestion sur une ressource inclut toutes les autres actions sur cette ressource. Une portée par ressource ne s'étend jamais au-delà de sa ressource : une clé qui ne dispose que de forms:read ne peut pas lire les demandes de vérification.
Choisissez le minimum de portées dont la clé a réellement besoin. Une clé destinée à « envoyer un formulaire depuis notre parcours d'inscription » n'a besoin que de forms:write.
(Facultatif) Restreindre la clé
- Formulaires — limitez la clé à des formulaires précis. Elle ne peut alors lister, envoyer et créer des vérifications que via ces formulaires, et elle ne voit que les vérifications créées par leur intermédiaire (liste, détail, documents, synthèse, analyses). Tout le reste est refusé avec
403 form_not_allowed. Une clé restreinte à des formulaires ne peut pas créer de vérification sans nommer l'un de ses formulaires (formId), et ne peut pas utiliser les points de terminaison d'effacement de demandeur, de demande de suppression, de réutilisation et de vérification en direct. Les vérifications existant avant l'application de cette règle deviennent visibles pour une clé restreinte une fois que Certivant a effectué sa reprise de données unique. - Workflows — limitez la clé à des workflows d'automatisation précis. Pour chaque vérification créée par la clé, seuls ces workflows peuvent s'exécuter (quel que soit celui qui les déclenche par la suite : le demandeur, une décision, un examinateur) ; les autres workflows sont ignorés pour cette vérification. Les vérifications créées depuis le tableau de bord, par les demandeurs sur un formulaire public ou par d'autres clés ne sont pas concernées. Aucun appel API n'échoue à cause de cette restriction.
Ne cochez rien pour ne pas appliquer de restriction.
- Adresses IP — listez les adresses IPv4/IPv6 ou les plages CIDR depuis lesquelles la clé peut être utilisée (une par ligne, par exemple
203.0.113.7,198.51.100.0/24,2001:db8::/32). Les requêtes provenant d'une autre adresse sont refusées avec403 ip_not_allowed.

Vous pouvez modifier plus tard les portées, les restrictions et l'expiration via Modifier (l'icône en forme de crayon) : le secret et l'environnement ne peuvent pas être changés.

(Facultatif) Expiration
Définissez une date à laquelle la clé expire automatiquement. Recommandé pour les intégrations de courte durée (jetons CI, démonstrations). Les clés de production n'ont souvent pas d'expiration ; effectuez plutôt leur rotation selon un calendrier. Une clé expirée renvoie 401 api_key_expired.
Choisissez l'environnement
Les clés Production commencent par ck_live_, les clés Test par ck_test_ (voir Production et test ci-dessous).
Créez la clé
La clé est affichée une seule fois dans une fenêtre modale. Copiez-la immédiatement : elle ne pourra plus être récupérée ensuite. Le tableau de bord n'affiche que le préfixe (par exemple ck_live_a3f1), ce qui vous permet d'identifier les clés sans les exposer.
Utiliser la clé
Envoyez-la dans l'en-tête Authorization :
Authorization: Bearer ck_live_a3f...
Les clés créées avant le format ck_live_ / ck_test_ (commençant par kyk_) continuent de fonctionner sans modification.
Le chemin le plus rapide vers une intégration fonctionnelle :
Créer une demande
curl https://api.certivant.com/api/v1/kyc/requests \
-H "Authorization: Bearer $CV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "INDIVIDUAL",
"applicant": {
"fullName": "Jane Doe",
"email": "jane@example.com"
}
}'
Renvoie l'identifiant de la nouvelle demande ainsi qu'une URL à usage unique où le demandeur téléverse ses documents.
Envoyer l'URL au demandeur
Vous pouvez l'envoyer vous-même par courriel, l'intégrer à votre propre parcours d'inscription, ou demander à Certivant de l'envoyer via le flux « Envoyer l'invitation » du tableau de bord.
Recevoir le résultat par webhook OU par interrogation
- Webhook (recommandé) : enregistrez un point de terminaison qui gère
kyc.request.approved/rejected/escalated. Voir Webhooks. - Interrogation :
GET /api/v1/kyc/requests/{id}renvoie le statut actuel. Intervalle recommandé ≥ 30 s.
Attribution aux partenaires et aux sous-locataires
Si vous réalisez des vérifications pour le compte de nombreux clients finaux depuis une seule organisation — le modèle classique du partenaire ou du revendeur, par exemple une plateforme de signature électronique qui vérifie des signataires pour des centaines d'entreprises —, vous n'avez pas besoin d'une organisation par client. Associez chaque demande à deux champs facultatifs lors de sa création via l'API :
subTenantName— le nom affiché du client final (par exemple « Acme Corp »).subTenantExternalId— votre propre identifiant interne pour ce client (par exemplecust_8842).
Une fois ces champs renseignés, vous pouvez :
- Filtrer le point de terminaison de liste par
subTenantExternalId(GET /api/v1/kyc/requests?subTenantExternalId=cust_8842). - Acheminer les webhooks — les deux champs sont repris dans chaque enveloppe d'événement, ce qui permet à votre gestionnaire de savoir à quel client correspond un résultat sans recherche supplémentaire.
- Filtrer les tableaux de bord — l'utilisation KYC/B, le journal d'audit, la surveillance, les rapports et les analyses se dotent tous d'un filtre Sous-locataire dès qu'une demande porte ces étiquettes, et les listes KYC/KYB peuvent afficher les colonnes Sous-locataire et ID externe (masquées par défaut — activez-les depuis le menu des colonnes).
Consultez la référence de l'API pour le format exact de la requête : Demandes KYC → Créer une demande.
Limites de débit
Votre limite de requêtes par minute est définie par votre forfait (valeurs typiques par défaut : 60/min sur Launch, 300/min sur Pro et Scale, 600/min sur Enterprise). Le plafond exact de votre organisation est affiché en lecture seule sur la page Développeur, et chaque réponse de l'API le transmet dans l'en-tête X-RateLimit-Limit. Chaque clé est comptée indépendamment par rapport à ce plafond.
Au-delà de cette limite, les requêtes renvoient HTTP 429 Too Many Requests avec X-RateLimit-Reset (nombre de secondes avant la réinitialisation de la fenêtre). Espacez vos appels et réessayez.
Besoin d'un plafond plus élevé ? Votre super administrateur le définit : il peut relever votre limite par client jusqu'au plafond de votre forfait, depuis Admin → Clients → (votre organisation) → Modifier l'organisation (un plafond plus élevé implique de passer à un forfait supérieur). La limite est contrôlée par l'opérateur : les clients peuvent la consulter, mais pas la modifier. Pour le fonctionnement complet, consultez la référence développeur : Limites de débit.
Bonnes pratiques de sécurité
- Conservez les clés dans des variables d'environnement ou dans un gestionnaire de secrets. Ne les versionnez jamais dans git et ne les partagez jamais dans une conversation. Les clés publiées dans des dépôts publics sont systématiquement repérées en quelques minutes.
- Une clé par environnement. Ne partagez pas une même clé
ck_live_...entre préproduction et production : la rotation de l'une ne doit pas affecter l'autre. - Utilisez des clés à portée restreinte. Une clé en lecture seule pour la surveillance et une clé en écriture pour le service d'inscription sont plus sûres qu'une clé toute-puissante partout.
- Verrouillez les clés sur vos serveurs. Ajoutez la liste d'adresses IP autorisées pour les clés utilisées uniquement depuis des adresses fixes.
- Effectuez une rotation tous les trimestres. Utilisez Effectuer la rotation (voir ci-dessous) : l'ancienne clé continue de fonctionner pendant le chevauchement que vous choisissez, ce qui permet de déployer la nouvelle sans interruption. Le journal d'audit enregistre le basculement.
- Surveillez les usages non autorisés. La liste des clés indique quand et depuis quelle adresse chaque clé a été utilisée pour la dernière fois, et le journal d'audit enregistre la création, les modifications, les rotations et les révocations de clés. Vérifiez toute adresse que vous ne reconnaissez pas.
Effectuer la rotation d'une clé

Développeur → Clés API → Effectuer la rotation crée un remplaçant ayant le même libellé, les mêmes autorisations, les mêmes restrictions, la même liste d'adresses IP et la même expiration, et affiche la nouvelle clé une seule fois.
- Chevauchement (0 à 168 heures, 24 par défaut). L'ancienne clé continue de fonctionner pendant cette durée, puis renvoie
401 api_key_rotated. Indiquez0pour révoquer immédiatement l'ancienne clé. - La liste marque l'ancienne clé « Renouvelée — l'ancienne clé fonctionne jusqu'au … » et la nouvelle « Remplace une clé renouvelée ». Une clé déjà renouvelée ne peut pas l'être une seconde fois : effectuez la rotation de son remplaçant.
- Vous pouvez aussi modifier ou révoquer l'ancienne clé pendant le chevauchement si vous devez la couper plus tôt.
Révoquer une clé
Lorsqu'une clé est compromise, divulguée ou n'est plus nécessaire :
- Développeur → Clés API → menu à trois points → Révoquer.
- Effet immédiat. Toute requête en cours utilisant la clé renverra 401 à l'appel suivant.
- Action irréversible — il n'existe aucun bouton « annuler la révocation ». Émettez une nouvelle clé si vous changez d'avis.
La révocation est enregistrée dans le journal d'audit, avec l'utilisateur qui l'a effectuée.
Production et test
Chaque clé est soit :
- Test (
ck_test_...) — destinée au développement et à l'intégration continue. - Production (
ck_live_...) — destinée à la production.
L'environnement étiquette l'usage : chaque réponse transporte X-Certivant-Environment: test ou live, et le tableau de bord affiche le badge à côté de la clé, afin que vous puissiez distinguer le trafic de test du trafic de production dans vos journaux.
Les clés de test n'isolent pas les données. Elles lisent et écrivent les mêmes vérifications que vos clés de production. Le seul bac à sable est celui dans lequel démarre chaque nouvelle organisation : tant que Certivant n'a pas vérifié votre organisation, les fonctionnalités de vérification en direct sont bloquées pour toutes ses clés. Utilisez une organisation distincte si vous avez besoin de données de test entièrement séparées.
Dépannage
401 Unauthorized
Le champ error.reason du corps de la réponse indique la cause :
error.reason | Signification |
|---|---|
missing_api_key | Aucun en-tête Authorization: Bearer …. |
invalid_api_key | La clé n'existe pas (faute de frappe, clé tronquée, mauvaise organisation). |
api_key_revoked | La clé a été révoquée. |
api_key_expired | La date d'expiration de la clé est dépassée. |
api_key_rotated | La clé a été renouvelée et sa période de chevauchement est terminée. Utilisez le remplaçant. |
403 Forbidden
error.reason :
error.reason | Signification |
|---|---|
insufficient_scope | La clé ne dispose pas de la portée requise pour ce point de terminaison (le message indique les portées acceptées). Modifiez la clé ou émettez-en une nouvelle. |
ip_not_allowed | La requête provient d'une adresse absente de la liste d'adresses IP autorisées de la clé. |
form_not_allowed | La clé est restreinte à d'autres formulaires : le formulaire, ou la vérification demandée, n'a pas été créé via l'un d'eux. |
429 Too Many Requests
Vous êtes limité en débit. Consultez l'en-tête Retry-After (en secondes) et espacez vos appels en conséquence. Pour un volume soutenu, demandez une limite plus élevée.
« J'ai perdu la valeur de la clé »
Les clés ne sont affichées qu'une fois. Elles ne peuvent pas être récupérées. Révoquez l'ancienne clé et émettez-en une nouvelle : votre équipe devra mettre à jour la nouvelle valeur partout où l'ancienne était déployée.
Voir aussi
- Webhooks — à associer à l'API pour une intégration complète.
- Liste et détail KYC — la vue, côté tableau de bord, des demandes créées par l'API.
- Journal d'audit — chaque appel API y apparaît.
Webhooks
Recevez les événements Certivant en temps réel dans vos propres systèmes lorsque les vérifications changent de statut — configuration, vérification de la signature HMAC, calendrier des nouvelles tentatives et référence complète des types d'événements.
Types de documents, expiration et règles de fraîcheur
Choisissez les documents d'identité et d'entreprise acceptés par Certivant, fixez l'ancienneté maximale d'un document et décidez de ce qui se passe lorsqu'un document est expiré, trop ancien ou que sa date ne peut pas être lue — pour le KYC comme pour le KYB.