L'API Verification Sessions
Découvrez l'API Verification Sessions qui propulse Stripe Identity.
Utilisez l’API Verification Session pour collecter des informations de façon sécurisée et effectuer des contrôles de vérification. Cette API suit chaque vérification depuis sa création jusqu’à son terme, puis affiche les résultats correspondants une fois l’opération menée à bien.
Pour obtenir des instructions pas à pas sur l’utilisation de l’API Verification Session afin de vérifier les pièces d’identité de vos utilisateurs, consultez le guide correspondant : Vérifier les pièces d’identité de vos utilisateurs.
Création d’une VerificationSession
Lorsque vous créez la VerificationSession, déterminez le contrôle de vérification à effectuer en spécifiant le type de la session :
- document : permet de vérifier l’authenticité et la propriété de pièces d’identité officielles. Peut aussi inclure une vérification de selfie.
- id_number : permet de vérifier le nom, la date de naissance et le numéro national d’identité de l’utilisateur.
Bonnes pratiques
Si le processus de vérification est interrompu et repris plus tard, essayez d’utiliser la même VerificationSession au lieu d’en créer une nouvelle. Chaque VerificationSession dispose d’un ID unique que vous pouvez utiliser pour la récupérer. Dans le modèle de données de votre application, vous pouvez enregistrer l’ID de la VerificationSession pour en faciliter la récupération.
L’avantage de réutiliser la VerificationSession est que l’objet aide à suivre tout échec de tentative de vérification. Si l’un des contrôles échoue, la VerificationSession présentera l’état requires_
.
Nous vous recommandons de fournir une clé d’idempotence lorsque vous créez la VerificationSession afin d’éviter de créer par erreur deux VerificationSessions pour la même personne. Cette clé est généralement basée sur l’ID associé à la vérification sur votre application, comme une référence utilisateur.
Transmission de la clé secrète du client au front-end
La VerificationSession contient une clé secrète du client, une clé unique à la VerificationSession individuelle. Le front-end utilise cette clé secrète du client pour réaliser la vérification.
Pour utiliser la clé secrète du client, vous devez la récupérer dans la VerificationSession sur votre serveur et la transmettre au front-end. Vous pouvez récupérer la clé secrète du client depuis un endpoint sur votre serveur à l’aide de la fonction fetch
du navigateur côté client. Cette approche est généralement la plus adaptée lorsque le client est une application monopage, et en particulier si celle-ci a été créée avec un framework front-end récent comme React.
Cet exemple vous montre comment créer l’endpoint de serveur pour la clé secrète du client :
Cet exemple vous montre comment récupérer la clé secrète du client avec JavaScript côté client :
(async () => { const response = await fetch('/create-verification-session'); const {client_secret: clientSecret} = await response.json(); // Call stripe.verifyIdentity() with the client secret. })();
Note
La clé secrète du client est un token sensible que vous pouvez utiliser pour réaliser la vérification. Vous ne devez pas l’enregistrer, l’intégrer à des URL ni la dévoiler à d’autres personnes que l’utilisateur que vous vérifiez. Veillez à avoir TLS sur toutes les pages qui contiennent la clé secrète du client.
Accès aux résultats de la vérification
L’envoi et le traitement d’une VerificationSession met à jour le status
de la session et crée un objet VerificationReport. Cette opération ne nécessite habituellement que quelques minutes.
Une fois que tous les contrôles de vérification ont abouti, l’état passe à verified
. Vous pouvez développer le champ verified_outputs pour afficher les données vérifiées.
{ "id": "vs_2WOqBqR5FGKSdRQUdY8kudBt", "object": "identity.verification_session", "created": 1610744321, "last_error": null, "last_verification_report": "vr_1mmdFQrcUyJEwj2U66inD3T7", "livemode": true, "metadata": {}, "options": { "document": {}, }, "status": "verified", "type": "document", "redaction": null, "url": null, "verified_outputs": { "first_name": "Jenny", "last_name": "Rosen", "address": { "line1": "1234 Main St.", "city": "San Francisco", "state": "CA", "postal_code": "94111", "country": "US" }, "id_number_type": null } }
Si l’un des contrôles de vérification échoue, la session présentera un état requires_
. Les détails de l’échec d’une vérification sont disponibles dans le hachage last_error de la session. La valeur last_error.code peut être utilisée pour gérer de manière programmatique les échecs de vérification les plus courants. Le last_error.reason contiendra une chaîne expliquant le motif de l’échec et pouvant être présentée à votre utilisateur.
{ "id": "vs_wZKCyUHGUVKhvfUmRIllJBbh", "object": "identity.verification_session", "created": 1610744321, "last_error": { "code": "document_expired", "reason": "The document is expired.", }, "last_verification_report": "vr_LmUArn6k2cgvwGuG1ceRUGXO", "livemode": true, "metadata": {}, "options": {}, "status": "requires_input", "type": "document", "redaction": null, "url": null, }
Si vous souhaitez que votre utilisateur puisse effectuer une nouvelle tentative de vérification, vous devrez récupérer la VerificationSession pour obtenir une autre URL ou une autre clé secrète du client à transmettre à votre client.
Découvrir comment accéder aux résultats de vérification sensibles.
Annulation d’une VerificationSession
Vous pouvez annuler une VerificationSession à tout moment avant qu’elle ne passe à l’état processing
ou verified
. Cette action invalide la VerificationSession pour les tentatives de soumission ultérieures et ne peut pas être annulée. La session basculera à l’état canceled
.
Expurgation d’une VerificationSession
Vous pourriez vouloir expurger une session de vérification si vous recevez une demande de suppression des données de la part de votre utilisateur. Vous pouvez expurger une session afin de faire en sorte que les informations collectées ne soient plus renvoyées par l’API Stripe ni visibles dans le Dashboard. Il est toujours possible de récupérer des sessions expurgées avec l’API, mais vous ne pourrez pas les modifier. Les sessions peuvent être expurgées depuis le Dashboard ou via l’API :
Les sessions expurgées affichent des valeurs d’emplacement pour tous les champs qui contenaient précédemment des informations d’identification personnelle (PII). La session comprend un champ redaction.status qui indique l’état du processus d’expurgation. Un webhook identity.verification_session.redacted sera envoyé une fois la session expurgée. Veuillez noter que l’expurgation peut prendre jusqu’à 4 jours.
Si une VerificationSession qui a été expurgée est récupérée avec des champs PII développés, ces champs apparaîtront quand même dans la réponse mais leurs valeurs ne contiendront aucune PII. Voici par exemple une réponse dont les champs verified_
et verified_
ont été développés dans une VerificationSession expurgée.
{ "id": "vs_dFKxc3y00QQARaBlyYWdLfcI", "object": "identity.verification_session", "created": 1610744321, "last_error": null, "last_verification_report": "vr_fudw2JCgFi8GXiVeRv2SDJWu", "livemode": true, "options": {}, "status": "verified", "type": "document", "url": null, "client_secret": null, "redaction": { "status": "redacted" }, "verified_outputs": { "first_name": "[redacted]", "last_name": "[redacted]", "dob": { "year": 1, "month": 1, "day": 1 }, "address": { "line1": "[redacted]", "city": "[redacted]", "state": "[redacted]", "postal_code": "[redacted]", "country": "US" }, "id_number_type": null }, "metadata": {} // Metadata will also be redacted }
Tous les VerificationReports, Events et logs des requêtes associés à la VerificationSession sont également expurgés et les contenus des fichiers ne sont plus téléchargeables.
Si la VerificationSession est à l’état processing
, vous devez attendre qu’elle arrive à son terme avant de l’expurger. Expurger une VerificationSession avec l’état requires_
l’annule automatiquement.
Stockage d’informations sous forme de métadonnées
Stripe vous permet d’ajouter des métadonnées à l’objet VerificationSession. Les métadonnées ne sont pas visibles pour vos clients et n’ont aucune influence sur la réussite ou l’échec d’un contrôle de vérification.
Les métadonnées vous permettent d’associer d’autres informations pertinentes pour vous à votre activité Stripe. Toutes les métadonnées incluses sont visibles dans le Dashboard (par exemple, sur la page d’une session individuelle) et disponibles dans les rapports les plus courants. Par exemple, vous pouvez associer un ID d’utilisateur de votre application à la VerificationSession utilisée pour vérifier cet utilisateur. Ainsi, vous avez la possibilité de rapprocher très simplement les vérifications sur Stripe des utilisateurs de votre système.
Nous vous recommandons de ne pas enregistrer d’informations sensibles (PII, numéros d’identification, etc.) dans les métadonnées d’une session. Veuillez noter que les métadonnées sont supprimées lorsque vous expurgez une VerificationSession.