API Documentation
Introduction
L'API SotaID est structurée autour de REST. Notre API utilise des URL prévisibles orientées ressources, accepte les corps de requêtes codés par formulaire, renvoie des réponses codées en JSON et utilise les codes de réponse, l'authentification et les verbes HTTP standard. Vous pouvez utiliser l'API SotaID en mode test, ce qui n'affecte pas vos données en temps réel. La clé API utilisée pour authentifier la requête détermine si celle-ci est en mode temps réel ou en mode test.
Ce point de terminaison vous permet de créer une session de vérification sur votre serveur et de rediriger vers son URL pour commencer la vérification.
https://app.sotaboost.com/api
Authentication
L'API SotaID utilise des clés API pour authentifier les requêtes. Vous pouvez consulter et gérer vos clés API dans le tableau de bord SotaID.
Les clés secrètes du mode test ont le préfixe sk_test
et celles du mode live, le préfixe sk_live
.
Vos clés API confèrent de nombreux privilèges ; veillez donc à les conserver en lieu sûr ! Ne partagez pas vos clés API secrètes dans des espaces publics tels que GitHub, le code côté client, etc.
Toutes les requêtes API doivent être effectuées via HTTPS. Les appels effectués via HTTP échoueront. Les requêtes API sans authentification échoueront également.
curl https://app.sotaboost.com/api/verification_sessions \
-H "Authorization: Bearer {token}"
Errors
SotaID utilise des codes de réponse HTTP conventionnels pour indiquer la réussite ou l'échec d'une requête API. En général : les codes de la plage 2xx
indiquent une réussite. Les codes de la plage 4xx
indiquent une erreur ayant échoué compte tenu des informations fournies (par exemple, un paramètre obligatoire a été omis, etc.). Les codes de la plage 5xx
indiquent une erreur au niveau des serveurs de SotaID (ce sont des erreurs rares).
Certaines erreurs 4xx pouvant être traitées par programmation (par exemple, une vérification echouée) incluent un code d'erreur expliquant brièvement l'erreur signalée.
200 OK Everything worked as expected.
400 Bad Request The request was unacceptable, often due to missing a required parameter.
401 Unauthorized No valid API key provided.
402 Request Failed The parameters were valid but the request failed.
403 Forbidden The API key doesn’t have permissions to perform the request.
404 Not Found The requested resource doesn’t exist.
409 Conflict The request conflicts with another request (perhaps due to using the same idempotent key).
429 Too Many Requests Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
500, 502, 503, 504 Server Errors Something went wrong on SotaID’s end. (These are rare.)
Metadata
Les objets SotaID modifiables (Account et VerificationSession) disposent d'un paramètre de metadata
. Ce paramètre permet d'associer des données clé-valeur à ces objets SotaID.
Vous pouvez spécifier jusqu'à 50 clés, avec des noms de clés comportant jusqu'à 40 caractères et des valeurs jusqu'à 500 caractères. Les clés et les valeurs sont stockées sous forme de chaînes de caractère.
Vous pouvez utiliser des métadonnées pour stocker des informations structurées supplémentaires sur un objet. Par exemple, vous pouvez stocker le nom complet de votre utilisateur et l'identifiant unique correspondant de votre système dans un objet SotaID Customer.
Certains des objets listés ci-dessus prennent également en charge un paramètre de description. Vous pouvez utiliser le paramètre « description » pour annoter une vérification, par exemple une description lisible.
Ne stockez aucune information sensible (numéros de compte bancaire, informations de carte, etc.) dans les métadonnées ou le paramètre « description ».
Pagination
Toutes les ressources API de niveau supérieur prennent en charge les récupérations groupées via les méthodes API « liste ». Par exemple, vous pouvez lister les clients et les verification_sessions. Ces méthodes API partagent une structure commune et acceptent au minimum les deux paramètres suivants : limit
et cursor
.
Les méthodes API de SotaID utilisent une pagination par curseur via le paramètre cursor
. Le curseur est une chaîne codée contenant l'emplacement et la direction de la prochaine requête paginée.
Parameters
limitoptional, default is 10
Limite du nombre d'objets à renvoyer. Cette limite peut varier de 1 à 100, la valeur par défaut étant 10.
cursoroptional
Un curseur à utiliser pour la pagination contenant l'emplacement et la direction de la prochaine requête paginée. Si le paramètre n'est fourni, la première page de résultats sera renvoyée.
{
"data": [
{
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
],
"path": "https://app.sotaboost.com/api/customers",
"per_page": 1,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"next_page_url": "https://app.sotaboost.com/api/customers?cursor=eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"prev_cursor": null,
"prev_page_url": null
}
Webhooks
Dans ce guide, nous verrons comment enregistrer et utiliser des webhooks pour intégrer votre application à SotaID. Grâce aux webhooks, votre application peut être informée des événements survenant dans SotaID, comme la fin d'une vérification ou l'ajout d'un customer.
Enregistrement des webhooks
Pour enregistrer un nouveau webhook, votre application doit contenir une URL que SotaID peut appeler. Vous pouvez configurer un nouveau webhook depuis le tableau de bord SotaID, dans les paramètres Développeurs. Donnez un nom à votre webhook, sélectionnez les événements à écouter et ajoutez votre URL.
Désormais, dès qu'un événement intéressant se produit dans votre application, SotaID déclenche un webhook. Dans la section suivante, nous verrons comment utiliser les webhooks.
Consommer des webhooks
Lorsque votre application reçoit une requête webhook de Protocol, vérifiez l'attribut type
pour identifier l'événement qui l'a provoquée. La première partie du type d'événement indique le type de payload (customer, verification_session, etc.).
Dans l’exemple ci-dessous, un client a été mise à jour (updated
) et le type de payload est un customer
.
Types d'événements
Voici la liste de tous les types d'événements que nous envoyons actuellement. Nous sommes susceptibles d'en ajouter d'autres à tout moment. Par conséquent, lors du développement et de la maintenance de votre code, ne partez pas du principe que seuls ces types existent.
Vous remarquerez que ces événements suivent un modèle resource.event. Notre objectif est de concevoir un système cohérent qui facilite l'anticipation et la programmation.
Types d'événements
verification_session.created
Se produit chaque fois qu'une VerificationSession est créée
verification_session.verified
Se produit chaque fois qu'une VerificationSession passe à vérifiée
verification_session.failed
Se produit chaque fois qu'une VerificationSession passe à échouée
customer.created
Se produit chaque fois qu'un nouveau client est créé.
customer.updated
Se produit chaque fois qu'une propriété d'un client change.
customer.deleted
Se produit chaque fois qu'un client est supprimé.
{
"type": "customer.updated",
"data": {
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
}
Verification Session
Une VerificationSession représente la session de vérification d'identités de votre utilisateur. Elle contient des informations sur la pièce d'identité. Créez une seule session de vérification pour chaque vérification effectuée dans votre système.
Une VerificationSession passe par plusieurs états tout au long de son cycle de vie, au fur et à mesure de sa progression dans le processus de vérification. Elle contient les données vérifiées de l'utilisateur une fois les contrôles de vérification terminés.
Vous pouvez créer une session de vérification sur votre serveur et rediriger vers son URL pour commencer la vérification.
POST/verification_sessions
Create a VerificationSession
Ce point de terminaison vous permet de créer une session de vérification sur votre serveur et de rediriger vers son URL pour commencer la vérification.
Parameters
client_reference_idstring
Une chaîne de caractères pour référencer cet utilisateur. Il peut s'agir d'un identifiant client, d'un identifiant de session ou d'un identifiant similaire, et peut être utilisée pour rapprocher cette vérification avec vos systèmes internes.
return_urlstring
L'URL vers laquelle l'utilisateur sera redirigé une fois le flux de vérification terminé.
customer_idstring
ID d'un client existant.
metadatastring
Ensemble de paires clé-valeur que vous pouvez associer à un objet. Cela peut être utile pour stocker des informations supplémentaires sur l'objet dans un format structuré. Il est possible de désactiver des clés individuelles en leur attribuant une valeur vide. L'annulation de toutes les clés s'effectue en attribuant une valeur vide aux métadonnées.
{
"id": "01jppr9etsyrxyvff4j17aatnd",
"document_type": null,
"document_country": null,
"status": "requires_document",
"verified_at": null,
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z",
"app_id": "01jpgh0xygvb28n40c0fv3rqws",
"customer_id": null,
"client_reference_id": null,
"mode": null,
"options": {},
"verified_outputs": {},
"metadata": {},
"last_error": [],
"return_url": null,
"url": "https://sotaid.sotaboost.com/verify/01jppr9etsyrxyvff4j17aatnd",
"document": {
"name": null,
"country": null
}
}
GET/verification_sessions/:id
Retrieve a VerificationSession
Récupère les détails d'une VerificationSession qui a été précédemment créée.
Parameters
{
"id": "01jppr9etsyrxyvff4j17aatnd",
"document_type": "id_card",
"document_country": "BJ",
"status": "verified",
"verified_at": "2025-03-21T00:16:41.000000Z",
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z",
"app_id": "01jpgh0xygvb28n40c0fv3rqws",
"customer_id": null,
"client_reference_id": null,
"mode": null,
"options": {},
"verified_outputs": {
"name": "M. John Doe"
},
"metadata": {},
"last_error": [],
"return_url": null,
"url": "https://sotaid.sotaboost.com/verify/01jppr9etsyrxyvff4j17aatnd",
"document": {
"name": "Carte nationale d'identité",
"country": "Bénin"
}
}
GET/verification_sessions
List all VerificationSession
Renvoie une liste de VerificationSessions
Parameters
client_reference_idstring
Une chaîne de caractères pour référencer cet utilisateur. Il peut s'agir d'un identifiant client, d'un identifiant de session ou d'un identifiant similaire, et peut être utilisée pour rapprocher cette vérification avec vos systèmes internes.
limitinteger
Limite du nombre d'objets à renvoyer. Cette limite peut varier de 1 à 100, la valeur par défaut étant 10.
{
"data": [
{
"id": "01jppr9etsyrxyvff4j17aatnd",
"document_type": "id_card",
"document_country": "BJ",
"status": "verified",
"verified_at": "2025-03-21T00:16:41.000000Z",
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z",
"app_id": "01jpgh0xygvb28n40c0fv3rqws",
"customer_id": null,
"client_reference_id": null,
"mode": null,
"options": {},
"verified_outputs": {
"name": "M. John Doe"
},
"metadata": {},
"last_error": [],
"return_url": null,
"url": "https://sotaid.sotaboost.com/verify/01jppr9etsyrxyvff4j17aatnd",
"document": {
"name": "Carte nationale d'identité",
"country": "Bénin"
}
}
],
"path": "https://app.sotaboost.com/api/verification_sessions",
"per_page": 1,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"next_page_url": "https://app.sotaboost.com/api/verification_sessions?cursor=eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"prev_cursor": null,
"prev_page_url": null
}
Customers
Cet objet représente un client de votre entreprise. Utilisez-le pour créer une VerificationSession, et suivre les VerificationSessions appartenant à ce même client.
POST/customers
Create a customer
Ce point de terminaison vous permet de créer client sur votre serveur.
Parameters
namestringRequired
Le nom complet ou le nom commercial du client.
emailstring
Adresse e-mail du client. Elle s'affiche à côté du client dans votre tableau de bord et peut être utile pour la recherche et le suivi.
phonestring
Le numéro de téléphone du client.
descriptionstring
Une chaîne arbitraire que vous pouvez associer à un objet client. Elle s'affiche à côté du client dans le tableau de bord.
metadatastring
Ensemble de paires clé-valeur que vous pouvez associer à un objet. Cela peut être utile pour stocker des informations supplémentaires sur l'objet dans un format structuré. Il est possible de désactiver des clés individuelles en leur attribuant une valeur vide. L'annulation de toutes les clés s'effectue en attribuant une valeur vide aux métadonnées.
{
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
PUT/customers/:id
Update a customer
Met à jour le client spécifié en définissant les valeurs des paramètres transmis. Les paramètres non fournis restent inchangés.
Cette requête accepte généralement les mêmes arguments que l'appel de création de client.
Parameters
namestringRequired
Le nom complet ou le nom commercial du client.
emailstring
Adresse e-mail du client. Elle s'affiche à côté du client dans votre tableau de bord et peut être utile pour la recherche et le suivi.
phonestring
Le numéro de téléphone du client.
descriptionstring
Une chaîne arbitraire que vous pouvez associer à un objet client. Elle s'affiche à côté du client dans le tableau de bord.
metadatastring
Ensemble de paires clé-valeur que vous pouvez associer à un objet. Cela peut être utile pour stocker des informations supplémentaires sur l'objet dans un format structuré. Il est possible de désactiver des clés individuelles en leur attribuant une valeur vide. L'annulation de toutes les clés s'effectue en attribuant une valeur vide aux métadonnées.
{
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
GET/customers/:id
Retrieve a customer
Récupère un objet Client.
{
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
GET/customers
List all customers
Renvoie la liste de vos clients. Les clients sont triés par date de création, les plus récents apparaissant en premier.
Parameters
emailstring
Filtre sensible à la casse sur la liste, basé sur l'adresse e-mail du client. La valeur doit être une chaîne.
limitinteger
Limite du nombre d'objets à renvoyer. Cette limite peut varier de 1 à 100, la valeur par défaut étant 10.
{
"data": [
{
"id": "01jpnp4x6z1ystaxsgk26t7wbw",
"name": "John Doe",
"email": "johndoe@example.com",
"phone": null,
"description": null,
"metadata": {},
"created_at": "2025-03-19T08:28:31.000000Z",
"updated_at": "2025-03-21T00:16:41.000000Z"
}
],
"path": "https://app.sotaboost.com/api/customers",
"per_page": 1,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"next_page_url": "https://app.sotaboost.com/api/customers?cursor=eyJjcmVhdGVkX2F0IjoiMjAyNS0wMy0xOCAxNTowNDozOCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"prev_cursor": null,
"prev_page_url": null
}
DELETE/customers/:id
Delete a customer
Supprime définitivement un client. Cette opération est irréversible.