# 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. # Accounts v2 > This is a Accounts v2 for when accounts-namespace is v2. View the full page at https://docs.stripe.com/connect/testing-verification?accounts-namespace=v2. Ce document prend pour acquis que vous disposez d’une bonne connaissance du [processus d’inscription via l’API](https://docs.stripe.com/connect/api-onboarding.md), de la manière de [mettre à jour les comptes](https://docs.stripe.com/connect/updating-service-agreements.md), ainsi que de la [vérification d’identité](https://docs.stripe.com/connect/identity-verification.md). 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* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes), 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](https://docs.stripe.com/connect/updating-service-agreements.md#tos-acceptance) 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. > 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`. ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -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* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) 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`. ```json { "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. ```curl curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \ -H "Authorization: Bearer <>" \ -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](https://docs.stripe.com/api/v2/core/persons.md?api-version=2025-11-17.preview) 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` de`CEO`. ```curl curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2025-11-17.preview" \ --json '{ "given_name": "Jenny", "surname": "Rosen", "relationship": { "representative": true, "title": "CEO" } }' ``` > Pour les comptes dont le paramètre [business_type](https://docs.stripe.com/api/accounts/object.md#account_object-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](https://docs.stripe.com/api/persons/object.md) soit créé automatiquement. À défaut, ou pour les comptes dont le paramètre `business_type` est `company`, vous devez [créer chaque objet Person](https://docs.stripe.com/api/persons/create.md) 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. ```json { "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](https://docs.stripe.com/api/v2/core/persons/object.md?api-version=2025-11-17.preview#v2_person_object-id). [Mettez à jour la Person](https://docs.stripe.com/api/v2/core/persons/update.md?api-version=2025-11-17.preview) pour fournir les informations de vérification demandées pour Jenny Rosen : ```curl curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \ -H "Authorization: Bearer <>" \ -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](https://docs.stripe.com/connect/required-verification-information.md#additional-company-card-representative-us) 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. ```curl curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -H "Authorization: Bearer <>" \ -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. ```curl curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \ -H "Authorization: Bearer <>" \ -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* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) `v2.core.account.updated` de Stripe. ## Seuils de test Que vous utilisiez l’*onboarding complet* (Upfront onboarding is a type of onboarding where you collect all required verification information from your users at sign-up) ou l’*onboarding progressif* (Incremental onboarding is a type of onboarding where you gradually collect required verification information from your users. You collect a minimum amount of information at sign-up, and you collect more information as the connected account earns more revenue), 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](https://docs.stripe.com/connect/testing.md#trigger-cards) (`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](https://docs.stripe.com/api/v2/core/accounts/event-types.md?api-version=2025-11-17.preview#v2_accounts_event_types-v2.core.account%5Brequirements%5D.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](https://docs.stripe.com/connect/testing-verification.md#blocked-charges) et [payouts](https://docs.stripe.com/connect/testing-verification.md#blocked-payouts) ci-dessous. Vous pouvez aussi activer des déclencheurs de vérification plus spécifiques, comme une [inadéquation d’identité](https://docs.stripe.com/connect/testing.md#test-personal-id-numbers) ou un [seuil OFAC](https://docs.stripe.com/connect/testing.md#test-dobs). 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](https://docs.stripe.com/connect/testing.md#trigger-cards) (`tok_visa_triggerChargeBlock`). Suite à cela, vous recevrez un événement webhook [v2.core.account[requirements].updated](https://docs.stripe.com/api/v2/core/accounts/event-types.md?api-version=2025-11-17.preview#v2_accounts_event_types-v2.core.account%5Brequirements%5D.updated) qui contenant : - L’état de la fonctionnalité pertinente les paiements par carte n’est pas`active` (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` et`eventually_due` Vous pouvez ensuite [mettre à jour le compte](https://docs.stripe.com/api/v2/core/accounts/update.md?api-version=2025-11-17.preview) 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](https://docs.stripe.com/connect/testing.md#trigger-cards) (`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](https://docs.stripe.com/api/v2/core/accounts/update.md?api-version=2025-11-17.preview) 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. # Accounts v1 > This is a Accounts v1 for when accounts-namespace is v1. View the full page at https://docs.stripe.com/connect/testing-verification?accounts-namespace=v1. Ce document prend pour acquis que vous disposez d’une bonne connaissance du [processus d’inscription via l’API](https://docs.stripe.com/connect/api-onboarding.md), de la manière de [mettre à jour les comptes](https://docs.stripe.com/connect/updating-service-agreements.md), ainsi que de la [vérification d’identité](https://docs.stripe.com/connect/identity-verification.md). 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 compte connecté dans un *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes), en y 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](https://docs.stripe.com/connect/updating-service-agreements.md#tos-acceptance) avant d’effectuer des virements. Dans cet exemple, le `business_type` est défini sur `company` pour illustrer un scénario plus complexe, et le paramètre `external_account` utilise un compte de test Stripe tokenisé afin d’éviter de dévoiler des informations sensibles dans les appels à l’API. > 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. Vous pouvez créer un compte Connecté en utilisant les propriétés du contrôleur ou en définissant le type de compte. Dans les deux cas, vous devez spécifier le pays du compte et demander les fonctionnalités `card_payments` et `transfers`. #### Avec les propriétés du contrôleur ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d country=US \ -d "controller[losses][payments]"=application \ -d "controller[fees][payer]"=application \ -d "controller[stripe_dashboard][type]"=none \ -d "controller[requirement_collection]"=application \ -d business_type=company \ -d "capabilities[card_payments][requested]"=true \ -d "capabilities[transfers][requested]"=true \ -d external_account=btok_us \ -d "tos_acceptance[date]"=1547923073 \ -d "tos_acceptance[ip]"="172.18.80.19" ``` #### Avec le type de compte ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d country=US \ -d type=custom \ -d business_type=company \ -d "capabilities[card_payments][requested]"=true \ -d "capabilities[transfers][requested]"=true \ -d external_account=btok_us \ -d "tos_acceptance[date]"=1547923073 \ -d "tos_acceptance[ip]"="172.18.80.19" ``` À ce stade, le compte est créé, mais les paiements et les *virements* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) sont toujours désactivés. Dans la réponse, consultez le tableau `requirements.currently_due` pour savoir quelles informations vous devez recueillir : ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "currently_due": [ "business_profile.mcc", "business_profile.url", "company.address.city", "company.address.line1", "company.address.postal_code", "company.address.state", "company.name", "company.phone", "company.tax_id", "relationship.representative", "relationship.owner" ], ... }, ... } ``` Utilisez ensuite l’`id` de compte externe renvoyé dans la réponse pour mettre à jour le compte en y ajoutant les informations supplémentaires requises : ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "business_profile[mcc]"=5045 \ --data-urlencode "business_profile[url]"="https://bestcookieco.com" \ -d "company[address][city]"=Schenectady \ -d "company[address][line1]"="123 State St" \ -d "company[address][postal_code]"=12345 \ -d "company[address][state]"=NY \ -d "company[tax_id]"=000000000 \ -d "company[name]"="The Best Cookie Co" \ -d "company[phone]"=8888675309 ``` Une fois les informations de l’entreprise mises à jour, les exigences de type `relationship` sont toujours requises dans `requirements.currently_due` : ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "currently_due": [ "relationship.representative", "relationship.owner", ], ... }, ... } ``` Utilisez l’API [Persons](https://docs.stripe.com/api/persons.md) pour créer le profil de la personne représentant la relation avec le compte. Dans cet exemple, nous avons créé un profil pour Jenny Rosen et l’avons déclarée comme représentante du compte (`representative`). Nous avons également saisi un attribut facultatif `title`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d first_name=Jenny \ -d last_name=Rosen \ -d "relationship[representative]"=true \ -d "relationship[title]"=CEO ``` > Pour les comptes dont le paramètre [business_type](https://docs.stripe.com/api/accounts/object.md#account_object-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](https://docs.stripe.com/api/persons/object.md) soit créé automatiquement. À défaut, ou pour les comptes dont le paramètre `business_type` est `company`, vous devez [créer chaque objet Person](https://docs.stripe.com/api/persons/create.md) du compte. Lorsque vous créez un objet `Person`, la réponse inclut un hachage `requirements`. Celui-ci répertorie les informations de vérification requises pour cette personne. ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "currently_due": [ "address.city", "address.line1", "address.postal_code", "address.state", "dob.day", "dob.month", "dob.year", "phone", "email", "relationship.executive", "ssn_last_4" ], ... }, ... } ``` Après avoir créé un objet `Person` pour votre compte externe, vous pouvez constater que l’objet `Account` indique que les informations de vérification requises pour l’objet `Person` ainsi créé ont été ajoutées à la liste `requirements.currently_due` : ```json { "id": ""{{CONNECTED_ACCOUNT_ID}}"", "object": "account", "requirements": { "currently_due": [ "person.person_xxx.address.city", "person.person_xxx.address.line1", "person.person_xxx.address.postal_code", "person.person_xxx.address.state", "person.person_xxx.dob.day", "person.person_xxx.dob.month", "person.person_xxx.dob.year", "person.person_xxx.phone", "person.person_xxx.email", "person.person_xxx.relationship.executive", "person.person_xxx.ssn_last_4", "relationship.owner" ], ... }, ... } ``` Utilisez l’API [Update a Person](https://docs.stripe.com/api/persons/update.md) pour fournir les informations de vérification demandées pour Jenny Rosen : ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \ -u "<>:" \ -d "address[city]"=Schenectady \ -d "address[line1]"="123 State St" \ -d "address[postal_code]"=12345 \ -d "address[state]"=NY \ -d "dob[day]"=10 \ -d "dob[month]"=11 \ -d "dob[year]"=1980 \ -d ssn_last_4=0000 \ -d phone=8888675309 \ --data-urlencode email="jenny@example.com" \ -d "relationship[executive]"=true ``` En configurant `relationship[executive]=true`, vous confirmez à Stripe que le représentant exerce un contrôle significatif au sein de l’organisation. Les [informations requises aux États-Unis](https://docs.stripe.com/connect/required-verification-information.md#additional-company-card-representative-us) pour la vérification des représentants d’entreprises américaines sont plus nombreuses. Une fois les informations du `representative` fournies, vous devez également fournir des informations sur le propriétaire (`owner`) du compte. Dans cet exemple, Kathleen Banks détient 80 % de The Best Cookie Co. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d first_name=Kathleen \ -d last_name=Banks \ --data-urlencode email="kathleen@example.com" \ -d "relationship[owner]"=true \ -d "relationship[percent_ownership]"=80 ``` Dans notre exemple, Kathleen Banks détient moins de 100 % de The Best Cookie Co. Étant donné que vous n’avez pas défini d’autre propriétaire pour aboutir à une propriété totale de 100 %, Stripe vous demande de confirmer que vous avez fourni des informations sur tous les propriétaires requis. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[owners_provided]"=true ``` À ce stade, la création de votre compte connectée est réussie si : - Vous avez fourni toutes les informations requises (`requirements.currently_due=null`). - Les paiements sont activés pour le compte (`charges_enabled=true`). - Vous avez reçu un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) `account.updated` de Stripe. ## Seuils de test Que vous utilisiez une *inscription complète* (Upfront onboarding is a type of onboarding where you collect all required verification information from your users at sign-up) ou *progressive* (Incremental onboarding is a type of onboarding where you gradually collect required verification information from your users. You collect a minimum amount of information at sign-up, and you collect more information as the connected account earns more revenue), Stripe peut demander plus d’informations sur les comptes connectés quand différents seuils sont déclenchés. Ces seuils peuvent être déclenchés par des échecs de vérification ou des vérifications [OFAC](https://www.treasury.gov/about/organizational-structure/offices/Pages/Office-of-Foreign-Assets-Control.aspx). Ils peuvent également être déclenchés par un élément de traitement ou un élément temporel. Par exemple, vous pouvez exiger plus d’informations 30 jours après la création d’un compte, ou avant si l’utilisateur atteint 1 500 dollars de paiements. Pour déterminer les informations requises et leur date d’exigibilité, référez-vous au tableau `requirements.eventually_due` et à l’horodatage `requirements.current_deadline`. Dans certains cas, si les nouvelles informations ne sont pas recueillies avant une certaine date, les paiements et virements peuvent être désactivés jusqu’à ce que les informations soient recueillies. Vous pouvez déclencher ces scénarios afin de pouvoir tester ces seuils, puis recueillir les informations requises. ### Seuils de déclenchement Vous pouvez créer un paiement avec le token de [vérification](https://docs.stripe.com/connect/testing.md#trigger-cards) (`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 le webhook `account.updated`, vous pouvez vérifier : - `requirements.currently_due` pour savoir quelles informations sont requises. - `requirements.current_deadline` pour savoir quand les informations sont requises. Si les informations ne sont pas recueillies avant la `current_deadline`, les paiements et les virements peuvent être désactivés. Pour tester les scénarios comme ceux-là, référez-vous aux sections des [paiements](https://docs.stripe.com/connect/testing-verification.md#blocked-charges) et des [virements](https://docs.stripe.com/connect/testing-verification.md#blocked-payouts) bloqués ci-dessous. Vous pouvez aussi déclencher des seuils de vérification plus spécifiques, comme en cas de [non-correspondance des identités](https://docs.stripe.com/connect/testing.md#test-personal-id-numbers) ou lorsqu’un [seuil de l’OFAC](https://docs.stripe.com/connect/testing.md#test-dobs) est atteint. Tester ces seuils est utile, car ils surviennent 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 [blocage des paiements](https://docs.stripe.com/connect/testing.md#trigger-cards) (`tok_visa_triggerChargeBlock`). Suite à cela, vous recevrez un webhook `account.updated` contenant : - `charges_enabled=false`. - Les informations requises du tableau `requirements.currently_due`. - Un tableau `requirements.eventually_due` vide. Vous pouvez ensuite [mettre à jour le compte](https://docs.stripe.com/api/accounts/update.md) en lui ajoutant les nouvelles informations. Cela déclenche un autre webhook qui indique que les paiements sont activés et que les tableaux `requirements.currently_due` et `requirements.eventually_due` sont tous deux vides. ### Tests des virements bloqués Vous pouvez bloquer les virements en créant un paiement de test avec le token [blocage des transferts](https://docs.stripe.com/connect/testing.md#trigger-cards) (`tok_visa_triggerTransferBlock`). Suite à cela, vous recevrez un webhook `account.updated` indiquant ce qui suit : - `payouts_enabled=false`. - Les informations requises du tableau `requirements.currently_due`. - Un tableau `requirements.eventually_due` vide. Vous pouvez ensuite [mettre à jour le compte](https://docs.stripe.com/api/accounts/update.md) en lui ajoutant les nouvelles informations. Cela déclenche un autre webhook qui indique que les virements sont activés et que les tableaux `requirements.currently_due` et `requirements.eventually_due` sont tous deux vides.