Simulateur eKYC
/ekyc/v1 · /verifications · /sessions/score · /referencesTestez les trois flux de l'API eKYC. Le résultat corrèle nativement la biométrie aux signaux télécoms SIFIP — une vérification faciale réussie sur une ligne compromise est signalée, pas approuvée.
Différenciation SIFIP
Aucun moteur eKYC isolé ne produit cette décision : la biométrie peut être parfaite, mais si trust_signals détecte un SIM swap récent, la session est dégradée en REVIEW.
Force le résultat du moteur pour illustrer chaque cas.
Document
Selfie & liveness
Caméra uniquement — import de fichier désactivé (anti-fraude)
Requête envoyée
POST /ekyc/v1/verificationsAuthorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…
Content-Type: application/json
Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef0123456789
{
"type": "onboarding",
"reference_id": "client-defined-id-12345",
"document": {
"type": "national_id",
"country": "MG",
"front_image": "data:image/jpeg;base64,…"
},
"selfie": {
"image": "data:image/jpeg;base64,…",
"liveness_required": true,
"liveness_mode": "passive"
},
"trust_signals": {
"enabled": true,
"phone_number": "+261340000000"
},
"callback_url": "https://client.example.com/webhooks/ekyc",
"metadata": {
"channel": "mobile_app",
"session_ip": "41.0.0.0"
}
}Réponse
// Renseignez le formulaire puis lancez la simulation
Énumérations de décision (§6)
APPROVETous les contrôles concordent → laisser passer.
REVIEWBiométrie OK mais signal de risque → vérif humaine / step-up.
REJECTÉchec d’un contrôle critique → bloquer.
Mapping score → décision (paramétrable)
| 0–40 | REJECT |
| 41–74 | REVIEW |
| 75–100 | APPROVE |
Codes de motifs (§6.3)
| Code | Severity | Signification |
|---|---|---|
| FACE_MATCH_OK / _FAIL | info / critical | Concordance faciale. |
| LIVENESS_OK / _FAIL | info / critical | Détection de présence. |
| INJECTION_ATTACK_DETECTED | critical | Flux vidéo falsifié injecté. |
| DOC_AUTHENTIC / _TAMPERED | info / critical | Authenticité du document. |
| DOC_EXPIRED | warning | Document expiré. |
| RECENT_SIM_SWAP | warning | SIM swap récent corrélé. |
| LOW_LINE_TENURE | warning | Ligne très récente. |
| DATA_MISMATCH | warning | Incohérence données document vs fournies. |
Gestion des erreurs (§9)
| HTTP | Code | Cas |
|---|---|---|
| 400 | INVALID_IMAGE | L'image selfie est illisible ou trop basse résolution. |
| 400 | UNSUPPORTED_DOCUMENT | Type ou pays de document non pris en charge. |
| 401 | UNAUTHORIZED | Token Bearer manquant, invalide ou expiré. |
| 404 | REFERENCE_NOT_FOUND | reference.id inconnu. |
| 409 | IDEMPOTENCY_CONFLICT | Clé d'idempotence réutilisée avec un corps différent. |
| 422 | LIVENESS_UNAVAILABLE | Mode liveness non supporté pour ce canal. |
| 429 | RATE_LIMITED | Quota dépassé. |
| 503 | PROVIDER_UNAVAILABLE | Moteur biométrique indisponible (abstraction interne). |
États d'une vérification (§7) · Conformité & rétention (§10 — Loi 2014-038 / RGPD)
processing · completed · failed (échec technique ≠ rejet métier).
- Consentement explicite & horodaté requis pour toute référence.
- Minimisation : images brutes supprimées après traitement sauf référence consentie ; seuls templates & métadonnées persistés.
- Droit à l'effacement : DELETE /references/{id} purge référence + templates dérivés.
- Traçabilité : motifs & scores horodatés conservés pour audit, sans image brute.