Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
Démarrer avec Connect
Concevoir votre intégration
Principes de base de l'intégration
Exemples d'intégration
Gestion de compte
Inscrire des comptes
    Choisir votre configuration d'inscription des utilisateurs
    Fonctionnalités et configurations du compte
    Informations de vérification requises
      Gérer les évolutions des exigences de vérification
      Gérer la vérification avec l'API
      Gérer la vérification avec des tokens
      Tester la vérification de compte
      Vérification d'identité pour les comptes connectés
      Mettre à jour les informations vérifiées
    Types de contrat de services
    Vérifications supplémentaires
    Inscription en réseau des utilisateurs
    Migrer vers Stripe
Configurer les dashboards des comptes
Utiliser les types de comptes connectés
Traitement des paiements
Accepter des paiements
Effectuer des virements vers des comptes
Administration de plateforme
Gérer votre plateforme Connect
Formulaires fiscaux pour votre plateforme Connect
États-Unis
Français (France)
AccueilPlateformes et marketplacesOnboard accountsRequired verification information

Tester la vérification des comptes lors de l'inscription via l'API

Démonstration des tests des différents états de vérification pour les comptes connectés lors de l'inscription via l'API en utilisant votre clé API de test.

Comptes connectés concernés

Ce contenu s’applique uniquement aux comptes connectés dotés de certaines configurations.
Ce contenu s’applique aux comptes connectés pour lesquels la plateforme est chargée de collecter les informations à jour lorsque les exigences arrivent à échéance ou sont modifiées.

Ce document prend pour acquis que vous disposez d’une bonne connaissance du processus d’inscription via l’API, de la manière de mettre à jour les comptes, ainsi que de la vérification d’identité.

Testez vos flux de vérification pour vous assurer qu’ils peuvent prendre en charge les modifications de l’état du compte (par exemple, lorsque vous activez ou désactivez les paiements). Les états du compte évoluent en général une fois que les exigences sont remplies ou lorsque les seuils de traitement ou de temps sont atteints. Les sections ci-dessous décrivent ces modifications et comment tester vos flux de vérification.

Tester les exigences initiales

Commencez par créer un nouveau compte connecté dans un environnement de test, en ajoutant un compte bancaire et en indiquant que le titulaire du compte a accepté le Contrat d’utilisation du service Stripe. Stripe exige que le compte connecté accepte explicitement les Conditions d’utilisation du service Stripe pour réaliser des virements. Dans cet exemple, identity.entity_type est paramétré sur company et external_account utilise un compte de test Stripe tokenisé afin d’éviter de dévoiler des informations sensibles dans les appels à l’API.

Remarque

Vous devez fournir une clé API de test à partir d’un compte Stripe qui a commencé l’inscription à la plateforme Connect. La clé API de test Stripe remplie automatiquement fait échouer ces exemples de requêtes.

Lorsque vous créez l’Account, vous devez définir identity.country et demander les fonctionnalités card_payments et stripe_balance.stripe_transfers. Les exemples ci-dessous montrent un compte contrôlé par la plateforme avec les configurations merchant et recipient.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "identity": { "country": "US", "entity_type": "company", "attestations": { "terms_of_service": { "account": { "date": "2019-01-19T19:51:13Z", "ip": "172.18.80.19" } } } }, "dashboard": "none", "defaults": { "responsibilities": { "losses_collector": "application", "fees_collector": "stripe" }, "currency": "usd" }, "configuration": { "merchant": { "capabilities": { "card_payments": { "requested": true } } }, "recipient": { "capabilities": { "stripe_balance": { "stripe_transfers": { "requested": true } } } } } }'

À ce stade, le compte est créé mais les débits et virements ne sont activés que lorsque vous avez rempli les exigences de vérification et joint une méthode de virement. Vérifiez le tableau requirements.entries pour déterminer les informations que vous devez collecter. Les inscriptions actuellement requises ont un minimum_deadline.status défini sur currently_due.

{ "id": "{% identifier type=\"connectedAccount\" quoteType=\"double\" /%}", "object": "account", "identity": { "country": "US", "entity_type": "company" }, "dashboard": "none", "defaults": { "responsibilities": { "losses_collector": "application", "fees_collector": "stripe" }, "currency": "usd" }, "configuration": { "merchant": { "capabilities": { "card_payments": { "status": "restricted", "status_details": [ { "code": "determining_status", "resolution": "provide_info" } ] } } }, "recipient": { "capabilities": { "transfers": { "status": "restricted", "status_details": [ { "code": "determining_status", "resolution": "provide_info" } ] } } } }, "requirements": { "summary": { "minimum_deadline": { "time": 1700000000, "status": "currently_due" } }, "entries": [ { "id": "reqent_1", "description": "configuration.merchant.mcc", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_2", "description": "defaults.profile.business_url", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_3", "description": "identity.business_details.address.city", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_4", "description": "identity.business_details.address.line1", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_5", "description": "identity.business_details.address.postal_code", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_6", "description": "identity.business_details.address.state", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_7", "description": "identity.business_details.registered_name", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_8", "description": "identity.business_details.phone", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_9", "description": "identity.business_details.id_numbers.us_ein", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_10", "description": "relationship.representative", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] }, { "id": "reqent_11", "description": "relationship.owner", "minimum_deadline": { "status": "currently_due" }, "awaiting_action_from": "user", "errors": [] } ] } }

Collectez ensuite les informations requises identifiées dans la réponse et ajoutez-les à l’objet Account.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "defaults": { "profile": { "business_url": "https://bestcookieco.com" } }, "identity": { "business_details": { "address": { "city": "Schenectady", "line1": "123 State St", "postal_code": "12345", "state": "NY" }, "id_numbers": [ { "type": "us_ein", "value": "000000000" } ], "phone": "8888675309", "registered_name": "The Best Cookie Co" } } }'

Après avoir mis à jour les détails de l’entreprise, les entrées des exigences peuvent changer. Pour les exigences au niveau de Person, vous devez créer et mettre à jour l’objet Person sous l’objet Account pour les personnes qui représentent ou possèdent l’entreprise.

Utilisez l’API Persons pour créer un profil pour chaque personne propriétaire ou représentante du compte. Pour cet exemple, nous créons un profil pour Jenny Rosen et l’identifions comme representative avec le title deCEO.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts/
{{CONNECTED_ACCOUNT_ID}}
/persons
\ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "given_name": "Jenny", "surname": "Rosen", "relationship": { "representative": true, "title": "CEO" } }'

Remarque

Pour les comptes dont le paramètre business_type a la valeur individual, vous devez fournir au moins une propriété de type individual (par exemple, le prénom de la personne, individual.first_name) afin que l’objet Person soit créé automatiquement. À défaut, ou pour les comptes dont le paramètre business_type est company, vous devez créer chaque objet Person du compte.

Lorsque vous créez un objet Person, la réponse inclut un hachage requirements.entries qui répertorie les informations de vérification requises pour cette personne.

{ "id": "person_abc", "object": "person", "requirements": { "entries": [ { "id": "p_req_1", "description": "representative.address.city", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_2", "description": "representative.address.line1", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_3", "description": "representative.address.postal_code", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_3", "description": "representative.address.state", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, `` { "id": "p_req_4", "description": "representative.date_of_birth.day", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_5", "description": "representative.date_of_birth.month", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_6", "description": "representative.date_of_birth.year", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_7", "description": "representative.phone", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_8", "description": "representative.email", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_9", "description": "identity.attestations.persons_provided.owners", "minimum_deadline": { "status": "currently_due" }, "errors": [] }, { "id": "p_req_10", "description": "representative.id_numbers. us_ssn_last_4", "minimum_deadline": { "status": "currently_due" }, "errors": [] } ] } }

Après avoir créé une Person et fourni es informations demandées au niveau individuel, requirements.entries pour l’Account inclut les descriptions qui font référence au Person ID.

Mettez à jour la Person pour fournir les informations de vérification demandées pour Jenny Rosen :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts/
{{CONNECTED_ACCOUNT_ID}}
/persons/
{{PERSON_ID}}
\ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "address": { "city": "Schenectady", "line1": "123 State St", "postal_code": "12345", "state": "NY" }, "date_of_birth": { "day": 10, "month": 11, "year": 1980 }, "id_numbers": [ { "type": "us_ssn_last_4", "value": "0000" } ], "phone": "8888675309", "email": "jenny@example.com", "relationship": { "executive": true } }'

En configurant relationship.executive sur true, vous confirmez à Stripe que le représentant exerce un contrôle significatif au sein de l’organisation. Les informations requises aux États-Unis pour la vérification des représentants d’entreprises américaines sont plus nombreuses.

Pour ajouter un propriétaire, créez une autre Person et définissez-la comme owner pour le compte. Dans cet exemple, Kathleen Banks possède 80 % de The Best Cookie Co.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts/
{{CONNECTED_ACCOUNT_ID}}
/persons
\ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "given_name": "Kathleen", "surname": "Banks", "email": "kathleen@example.com", "relationship": { "owner": true, "percent_ownership": "80" } }'

Vous devez ajouter tous les propriétaires qui détiennent au moins 25 % de parts de l’entreprise, puis définir identity.attestations.persons_provided.owners sur true.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "identity": { "attestations": { "persons_provided": { "owners": true } } } }'

Un premier onboarding réussi de votre compte connecté à ce stade signifie :

  • Vous avez fourni toutes les informations requises (requirements.summary.minimum_deadline=null).
  • Les paiements sont activés pour le compte (charges_enabled=true).
  • Vous avez reçu un événement webhook v2.core.account.updated de Stripe.

Seuils de test

Que vous utilisiez l’onboarding complet ou l’onboarding progressif, Stripe peut demander plus d’informations sur les comptes connectés à mesure que ces comptes atteignent certains seuils. Par exemple, plus d’informations peuvent être nécessaires après 1 500 USD de frais ou 30 jours après la création d’un compte. Pour savoir quelles informations pourraient éventuellement devenir nécessaires si un compte atteint un certain seuil, consultez le tableau requirements.entries pour les exigences avec minimum_deadline.status défini comme eventually_due.

Si vous ne fournissez pas les informations requises avant une certaine date, les frais et paiements pourraient être désactivés. Vous pouvez déclencher ces scénarios lors de tests.

Seuils de déclenchement

Vous pouvez créer un paiement avec le token de vérification (tok_visa_triggerVerification) pour déclencher un seuil de vérification générique. Cela ne bloque pas les paiements ou les virements, mais déclenche la demande d’informations complémentaires. Si vous écoutez l’événement webhook v2.core.account[requirements].updated, vous pouvez vérifier :

  • requirements.entries pour les entrées où minimum_deadline.status est currently_due
  • requirements.summary.minimum_deadline.time pour connaître la date limite la plus ancienne applicable à ces entrées

Pour tester des scénarios où les informations requises ne sont pas fournies avant la date limite, voir les sections sur le blocage des charges et payouts ci-dessous.

Vous pouvez aussi activer des déclencheurs de vérification plus spécifiques, comme une inadéquation d’identité ou un seuil OFAC. Tester ces scénarios est bénéfique car ils se produisent souvent lorsque la vérification échoue.

Tests des paiements bloqués

Vous pouvez bloquer des paiements en créant un paiement de test avec le token charge block (tok_visa_triggerChargeBlock). Suite à cela, vous recevrez un événement webhook v2.core.account[requirements].updated qui contenant :

  • L’état de la fonctionnalité pertinente les paiements par carte n’est pasactive (par exemple,configuration.merchant.capabilities.card_payments.status n’est pas active)
  • Les informations actuellement requises dans le tableau requirements.entries avec minimum_deadline.status défini comme currently_due
  • Toutes les entrées qui ne sont pas encore requises apparaissent avec minimum_deadline.status eteventually_due

Vous pouvez ensuite mettre à jour le compte en lui ajoutant les nouvelles informations. Cela déclenche un autre événement webhook qui indique que les paiements sont activés et qu’il n’y a aucune exigence due actuellement ou plus tard.

Tests des virements bloqués

Vous pouvez bloquer les virements en créant un paiement de test avec le token block transfer (tok_visa_triggerTransferBlock). Suite à cela, vous recevrez un événement webhook v2.core.account.updated indiquant ce qui suit :

  • capabilities.stripe_balance.payouts.status dans la configuration merchant ou recipient n’est pas active
  • Informations actuellement requises dans le tableau requirements.entries avec minimum_deadline.status défini comme currently_due
  • Les exigences à échéance apparaissent finalement dans le tableau requirements.entries avec minimum_deadline.status défini comme eventually_due

Vous pouvez ensuite mettre à jour le compte en lui ajoutant les nouvelles informations. Cela déclenche un autre événement webhook qui indique que les virements sont activés et que les tableaux requirements.summary et requirements.summary.minimum_deadline sont tous deux vides.

Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc