Développeurs
Une API REST, un lien, un webhook.
Créez une vérification en un appel, envoyez le lien à votre utilisateur, recevez la décision par webhook signé. Intégrez d'abord dans le bac à sable.
-
Créer une vérification
Avec une clé de test (kyc_test_…) ou de production (kyc_live_…). L'utilisateur est retrouvé par votre propre identifiant, external_id.
Requête curl -X POST https://getsanno.com/api/v1/verifications \ -H "Authorization: Bearer kyc_test_…" \ -H "Content-Type: application/json" \ -d '{ "applicant": { "external_id": "user-48151623", "first_name": "Jeanne", "last_name": "Martin", "date_of_birth": "1990-04-12" }, "flow": "standard", "redirect_url": "https://www.example.com/kyc/retour" }' -
Envoyer le lien
La réponse contient le lien privé de votre utilisateur. Il fait la capture en direct, puis revient sur votre redirect_url.
Réponse (extrait) { "id": "01jb2y8q5z3x4c6v7b8n9m0k1j", "object": "verification", "status": "created", "environment": "sandbox", "url": "https://getsanno.com/v/Xr4b0Yq0m2c3VJ5q9yQw…", "flow": "standard", "external_id": "user-48151623", "expires_at": "2026-10-25T09:30:00Z" } -
Recevoir la décision
Chaque changement de statut envoie un webhook. Vérifiez sa signature : HMAC-SHA256 de « horodatage.corps brut » avec le secret de votre point d'arrivée, et refusez un horodatage de plus de 5 minutes.
Webhook reçu POST /kyc/webhook HTTP/1.1 Host: www.example.com Content-Type: application/json Kyc-Signature: t=1792834200,v1=5d41c8… { "id": "01jb3c9w4q8t2n6m5r7k1d0f3e", "type": "verification.approved", "created_at": "2026-10-24T09:30:00Z", "data": { "verification_id": "01jb2y8q5z3x4c6v7b8n9m0k1j", "applicant_id": "01jb2y7k4m3n2b1v0c9x8z7a6s", "external_id": "user-48151623", "status": "approved", "reasons": [], "environment": "sandbox" } } -
Simuler dans le bac à sable
Avec une clé de test, déclenchez vous-même chaque issue (approved, declined, review, resubmission_requested) pour éprouver votre intégration.
Simulation curl -X POST https://getsanno.com/api/v1/verifications/01jb2y8q5z3x4c6v7b8n9m0k1j/simulate \ -H "Authorization: Bearer kyc_test_…" \ -H "Content-Type: application/json" \ -d '{"outcome": "review"}'
Ce que vous trouverez dans l'API
Toute l'API, ses statuts et ses codes de raison sont décrits dans la documentation de référence.
Documentation de l'API- Clés de production et de test séparées, montrées une seule fois.
- Idempotence des créations (en-tête Idempotency-Key).
- Codes de raison stables et format d'erreur unique.
- Pagination par curseur, limitation de débit annoncée par les en-têtes.
- Webhooks renvoyés en cas d'échec, à dédoublonner sur leur identifiant.
- Effacement d'un utilisateur sur demande (RGPD).
Parlons de vos vérifications
Dites-nous ce que vous devez vérifier et à quel rythme : nous revenons vers vous avec une proposition.
Nous contacter