KYC pour l'Afrique de l'Ouest francophone
Vérifiez l'identité de vos usagers, pièce et visage, en un seul parcours.
CNI de Côte d'Ivoire, du Sénégal, du Bénin et du Togo, passeports CEDEAO. Une API, un SDK web léger pensé pour les connexions lentes, et une décision rendue côté serveur, notifiée par webhook signé.
Clés de test gratuites · Facturation à la session en FCFA · Recharge par mobile money
- CICNI Côte d'Ivoire
- SNCNI Sénégal
- BJCNI Bénin
- TGCNI Togo
- CEDEAOPasseports
Quatre étapes, aucune capture dans votre application
Votre serveur crée la session, notre SDK s'occupe de l'usager, votre serveur reçoit la décision. Rien de sensible ne transite par votre front.
- 01
Créez une session
Votre serveur appelle
POST /v1/sessionsavec votre clé secrète. Le prix est réservé sur votre wallet. - 02
L'usager présente sa pièce
Le SDK recueille le consentement, photographie recto et verso et contrôle la netteté en direct.
- 03
Il prouve sa présence
Une courte vidéo de 3 à 5 s : un challenge aléatoire (tourner la tête, sourire).
- 04
Vous recevez la décision
Vérifiée, rejetée ou en revue manuelle, avec motifs et données extraites, par webhook signé.
Pour les développeurs
Une session, comme un paiement
Si vous avez déjà intégré une passerelle de paiement, vous connaissez déjà CheckID : une session, un client_secret à durée courte, un webhook signé.
- Clés sk / pk séparées, en mode test et live
Idempotency-Key: un appel rejoué n'est jamais facturé deux fois- Webhooks signés HMAC-SHA256, nouvelles tentatives journalisées
- Aucun résultat exposé côté navigateur
curl -X POST https://checkid.lapieuvre.tech/v1/sessions \
-H "Authorization: Bearer sk_test_…" \
-H "Idempotency-Key: 6f1c2a…" \
-H "Content-Type: application/json" \
-d '{
"client_reference_id": "user_1842",
"allowed_document_types": [
"id_card"
],
"locale": "fr"
}'
# Réponse (extrait)
{
"id": "ses_8Kq2…f9",
"status": "created",
"client_secret": "ses_8Kq2…_secret_…",
"url": "https://checkid.lapieuvre.tech/verify/…"
}
const response = await fetch("https://checkid.lapieuvre.tech/v1/sessions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CHECKID_SECRET_KEY}`,
"Idempotency-Key": "6f1c2a…",
"Content-Type": "application/json",
},
body: JSON.stringify({
"client_reference_id": "user_1842",
"allowed_document_types": [
"id_card"
],
"locale": "fr"
}),
});
const data = await response.json();
$ch = curl_init('https://checkid.lapieuvre.tech/v1/sessions');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CHECKID_SECRET_KEY'),
'Idempotency-Key: 6f1c2a…',
'Content-Type: application/json',
],
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'client_reference_id' => 'user_1842',
'allowed_document_types' => ['id_card'],
'locale' => 'fr',
]),
]);
$data = json_decode(curl_exec($ch), true);
import os
import requests
response = requests.post(
"https://checkid.lapieuvre.tech/v1/sessions",
headers={
"Authorization": f"Bearer {os.environ['CHECKID_SECRET_KEY']}",
"Idempotency-Key": "6f1c2a…",
},
json={
"client_reference_id": "user_1842",
"allowed_document_types": ["id_card"],
"locale": "fr",
},
timeout=10,
)
data = response.json()
Des données d'identité traitées avec retenue
Nous gardons le minimum, le moins longtemps possible, et toujours chiffré.
Chiffrement au repos
Photos, vidéo et données extraites sont chiffrées, champ par champ pour les données d'identité.
Suppression automatique
Photos et vidéo sont effacées dès la décision. Seule une revue manuelle les garde, 30 jours au plus.
Décision côté serveur
Le guidage du SDK aide l'usager ; la décision est toujours prise par CheckID, jamais dans le navigateur.
Anti-fraude par pays
Chiffres de contrôle MRZ, formats des numéros, cohérence entre zone visuelle et MRZ, dates.
Liveness actif
Challenge aléatoire à usage unique, vérifié image par image, puis comparaison avec le visage de la pièce.
Analyse chez nous
Lecture des pièces et des visages sur nos propres serveurs : aucune image n'est confiée à un service tiers.
Vous payez la vérification, rien d'autre
Un wallet prépayé en francs CFA, rechargé par mobile money. Le prix est réservé à la création de la session et n'est débité qu'à l'analyse de la pièce. Session expirée ou annulée avant analyse : le montant vous est rendu.
Par session analysée
100 FCFA
- Mode test illimité et gratuit
- Tarifs dégressifs pour les gros volumes
- Alerte de solde bas par mail et webhook
Questions fréquentes
Combien de temps dure une vérification ?
Le parcours de l'usager se fait en une seule fois : photo du recto et du verso, puis une vidéo de 3 à 5 secondes. L'analyse prend ensuite quelques secondes.
Que se passe-t-il si la photo est floue ?
Le SDK attend une image nette avant de la prendre. Si l'analyse trouve la pièce illisible, l'usager est invité à reprendre la photo, sans nouvelle facturation.
Comment tester sans payer ?
Les clés de test renvoient des réponses simulées, gratuites, sans appel au pipeline d'analyse. Vous choisissez le résultat simulé pour tester chaque cas.
Comment recharger mon wallet ?
Par mobile money depuis votre back-office. Vous fixez vous-même le seuil d'alerte de solde bas.
Quand une session est-elle facturée ?
Le prix est réservé à la création et débité à l'analyse de la pièce. Une session expirée ou annulée avant l'analyse ne coûte rien.
Vos clés de test en deux minutes
Créez un compte, intégrez, passez en live quand vous êtes prêt.