Gérer la vérification avec des tokens
Les plateformes Connect peuvent utiliser Stripe.js, l'API ou les bibliothèques clients mobiles pour collecter les données de compte de leurs clients de façon sécurisée.
Avant que nous puissions activer les paiements et les virements pour les comptes connectés, vous devez satisfaire aux exigences Know Your Customer (KYC). Pour ce faire, vous devez fournir à Stripe des informations de vérification d’identité sur vos comptes, que nous vérifions ensuite. Vous pouvez effectuer cette tâche avec des tokens de compte et des tokens de personne. Les tokens garantissent que les informations d’identification personnelle (PII) ne transitent pas par vos serveurs, afin que votre intégration puisse fonctionner en toute sécurité. Ces tokens permettent également à Stripe de détecter plus précisément les fraudes potentielles.
Vous ne pouvez utiliser des tokens que pour :
- Les informations requises sur l’entité juridique (informations sur l’entreprise ou l’individu)
- Les informations requises sur la personne
- Recueillir l’acceptation du Contrat relatif aux comptes connectés Stripe
Vous ne pouvez pas utiliser de tokens pour toute autre information de compte, y compris :
- Les paramètres de configuration du compte (par exemple, la fréquence des virements)
- Les informations non sensibles sur le compte (par exemple, l’URL du support, le numéro de téléphone du support)
- Le pays du compte connecté
Vous créez des tokens en utilisant Stripe.js, l’API, ou l’une des bibliothèques clientes mobiles. Le processus est effectivement le même que pour la tokenisation des informations de paiement ou des comptes externes. Les informations de votre compte connecté sont envoyées directement à Stripe et échangées contre un token que vous pouvez utiliser dans les appels API de création
et de mise à jour
.
Spécificités régionalesFrance
Les plateformes françaises sont tenues d’utiliser des tokens de compte, qui sont une alternative au modèle d’agent pour la conformité des plateformes DSP2. Le principal avantage des tokens pour la plateforme réside dans le fait que les informations sont transférées directement depuis l’utilisateur à Stripe. Le fait de ne pas avoir à stocker les informations d’identification personnelle du client est dans tous les cas un avantage, mais pas nécessairement une exigence. Dans les autres pays, les tokens de compte sont facultatifs, mais recommandés.
Créer et utiliser des tokens
Les tokens nécessitent du code côté client et côté serveur :
- Créez le formulaire HTML dans lequel l’utilisateur renseignera ses données.
- Ajoutez le code JavaScript voulu pour envoyer les données du formulaire à Stripe, recevoir un token en retour, et soumettre ce token à votre serveur.
- Utilisez le token dans un appel à l’API Stripe côté serveur.
L’exemple suivant montre comment utiliser les tokens de compte et les tokens de personne. Les deux types sont requis lors de la fourniture d’informations sur l’entité juridique et la personne pour les sociétés. Si vous n’intégrez que des particuliers, vous n’avez pas besoin de tokens de personne. Au lieu de cela, créez des tokens de compte et transmettez le hash individual sur l’objet Account
pour fournir les informations requises.
Créer un formulaire HTML
La première étape consiste à créer un formulaire HTML qui recueillera les informations requises pour le compte et la personne, y compris l’acceptation du Contrat relatif aux comptes connectés Stripe.
Collecter les informations sur le compte et la personne
Créer des éléments de formulaire pour collecter les informations requises, telles que le nom, l’adresse et tout autre élément requis par le pays de l’utilisateur.
<form class="my-form" action="/create-person" method="post"> <input type="hidden" name="token-account" id="token-account"> <input type="hidden" name="token-person" id="token-person"> <label> <span>Business Name</span> <input class="inp-company-name"> </label> <fieldset> <legend>Business Address</legend> <label> <span>Street Address Line 1</span>
Présenter le Contrat de compte connecté Stripe
En tant que plateforme, vous devez indiquer clairement à vos utilisateurs que le traitement des paiements est fourni sous réserve du Contrat de compte connecté Stripe. L’indication de l’acceptation du Contrat de compte connecté Stripe est une condition requise pour utiliser un token de compte afin de créer un nouveau compte connecté.
Remarque
Seules les plateformes qui peuvent accepter le contrat de service via l’API peuvent créer des tokens de compte qui spécifient tos_shown_and_accepted.
Nous vous recommandons d’inclure un bloc de texte tel que celui qui suit, incluant des liens vers notre contrat et vos conditions d’utilisation du service.
Ajouter du JavaScript
Ensuite, la page a besoin du code JavaScript requis pour :
- Interrompre la soumission du formulaire.
- Appeler la méthode
stripe.
pour demander les tokens de compte et de personne.createToken() - Envoyer les ID des tokens reçus à votre serveur.
Par souci de simplicité, la validation des données et la gestion des erreurs sont omises dans le code suivant, mais n’oubliez pas de les ajouter à votre intégration réelle.
Fournir deux arguments à la méthode stripe.
:
- La valeur
account
ouperson
, pour spécifier le type de token à créer - Un objet générique d’information
L’objet JavaScript
fourni comme deuxième argument doit reprendre la structure de l’objet Account
ou Person
que vous tokenisez. Les tokens de compte nécessitent une propriété de premier niveau company ou individual, et les tokens de personne nécessitent une propriété de premier niveau person. Suivez la structure de l’objet à travers tous les attributs requis. Par exemple, line1
dans address
dans le bloc de code ci-dessous est fourni comme person.address.line1.
Pour matérialiser l’acceptation par l’utilisateur du Contrat de compte connecté Stripe, fournir une propriété de premier niveau tos_
avec la valeur true
(seuls les tokens de compte sont utilisés pour cela).
Vous devez toujours utiliser des tokens (pour créer ou mettre à jour une personne) en utilisant du code côté serveur. Vous pouvez envoyer l’ID du token à votre serveur en utilisant l’approche qui convient le mieux à votre application (par exemple, une requête XHR). Pour plus de simplicité, cet exemple de code stocke l’ID du token dans un champ de formulaire masqué, puis soumet le formulaire.
// Assumes you've already included Stripe.js! const stripe = Stripe(
); const myForm = document.querySelector('.my-form'); myForm.addEventListener('submit', handleForm); async function handleForm(event) { event.preventDefault(); const accountResult = await stripe.createToken('account', { business_type: 'company', company: { name: document.querySelector('.inp-company-name').value, address: { line1: document.querySelector('.inp-company-street-address1').value, city: document.querySelector('.inp-company-city').value, state: document.querySelector('.inp-company-state').value, postal_code: document.querySelector('.inp-company-zip').value, }, }, tos_shown_and_accepted: true, }); const personResult = await stripe.createToken('person', { person: { first_name: document.querySelector('.inp-person-first-name').value, last_name: document.querySelector('.inp-person-last-name').value, address: { line1: document.querySelector('.inp-person-street-address1').value, city: document.querySelector('.inp-person-city').value, state: document.querySelector('.inp-person-state').value, postal_code: document.querySelector('.inp-person-zip').value, }, }, }); if (accountResult.token && personResult.token) { document.querySelector('#token-account').value = accountResult.token.id; document.querySelector('#token-person').value = personResult.token.id; myForm.submit(); } }'pk_test_TYooMQauvdEDq54NiTphI7jx'
Après réception des tokens envoyés par Stripe, le code JavaScript stocke les ID de token dans un champ de formulaire caché, puis soumet le formulaire (à votre serveur). Les dernières étapes permettent l’utilisation des tokens par votre code côté serveur pour la création du compte et de la personne.
Créer un compte
Utilisez l’ID du token de compte pour créer le compte. Le pays et le type d’entreprise sont fournis en dehors du token.
Lors de la création d’un token de compte, paramétrez tos_
sur true remplit automatiquement les attributs date
, ip
et user_
de l’objet Account
tos_acceptance. Si vous créez un compte sans utiliser de token de compte, vous devez fournir des valeurs pour ces attributs.
Assurez-vous de noter l’ID de compte qui est renvoyé afin de pouvoir l’utiliser pour créer des objets Person
pour le compte.
Créer une personne
Créer une personne en fournissant l’ID du token de personne comme valeur pour le paramètre person_
(vous avez également besoin de l’ID du compte auquel la personne est rattachée). Vous pouvez utiliser le hachage requirements sur l’objet Account
pour déterminer quelles informations doivent être collectées et auprès de quelles personnes.
Créer des tokens de compte avec les SDK mobiles
Vous pouvez également créer un token de compte avec nos SDK Android ou iOS (le mobile ne prend en charge que les tokens de compte). C’est suffisant pour créer un compte individuel, mais vous devez utiliser Stripe.js pour créer le token de personne dont vous avez besoin pour un compte de société.
Gérer le téléversement d’un fichier
Lorsqu’un compte connecté doit fournir à Stripe une copie d’une pièce d’identité (un passeport, par exemple), il est possible d’utiliser un token de compte. Cependant, le code JavaScript est un peu plus complexe, car le fichier doit être envoyé à Stripe dans le cadre d’une requête XHR. Dans ce flux, le code JavaScript effectue ce qui suit :
- Interrompre la soumission du formulaire.
- Si un fichier a été téléversé, il l’envoie à Stripe et reçoit en retour un token de fichier.
- Il ajoute l’ID du token de fichier à l’objet générique pour la requête de token de compte.
- Il appelle la méthode
stripe.
pour demander un token.createToken() - Il envoie l’ID du token de compte reçu à votre serveur pour utilisation.
Pour commencer, ajouter un élément de fichier au formulaire. Le fichier téléversé doit être une image en couleur (dimensions inférieures à 8 000 pixels par 8 000 pixels), au format JPG, PNG ou PDF, et d’une taille inférieure à 10 Mo.
<input type="file" id="id-file" name="id-file" accept=".jpeg,.jpg,.png">
Ensuite, dans votre code JavaScript qui gère la soumission du formulaire, envoyez le fichier chargé à Stripe. Cet envoi doit intervenir avant la création du token de compte.
const data = new FormData(); data.append('file', document.querySelector('#id-file').files[0]); data.append('purpose', 'identity_document'); const fileResult = await fetch('https://uploads.stripe.com/v1/files', { method: 'POST', headers: {'Authorization': 'Bearer
'}, body: data, }); const fileData = await fileResult.json();pk_test_TYooMQauvdEDq54NiTphI7jx
Enfin, insérez l’ID de fichier renvoyé dans l’attribut verification.
de l’objet générique fourni à l’appel createToken()
:
const result = await stripe.createToken('account', { person: { first_name: document.querySelector('.inp-first-name').value, last_name: document.querySelector('.inp-last-name').value, address: { line1: document.querySelector('.inp-street-address1').value, city: document.querySelector('.inp-city').value, state: document.querySelector('.inp-state').value, postal_code: document.querySelector('.inp-zip').value, }, verification: { document: { front: fileData.id, }, }, }, tos_shown_and_accepted: true, });
Mettre à jour les informations sur l’entité juridique et la personne
Vous pouvez utiliser des tokens pour mettre à jour les informations sur l’entité juridique et la personne d’un compte existant. Créez les tokens dont vous avez besoin en utilisant la même combinaison de HTML et de JavaScript que ci-dessus, puis effectuez un appel de mise à jour de compte ou de mise à jour de personne en fournissant le nouvel ID de token.
Vous devez créer et fournir un nouveau token lorsque vous mettez à jour des données d’entité juridique précédemment définies à l’aide d’un token de compte.
Pour vos mises à jour à l’aide de tokens, notez ce qui suit :
- Les nouvelles valeurs remplacent les valeurs existantes.
- Si aucune nouvelle valeur n’est fournie, la valeur existante est conservée.
- Vous ne pouvez pas annuler une valeur existante.
- Le paramètre
tos_
est ignoré et peut être omis.shown_ and_ accepted - Vous pouvez utiliser un token de compte ou de personne pour effectuer une mise à jour, indépendamment du fait qu’un token ait été utilisé ou non à l’origine lors de la création du compte ou de la personne.
- Si le compte ou la personne a été créé à l’origine à l’aide d’un token de compte, vous ne pouvez mettre à jour les valeurs qu’au moyen d’un autre token.
Par exemple, si un compte est créé avec un token ne contenant qu’un nom et une date de naissance, vous créerez un token ultérieur ne contenant que les informations d’adresse, puis effectuerez un appel de mise à jour de compte pour ajouter les détails de l’adresse au compte.
Supprimer les informations sur l’entité juridique et la personne
Pour effacer les informations sur une entité juridique ou une personne physique, ou pour définir explicitement une valeur nulle, transmettez une chaîne vide de mise à jour de compte ou de mise à jour de personne. Utilisez un appel de mise à jour et non un token, même si vous avez utilisé un token à l’origine. Vous pouvez uniquement affecter des chaînes vides à des attributs facultatifs (p. ex., la deuxième ligne d’une adresse). Vous ne pouvez pas les affecter à des attributs obligatoires.