# Prochaines mises à jour des exigences Découvrez les modifications apportées aux informations de vérification requises et leur impact sur votre intégration avec Stripe. Les mises à jour des exigences de ce guide font référence aux propriétés de l’API Accounts v1. Vous pouvez voir les propriétés correspondantes de l’API Accounts v2 dans [Informations de vérification requises](https://docs.stripe.com/connect/required-verification-information.md) en sélectionnant `v2` dans la liste déroulante **API Accounts** et la mise à jour souhaitée dans la liste déroulante **Mise à jour des exigences**. Les réglementations en matière de paiement contribuent à prévenir les délits tels que le blanchiment d’argent, la fraude et l’évasion fiscale. Les autorités de régulation financière du monde entier appliquent les exigences [Connaître votre client (KYC)](https://support.stripe.com/questions/know-your-customer) afin de s’assurer que Stripe collecte, vérifie et conserve les informations d’identité de certains types d’entreprises et des personnes qui les possèdent, les contrôlent ou les dirigent en dernier ressort. Ces exigences sont fréquemment mises à jour par les autorités de régulation des services financiers, les réseaux de cartes et d’autres institutions financières. Ce guide fournit un aperçu des changements à venir et met en évidence les changements les plus importants. Pour obtenir la liste complète des exigences, consultez la page [Informations de vérification requises](https://docs.stripe.com/connect/required-verification-information.md). Si vous utilisez un flux établi basé sur une API pour inscrire vos comptes connectés, vous devez mettre à jour votre intégration pour gérer toutes les modifications des exigences. En savoir plus sur les [options d’onboarding Connect](https://docs.stripe.com/connect/onboarding.md) et la [migration de vos flux d’intégration et de correction basés sur une API vers des flux hébergés ou intégrés par Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md). #### Programme - Europe *Dernière mise à jour : 23 février 2026* ## Comprendre les changements apportés aux exigences en matière de vérification Afin de se conformer aux réglementations de l’Autorité de conduite financière (FCA) du Royaume-Uni et de la Banque centrale d’Irlande (CBI), Stripe met à jour ses exigences en matière de vérification de la connaissance du client ainsi que des bénéficiaires effectifs finaux (BEF) et des administrateurs. Si vos comptes connectés exercent leurs activités dans l’un des pays répertoriés, vous devrez peut-être mettre à jour votre flux d’inscription des utilisateurs. Le fait de ne pas effectuer les mises à jour requises perturbera l’accès de vos comptes connectés aux paiements et aux services financiers. Pour en savoir plus sur les changements et leurs raisons, consultez l’[article de support sur les nouvelles exigences de conformité](https://support.stripe.com/questions/europe-verification-requirement-updates-for-connected-accounts). Les changements à venir concernent les comptes connectés dans les pays suivants : - AT - BE - BG - CH - CY - CZ - DE - DK - EE - ES - FI - FR - GB - GI - GR - HR - HU - IE - IS - IT - LI - LT - LU - LV - MT - NL - NO - PL - PT - RO - SE - SI - SK > #### Mises à jour permanentes > > Stripe continuera de mettre à jour l’API pour prendre en charge la collecte de ces exigences jusqu’au 1er avril 2026. ## Choisir une approche d’intégration Stripe recommande d’utiliser l’inscription des utilisateurs hébergée par Stripe ou intégrée pour collecter les exigences en matière d’entreprise et de vérification d’identité. Ces options nécessitent moins de ressources pour leur mise en œuvre et leur maintenance que l’inscription des utilisateurs via l’API. Le tableau suivant décrit les principales différences : - [Inscription des utilisateurs hébergée par Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recommandé) Envoyez les comptes vers un flux hébergé par Stripe pour soumettre les informations requises. - [Inscription des utilisateurs intégrée](https://docs.stripe.com/connect/embedded-onboarding.md): (Recommandé) Intégrez des composants d’inscription des utilisateurs fournis par Stripe permettant aux comptes de soumettre des informations directement à Stripe depuis votre application. - [API d’inscription des utilisateurs](https://docs.stripe.com/connect/api-onboarding.md): Créez et gérez un flux d’inscription des utilisateurs personnalisé à l’aide des API de Stripe. | | **Inscription des utilisateurs hébergée par Stripe** | **Inscription des utilisateurs intégrée** | **Inscription des utilisateurs via l’API** | | --- | --- | --- | --- | | Idéal pour | Plateformes qui souhaitent que Stripe s’occupe de l’inscription | Plateformes qui souhaitent disposer d’un flux d’intégration intégré à l’application et adapté à leur marque | Des plateformes qui ont besoin d’un contrôle total et qui peuvent le créer et le maintenir. | | Premier effort de mise en œuvre | 3 à 4 semaines d’ingénierie | 3 à 4 semaines d’ingénierie | 30 à 40 semaines d’ingénierie | | Efforts continus pour répondre aux mises à jour des exigences | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite une surveillance proactive des changements à venir, ainsi que des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque changement | | Personnalisation | Interface hébergée par Stripe avec adaptation à la marque de la plateforme | Composant hautement personnalisable qui gère les accès via l’application de la plateforme. | La plateforme conçoit, développe et assure la maintenance de l’interface | | Effort visant à soutenir d’autres pays | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque pays supplémentaire | En savoir plus sur les [options d’onboarding Connect](https://docs.stripe.com/connect/onboarding.md) et la [migration de vos flux d’onboarding et de rectification basés sur des API vers des flux hébergés ou intégrés par Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md). Les [modifications que vous apportez à votre flux d’inscription des utilisateurs](https://docs.stripe.com/connect/handle-verification-updates.md#collect-future-requirements) dépendent de la configuration de votre processus d’inscription des utilisateurs. Outre la mise à jour de votre flux d’inscription des utilisateurs, mettez à jour votre documentation interne et externe si nécessaire, et préparez vos équipes de services de support à répondre aux questions sur les mises à jour. Si vous utilisez l’inscription des utilisateurs hébergée par Stripe ou intégrée, vous n’avez pas besoin de mettre à jour votre intégration pour vous préparer à ces mises à jour des exigences. Cependant, vous pouvez informer vos comptes connectés que Stripe pourrait demander des informations d’identité nouvelles ou mises à jour lorsque les exigences changeront. ## Vue d’ensemble de l’intégration API Si vous choisissez de ne pas migrer vers l’inscription des utilisateurs hébergée ou intégrée par Stripe, vous devez traiter les mises à jour suivantes : - [Vérification de la connaissance du client (KYC)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#know-your-customer-\(kyc\)-v%C3%A9rification) - [Vérification du lien entre le bénéficiaire effectif final (BEF) et l’administrateur](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-director-verification) - [Exigences en matière d’immatriculation des entreprises aux Pays-Bas (KvK)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#netherlands-business-registration-requirements) - [Nouveaux codes d’erreur](https://docs.stripe.com/connect/upcoming-requirements-updates.md#new-error-codes) ## Chronologie actualisée La chronologie suivante présente les étapes clés de ces changements. Veillez à mettre à jour et à tester votre intégration le plus tôt possible afin d’éviter tout problème lorsque les nouvelles exigences entreront en vigueur. | Date | Étape importante | Description | | --- | --- | --- | | Octobre 2025 | Commencer la planification de l’intégration | Les premières mises à jour de l’API sont disponibles. Vérifiez ce guide et les modifications apportées pour commencer à planifier vos mises à jour d’intégration. | | Mars 2026 | Vérifiez les comptes concernés et testez vos mises à jour d’intégration. | Stripe fournit une estimation du nombre de vos comptes connectés concernés. Commencez à tester votre parcours d’onboarding mis à jour. | | Mars 206 - Avril 2026 | Début du déploiement de `future_requirements` (onboarding via l’API) | Pour les plateformes utilisant l’onboarding API, Stripe commence à ajouter les nouvelles exigences à `future_requirements` pour les comptes nouveaux et existants. | | 1er avril 2026 | De nouvelles exigences entrent en vigueur pour les plateformes qui n’ont que des comptes connectés avec le type d’entreprise `individual` | Assurez-vous que votre flux d’onboarding mis à jour est prêt à collecter les nouvelles exigences. Votre flux mis à jour doit être opérationnel d’ici le 1er avril, date à laquelle Stripe commencera à déployer les nouvelles exigences. Toutes les nouvelles exigences seront actives d’ici la fin du mois d’avril. | | 1er mai 2026 | De nouvelles exigences entrent en vigueur pour les plateformes qui disposent de comptes connectés avec le type d’entreprise `company`, y compris les plateformes qui ont également des comptes connectés de type `individual` | Assurez-vous que votre flux d’onboarding mis à jour est prêt à collecter les nouvelles exigences. Votre flux mis à jour doit être opérationnel pour tous les comptes connectés d’ici le 1er mai, date à laquelle Stripe commencera à déployer les nouvelles exigences. Toutes les nouvelles exigences seront actives d’ici la fin du mois de mai. | | Juin 2026 - Août 2026 | De nouvelles exigences s’appliquent actuellement aux comptes existants | Les nouvelles exigences sont déployées sur les comptes connectés existants pendant cette période. Utilisez votre flux d’inscription des utilisateurs mis à jour pour les collecter le cas échéant. | | Juillet – octobre 2026 | Dates d’échéance des nouvelles exigences | Pour éviter les restrictions, les exigences mises à jour pour chaque compte doivent être vérifiées avant la date d’échéance de ce compte. | ## Vérification de type connaître votre client (KYC) Stripe renforce notre processus de vérification de l’identité, ce qui pourrait obliger certains de vos comptes connectés à fournir des informations supplémentaires. Nous ajoutons également d’autres options à l’API pour la vérification des informations. Les entités suivantes doivent fournir des informations KYC vérifiables : - Personne morale (pour les entrepreneurs individuels et les sociétés unipersonnelles) ; - Représentant du compte - Bénéficiaires effectifs (UBO) (pour les comptes considérés comme à haut risque par le modèle de risque de Stripe) ### Méthodes de vérification supplémentaires Pour optimiser les chances de réussite de la vérification, combinez les méthodes suivantes facultatives avec les informations standard saisies : - [Stripe Identity](https://docs.stripe.com/connect/upcoming-requirements-updates.md#stripe-identity) : (Recommended) privilégiez la capture de selfie et de document pour les comptes ne réussissant pas la vérification automatique. - [Vérification de l’identité nationale](https://docs.stripe.com/connect/upcoming-requirements-updates.md#national-id-verification) : demandez un numéro d’identité nationale dès le début pour maximiser le succès de la vérification du premier coup. - [Chargement de pièces supplémentaires](https://support.stripe.com/questions/documents-for-identity-and-home-address-verification) : soumettre des pièces d’identité ou des justificatifs d’adresse pour vérifier manuellement. ### Stripe Identity (Recommandé) Vous pouvez tenter de vérifier les comptes connectés dont la vérification automatique a échoué à l’aide de [Stripe Identity](https://stripe.com/identity). Identity fonctionne en capturant un selfie et une [pièce d’identité](https://docs.stripe.com/acceptable-verification-documents.md). La plupart des [pays européens](https://docs.stripe.com/identity/use-cases.md) prennent en charge Stripe Identity, et les taux de réussite varient selon les pays. Créez une [session de vérification](https://docs.stripe.com/api/identity/verification_sessions.md?api-version=preview) de l’identité et utilisez le paramètre [personne_liée](https://docs.stripe.com/api/identity/verification_sessions/object.md?api-version=preview#identity_verification_session_object-related_person) pour soumettre les exigences en matière de `documents` et de `preuve_de_vie` pour la personne. Vous pouvez vérifier les résultats à l’aide de l’API ou du Dashboard. ### Vérification de l’identité nationale Dans les [pays concernés par cette mise à jour](https://docs.stripe.com/connect/upcoming-requirements-updates.md#affected-countries), vous pouvez améliorer la vérification d’un représentant de compte connecté en fournissant son numéro d’identification national en plus de son nom, de sa date de naissance, de son adresse et de sa nationalité. À l’heure actuelle, la vérification prend uniquement en charge les numéros d’identification nationaux suivants. | Pays | Type de pièce d’identité nationale | | --- | --- | | Danemark | Registre central des personnes (CPR) | | Italie | Codice Fiscale (code fiscal) | | Pologne | Numéro PESEL | | Espagne | Documento Nacional de Identidad (DNI) | | Suède | Personnummer (numéro d’identification personnel) | Les pays qui ne sont pas concernés par cette mise à jour, dont les États-Unis, ne prennent pas en charge la vérification du numéro national d’identité. Par exemple, vous pouvez fournir le numéro d’identification d’un citoyen espagnol agissant en tant que représentant pour un compte connecté en Autriche, qui se trouve dans l’UE. Néanmoins, vous ne pouvez pas fournir le numéro d’identification d’un citoyen espagnol agissant en tant que représentant pour un compte connecté aux États-Unis. > #### Disponibilité de la carte d'identité nationale > > Vous pourrez commencer à collecter les numéros nationaux d’identité de vos comptes connectés lorsque les exigences mises à jour deviendront des exigences futures. En attendant, l’intégration est disponible pour vos comptes en environnement de test sous la forme d’une fonctionnalité en version bêta. ### Mettre en œuvre la vérification de l'identité nationale à l'aide de l'API L’exemple suivant illustre l’inscription d’un nouveau compte connecté avec les nouvelles exigences. > Les différences ci-dessous n’affectent que l’API Accounts v1, et non v2. #### Étape 1 : Créer un compte connecté pour de test (Public preview) Une fois les nouvelles exigences mises en place, créez des comptes connectés comme d’habitude. D’ici là, créez de nouveaux comptes connectés dans un [environnement de test](https://docs.stripe.com/sandboxes.md) afin d’activer le nouveau comportement KYC. Déclenchez ce comportement en modifiant deux parties de votre appel de création de compte : 1. Ajoutez l’en-tête `experimental_onboarding_preview=v2`. 2. Soumettez `capabilities[card_payments][preview]=true`. Une fois le compte créé, une nouvelle chaîne d’exigences `representative.nationality` s’affiche. Cela indique que vous pouvez créer un représentant de compte et transmettre la nationalité. ```shell // Creating a connected account in Spain > curl https://api.stripe.com/v1/accounts \ -u sk_test_123 \ -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \ -d 'type'='custom' \ -d 'country'='ES' \ -d 'capabilities[card_payments][requested]'='true' \ -d 'capabilities[card_payments][preview]'='true' \ -d 'capabilities[transfers][requested]'='true' { "id": "acct_1Nv0FGQ9RKHgCVdB", ... "requirements": { "past_due": [ ... "representative.nationality", ... ] } ... } ``` #### Étape 2 : créer un représentant du compte Après avoir créé le compte connecté, créez un représentant du compte. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons \ -u sk_test_123: \ -d first_name=John \ -d last_name=Doe { "id": "person_1N9XNb2eZvKYlo2CjPX7xF6B", ... } ``` #### Étape 3 : soumettre la nationalité Après avoir créé un représentant de compte, la `nationality` apparaît en tant que `past_due`. Collectez ce champ pour que Stripe puisse déterminer si le représentant est admissible au recouvrement `id_number`. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123: { ... "requirements": { "past_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year", ...other person requirements... "person_1N9XNb2eZvKYlo2CjPX7xF6B.nationality" ] } ... } ``` Une fois que vous collectez la nationalité, si la personne se trouve dans un pays admissible, son numéro d’identification apparaît comme une autre exigence dans le tableau `alternatives`. Chaque entrée du tableau `alternatives` représente un autre moyen de résolution pour une exigence standard. Vous pouvez satisfaire à une autre exigence au lieu de l’exigence initiale, mais vous n’avez pas besoin de satisfaire aux deux. Dans cet exemple, `alternatives` contient `id_number` comme alternative à l’exigence en retard `dob.year`. Cela signifie que vous pouvez fournir le numéro national d’identité de la personne au lieu de son année de naissance. Si vous fournissez son année de naissance, vous n’avez pas besoin de fournir son numéro d’identification. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \ -u sk_test_123: \ -d nationality=ES > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123: { "requirements": { "past_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year", ...other person fields... ], "alternatives": [ { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year", ...other person fields... ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number" ] } ] } } ``` #### Étape 4 : rassembler les champs restants relatifs au représentant commercial Collectez des attributs supplémentaires sur les personnes, y compris un numéro d’identification national, pour lancer la vérification KYC programmatique. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/persons/person_1N9XNb2eZvKYlo2CjPX7xF6B \ -u sk_test_123: \ -d 'id_number'='74362315-A' \ ...other person fields... ``` #### Étape 5 : les champs saisis sont mis en attente de vérification Une fois que vous avez fourni les données saisies, les champs apparaissent à l’état `pending_verification` d’une nouvelle manière : - Les champs saisis entrent dans `pending_verification` plutôt que dans `verification.document` et `verification.additional_document`. Cela indique que les champs saisis sont en cours de vérification. - L’exigence `id_number` peut passer à l’état de `pending_verification` si elle est fournie, même si elle n’apparaît que dans `alternative_fields_due` et jamais dans `past_due` ou `currently_due`. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB/ -u sk_test_123: { "requirements": { "pending_verification": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.city", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.line1", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.postal_code", "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.day", "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.month", "person_1N9XNb2eZvKYlo2CjPX7xF6B.dob.year", "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number", "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name" ] } } ``` #### Étape 6 : gérer les erreurs de vérification Dans de nombreux cas, une fois que les champs ont été saisis dans `pending_verification`, le représentant transmet la KYC et le processus est terminé. Si la vérification échoue, Stripe renvoie des informations supplémentaires pour vous aider à déterminer les étapes suivantes. Il y a deux changements importants. **Plusieurs alternatives** Dans le hachage des exigences, plusieurs alternatives sont proposées. Chacune d’entre elles représente une piste possible pour vos utilisateurs. Par exemple, si le nom et la date de naissance correspondent mais que le nom et l’adresse ne correspondent pas, votre compte connecté dispose de plusieurs moyens pour résoudre le problème : 1. Ils peuvent vérifier le nom et l’adresse, puis saisir à nouveau ces informations pour corriger d’éventuelles erreurs. 2. Ils peuvent vérifier que les informations saisies ne contiennent pas le numéro de téléphone, le nom, l’adresse et l’id_number, et saisir à nouveau les informations correctes. 3. Ils peuvent charger un document correspondant à leur nom et à leur adresse 4. Ils peuvent compléter Stripe Identity Ces quatre chemins apparaissent sous la forme de champs de type `past_due` et d’`alternatives` : ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123: { "requirements": { // 1. They can check the information they've entered for dob, name, and address, and re-enter the correct information. "past_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*" ], "alternatives": [ // 2. They can check the information they entered for dob, name, address and id_number and re-key correct information. { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number" ] }, // 3. They can upload document that matches their name and address { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document" ] }, // 4. They can complete Stripe Identity { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.first_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.last_name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address.*" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness" ] } ] } } ``` **Erreurs sur les champs saisis** Auparavant, si une erreur de vérification se produisait lors du traitement des champs saisis, les champs du document passaient à l’état `past_due` et des erreurs apparaissaient sur ceux-ci. À l’avenir, les champs saisis revenaient à l’état `past_due`. Les champs comme `id_number` restaient dans `alternative_fields_due`. Par exemple, si le nom, la date de naissance et l’adresse sont initialement `past_due`, puis qu’après soumission le nom et la date de naissance correspondent tandis que le nom et l’adresse ne correspondent pas, alors le nom et l’adresse repassent à `past_due`, tandis que la date de naissance est supprimée. Dans ce cas, des erreurs apparaissent dans les champs `past_due` et `alternative_fields_due`. ```shell > curl https://api.stripe.com/v1/accounts/acct_1Nv0FGQ9RKHgCVdB -u sk_test_123: { "requirements": { "past_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address" ], "alternatives": [ { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number" ] }, { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.proof_of_liveness" ] }, { "original_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.name", "person_1N9XNb2eZvKYlo2CjPX7xF6B.address" ], "alternative_fields_due": [ "person_1N9XNb2eZvKYlo2CjPX7xF6B.verification.additional_document" ] } ], "errors": [ { "code": "verification_failed_keyed_identity", "reason": "Identity information could not be verified.", "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.name" }, { "code": "verification_failed_keyed_identity", "reason": "Identity information could not be verified.", "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.address" }, { "code": "verification_failed_keyed_identity", "reason": "Identity information could not be verified.", "requirement": "person_1N9XNb2eZvKYlo2CjPX7xF6B.id_number" } ] } } ``` ### Comptes à haut risque Le modèle de risque de Stripe exige une vérification KYC des bénéficiaires effectifs (UBO) uniquement pour les comptes classés à haut risque. Pour les tests, ajoutez `_high_risk` au nom de l’entreprise afin de forcer une classification à haut risque. Cela vous permet de tester l’intégralité du flux de vérification KYC des propriétaires, y compris les exigences et les erreurs que votre intégration doit gérer. Cet exemple montre comment créer un compte de test à haut risque et ajouter des propriétaires : ```curl // Creating a connected account in Spain curl https://api.stripe.com/v1/accounts \ -u sk_test_123: \ -H "Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2" \ -d 'type'='custom' \ -d 'country'='ES' \ -d 'capabilities[card_payments][requested]'='true' \ -d 'capabilities[card_payments][preview]'='true' \ -d 'capabilities[transfers][requested]'='true' { "id": "acct_123", ... "requirements": {...} ... } // Set the business name to enforce the account to be high risk curl https://api.stripe.com/v1/accounts/acct_123 \ -u sk_test_123: \ -d "business_profile[name]"="example_high_risk" ``` ```curl curl https://api.stripe.com/v1/accounts/acct_123/persons \ -u sk_test_123: \ -d first_name=Marie \ -d last_name=Dupont \ -d "dob[day]"=1 \ -d "dob[month]"=1 \ -d "dob[year]"=1901 \ -d "relationship[owner]=true" \ -d "address[line1]"="address_no_match" \ -d "address[city]"="Madrid" \ -d "address[postal_code]"="28001" { "id": "person_123", ... } ``` ```curl curl https://api.stripe.com/v1/accounts/acct_123 \ -u sk_test_123: \ -d "company[owners_provided]"="true" ``` Après que Stripe a effectué la vérification KYC du propriétaire, les exigences du compte reflètent le résultat. Lorsque le nom du propriétaire correspond mais que son adresse ne correspond pas (cas déclenché en utilisant l’adresse de test `address_no_match`), les exigences incluent des erreurs `verification_failed_keyed_identity` sur les champs du propriétaire : ```json { "requirements": { "past_due": [ "people.person_123.address.city", "people.person_123.address.line1", "people.person_123.address.postal_code", "people.person_123.first_name", "people.person_123.last_name" ], "errors": [ { "code": "verification_failed_keyed_identity", "requirement": "people.person_123.address.city" }, { "code": "verification_failed_keyed_identity", "requirement": "people.person_123.address.line1" }, { "code": "verification_failed_keyed_identity", "requirement": "people.person_123.address.postal_code" }, { "code": "verification_failed_keyed_identity", "requirement": "people.person_123.first_name" }, { "code": "verification_failed_keyed_identity", "requirement": "people.person_123.last_name" } ], "alternatives": [ { "original_fields_due": [ "people.person_123.address.city", "people.person_123.address.line1", "people.person_123.address.postal_code", "people.person_123.first_name", "people.person_123.last_name" ], "alternative_fields_due": [ "people.person_123.verification.additional_document" ] }, { "original_fields_due": [ "people.person_123.address.city", "people.person_123.address.line1", "people.person_123.address.postal_code", "people.person_123.first_name", "people.person_123.last_name" ], "alternative_fields_due": [ "people.person_123.verification.proof_of_liveness" ] } ] } } ``` Pour répondre à ces exigences, vous pouvez soit soumettre à nouveau les informations d’identité du propriétaire, soit satisfaire à l’une des exigences alternatives (téléverser un `additional_document` ou compléter un `proof_of_liveness`). ## Vérification des relations pour les BEF et les administrateurs Stripe améliore son processus de vérification des bénéficiaires effectifs finaux (BEF) et des administrateurs. La réglementation européenne exige la vérification de la relation entre les BEF et les administrateurs et l’entité juridique. - **BEF :** Un entrepreneur individuel qui possède ou contrôle (directement ou indirectement) plus de 25 % d’une entité juridique (par exemple, des sociétés, des sociétés de capitaux, des SARL et des sociétés en nom collectif). - **Directeur** : un membre du conseil d’administration de l’entreprise et/ou toute autre personne haut placée responsable de la gestion de l’entreprise. Il s’agit par exemple du PDG, du directeur général, du président, du directeur général, du directeur exécutif, etc. Le tableau suivant présente les relations qui doivent être vérifiées pour chaque type d’entité juridique : | Type d’entité juridique | Relations à vérifier | Remarque | | --- | --- | --- | | Entreprise, société, LLC, société de personnes | BEF s’il y en a, sinon, administrateurs | Royaume-Uni uniquement : les BEF et les administrateurs | | Association à but non lucratif | Représentants | La plupart des associations à but non lucratif n’ont pas de bénéficiaires effectifs. | | Entrepreneur individuel | N/A | N/A | | Entité publique ou agence | N/A | Pour être exemptées de fournir des informations sur les bénéficiaires effectifs, les entités publiques doivent suivre le processus décrit dans [cet article du service de support](https://support.stripe.com/questions/business-verification-requirements-for-government-entities). | | Société cotée en bourse | N/A | Pour être exemptées de fournir des informations sur les bénéficiaires effectifs, les sociétés cotées en bourse doivent suivre le processus décrit dans [cet article du service de support](https://support.stripe.com/questions/business-verification-requirements-for-publicly-traded-companies). | ### Vérifier les informations concernant les bénéficiaires effectifs (UBO) et les directeurs Les bénéficiaires effectifs et les directeurs doivent fournir les informations suivantes : - Nom complet - Date de naissance - Adresse - Adresse e-mail - Titre (directeurs uniquement) Stripe tente de vérifier le lien de la personne en comparant les principales caractéristiques suivantes de cette personne et celles de l’entité juridique. | Entité | Propriétés clés | | --- | --- | | Personne | - Prénom - Nom - (Si fourni) Numéro d’identification | | Entité juridique | - Nom - Adresse - Numéro fiscal - Numéro de TVA - Numéro d’immatriculation | Une vérification réussie peut nécessiter uniquement la correspondance d’un sous-ensemble des informations. Stripe tente de vérifier les liens de la manière suivante : | Méthode | Description | Exigences types | | --- | --- | --- | | Fournisseur tiers | Si un fournisseur tiers est disponible, Stripe tente automatiquement de vérifier l’ensemble des liens sur le compte. | - `owners.first_name` - `owners.last_name` - `company.tax_id` | | Document officiel | Vous pouvez fournir un document « Attestation de bénéficiaires effectifs » pour les propriétaires et un document « Preuve d’immatriculation » pour les directeurs. Les [documents acceptés](https://docs.stripe.com/acceptable-verification-documents.md) varient selon le pays. | - `owners.first_name` - `owners.last_name` - `company.name` - `company.address.line1` - `company.address.city` - `company.address.state` - `documents.proof_of_ultimate_beneficial_ownership` | | Attestation numérique | Vous pouvez utiliser les modèles PDF suivants pour fournir des attestations numériques relatives aux liens : - [Modèle d’attestation numérique de bénéficiaires effectifs](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf) - [Modèle d’attestation numérique du directeur](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf) | - `owners.id_number` - `company.tax_id` - `documents.proof_of_ultimate_beneficial_ownership` - `documents.proof_of_ultimate_beneficial_ownership.signer` | ### Identifier les exigences de vérification des liens à l’aide de l’API Lorsque vous récupérez les exigences d’un `Account`, les options de vérification principales et alternatives correspondent à des combinaisons d’informations clés et de méthodes de vérification disponibles. Dans la plupart des cas, il existe au moins trois options pour vérifier les propriétaires effectifs ou les directeurs. Le code suivant présente un exemple de compte connecté comportant des exigences relatives aux propriétaires. Les options proposées ainsi que leur ordre peuvent varier d’un compte à l’autre. ```shell // Example with owner requirements > curl https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: { "id": "acct_1234", "past_due": { // third-party provider option "currently_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.tax_id" ], "alternatives": [ { "original_fields_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.tax_id" ], // official document option "alternative_fields_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.name", "company.address.line1", "company.address.state", "company.address.city", "documents.proof_of_ultimate_beneficial_ownership.files" ], }, { "original_fields_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.tax_id" ], // digital attestation option "alternative_fields_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.name", "company.address.line1", "company.address.state", "company.address.city", "documents.proof_of_ultimate_beneficial_ownership.files", "documents.proof_of_ultimate_beneficial_ownership.signer" ], } ] } } ``` ### Vérifier les directeurs au lieu des propriétaires Si un compte connecté est autorisé à fournir des directeurs à la place des propriétaires, il inclut des options alternatives pour vérifier les directeurs. Si vous vérifiez les directeurs, vous devez néanmoins attester que vous avez fourni 0 attestations de bénéficiaires effectifs. L’exemple suivant présente un compte connecté autorisé à vérifier les directeurs au lieu des propriétaires : ```shell // Example with owner requirements > curl https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: { "id": "acct_1234", "past_due": { // third-party provider option for owners "currently_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.tax_id" ], "alternatives": [ ..., { "original_fields_due": [ "owners.first_name", "owners.last_name", "company.owners_provided", "company.tax_id" ], // third-party provider option for directors "alternative_fields_due": [ "directors.first_name", "directors.last_name", "company.directors_provided", "company.owners_provided", "company.tax_id" ], } ] } } ``` Si vous fournissez les informations relatives aux directeurs et attestez avoir fourni 0 attestations de bénéficiaires effectifs, les exigences principales continuent d’indiquer des exigences relatives aux propriétaires. Vous pouvez fournir des informations sur les bénéficiaires effectifs si elles deviennent disponibles. L’exemple suivant présente un compte connecté avec une attestation de 0 attestations de bénéficiaires effectifs : ```shell // Example with owner requirements > curl https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: { "id": "acct_1234", "past_due": { // third-party provider option for owners "currently_due": [ "owners.first_name", "owners.last_name", // company.owners_provided is no longer a requirement "company.tax_id" ], "alternatives": [ ..., { "original_fields_due": [ "owners.first_name", "owners.last_name", "company.tax_id" ], // third-party provider option for directors "alternative_fields_due": [ "directors.first_name", "directors.last_name", "company.directors_provided", "company.tax_id" ], } ] } } ``` ### Gestion des erreurs Les erreurs liées aux exigences relatives aux propriétaires et aux directeurs peuvent inclure les valeurs de `code` suivantes, en plus des [erreurs courantes d’incohérence entre le document et les informations fournies](https://docs.stripe.com/error-codes.md). | Code | Description | | --- | --- | | `verification_missing_owners` | Le `Account` ne comporte pas les informations relatives aux propriétaires effectifs identifiés par un fournisseur tiers ou figurant dans un document ou une attestation numérique. | | `verification_missing_directors` | Le `Account` ne comporte pas les informations relatives aux directeurs identifiés par un fournisseur tiers ou figurant dans un document ou une attestation numérique. | | `verification_data_not_found` (Version bêta publique) | Un fournisseur tiers n’a pas pu trouver d’informations relatives à l’entreprise. | Vous pouvez parfois résoudre ces erreurs en mettant à jour les informations relatives à l’entreprise. Toutefois, dans la plupart des cas, vous devez orienter le compte connecté vers la voie de téléversement de documents ou vers la voie d’attestation numérique. Lorsque Stripe identifie des propriétaires ou des directeurs manquants, une API en version bêta privée peut, dans certains cas, fournir des données les concernant. Le compte connecté peut utiliser ces données pour créer les `Persons` manquantes. ### Mettre en place l'attestation numérique pour la vérification des BEF et des administrateurs à l'aide de l'API L’exemple suivant montre comment effectuer une attestation numérique pour la vérification du BEF ou de l’administrateur. 1. Récupérez le compte pour identifier les documents d’attestation requis. ```shell // Check for UBO attestation requirement > curl https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: // Response showing UBO attestation { "id": "acct_1234", "requirements": { "past_due": [ "documents.proof_of_ultimate_beneficial_ownership.files", "documents.proof_of_ultimate_beneficial_ownership.signer", ], "errors": [] } } // Or for directors & officers requirement { "id": "acct_1234", "requirements": { "past_due": [ "documents.proof_of_registration.files", "documents.proof_of_registration.signer" ], "errors": [] } } ``` L’option relative aux exigences d’attestation numérique peut apparaître comme option principale ou comme alternative à une autre option. Les options proposées ainsi que leur ordre peuvent varier d’un compte à l’autre. 1. Générez un PDF à l’aide du modèle et demandez à une personne autorisée de le signer numériquement. 2. Chargez le document d’attestation signé à l’aide de l’API File. ```shell curl -X POST https://files.stripe.com/v1/files \ -u sk_test_123: \ -F purpose=account_requirement \ -F file=@signed_attestation.pdf // Response { "id": "file_1234567890", "object": "file", "purpose": "account_requirement" } ``` 3. Soumettez le document en indiquant l’identifiant de la `Person` représentant le signataire. ```shell // For UBO attestation curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: \ -d "documents[proof_of_ultimate_beneficial_ownership][files][]=file_1234567890" \ -d "documents[proof_of_ultimate_beneficial_ownership][signer][person]=person_xyz" // For D&O attestation curl -X POST https://api.stripe.com/v1/accounts/acct_1234 \ -u sk_test_123: \ -d "documents[proof_of_registration][files][]=file_1234567890" \ -d "documents[proof_of_registration][signer][person]=person_xyz" ``` ### Exigences de validation des signataires Qui peut signer les attestations - Représentants du compte - Propriétaires d’entreprise (propriété de plus de 25 %) - Directeurs et dirigeants - Autres membres autorisés du compte Important : le signataire doit être une personne réelle associée au compte. Seules les personnes ayant un lien documenté avec l’entité juridique peuvent signer des documents d’attestation. ### Gestion des erreurs L’attestation numérique introduit des scénarios d’erreur spécifiques que vous devez gérer : #### Signataire non valide Se produit lorsque le signataire n’est pas associé au compte ou ne dispose pas des autorisations nécessaires. ```shell { "requirements": { "errors": [{ "requirement": "documents.proof_of_ultimate_beneficial_ownership.files", "code": "invalid_signator", "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity." }, { "requirement": "documents.proof_of_ultimate_beneficial_ownership.signer", "code": "invalid_signator", "reason": "Unauthorized attestation signer. The signer must have a documented relationship with the legal entity." }] } } ``` #### Document rejeté Se produit lorsque le document téléchargé est illisible ou incorrect. ```shell { "requirements": { "past_due": ["documents.proof_of_registration.files"], "errors": [{ "requirement": "documents.proof_of_registration.files", "code": "verification_document_failed_other", "reason": "Your team can contact Stripe to learn more about why identity verification failed." }] } } ``` #### Signataire soumis sans fichiers Erreurs API lors de l’envoi du signataire sans fichiers ```shell { "error": { "code": "invalid_signator", "message": "signer.person can only be provided when a file is also provided", "type": "invalid_request_error" } } ``` ### Étapes suivantes 1. Mettez à jour votre intégration afin de collecter un signataire lors de l’utilisation de documents d’attestation. 2. Implémentez la gestion des erreurs pour les nouveaux codes d’erreur spécifiques aux attestations. 3. Formez votre équipe support aux nouvelles exigences en matière d’attestation. #### Pré-remplir les informations relatives au BEF et à l’administrateur (Version bêta privée) Vous pouvez également intégrer une API qui détecte et pré-remplit par voie programmatique les UBO ou les directeurs associés à une entité juridique. Le compte connecté peut vérifier la relation en confirmant les informations détectées au lieu de par le biais du chargement de documents ou d’une attestation numérique. Cette méthode peut augmenter les taux de vérification et réduire la complexité, mais elle ne fonctionne pas pour tous les comptes. Vous devez tout de même gérer les chargements de documents ou les attestations numériques pour les comptes pour lesquels Stripe ne peut pas préremplir leurs relations. Si vous souhaitez préremplir le formulaire de vérification UBO ou directeur, inscrivez-vous pour exprimer votre intérêt ci-dessous. ### Vous souhaitez bénéficier d'un accès anticipé au pré-remplissage Stripe BEF/administrateur ? Enter your email to request access. ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \ -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}' ``` ## Inscription des entreprises néerlandaises (KvK) - conditions requises **Effectif le 14 mai 2026** Début 2026, les plateformes étaient tenues de collecter un numéro KvK (Kamer van Koophandel), un numéro d’immatriculation d’entreprise unique à 8 chiffres, auprès des comptes connectés aux Pays-Bas (NL). Dans le cadre de ce changement, le type de l’entreprise `individual` était limité par une erreur `unsupported_business_type`, et les entités non constituées en société étaient tenues de fournir un numéro KvK via `company.tax_id`. À partir du 14 mai 2026, les comptes connectés représentant des entrepreneurs individuels ou des entités non constituées en société n’ayant pas accès à un Dashboard hébergé par Stripe ne sont plus tenus de fournir un numéro KvK. Les comptes connectés représentant des entrepreneurs individuels ou des entités non constituées en société ayant accès au Dashboard Stripe complet ou au Dashboard Express doivent toujours fournir un numéro KvK. ### Ce qui change - `business_type: "individual"` est désormais pris en charge pour les comptes connectés aux Pays-Bas n’ayant pas accès à un Dashboard hébergé par Stripe. L’erreur `unsupported_business_type` n’apparaît plus pour ces comptes. - Les types d’entreprise `unincorporated_partnership` et `unincorporated_non_profit` n’exigent plus que `company.tax_id` contienne le numéro KvK pour les comptes connectés n’ayant pas accès à un Dashboard hébergé par Stripe. ### Mesures à prendre Aucune action n’est requise. Vous n’avez pas besoin d’apporter de modifications à votre intégration. Pour les comptes connectés existants concernés par ce changement : - Stripe efface automatiquement l’erreur `unsupported_business_type` de `requirements.errors` pour les comptes d’entrepreneurs individuels. - Les restrictions de fonctionnalités (telles que `card_payments` ou `transfers`) liées à cette erreur sont automatiquement levées. - Les comptes représentant des entrepreneurs individuels ou des entités non constituées en société qui étaient limités en raison d’un numéro KvK manquant sont également automatiquement débloqués. ## Nouveaux codes d’erreur ### Codes d’erreur de vérification (Version bêta publique) Le nouveau code d’erreur `verification_data_not_found` peut apparaître dans le tableau `requirements.errors` de l’objet `Account`. Cette erreur indique que Stripe n’a pas pu récupérer les informations (telles que les données UBO ou directeur/dirigeant) auprès de fournisseurs de vérification tiers à l’aide des informations d’entité juridique connues du compte connecté. Cela peut se produire pour plusieurs raisons, mais c’est souvent parce que le compte a saisi leurs informations de manière incorrecte. Cette erreur de « données introuvables » est distincte des codes d’erreur de vérification existants : - **`verification_missing_owners`** : indique que le compte ne contient pas de propriétaires connus. - **`verification_failed_keyed_match`** : indique une incohérence entre les informations soumises et les sources de vérification. ```shell // Example: verification_data_not_found error { "requirements": { "errors": [{ "requirement": "owners", "code": "verification_data_not_found", "reason": "Stripe was unable to retrieve ownership or director information from third-party providers based on the current legal entity details. Verify that the business information on the account is correct." }] } } ``` Pour gérer cette erreur, invitez le compte connecté à vérifier et corriger les informations relatives à son entité juridique (dénomination entreprise, numéro d’immatriculation, adresse). S’il met à jour ses informations, Stripe tente automatiquement de les vérifier à nouveau. Si les informations du compte sont correctes ou si Stripe ne peut toujours pas vérifier les informations mises à jour, utilisez une méthode de vérification manuelle telle que le chargement de documents ou l’attestation numérique. ## Tests Vous pouvez créer des comptes de test à utiliser lors du développement et des phases de test de votre intégration. Les comptes de test permettent de simuler différents résultats de vérification, afin d’observer comment l’API renvoie les exigences et les erreurs pour chaque scénario. Les exemples suivants vous aident à anticiper les prochaines évolutions des exigences réglementaires dans l’Union européenne. Pour en savoir plus sur les tests liés à Connect, consultez la documentation [Tester Stripe Connect](https://docs.stripe.com/connect/testing.md). ### Créer un compte de test Créez un `Account` de test en envoyant une requête POST à l’API Accounts à l’aide de votre [clé secrète en environnement de test](https://docs.stripe.com/keys.md). Pour accéder aux nouvelles exigences avant leur déploiement sur les comptes hors mode test, définissez un en-tête activant une version bêta de l’API, activez la fonctionnalité aperçu d’onboarding expérimental, puis activez la version bêta lors de la demande d’une fonctionnalité. Par exemple : ```shell curl https://api.stripe.com/v1/accounts \ -u sk_test_123: \ -H "Stripe-Version: 2026-01-28.preview;experimental_onboarding_preview=v2" \ -d 'type'='custom' \ -d 'country'='ES' \ -d 'capabilities[card_payments][requested]'='true' \ -d 'capabilities[card_payments][preview]'='true' \ -d 'capabilities[transfers][requested]'='true' \ -d 'capabilities[transfers][preview]'='true' ``` Les exemples ci-dessous montrent comment simuler différentes situations en utilisant des valeurs qui déclenchent des réponses spécifiques pour les comptes de test. ### Tester un Compte appartenant à un entrepreneur individuel Cet exemple crée un compte qui ne nécessite pas de vérification des relations, car le type d’entité juridique est défini sur `individual`. Créez un compte de test en suivant les [instructions précédentes](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), puis définissez les informations de base relatives à l’entreprise : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d business_type=individual \ -d "business_profile[mcc]"=5995 \ -d "business_profile[url]"="https://accessible.stripe.com" ``` La réponse inclut les exigences de base pour un entrepreneur individuel. Vous pouvez répondre à ces exigences en créant un représentant : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Marie" \ -d "last_name=Dupont" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=test@example.com" \ -d "phone=%2B35366666666" \ -d "nationality=ES" \ -d "relationship[representative]=true" ``` La définition de la date de naissance sur 1901-01-01 déclenche une vérification d’identité réussie dans un environnement de test. Pour d’autres valeurs permettant de simuler des résultats spécifiques, consultez [Dates de naissances de test](https://docs.stripe.com/connect/testing.md#test-dobs). De la même manière, définir la première ligne de l’adresse sur la chaîne `address_full_match` déclenche une vérification réussie de l’adresse. Pour d’autres valeurs de simulation, consultez [Adresses commerciales de test](https://docs.stripe.com/connect/testing.md#test-validation-addresses). La réponse montre que les exigences de l’entrepreneur individuel sont devenues en attente. Si vous attendez quelques instants et récupérez le `Account`, vous pouvez voir que ces exigences ont été satisfaites : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123 ``` Les seules exigences restantes concernent le compte bancaire (`external_account`) et les Conditions d’utilisation du service (TOS). Pour effacer les exigences des Conditions d’utilisation du service, définissez le hachage `tos_acceptance` du `Account` : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "tos_acceptance[date]=1540248693" \ -d "tos_acceptance[ip]=10.0.0.1" ``` Pour effacer les exigences du compte bancaire, créez un compte bancaire de test pour le `Account`. Spécifiez [un numéro de compte bancaire de test en fonction de son pays](https://docs.stripe.com/connect/testing.md#account-numbers) : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/external_accounts \ -u sk_test_123: \ -d "external_account[object]=bank_account" \ -d "external_account[account_number]=ES0700120345030000067890" \ -d "external_account[country]=ES" \ -d "external_account[currency]=EUR" ``` ### Tester un Compte appartenant à une entreprise Cet exemple crée un compte soumis aux exigences de vérification des relations, car le type d’entité juridique est défini sur `company`. > Le Royaume-Uni exige la vérification à la fois des bénéficiaires effectifs ultimes (UBO) et des directeurs. Si vous prévoyez d’avoir des comptes connectés au Royaume-Uni, veillez à effectuer des tests avec des comptes dont le pays est défini sur `GB`. Créez un compte de test en suivant les [instructions précédentes](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), puis définissez les informations de base relatives à l’entreprise : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d business_type=company \ -d "business_profile[mcc]"=5995 \ -d "business_profile[url]"="https://accessible.stripe.com" \ -d "company[name]=Test company" \ -d "company[phone]=628123456787" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=Madrid" \ -d "company[address][postal_code]=28009" \ -d "company[address][country]=ES" \ -d "company[tax_id]=000000000" ``` La définition du numéro d’identification fiscale `000000000` déclenche une vérification réussie de l’entreprise. Pour d’autres valeurs permettant de simuler des résultats spécifiques, consultez [Numéros d’identification fiscale de test pour les entreprises](https://docs.stripe.com/connect/testing.md#test-business-tax-ids). Indiquez ensuite un représentant. ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Adam" \ -d "last_name=" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=test@example.com" \ -d "phone=%2B35366666666" \ -d "nationality=ES" \ -d "relationship[representative]=true" \ -d "relationship[title]=CEO" ``` Une fois le processus de vérification du représentant terminé, vous pouvez voir les exigences restantes avec une requête GET : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: ``` Les exigences du tableau `requirements.currently_due` répertorient les informations dont nous avons besoin sur les propriétaires du `Account`. Le tableau `requirements.alternatives` peut inclure des informations facultatives que vous pouvez fournir pour répondre à certaines exigences. Par exemple : ```json { "alternative_fields_due": [ "company.owners_provided", "documents.proof_of_ultimate_beneficial_ownership.files", "owners.first_name", "owners.last_name" ], "original_fields_due": [ "company.owners_provided", "owners.first_name", "owners.last_name" ] } ``` Vous pouvez fournir les champs répertoriés dans `alternative_fields_due` comme autre moyen de satisfaire aux exigences de la liste `original_fields_due` correspondante. Dans cet exemple, `alternative_fields_due` inclut les propriétés dans `original_fields_due`, plus `documents.proof_of_ultimate_beneficial_ownership.files`. Cela signifie que les informations initiales sont obligatoires, mais que vous avez également la possibilité de fournir un document attestant de la propriété effective afin de faciliter le processus de vérification. Pour répondre aux exigences relatives aux propriétaires, créez deux personnes et marquez-les comme propriétaires. Les noms figurant dans cet exemple sont des valeurs codées en dur pour les comptes de test qui utilisent le numéro fiscal `000000000`. ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Marie" \ -d "last_name=Dupont" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=owner@example.com" \ -d "relationship[owner]=true" curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Louis" \ -d "last_name=Martin" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=owner@example.com" \ -d "relationship[owner]=true" ``` Indiquez que vous avez créé tous les propriétaires du `Account` en définissant `entreprise.owners_provided` sur true : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "company[owners_provided]=true" ``` Le traitement de cette demande supprime toutes les exigences relatives aux propriétaires du `Account`. ### Tester le recours à la vérification par document Les exigences relatives aux propriétaires d’un `Account` continuent d’apparaître dans `currently_due` (ou dans `pending_verification` si une vérification est en cours) jusqu’à ce que la vérification soit réussie. En cas d’échec de la vérification, l’une des options consiste à téléverser un document. Cet exemple montre comment procéder à l’aide de l’API. Créez un compte de test en suivant [les instructions précédentes](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), puis renseignez les informations de base de l’entreprise. Définissez le numéro d’identification fiscale sur `222221001`, ce qui déclenche un échec de vérification du propriétaire. Pour les autres déclencheurs de résultat, consultez [Test business tax IDs](https://docs.stripe.com/connect/testing.md#test-business-tax-ids). ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d business_type=company \ -d "business_profile[mcc]"=5995 \ -d "business_profile[url]"="https://accessible.stripe.com" \ -d "company[name]=Test company" \ -d "company[phone]=628123456787" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=Madrid" \ -d "company[address][postal_code]=28009" \ -d "company[address][country]=ES" \ -d "company[tax_id]=222221001" ``` Indiquez ensuite un représentant : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Marie" \ -d "last_name=Dupont" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=test@example.com" \ -d "phone=%2B35366666666" \ -d "nationality=ES" \ -d "relationship[representative]=true" \ -d "relationship[title]=CEO" ``` Ensuite, créez un propriétaire : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Adam" \ -d "last_name=Smith" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=owner@example.com" \ -d "relationship[owner]=true" ``` Indiquez que vous avez terminé de créer des propriétaires en définissant `entreprise.owners_provided` sur true : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "company[owners_provided]=true" ``` Si vous examinez l’objet `Account`, vous constaterez que les exigences relatives aux propriétaires sont toujours présentes et que le tableau `requirements.errors` contient une entrée avec `requirement` défini sur `owners` et `code` sur `verification_failed_other`. Cela signifie que Stripe n’a pas pu vérifier les propriétaires à partir des informations d’entreprise fournies. > Si vous utilisez la version bêta publique de l’API, le code d’erreur est [verification_data_not_found](https://docs.stripe.com/changelog/clover/2025-10-29/accounts-verification-data-error.md) au lieu de `verification_failed_other`. Si vous recevez cette erreur pour un `Account` réel, vérifiez que vous avez saisi les informations relatives à la bonne entité juridique. Dans cet exemple, nous partons du principe que les informations sont correctes et que vous devez fournir un document pour les vérifier. Pour un `Account` réel, [utilisez l’API Files pour téléverser un document](https://docs.stripe.com/file-upload.md), puis mettez à jour l’`Account` à l’aide du token renvoyé dans la réponse. Pour cet exemple, utilisez le token de test `file_relationship_document_success`. Pour les autres déclencheurs de résultat, consultez [Test relationship document tokens](https://docs.stripe.com/connect/testing.md#test-relationship-document-tokens). ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "documents[proof_of_ultimate_beneficial_ownership][files][]"=file_relationship_document_success ``` Quelques instants après la mise à jour du `Account`, vous pouvez récupérer les exigences actuelles et constater que les exigences relatives aux propriétaires ont été levées. ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: ``` ### Tester une entreprise sans propriétaire applicable Si une entreprise ne compte aucun propriétaire détenant plus de 25 % des parts, Stripe exige alors les informations relatives au dirigeant. Cet exemple montre comment fournir les informations du dirigeant. Créez un compte de test en suivant [les instructions précédentes](https://docs.stripe.com/connect/upcoming-requirements-updates.md#create-a-test-account), puis définissez les informations de base de l’entreprise. Définissez le numéro fiscal sur `000000000`, ce qui déclenche la réussite de la vérification entreprise. ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d business_type=company \ -d "business_profile[mcc]"=5995 \ -d "business_profile[url]"="https://accessible.stripe.com" \ -d "company[name]=Test company" \ -d "company[phone]=628123456787" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=Madrid" \ -d "company[address][postal_code]=28009" \ -d "company[address][country]=ES" \ -d "company[tax_id]=000000000" ``` Indiquez ensuite un représentant : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Marie" \ -d "last_name=Dupont" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=test@example.com" \ -d "phone=%2B35366666666" \ -d "nationality=ES" \ -d "relationship[representative]=true" \ -d "relationship[title]=CEO" ``` Pour indiquer que l’entreprise ne compte aucun propriétaire pertinent, définissez `company.owners_provided` sur true sans créer de propriétaires. Pour réutiliser un `Account` de test existant comportant déjà des propriétaires, vous pouvez supprimer tous les propriétaires existants. ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "company[owners_provided]=true" ``` Le tableau `requirements.alternatives` contient un ensemble de propriétés relatives au dirigeant, proposées comme alternative aux propriétés des propriétaires. Le processus de création d’un dirigeant est très similaire à celui de création d’un propriétaire : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123/persons \ -u sk_test_123: \ -d "first_name=Adam" \ -d "last_name=Smith" \ -d "dob[year]=1901" \ -d "dob[month]=1" \ -d "dob[day]=1" \ -d "address[line1]=address_full_match" \ -d "address[city]=Madrid" \ -d "address[postal_code]=28009" \ -d "address[country]=ES" \ -d "email=owner@example.com" \ -d "relationship[director]=true" \ -d "relationship[title]=President" ``` Indiquez que vous avez terminé de créer des dirigeants en définissant `entreprise.directors_provided` sur true : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "company[directors_provided]=true" ``` Pour simuler une vérification de relation réussie, définissez `entreprise.name` sur la chaîne `match_name_relationships` : ```shell curl https://api.stripe.com/v1/accounts/acct_test_123 \ -u sk_test_123: \ -d "company[name]=match_name_relationships" ``` ### Autres scénarios de test Les tests suivants sont également utiles : - Une entité de type `non_profit`, qui nécessite une vérification directeur (la vérification UBO n’est pas une option). - Satisfaire aux exigences de vérification du dirigeant au moyen d’un document. - Entreprises au Royaume-Uni nécessitant à la fois la vérification des bénéficiaires effectifs (UBO) et la vérification des dirigeants. #### Programme - Brésil *Dernière mise à jour le 1 juillet 2025.* ## Comprendre les changements apportés aux exigences en matière de vérification Pour se conformer aux réglementations de la Banque centrale du Brésil (BCB) en vertu de la Circulaire BCB 3978/20, Stripe mettra à jour ses exigences de vérification pour la connaissance du client (KYC), la connaissance de l’entreprise (KYB) et les bénéficiaires effectifs ultimes (UBO). Si vos comptes connectés opèrent au Brésil, il peut être nécessaire de mettre à jour vos flux d’onboarding et de rectification. Le non-respect des mises à jour obligatoires perturbera l’accès de vos comptes connectés aux paiements et aux services financiers. ## Choisir une approche d’intégration Stripe recommande d’utiliser l’inscription des utilisateurs hébergée par Stripe ou intégrée pour collecter les exigences en matière d’entreprise et de vérification d’identité. Ces options nécessitent moins de ressources pour leur mise en œuvre et leur maintenance que l’inscription des utilisateurs via l’API. Le tableau suivant décrit les principales différences : - [Inscription des utilisateurs hébergée par Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recommandé) Envoyez les comptes vers un flux hébergé par Stripe pour soumettre les informations requises. - [Inscription des utilisateurs intégrée](https://docs.stripe.com/connect/embedded-onboarding.md): (Recommandé) Intégrez des composants d’inscription des utilisateurs fournis par Stripe permettant aux comptes de soumettre des informations directement à Stripe depuis votre application. - [API d’inscription des utilisateurs](https://docs.stripe.com/connect/api-onboarding.md): Créez et gérez un flux d’inscription des utilisateurs personnalisé à l’aide des API de Stripe. | | **Inscription des utilisateurs hébergée par Stripe** | **Inscription des utilisateurs intégrée** | **Inscription des utilisateurs via l’API** | | --- | --- | --- | --- | | Idéal pour | Plateformes qui souhaitent que Stripe s’occupe de l’inscription | Plateformes qui souhaitent disposer d’un flux d’intégration intégré à l’application et adapté à leur marque | Des plateformes qui ont besoin d’un contrôle total et qui peuvent le créer et le maintenir. | | Premier effort de mise en œuvre | 3 à 4 semaines d’ingénierie | 3 à 4 semaines d’ingénierie | 30 à 40 semaines d’ingénierie | | Efforts continus pour répondre aux mises à jour des exigences | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite une surveillance proactive des changements à venir, ainsi que des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque changement | | Personnalisation | Interface hébergée par Stripe avec adaptation à la marque de la plateforme | Composant hautement personnalisable qui gère les accès via l’application de la plateforme. | La plateforme conçoit, développe et assure la maintenance de l’interface | | Effort visant à soutenir d’autres pays | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque pays supplémentaire | En savoir plus sur les [options d’onboarding Connect](https://docs.stripe.com/connect/onboarding.md) et la [migration de vos flux d’onboarding et de rectification basés sur des API vers des flux hébergés ou intégrés par Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md). Les plateformes utilisant l’onboarding hébergé par Stripe ou intégré n’ont pas besoin de modifier leurs intégrations pour ces mises à jour des exigences, car Stripe les gère automatiquement. Les plateformes utilisant l’onboarding via API doivent suivre activement les changements d’exigences et allouer des ressources en ingénierie pour chaque mise à jour. ## Vue d’ensemble de l’intégration API Si votre plateforme utilise l’onboarding via API, vous devez mettre à jour votre intégration pour gérer les changements suivants pour les comptes connectés brésiliens : - **KYC : vérification de l’identité des personnes physiques** : collecte du CPF, de la date de naissance, de l’adresse et de la preuve de présence pour tous les comptes individuels et représentants d’entreprise. - **KYB : vérification de l’identité des entités juridiques** : collecte du CNPJ, du nom juridique de l’entreprise et de l’adresse d’immatriculation pour les entités juridiques ; gérer les flux de vérification programmatique et de repli sur documents. - **État d’immatriculation du numéro fiscal** : gestion de l’état d’immatriculation pour les états de CPF et CNPJ inactifs ou non valides. - **Preuve d’autorisation** : vérifiez que le représentant de l’entreprise est autorisé à représenter l’entreprise ; effectuez la résolution par une correspondance par voie programmatique ou par l’attestation `company.representative_declaration`. - **Vérification UBO et des relations** : vérifiez que les propriétaires (UBO) et les directeurs figurent dans le registre CNPJ ; effectuez la résolution par une correspondance de nom par voie programmatique, le chargement de documents ou l’association du propriétaires au poste de directeur. - **Capacité financière** : collectez le bénéfice mensuel ou les revenus bruts. - **Nouveaux codes d’erreur** : gestion des nouveaux codes d’erreur de vérification exposés dans le tableau `requirements.errors`. ## KYC : vérification de l’identité des personnes physiques Stripe renforcera la vérification d’identité pour les comptes individuels au Brésil pour se conformer aux exigences de la Banque centrale du Brésil (BCB). Les comptes connectés qui sont des personnes physiques et les représentants de comptes d’entités juridiques doivent être vérifiés. Ils peuvent être amenés à fournir des informations supplémentaires dans le cadre de l’onboarding. Les personnes suivantes doivent fournir des informations KYC vérifiables : - **Représentant de l’entreprise** : la personne qui signe les Conditions d’utilisation du service et est légalement responsable du compte. - **Propriétaires** : les propriétaires des entités juridiques (le cas échéant). Stripe utilise une combinaison de données saisies manuellement et d’examen de documents pour vérifier l’identité de chaque personne. De plus, la réglementation brésilienne exige un contrôle de présence (`proof_of_liveness`) pour confirmer que la personne qui soumet les documents d’identité est physiquement présente. Les flux d’onboarding hébergés par Stripe et intégrés gèrent cette étape automatiquement. Si votre plateforme utilise l’onboarding via API, vous devez rediriger les utilisateurs vers une étape de vérification hébergée par Stripe ou intégrer le composant intégré `` pour compléter la collecte de la preuve de présence. Consultez [Gérer les exigences de présence](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) pour plus de détails. **Conditions d’âge :** les représentants de l’entreprise doivent avoir 18 ans ou plus. Les propriétaires, dirigeants et responsables doivent avoir 18 ans ou plus. Les nouveaux utilisateurs ne satisfaisant pas à ces exigences ne verront pas leurs capacités activées. Les comptes existants dont le représentant de l’entreprise a moins de 18 ans seront immédiatement désinscrits lors de la migration de leur plateforme. ### Champs obligatoires Les comptes individuels brésiliens requièrent désormais les champs suivants : | Champ | Description | | --- | --- | | `person.first_name`, `person.last_name` | Dénomination sociale complète. | | `person.id_number` | CPF (numéro de contribuable individuel brésilien). | | `person.address.line1`, `.city`, `.postal_code`, `.country` | Adresse résidentielle brésilienne. Tous les représentants de l’entreprise doivent être résidents brésiliens et fournir une adresse brésilienne. | | `person.dob.day`, `.month`, `.year` | Date de naissance. | | `person.verification.proof_of_liveness` | Selfie de preuve de vie. (Uniquement pour les flux d’onboarding intégrés et hébergés par Stripe) | | `person.verification.additional_document` | Exigence de document facultative en cas d’échec de la vérification de l’adresse saisie. | Assurez-vous que votre interface utilisateur collecte spécifiquement un CPF, car nous n’acceptons pas d’autres types d’identifiants (numéros de passeport, numéros fiscaux étrangers) pour les comptes brésiliens. ### Réponse initiale aux exigences Lors de la création d’un nouveau compte individuel, le hash `requirements` inclura : ```json { "currently_due": [ "person.first_name", "person.last_name", "person.id_number", "person.dob.day", "person.dob.month", "person.dob.year", "person.address.line1", "person.address.city", "person.address.state", "person.address.country", "person.verification.proof_of_liveness" ], "pending_verification": [], "alternatives": [ { "original_fields_due": ["person.address.line1", "person.address.city", "person.address.state", "person.address.country"], "alternative_fields_due": ["person.verification.additional_document"] } ], "errors": [] } ``` ### Collecte des données personnelles Utilisez l’API Persons pour soumettre les champs individuels : ```shell curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons/{{PERSON_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "first_name=Maria" \ -d "last_name=Silva" \ -d "id_number=123.456.789-09" \ -d "dob[day]=15" \ -d "dob[month]=6" \ -d "dob[year]=1985" \ -d "address[line1]=Rua das Flores, 123" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "address[country]=BR" ``` ### Gestion des erreurs | Code d’erreur | Déclencheur | Réduction des litiges et de la fraude | | --- | --- | --- | | `verification_failed_id_number_inactive` | CPF trouvé, mais l’état est inactif (par exemple, suspendu, annulé, décédé). | Les utilisateurs doivent résoudre l’état de leur CPF avec l’administration fiscale brésilienne (Receita Federal). Pour les comptes dont l’état du CPF est annulé, nul ou décédé, Stripe peut désactiver leurs fonctionnalités. | | `verification_failed_keyed_match` | La vérification programmatique et la vérification manuelle du CPF ont toutes deux échoué. | L’utilisateur soumet à nouveau le CPF et le document d’identité ; le compte entre dans la file d’attente MVR. | | `verification_document_type_not_supported` | Le document chargé est du mauvais type, provient d’un mauvais pays ou est illisible. | L’utilisateur charge à nouveau une pièce d’identité officielle brésilienne acceptable. | ## Vérification d’identité de l’entité juridique pour le KYB Stripe mettra à jour les exigences de vérification des entreprises pour les entités juridiques au Brésil pour se conformer aux réglementations AML de la Banque centrale brésilienne (BCB). Ce type de vérification relève de la catégorie générale des exigences know your business (KYB). Si vos comptes connectés incluent des entreprises immatriculées au Brésil, il est possible qu’elles doivent fournir des informations supplémentaires lors de l’onboarding. Stripe vérifie les entités juridiques à l’aide du CNPJ (Cadastro Nacional da Pessoa Jurídica), le numéro d’immatriculation national des entreprises au Brésil, ainsi que le nom de l’entreprise et l’adresse enregistrée. Stripe tente d’abord une vérification programmatique auprès du registre CNPJ du gouvernement brésilien. Si les informations saisies ne correspondent pas, le compte peut satisfaire à cette exigence en chargeant un document de vérification d’entreprise (tel qu’un certificat CNPJ délivré par la Receita Federal). En plus de la vérification d’identité, la réglementation AML brésilienne exige de Stripe qu’elle évalue la capacité financière d’un compte connecté avant d’activer les paiements et les virements. Tous les comptes brésiliens doivent fournir leurs revenus ou bénéfices mensuels estimés avant l’activation des fonctionnalités. Ces informations sont uniquement destinées à des fins de surveillance réglementaire et ne font pas l’objet d’une vérification indépendante lors de l’onboarding. ### Champs obligatoires Les champs suivants sont obligatoires pour les comptes d’entités juridiques brésiliennes : | Champ | Description | | --- | --- | | `company.tax_id` | CNPJ (numéro d’immatriculation d’entreprise brésilien à 14 chiffres). | | `company.name` | Dénomination sociale. Doit correspondre au registre CNPJ. | | `company.address.line1`, `.city`, `.postal_code` | Adresse enregistrée de l’entreprise brésilienne. | | `company.verification.document` | Facultatif au départ ; obligatoire en cas d’échec de la vérification programmatique. | | `business_profile.monthly_estimated_revenue.amount` | Revenus bruts mensuels en BRL. | | `business_profile.monthly_estimated_revenue.currency` | Doit être `brl`. | ### Réponse initiale aux exigences ```json { "currently_due": [ "company.tax_id", "company.name", "company.address.line1", "company.address.city", "company.address.postal_code", "business_profile.monthly_estimated_revenue.amount", "business_profile.monthly_estimated_revenue.currency" ], "pending_verification": [], "alternatives": [ { "original_fields_due": [ "company.tax_id", "company.name", "company.address.line1", "company.address.city", "company.address.postal_code" ], "alternative_fields_due": [ "company.tax_id", "company.name", "company.address.line1", "company.address.city", "company.address.postal_code", "company.verification.document" ] } ], "errors": [] } ``` Le tableau `alternatives` indique que si la vérification programmatique du CNPJ échoue, la plateforme peut y remédier en fournissant également un `company.verification.document`. ### Collecte des données d’entreprise ```shell curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "company[tax_id]=12.345.678/0001-99" \ -d "company[name]=Empresa Exemplo Ltda" \ -d "company[address][line1]=Avenida Paulista, 1000" \ -d "company[address][city]=São Paulo" \ -d "company[address][postal_code]=01310-100" \ -d "company[address][country]=BR" \ -d "business_profile[monthly_estimated_revenue][amount]=5000000" \ -d "business_profile[monthly_estimated_revenue][currency]=brl" ``` Après la soumission du numéro fiscal, du nom et de l’adresse de l’entreprise, les exigences passent à `pending_verification` pendant que Stripe vérifie les informations auprès du registre CNPJ : ```json { "currently_due": [], "pending_verification": [ "company.tax_id", "company.name", "company.address.line1", "company.address.city", "company.address.postal_code" ], "alternatives": [], "errors": [] } ``` Attendez un webhook `account.updated` avant de continuer. Si la vérification réussit, tous les champs sont supprimés des exigences. En cas d’échec, consultez la section sur la gestion des erreurs ci-dessous. ### État d’immatriculation du numéro fiscal En plus de vérifier le CNPJ auprès des dossiers d’entreprise, Stripe contrôle l’état d’immatriculation du CNPJ (ainsi que le CPF du représentant de l’entreprise) auprès des registres du gouvernement brésilien. Vous ne pouvez pas modifier le numéro fiscal une fois qu’il a été défini. | Type d’entité juridique | Approuvé | En échec | Désinscription immédiate requise | | --- | --- | --- | --- | | Personnes physiques (CPF) | Standard | Suspendu, en attente de régularisation | Annulé, nul, décédé | | Entités juridiques (CNPJ) | Actif (Ativa), en attente de régularisation (Ativa não regular) | Suspendu (Suspensa) | Dissous (Baixada), annulé (Baixada), inapte (Inapta), nul (Nula), domicilié à l’étranger | Les comptes dont le CPF ou le CNPJ est suspendu sont considérés comme valides lors de l’onboarding, mais doivent régulariser leur situation dans un délai d’environ 30 jours. Sans résolution, les fonctionnalités de paiement seront dégradées. Les comptes présentant des statuts nécessitant une désinscription (annulé, nul, décédé, dissous, inapte) voient toutes leurs fonctionnalités immédiatement désactivées et ne peuvent pas remédier à la situation par le chargement de documents. ### Capacité financière La réglementation AML brésilienne exige de Stripe qu’elle collecte la capacité financière estimée d’un compte connecté avant d’activer les paiements et les virements. Cela s’applique à tous les comptes brésiliens, qu’il s’agisse de personnes physiques ou d’entités juridiques. `monthly_estimated_revenue.amount` est exprimé dans la plus petite unité monétaire (centavos). Par exemple, 50 000 BRL = `5000000`. Ces valeurs sont collectées uniquement à des fins de surveillance réglementaire et ne font pas l’objet d’une vérification indépendante lors de l’onboarding. ### Gestion des erreurs | Code d’erreur | Déclencheur | Réduction des litiges et de la fraude | | --- | --- | --- | | `verification_failed_keyed_match` | CNPJ introuvable, ou le nom de l’entreprise ou l’adresse ne correspond pas au registre CNPJ. | Saisissez à nouveau la dénomination sociale exacte et l’adresse enregistrée, ou chargez un `company.verification.document`. | | `verification_failed_id_number_status_not_found` | CNPJ trouvé, mais l’état fiscal n’a pas pu être récupéré. | Soumettez à nouveau ou chargez un document de vérification d’entreprise. | | `verification_failed_id_number_inactive` | CNPJ trouvé, mais le statut est inactif (par exemple, suspendu, dissous). | En cas de statut suspendu, le compte dispose d’un délai de grâce pour régulariser sa situation auprès de la Receita Federal. En cas de statut dissous, annulé, inapte ou nul, le compte sera désinscrit ; cette situation ne peut pas être résolue par le chargement de documents. | | `verification_document_type_not_supported` | Le document d’entreprise chargé est illisible ou du mauvais type. | Chargez à nouveau un document de vérification d’entreprise acceptable. | | `verification_document_name_mismatch` | Le nom de l’entreprise figurant dans le document ne correspond pas au nom saisi. | Saisissez à nouveau la dénomination sociale exactement telle qu’elle apparaît sur le certificat CNPJ. | | `verification_document_id_number_mismatch` | Le numéro fiscal figurant dans le document ne correspond pas au CNPJ saisi, ou le statut du numéro fiscal est introuvable ou inactif. | Chargez à nouveau un certificat CNPJ à jour délivré par la Receita Federal. | | `verification_document_address_mismatch` | L’adresse indiquée dans le document ne correspond pas à l’adresse saisie. | Saisissez à nouveau l’adresse pour qu’elle corresponde à l’adresse enregistrée sur le certificat CNPJ. | ## Preuve d’autorisation Tous les comptes au Brésil qui ne sont pas de type `entrepreneur individuel` nécessitent une vérification de preuve d’autorisation (PoA). Cela confirme que le représentant de l’entreprise est autorisé à agir au nom de l’entreprise. Stripe tente d’abord une vérification par voie programmatique en comparant le nom du représentant au registre CNPJ. Si le nom du représentant correspond à une personne autorisée dans le registre, la vérification réussit automatiquement et aucune autre action n’est nécessaire. Si la vérification par voie programmatique échoue, le représentant doit soumettre une attestation `company.representative_declaration`. ### Alternative aux exigences initiales Pour un `Account` d’entreprise, le tableau [alternatives](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-alternatives) contient les champs obligatoires pour l’attestation de déclaration du représentant : ```json { "alternatives": [ { "original_fields_due": ["representative.first_name", "representative.last_name"], "alternative_fields_due": [ "company.representative_declaration.date", "company.representative_declaration.ip", "representative.first_name", "representative.last_name" ] } ] } ``` Si la tentative initiale de Stripe de vérifier `representative.first_name` et `representative.last_name` échoue, la plateforme ou le compte doit alors fournir la date et l’adresse IP de l’attestation du représentant. Ses prénom et nom de famille sont également toujours obligatoires (ils s’affichent à la fois dans `original_fields_due` et dans `alternative_fields_due`). ### État d’erreur lorsque la vérification par voie programmatique échoue Si le nom fourni ne correspond pas au registre CNPJ, le tableau [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) contient des exigences spécifiques à `Person` avec les codes d’erreur `verification_failed_representative_authority`. De plus, le tableau `alternatives` est mis à jour pour référencer l’ID de `Person` dans `original_fields_due` : ```json { "errors": [ { "requirement": "people.{{PERSON_ID}}.first_name", "code": "verification_failed_representative_authority" }, { "requirement": "people.{{PERSON_ID}}.last_name", "code": "verification_failed_representative_authority" } ], "alternatives": [ { "original_fields_due": [ "company.name", "company.tax_id", "people.{{PERSON_ID}}.first_name", "people.{{PERSON_ID}}.last_name" ], "alternative_fields_due": [ "company.representative_declaration.date", "company.representative_declaration.ip" ] }, { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.directors_provided", "company.owners_provided", "directors.first_name", "directors.last_name" ] }, { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.directors_provided", "company.owners_provided", "directors.first_name", "directors.last_name", "documents.proof_of_registration.files" ] }, { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.owners_provided", "documents.proof_of_ultimate_beneficial_ownership.files", "owners.first_name", "owners.last_name" ] } ] } ``` ### Envoyer la déclaration du représentant Pour résoudre l’échec d’une vérification PoA par voie programmatique, fournissez l’attestation de déclaration du représentant : ```shell curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "company[representative_declaration][date]={{UNIX_TIMESTAMP}}" \ -d "company[representative_declaration][ip]={{USER_IP_ADDRESS}}" \ -d "company[representative_declaration][user_agent]={{USER_AGENT}}" ``` Le champ `date` est un horodatage Unix représentant l’heure à laquelle le représentant a accepté la déclaration. Le champ `ip` est l’adresse IP du représentant à ce moment-là. Le champ `user_agent` est facultatif mais recommandé. Une fois la déclaration fournie, les erreurs de PoA sont effacées et le compte peut satisfaire aux exigences restantes (telles que la vérification UBO). ### Gestion des erreurs | Code d’erreur | Déclencheur | Réduction des litiges et de la fraude | | --- | --- | --- | | `verification_failed_representative_authority` | Le nom du représentant ne correspond à aucune personne autorisée dans le registre CNPJ. | Envoyez `company.representative_declaration` avec la `date` (horodatage Unix) et l’`ip` (adresse IP du représentant) pour attester de l’autorisation. | ## Vérification des bénéficiaires effectifs et des relations La réglementation AML brésilienne (Circulaire BCB 3978/20) exige que les propriétaires (UBO) et les directeurs d’entités juridiques soient identifiés et vérifiés comme figurant légalement dans le registre CNPJ. ### Champ d’application de la réglementation Les types d’entreprises suivants sont soumis à la réglementation AML : | Type de vérification | Structures d’entreprises | | --- | --- | | Vérification du propriétaire (UBO) | SARL à plusieurs membres (MMLLC), société privée, société de personnes privée | | Vérification des directeurs | Société publique, entité publique, organisation à but non lucratif | | Hors du champ d’application | Entrepreneurs individuels, entreprises individuelles (MEI) | ### Collectez les informations dans l’ordre Collectez d’abord les informations sur le propriétaire (UBO). Si le compte n’a pas de propriétaires (par exemple, lorsque tous les actionnaires sont des entités juridiques et non des personnes physiques), collectez plutôt les informations sur le directeur. Cette logique d’association aide Stripe à vérifier la structure des bénéficiaires effectifs du compte dans l’ordre le plus efficace. ### Fonctionnement de la vérification Stripe vous recommande de fournir les propriétaires et les directeurs comme suit : 1. **Préremplissage par voie programmatique** (Private preview) : une fois la vérification KYB terminée, vous pouvez obtenir les noms des propriétaires ou des directeurs à partir de l’API de préremplissage. Si vous fournissez des personnes dont les noms correspondent, la vérification réussit grâce à une correspondance unidirectionnelle. Consultez la section [Préremplir les informations du propriétaire et du directeur](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) pour vous inscrire. 2. **Solution de secours par document** : si les noms préremplis ne correspondent pas, chargez le fichier `documents.proof_of_ultimate_beneficial_ownership` (pour les propriétaires) ou `documents.proof_of_registration` (pour les directeurs). 3. **Association des directeurs** : si les propriétaires ne peuvent pas être vérifiés (par exemple, si tous les propriétaires sont des entités juridiques et non des personnes physiques), effectuez plutôt la résolution à l’aide de `company.directors_provided` et des directeurs. ### Champs Person obligatoires | Champ | Description | | --- | --- | | `person.first_name`, `person.last_name` | Dénomination sociale complète (doit correspondre au registre CNPJ pour la vérification par voie programmatique). | | `person.id_number` | CPF (numéro de contribuable individuel brésilien). | | `person.dob.day`, `.month`, `.year` | Date de naissance. | | `person.address.line1`, `.city`, `.state`, `.postal_code` | Adresse résidentielle brésilienne. | | `person.email` | Adresse e-mail. | | `person.political_exposure` | Déclaration d’exposition politique (`none` ou `existing`). | | `person.relationship.owner` ou `person.relationship.director` | Rôle sur le compte (`owner` pour les UBO, `director` pour les directeurs). | | `person.relationship.percent_ownership` | Facultatif ; en cas d’omission, la personne est traitée comme un UBO (seuil de > 25 %). | ### Alternatives aux exigences initiales pour une entreprise Lorsqu’un compte d’entreprise est créé, le tableau `requirements.alternatives` inclut des options pour les trois parcours de vérification (association de directeurs, cascade de directeurs + document, chargement de document pour le propriétaire) : ```json { "currently_due": [ "company.owners_provided", "owners.first_name", "owners.last_name", "owners.id_number", "owners.dob.day", "owners.dob.month", "owners.dob.year", "owners.address.line1", "owners.address.city", "owners.address.state", "owners.address.postal_code", "owners.email", "owners.political_exposure" ], "alternatives": [ { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.directors_provided", "company.owners_provided", "directors.first_name", "directors.last_name" ] }, { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.directors_provided", "company.owners_provided", "directors.first_name", "directors.last_name", "documents.proof_of_registration.files" ] }, { "original_fields_due": ["company.owners_provided", "owners.first_name", "owners.last_name"], "alternative_fields_due": [ "company.owners_provided", "documents.proof_of_ultimate_beneficial_ownership.files", "owners.first_name", "owners.last_name" ] } ] } ``` Les trois options représentent différentes façons de satisfaire à l’exigence de vérification du propriétaire : - **Association des directeurs** : au lieu de vérifier les propriétaires, fournissez les directeurs (`company.directors_provided`, `directors.first_name`, `directors.last_name`). - **Association des directeurs + document** : fournissez les directeurs et chargez un fichier `documents.proof_of_registration`. - **Chargement de document pour le propriétaire** : fournissez les noms des propriétaires et chargez un fichier `documents.proof_of_ultimate_beneficial_ownership`. ### Préremplissez les informations du propriétaire et du directeur (Private preview) Vous pouvez également intégrer une API qui détecte et pré-remplit par voie programmatique les propriétaires ou les directeurs associés à une entité juridique. Le compte connecté peut vérifier la relation en confirmant les informations détectées au lieu de par le biais du chargement de documents. Cette méthode peut augmenter les taux de vérification et réduire la complexité, mais elle ne fonctionne pas pour tous les comptes. Vous devez tout de même gérer les chargements de documents ou l’association des directeurs pour les comptes pour lesquels Stripe ne peut pas préremplir leurs relations. Si vous souhaitez préremplir le formulaire de vérification de propriétaire ou de directeur, inscrivez-vous pour exprimer votre intérêt ci-dessous. ### Vous souhaitez bénéficier d’un accès anticipé à la fonctionnalité de préremplissage UBO/directeur de Stripe ? Enter your email to request access. ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/connect/upcoming-requirements-updates" \ -d '{"email": "EMAIL", "preview": "risk_requirements_beta_preview"}' ``` ### Correspondance des propriétaires par voie programmatique Créez des personnes physiques propriétaires dont le nom correspond à celui du registre CNPJ, puis confirmez que les propriétaires ont bien été fournis. Si le nom du propriétaire correspond, la vérification est effectuée par voie programmatique. Vous pouvez également utiliser l’[API de préremplissage](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) pour récupérer des suggestions de noms avant de créer des personnes physiques. ```shell # Create owner with matching name curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "first_name=Maria" \ -d "last_name=Santos" \ -d "id_number=123.456.789-09" \ -d "dob[day]=15" \ -d "dob[month]=6" \ -d "dob[year]=1985" \ -d "address[line1]=Rua das Flores, 123" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=maria@example.com" \ -d "political_exposure=none" \ -d "relationship[owner]=true" \ -d "relationship[percent_ownership]=26" # Confirm owners provided curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "company[owners_provided]=true" ``` Si le nom du propriétaire correspond à celui figurant dans le registre, la vérification est effectuée par voie programmatique. ### Chargement des documents d’identité du propriétaire Si le nom du propriétaire ne correspond pas à celui figurant dans le registre CNPJ (ou si la vérification programmatique n’est pas activée), une erreur `verification_missing_owners` s’affiche. Chargez un justificatif de bénéficiaire effectif (UBO) pour la résoudre : ```shell # 1. Upload the relationship document curl https://files.stripe.com/v1/files \ -u "{{PLATFORM_SECRET_KEY}}:" \ -F "file=@/path/to/ownership_document.pdf" \ -F "purpose=account_requirement" # 2. Attach to account curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}" ``` ### Association des directeurs Si le propriétaire ne peut pas être vérifié (par exemple, si tous les actionnaires sont des entités juridiques), indiquez plutôt les directeurs : ```shell # Create director person curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}}/persons \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "first_name=Carlos" \ -d "last_name=Oliveira" \ -d "id_number=987.654.321-00" \ -d "dob[day]=20" \ -d "dob[month]=3" \ -d "dob[year]=1978" \ -d "address[line1]=Av Brasil, 500" \ -d "address[city]=Rio de Janeiro" \ -d "address[state]=RJ" \ -d "address[postal_code]=20040-020" \ -d "email=carlos@example.com" \ -d "political_exposure=none" \ -d "relationship[director]=true" # Confirm directors and owners provided curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u "{{PLATFORM_SECRET_KEY}}:" \ -d "company[directors_provided]=true" \ -d "company[owners_provided]=true" ``` ### Documents acceptés Les documents de propriété acceptés dépendent de la structure de la propriété : simple (tous les actionnaires sont des personnes physiques) ou complexe (au moins un actionnaire est lui-même une entité juridique) : #### Structures de propriété simples Chargez un *contrato social* ou un *estatuto social*. Le document doit contenir les informations suivantes : - Nom de l’entité juridique et numéro CNPJ - Le nom complet et le numéro CPF (ou la date de naissance pour les non-résidents) de chaque actionnaire - Pourcentages de propriété - Signatures - Le tampon du registre du commerce (Junta Comercial) #### Structures de propriété complexes Téléchargez le modèle de lettre d’attestation de Stripe ([modèle UBO](https://docs.stripecdn.com/6e82842bfc01bd0b1c46d77f7d46b69673a9ca965ed2ad9ef53139f98abdbbaf.pdf) ou le [modèle de directeurs](https://docs.stripecdn.com/715ffef45157ff700bc368a4011659ee23bc8ba3c68746c5c15948a6eee1591f.pdf)), puis remplissez-le et chargez-le. Les entreprises comportant des niveaux intermédiaires (sociétés mères, trusts, filiales) séparant les bénéficiaires effectifs de l’entité exploitante doivent utiliser cette procédure. ### Gestion des erreurs | Code d’erreur | Déclencheur | Réduction des litiges et de la fraude | | --- | --- | --- | | `verification_missing_owners` | Les noms de propriétaires fournis ne correspondent à aucun nom de propriétaire dans le registre CNPJ. | Ajoutez des personnes physiques dont le nom correspond à celui du registre, ou chargez `documents.proof_of_ultimate_beneficial_ownership`. | | `verification_missing_directors` | Les noms de directeurs fournis ne correspondent à aucun nom de directeur dans le registre CNPJ. | Ajoutez des personnes physiques dont le nom correspond à celui du registre, ou chargez `documents.proof_of_registration`. | | `verification_data_not_found` | Aucune donnée sur le propriétaire ou le directeur n’a pu être récupérée à partir du registre CNPJ pour cette entité. | Chargez le fichier `documents.proof_of_ultimate_beneficial_ownership` (pour les propriétaires) ou `documents.proof_of_registration` (pour les directeurs). | | `verification_document_type_not_supported` | Le document de relation chargé est illisible ou du mauvais type. | Chargez un document accepté (contrato social, estatuto social ou modèle d’attestation Stripe). | ## Tests Utilisez les [sandboxes](https://docs.stripe.com/connect/testing.md) pour vérifier que votre intégration gère tous les états KYC/KYB. ### Test : KYC réussi (entrepreneur individuel) ```shell # Create test account curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \ -d "type=custom" \ -d "country=BR" \ -d "capabilities[transfers][requested]=true" # Submit person data (use test CPF: 000.000.001-91 for success) curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=Maria" \ -d "last_name=Silva" \ -d "id_number=000.000.001-91" \ -d "dob[day]=15" \ -d "dob[month]=6" \ -d "dob[year]=1985" \ -d "address[line1]=Rua das Flores, 123" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "address[country]=BR" ``` Pour finaliser le test de succès du KYC, `proof_of_liveness` est toujours requis. Consultez [Gérer les exigences de présence](https://docs.stripe.com/connect/api-onboarding.md?accounts-namespace=v1&liveness=hosted#proof-of-liveness) pour plus de détails. ### Test : CPF inactif (`verification_document_id_number_mismatch`) ```shell curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons/{{PERSON_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "id_number=000.000.002-00" ``` Erreur attendue dans les exigences : ```json { "code": "verification_document_id_number_mismatch", "reason": "", "requirement": "person.id_number" } ``` ### Test : KYB réussi (entité juridique) ```shell # Create test company account curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -H "Stripe-Version: 2026-03-25.dahlia;experimental_onboarding_preview=v2" \ -d "type=custom" \ -d "country=BR" \ -d "business_type=company" \ -d "capabilities[transfers][requested]=true" # Submit company data (use test CNPJ: 00.000.000/0001-91 for success) curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[tax_id]=00.000.000/0001-91" \ -d "company[name]=Empresa Teste Ltda" \ -d "company[address][line1]=Avenida Paulista, 1000" \ -d "company[address][city]=São Paulo" \ -d "company[address][postal_code]=01310-100" \ -d "company[address][country]=BR" \ -d "business_profile[monthly_estimated_revenue][amount]=5000000" \ -d "business_profile[monthly_estimated_revenue][currency]=brl" ``` ### Test : Échec de correspondance CNPJ saisie (`verification_failed_keyed_match`) ```shell curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[tax_id]=00.000.000/0002-00" \ -d "company[name]=Wrong Name Ltda" ``` Erreurs attendues dans les exigences : ```json [ { "code": "verification_failed_keyed_match", "requirement": "company.tax_id" }, { "code": "verification_failed_keyed_match", "requirement": "company.name" }, { "code": "verification_failed_keyed_match", "requirement": "company.address.line1" } ] ``` Résoudre en chargeant un document de vérification de l’entreprise : ```shell # 1. Upload CNPJ certificate PDF curl https://files.stripe.com/v1/files \ -u "{{TEST_SECRET_KEY}}:" \ -F "file=@/path/to/cnpj_certificate.pdf" \ -F "purpose=account_requirement" # 2. Attach to account curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[verification][document][front]={{FILE_ID}}" ``` ### Test : Succès de la procuration par voie programmatique Utilisez `match_representative` comme prénom du représentant, avec un numéro CNPJ non magique. Le fournisseur de tests renvoie une correspondance positive, et aucune attestation n’est nécessaire. ```shell # Create company account curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -d "type=custom" \ -d "country=BR" \ -d "business_type=company" \ -d "company[structure]=private_company" \ -d "company[tax_id]=123456789" \ -d "company[name]=Empresa Teste Ltda" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=São Paulo" \ -d "company[address][state]=SP" \ -d "company[address][postal_code]=01310-100" \ -d "capabilities[card_payments][requested]=true" # Create representative with magic first_name curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=match_representative" \ -d "last_name=Silva" \ -d "id_number=000000000" \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1901" \ -d "address[line1]=address_full_match" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=rep@example.com" \ -d "political_exposure=none" \ -d "relationship[representative]=true" \ -d "relationship[title]=CEO" ``` Résultat attendu : Aucune erreur `verification_failed_representative_authority`. La procuration est acceptée par voie programmatique. Seules les exigences UBO subsistent. ### Test : Échec de la procuration par voie programmatique avec attestation de secours Utilisez `mismatch_representative` comme prénom du représentant. La vérification programmatique échoue et les champs de nom de la personne présentent des erreurs `verification_failed_representative_authority`. ```shell # Create company account curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -d "type=custom" \ -d "country=BR" \ -d "business_type=company" \ -d "company[structure]=private_company" \ -d "company[tax_id]=000000000" \ -d "company[name]=Empresa Teste Ltda" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=São Paulo" \ -d "company[address][state]=SP" \ -d "company[address][postal_code]=01310-100" \ -d "capabilities[card_payments][requested]=true" # Create representative with mismatch magic first_name curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=mismatch_representative" \ -d "last_name=Silva" \ -d "id_number=000000000" \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1901" \ -d "address[line1]=address_full_match" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=rep@example.com" \ -d "political_exposure=none" \ -d "relationship[representative]=true" \ -d "relationship[title]=CEO" ``` Erreurs attendues dans les exigences : ```json [ { "code": "verification_data_not_found", "requirement": "directors.first_name" }, { "code": "verification_data_not_found", "requirement": "directors.last_name" }, { "code": "verification_data_not_found", "requirement": "owners.first_name" }, { "code": "verification_data_not_found", "requirement": "owners.last_name" }, { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.first_name" }, { "code": "verification_failed_representative_authority", "requirement": "people.{{PERSON_ID}}.last_name" } ] ``` Les erreurs `verification_data_not_found` s’affichent car le registre CNPJ n’a renvoyé aucune donnée UBO pour le CNPJ de test. Envoyez la déclaration de représentant pour y remédier : ```shell curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[representative_declaration][date]=1772226508" \ -d "company[representative_declaration][ip]=162.211.155.69" ``` Après cet envoi, les erreurs de procuration disparaissent et seules les exigences UBO subsistent. ### Test : Répondre aux exigences grâce à la correspondance par voie programmatique des propriétaires Utilisez le CNPJ `222221003` pour déclencher l’erreur `verification_missing_owners`. Créez un propriétaire dont le nom correspond à celui du registre CNPJ pour y remédier. Vous pouvez également utiliser l’[API de préremplissage](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) pour récupérer les noms attendus. ```shell # Create company with magic CNPJ for missing owners curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -d "type=custom" \ -d "country=BR" \ -d "business_type=company" \ -d "company[structure]=private_company" \ -d "company[tax_id]=222221003" \ -d "company[name]=Empresa Teste Ltda" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=São Paulo" \ -d "company[address][state]=SP" \ -d "company[address][postal_code]=01310-100" \ -d "capabilities[card_payments][requested]=true" # Create owner with name matching the CNPJ registry curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=match_representative" \ -d "last_name=match_representative" \ -d "id_number=000000000" \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1901" \ -d "address[line1]=address_full_match" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=owner@example.com" \ -d "political_exposure=none" \ -d "relationship[owner]=true" \ -d "relationship[percent_ownership]=26" # Confirm owners provided curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[owners_provided]=true" ``` Résultat attendu : Après la configuration d’`owners_provided`, toutes les exigences relatives aux propriétaires sont satisfaites. Aucune erreur `verification_missing_owners` ne subsiste. ### Test : Répondre aux exigences par le chargement de documents de propriétaires (`verification_missing_owners`) Utilisez le CNPJ `222221003` et créez un propriétaire avec un nom ne correspondant pas. Après l’apparition des erreurs `verification_missing_owners`, chargez un justificatif de bénéficiaire effectif (UBO) pour les résoudre. ```shell # Create non-matching owner curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=Carlos" \ -d "last_name=NonMatch" \ -d "id_number=000000000" \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1901" \ -d "address[line1]=address_full_match" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=carlos@example.com" \ -d "political_exposure=none" \ -d "relationship[owner]=true" # Set owners_provided curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[owners_provided]=true" ``` Erreurs attendues après l’évaluation : ```json [ { "code": "verification_missing_owners", "requirement": "owners.first_name" }, { "code": "verification_missing_owners", "requirement": "owners.last_name" } ] ``` Chargez un document pour y remédier : ```shell # Upload relationship document curl https://files.stripe.com/v1/files \ -u "{{TEST_SECRET_KEY}}:" \ -F "file=@/path/to/ownership_doc.pdf" \ -F "purpose=account_requirement" # Attach to account curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][0]={{FILE_ID}}" ``` ### Test : Répondre aux exigences par le biais de l’association des directeurs Utilisez le CNPJ `222221004` pour déclencher la vérification des directeurs. Créez des personnes physiques en tant que directeurs dont le nom correspond au registre CNPJ. Vous pouvez également utiliser l’[API de préremplissage](https://docs.stripe.com/connect/upcoming-requirements-updates.md#prefill-owner-and-director-information) (Private preview) pour récupérer les noms attendus. ```shell # Create company with magic CNPJ for missing directors curl https://api.stripe.com/v1/accounts \ -u "{{TEST_SECRET_KEY}}:" \ -d "type=custom" \ -d "country=BR" \ -d "business_type=company" \ -d "company[structure]=private_company" \ -d "company[tax_id]=222221004" \ -d "company[name]=Empresa Teste Ltda" \ -d "company[address][line1]=address_full_match" \ -d "company[address][city]=São Paulo" \ -d "company[address][state]=SP" \ -d "company[address][postal_code]=01310-100" \ -d "capabilities[card_payments][requested]=true" # Create director with name matching the CNPJ registry curl https://api.stripe.com/v1/accounts/{{ACCT_ID}}/persons \ -u "{{TEST_SECRET_KEY}}:" \ -d "first_name=match_representative" \ -d "last_name=match_representative" \ -d "id_number=000000000" \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1901" \ -d "address[line1]=address_full_match" \ -d "address[city]=São Paulo" \ -d "address[state]=SP" \ -d "address[postal_code]=01310-100" \ -d "email=director@example.com" \ -d "political_exposure=none" \ -d "relationship[director]=true" # Confirm directors and owners provided curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "company[directors_provided]=true" \ -d "company[owners_provided]=true" ``` Résultat attendu : Après la configuration de `directors_provided` et `owners_provided`, les exigences relatives aux directeurs et aux propriétaires sont satisfaites. ### Test : Résoudre une erreur due à un chargement de document non valide (`verification_document_type_not_supported`) Chargez un document de filiation non valide pour déclencher l’erreur `verification_document_type_not_supported`. Chargez ensuite un document valide pour la résoudre. ```shell # Upload invalid document (use file_relationship_document_invalid magic value) curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_invalid" ``` Erreurs attendues après l’évaluation : ```json [ { "code": "verification_document_type_not_supported", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" }, { "code": "verification_missing_owners", "requirement": "owners.first_name" }, { "code": "verification_missing_owners", "requirement": "owners.last_name" } ] ``` Les erreurs `verification_missing_owners` persistent, car le chargement d’un document non valide ne résout pas la non-correspondance des noms. Chargez un document valide pour y remédier : ```shell curl https://api.stripe.com/v1/accounts/{{ACCT_ID}} \ -u "{{TEST_SECRET_KEY}}:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][0]=file_relationship_document_success" ``` #### Programme - Singapour *Dernière mise à jour le 12 juin 2026* ## Comprendre les modifications apportées aux exigences de vérification Pour nous conformer aux exigences révisées de la Monetary Authority of Singapore (MAS) PSN01, Stripe met à jour ses exigences de vérification « Know Your Business » (KYB) et de vérification des bénéficiaires effectifs. Si vos comptes connectés opèrent à Singapour, il peut être nécessaire de mettre à jour vos flux d’onboarding et de rectification. Le non-respect des mises à jour obligatoires perturbera l’accès de vos comptes connectés aux paiements et aux services financiers. ## Choisir une approche d’intégration Stripe recommande d’utiliser l’inscription des utilisateurs hébergée par Stripe ou intégrée pour collecter les exigences en matière d’entreprise et de vérification d’identité. Ces options nécessitent moins de ressources pour leur mise en œuvre et leur maintenance que l’inscription des utilisateurs via l’API. Le tableau suivant décrit les principales différences : - [Inscription des utilisateurs hébergée par Stripe](https://docs.stripe.com/connect/hosted-onboarding.md): (Recommandé) Envoyez les comptes vers un flux hébergé par Stripe pour soumettre les informations requises. - [Inscription des utilisateurs intégrée](https://docs.stripe.com/connect/embedded-onboarding.md): (Recommandé) Intégrez des composants d’inscription des utilisateurs fournis par Stripe permettant aux comptes de soumettre des informations directement à Stripe depuis votre application. - [API d’inscription des utilisateurs](https://docs.stripe.com/connect/api-onboarding.md): Créez et gérez un flux d’inscription des utilisateurs personnalisé à l’aide des API de Stripe. | | **Inscription des utilisateurs hébergée par Stripe** | **Inscription des utilisateurs intégrée** | **Inscription des utilisateurs via l’API** | | --- | --- | --- | --- | | Idéal pour | Plateformes qui souhaitent que Stripe s’occupe de l’inscription | Plateformes qui souhaitent disposer d’un flux d’intégration intégré à l’application et adapté à leur marque | Des plateformes qui ont besoin d’un contrôle total et qui peuvent le créer et le maintenir. | | Premier effort de mise en œuvre | 3 à 4 semaines d’ingénierie | 3 à 4 semaines d’ingénierie | 30 à 40 semaines d’ingénierie | | Efforts continus pour répondre aux mises à jour des exigences | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite une surveillance proactive des changements à venir, ainsi que des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque changement | | Personnalisation | Interface hébergée par Stripe avec adaptation à la marque de la plateforme | Composant hautement personnalisable qui gère les accès via l’application de la plateforme. | La plateforme conçoit, développe et assure la maintenance de l’interface | | Effort visant à soutenir d’autres pays | Traitement automatique assuré par Stripe | Traitement automatique assuré par Stripe | Nécessite des ressources techniques pour mettre à jour le flux d’inscription des utilisateurs pour chaque pays supplémentaire | En savoir plus sur les [options d’onboarding Connect](https://docs.stripe.com/connect/onboarding.md) et la [migration de vos flux d’onboarding et de rectification basés sur des API vers des flux hébergés ou intégrés par Stripe](https://docs.stripe.com/connect/migrate-from-api-onboarding.md). Les plateformes utilisant l’onboarding hébergé par Stripe ou intégré n’ont pas besoin de modifier leurs intégrations pour ces mises à jour des exigences, car Stripe les gère automatiquement. Les plateformes utilisant l’onboarding via API doivent suivre activement les changements d’exigences et allouer des ressources en ingénierie pour chaque mise à jour. ## Vue d’ensemble de l’intégration API Si votre plateforme utilise l’onboarding via API, mettezà jour votre intégration pour gérer les changements suivants pour les comptes connectés singapouriens : - **KYB : Informations de l’entreprise et vérification de l’entité juridique :** Collectez les [informations de l’entreprise et les champs d’entité juridique](https://docs.stripe.com/connect/upcoming-requirements-updates.md#kyb-business-details-and-legal-entity-verification), y compris la date de constitution, le lieu principal d’activité et le lieu d’administration. - **Vérification de l’adresse enregistrée :** Gérez la [vérification de l’adresse enregistrée](https://docs.stripe.com/connect/upcoming-requirements-updates.md#registered-address-verification) lorsque Stripe ne parvient pas à la vérifier automatiquement. - **Vérification du document de constitution :** collectez un [document de constitution](https://docs.stripe.com/connect/upcoming-requirements-updates.md#constitution-document-verification) pour les entreprises, les sociétés de personnes et les organismes à but non lucratif, le cas échéant. - **Vérification des bénéficiaires effectifs et des relations :** Collectez les [informations de vérification des bénéficiaires effectifs et des relations](https://docs.stripe.com/connect/upcoming-requirements-updates.md#ubo-and-relationship-verification) pour les propriétaires, les dirigeants et les cadres dirigeants, le cas échéant. Avant l’application de ces exigences, vous pouvez surveiller les [future_requirements](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements) pour obtenir un aperçu des obligations à venir. Une fois les exigences devenues actives, surveillez le hachage des `requirements` du compte et écoutez le webhook `account.updated` pour détecter les changements d’exigences. Assurez-vous que votre intégration est configurée pour [gérer les mises à jour de vérification](https://docs.stripe.com/connect/handle-verification-updates.md) lors de l’onboarding de nouveaux comptes et de la collecte d’informations mises à jour auprès des comptes existants. ## Calendrier des exigences Le calendrier suivant explique les étapes clés de ces changements. Mettez à jour et testez votre intégration rapidement pour éviter tout problème lorsque les nouvelles exigences entreront en vigueur. | Date | Étape | Description | | --- | --- | --- | | Juillet 2026 | Commencez à planifier votre intégration. | Vérifiez ce guide et les changements pour commencer à planifier les mises à jour de votre intégration. | | Septembre 2026 | Début du déploiement de `future_requirements` (onboarding via l’API) | Pour les plateformes utilisant l’onboarding API, Stripe commence à ajouter les nouvelles exigences à `future_requirements` pour les comptes nouveaux et existants. | | 1 novembre 2026 | Début du déploiement des nouvelles exigences | Assurez-vous que votre flux d’onboarding mis à jour est prêt à collecter les nouvelles exigences. Votre flux mis à jour doit être opérationnel d’ici le 1er novembre, date à laquelle Stripe commencera à déployer les nouvelles exigences. Toutes les nouvelles exigences seront actives d’ici la fin du mois de novembre. | ## KYB : Informations de l’entreprise et vérification de l’entité juridique Stripe met à jour les exigences KYB pour les comptes de Singapour qui ne sont pas des [entrepreneurs individuels](https://docs.stripe.com/api/accounts/object.md#account_object-business_type). Ces exigences incluent de nouveaux champs [company](https://docs.stripe.com/api/accounts/object.md#account_object-company) et la vérification des informations d’entreprise enregistrées. ### Champs obligatoires | Champ | Type | Description | | --- | --- | --- | | `company.registration_date` (New) | Objet contenant `day`, `month` et `year` | Date de constitution de l’entreprise. | | `company.address` | Objet [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Adresse enregistrée de l’entreprise (nouvelle vérification d’une exigence existante) | | `company.principal_place_of_business` (New) | Objet [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Emplacement principal où l’entreprise exerce ses activités. | | `company.administrative_address` (New) | Objet [Address](https://docs.stripe.com/api/accounts/object.md#account_object-company-address) | Emplacement où l’entreprise est administrée. | Si les adresses sont identiques, soumettez les mêmes valeurs d’adresse pour chacune d’elles. N’en omettez aucune. Créez un compte d’entreprise situé à Singapour. Utilisez l’ID du compte renvoyé dans les exemples suivants. ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d country=SG \ -d type=custom \ -d business_type=company \ -d "capabilities[card_payments][requested]=true" \ -d "capabilities[transfers][requested]=true" ``` ### Réponse initiale aux exigences Le hachage `requirements` du nouveau compte inclut des entrées telles que : ```json { "currently_due": [ "company.registration_date.day", "company.registration_date.month", "company.registration_date.year", "company.address.line1", "company.address.postal_code", "company.principal_place_of_business.line1", "company.principal_place_of_business.postal_code", "company.administrative_address.line1", "company.administrative_address.postal_code" ] } ``` Les champs de `currently_due` y restent jusqu’à ce que vous leur attribuiez des valeurs. ### Collecter les informations de l’entreprise L’exemple suivant montre comment envoyer les nouvelles informations exigées : ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[registration_date][day]=20" \ -d "company[registration_date][month]=3" \ -d "company[registration_date][year]=2015" \ --data-urlencode "company[address][line1]=60 Anson Road #05-01" \ -d "company[address][postal_code]=079914" \ --data-urlencode "company[principal_place_of_business][line1]=60 Anson Road #05-01" \ -d "company[principal_place_of_business][postal_code]=079914" \ --data-urlencode "company[administrative_address][line1]=1 Raffles Place #30-01" \ -d "company[administrative_address][postal_code]=048616" ``` ### Vérification de l’adresse enregistrée L’adresse enregistrée (`company.address`) est déjà obligatoire pour les comptes situés à Singapour. Cette mise à jour ajoute la vérification de l’adresse enregistrée dans le cadre de la vérification de l’entité juridique. Si Stripe ne parvient pas à vérifier l’adresse enregistrée du compte, vérifiez le hachage `requirements` de l’objet Account. Il indique quels champs d’adresse n’ont pas pu être vérifiés, répertorie `company.verification.document` comme solution alternative pour satisfaire l’exigence et inclut des détails dans le tableau [`errors`](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) : ```json { "currently_due": [ "company.address.line1", "company.address.postal_code" ], "alternatives": [ { "original_fields_due": [ "company.address.line1", "company.address.postal_code" ], "alternative_fields_due": [ "company.verification.document" ] } ], "errors": [ { "code": "verification_failed_keyed_match", "reason": "We couldn't verify the account's information.", "requirement": "company.address.line1" }, { "code": "verification_failed_keyed_match", "reason": "We couldn't verify the account's information.", "requirement": "company.address.postal_code" } ] } ``` Pour satisfaire cette exigence, collectez un document de vérification d’entreprise acceptable auprès du compte connecté. - Pour les entreprises constituées localement : un profil [BizFile](https://www.bizfile.gov.sg/) de l’[Accounting and Corporate Regulatory Authority (ACRA)](https://www.acra.gov.sg/). - Pour les sociétés : un certificat d’immatriculation ou une déclaration annuelle déposée auprès du [Registry of Societies (ROS)](https://www.mha.gov.sg/what-we-do/registry-of-societies). - Pour les entités liées au [Majlis Ugama Islam Singapura (MUIS)](https://www.muis.gov.sg/) : une lettre du MUIS contenant l’adresse enregistrée. Chargez un document de vérification d’entreprise. ```bash curl https://files.stripe.com/v1/files \ -u <>: \ -F "file"="@/path/to/company_verification_document.pdf" \ -F "purpose"="account_requirement" ``` Joignez le document de vérification d’entreprise au compte. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[verification][document][front]={{FILE_ID}}" ``` ## Vérification des statuts de constitution Les entreprises, les associations à but non lucratif et les sociétés de personnes doivent satisfaire l’exigence relative aux statuts de constitution. Cette exigence ne s’applique pas aux entreprises individuelles ni aux entrepreneurs individuels. | Classification du compte | Valeurs de l’API | Exigence relative aux statuts de constitution | | --- | --- | --- | | Entreprise privée | `business_type=company` with `company.structure=private_company` | Obligatoire, sauf si l’ACRA confirme que le compte utilise un Model Constitution. | | Société par actions | `business_type=company` with `company.structure=public_company` | Obligatoire, sauf si l’ACRA confirme que le compte utilise un Model Constitution. | | Association à but non lucratif | `business_type=non_profit` | Obligatoire lorsqu’elle est renvoyée dans les exigences du compte. | | Société de personnes | `business_type=company` avec `company.structure=private_partnership` | Obligatoire lorsqu’elle est renvoyée dans les exigences du compte. | | Entreprise individuelle ou entrepreneur individuel | `business_type=company` avec `company.structure=sole_proprietorship`, ou `business_type=individual` | Non requis. | Si l’ACRA confirme que l’entité a adopté un [Model Constitution](https://sso.agc.gov.sg/SL/CoA1967-S833-2015?DocDate=20151231), l’exigence relative aux statuts de constitution est automatiquement satisfaite et aucun document n’a besoin d’être chargé. Dans le cas contraire, vous devez collecter le document et l’envoyer en tant que `documents.company_memorandum_of_association.files`. Stripe examine le document afin d’identifier toute personne exerçant un contrôle, une autorité ou des pouvoirs importants sur l’entité. Vous devez ajouter ces personnes au compte en tant que bénéficiaires effectifs pour satisfaire les exigences. | Champ | Type | | --- | --- | | `documents.company_memorandum_of_association.files` (New) | Chargement de fichier. | ### Réponse initiale aux exigences Lorsqu’un document de constitution est exigé, le hachage `requirements` du compte inclut : ```json { "currently_due": [ "documents.company_memorandum_of_association.files" ] } ``` ### Charger les statuts de constitution L’exemple suivant montre comment charger des statuts personnalisés : ```bash curl https://files.stripe.com/v1/files \ -u <>: \ -F "file"="@/path/to/constitution.pdf" \ -F "purpose"="account_requirement" ``` Joignez les statuts au compte. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}" ``` ### Gestion des erreurs Gérez les [erreurs standards de vérification de documents](https://docs.stripe.com/connect/handling-api-verification.md#handle-document-verification-problems) pour le chargement de statuts de constitution. ## Vérification des bénéficiaires effectifs et des relations Les exigences relatives aux bénéficiaires effectifs de Singapour dépendent du type de l’entreprise du compte connecté. 1. Les entreprises privées doivent identifier et ajouter des propriétaires. Si Stripe n’identifie aucune personne physique détenant au moins 25 % de l’entreprise, Stripe considère les directeurs de l’entreprise comme des bénéficiaires effectifs. 2. Les associations doivent identifier et ajouter des directeurs et des cadres dirigeants. 3. Certaines entités peuvent prétendre à une exemption de déclaration des bénéficiaires effectifs, telles que les institutions financières éligibles ou les entités détenues à 75 % ou plus par des sociétés holding éligibles. ### Champs obligatoires | Champ API Person | Description | | --- | --- | | `person.first_name`, `person.last_name` | Dénomination sociale. | | `person.full_name_aliases` | [Autres noms](https://docs.stripe.com/api/persons/object.md#person_object-full_name_aliases). | | `person.id_number` | Numéro d’identification national (NRIC ou FIN pour les résidents de Singapour). | | `person.nationality` (New) | Code pays à deux lettres ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). | | `person.dob` (New) | [Date de naissance](https://docs.stripe.com/api/persons/object.md#person_object-dob). | | `person.address` (New) | [Adresse résidentielle](https://docs.stripe.com/api/persons/object.md#person_object-address). | Pour les propriétaires et les directeurs de bénéficiaires effectifs, Stripe vérifie la dénomination sociale et le numéro d’identification. Stripe collecte uniquement les noms, la nationalité, la date de naissance et l’adresse résidentielle pour l’actualisation des exigences d’inscription (ORR) de Singapour. Ces champs ne déclenchent pas de vérification distincte. Les champs obligatoires concernant les personnes utilisent des chemins avec le préfixe du rôle dans le hachage `requirements` du compte : ```json { "currently_due": [ "company.owners_provided", "company.directors_provided", "owners.first_name", "owners.last_name", "owners.id_number", "owners.full_name_aliases", "owners.nationality", "owners.dob.day", "owners.dob.month", "owners.dob.year", "owners.address.line1", "owners.address.postal_code", "directors.first_name", "directors.last_name", "directors.id_number", "directors.full_name_aliases", "directors.nationality", "directors.dob.day", "directors.dob.month", "directors.dob.year", "directors.address.line1", "directors.address.postal_code" ] } ``` En fonction de l’état du compte, certains champs peuvent déjà être renseignés ou préremplis. Envoyez les champs qui apparaissent dans les tableaux `requirements.currently_due`, `requirements.eventually_due` ou `requirements.past_due` du compte. ### Envoyer les champs de bénéficiaires effectifs Si Stripe a déjà créé ou prérempli l’objet [Person](https://docs.stripe.com/api/persons/object.md), mettez à jour cet objet [Person](https://docs.stripe.com/api/persons/object.md) avec les champs manquants. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \ -u "<>:" \ -d nationality=SG \ -d "dob[day]=15" \ -d "dob[month]=6" \ -d "dob[year]=1985" \ --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \ -d "address[city]=Singapore" \ -d "address[postal_code]=018956" \ -d "address[country]=SG" ``` Si vous créez un nouvel objet [Person](https://docs.stripe.com/api/persons/object.md) pour un bénéficiaire effectif, incluez la relation de la personne, sa dénomination sociale, son numéro d’identification, ses noms, sa nationalité, sa date de naissance et son adresse résidentielle. #### Propriétaires en tant que bénéficiaires effectifs pour les entreprises Pour les entreprises privées, Stripe tente d’identifier les personnes physiques qui détiennent au moins 25 % de l’entreprise à partir des registres gouvernementaux. Lorsque Stripe identifie des propriétaires, répertoriez les personnes du compte pour trouver les enregistrements de propriétaires préremplis. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" ``` Mettez à jour chaque propriétaire avec les champs manquants renvoyés dans les exigences du compte. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons/{{PERSON_ID}} \ -u "<>:" \ -d nationality=SG \ -d "dob[day]=15" \ -d "dob[month]=6" \ -d "dob[year]=1985" \ --data-urlencode "address[line1]=10 Bayfront Avenue #01-01" \ -d "address[city]=Singapore" \ -d "address[postal_code]=018956" \ -d "address[country]=SG" ``` Une fois tous les propriétaires obligatoires ajoutés ou mis à jour, définissez `company.owners_provided=true` si ce champ apparaît dans les exigences du compte. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[owners_provided]=true" ``` #### Directeurs en tant que bénéficiaires effectifs pour les entreprises Si Stripe n’identifie aucune personne physique détenant au moins 25 % d’une entreprise privée, Stripe peut considérer les directeurs figurant dans les registres gouvernementaux comme des bénéficiaires effectifs. Dans ce cas, les exigences du compte incluent des champs préfixés au nom du directeur. ```json { "currently_due": [ "company.directors_provided", "directors.first_name", "directors.last_name", "directors.id_number", "directors.full_name_aliases", "directors.nationality", "directors.dob.day", "directors.dob.month", "directors.dob.year", "directors.address.line1", "directors.address.postal_code" ] } ``` Créez un objet [Person](https://docs.stripe.com/api/persons/object.md) avec la relation de directeur pour chaque directeur obligatoire. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d "relationship[director]=true" \ -d "first_name=Kai Ming" \ -d last_name=Wong \ -d id_number=S0000001A \ -d nationality=SG \ -d "dob[day]=20" \ -d "dob[month]=3" \ -d "dob[year]=1980" \ --data-urlencode "address[line1]=1 Raffles Place #30-01" \ -d "address[city]=Singapore" \ -d "address[postal_code]=048616" \ -d "address[country]=SG" ``` Une fois tous les directeurs obligatoires ajoutés, définissez `company.directors_provided=true`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[directors_provided]=true" ``` Stripe peut également exiger une déclaration de mandat d’administrateur pour confirmer que la liste des directeurs sur le compte est à jour et complète. Cette exigence peut apparaître lorsque Stripe doit vérifier les directeurs figurant sur le compte par rapport aux registres gouvernementaux, notamment lorsqu’elle identifie des directeurs manquants : ```json { "currently_due": [ "company.directorship_declaration.date", "company.directorship_declaration.ip" ] } ``` Si ces champs apparaissent dans les exigences du compte, envoyez la déclaration de mandat d’administrateur. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[directorship_declaration][date]=1719360000" \ -d "company[directorship_declaration][ip]=203.0.113.42" ``` #### Directeurs et cadres dirigeants en tant que bénéficiaires effectifs pour les associations Pour les associations, collectez les informations sur les bénéficiaires effectifs concernant les directeurs et les cadres dirigeants, et non les propriétaires. Pour les associations caritatives enregistrées à Singapour, Stripe tente d’identifier ces personnes à partir des registres gouvernementaux disponibles. Pour les autres associations, votre plateforme doit ajouter chaque directeur ou cadre dirigeant obligatoire en tant qu’objet [Person](https://docs.stripe.com/api/persons/object.md) sur le compte. Les exigences du compte utilisent des chemins avec le préfixe de directeur : ```json { "currently_due": [ "company.directors_provided", "directors.first_name", "directors.last_name", "directors.id_number", "directors.full_name_aliases", "directors.nationality", "directors.dob.day", "directors.dob.month", "directors.dob.year", "directors.address.line1", "directors.address.postal_code" ] } ``` Créez un objet [Person](https://docs.stripe.com/api/persons/object.md) avec la relation de directeur pour chaque directeur ou cadre dirigeant. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d "relationship[director]=true" \ -d first_name=Aisha \ -d "last_name=Binte Hassan" \ -d id_number=S0000002B \ -d nationality=SG \ -d "dob[day]=10" \ -d "dob[month]=9" \ -d "dob[year]=1975" \ --data-urlencode "address[line1]=5 Shenton Way #10-01" \ -d "address[city]=Singapore" \ -d "address[postal_code]=068808" \ -d "address[country]=SG" ``` Une fois tous les directeurs obligatoires ou dirigeants principaux ajoutés, définissez `company.directors_provided=true`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[directors_provided]=true" ``` ### Document de preuve de l’identité du bénéficiaire effectif comme solution de secours Si Stripe ne parvient pas à déterminer les bénéficiaires effectifs du compte, ce dernier doit fournir un [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship#select-a-country-to-view-its-requirements). Ce document doit identifier les bénéficiaires effectifs des comptes et inclure une preuve de propriété pour toute société holding qui détient 25 % ou plus du compte. Les exigences du compte incluent : ```json { "currently_due": [ "documents.proof_of_ultimate_beneficial_ownership.files" ] } ``` Chargez le [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship#select-a-country-to-view-its-requirements). ```bash curl https://files.stripe.com/v1/files \ -u <>: \ -F "file"="@/path/to/proof_of_ubo.pdf" \ -F "purpose"="account_requirement" ``` Joignez le document au compte. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][]={{FILE_ID}}" ``` Une fois le document examiné, ajoutez tous les bénéficiaires effectifs identifiés dans le document en tant qu’objets [Person](https://docs.stripe.com/api/persons/object.md) sur le compte. Utilisez la relation renvoyée par les exigences du compte, telle que `relationship.owner=true` ou `relationship.director=true`, et complétez les champs de propriétaire ou de directeur renvoyés. ### Exemption UBO Dans certains cas, une entité commerciale peut prétendre à une exemption relative à la propriété. Si le compte est éligible, indiquez `company.ownership_exemption_reason`. | Motif de l’exemption | Quand l’utiliser | | --- | --- | | `qualifies_as_financial_institution` | À utiliser lorsque l’entité apparaît dans le [Répertoire des institutions financières de la MAS](https://eservices.mas.gov.sg/fid). | | `qualified_entity_exceeds_ownership_threshold` | À utiliser lorsque l’entité est détenue à 75 % ou plus par des sociétés holding éligibles, telles que des entités gouvernementales singapouriennes, des sociétés d’investissement ou de financement, ou des sociétés cotées en bourse. | ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[ownership_exemption_reason]=qualifies_as_financial_institution" ``` Si Stripe rejette le motif d’exemption, le compte reçoit une erreur `verification_rejected_ownership_exemption_reason`. Le compte doit alors fournir les informations de propriété obligatoires ou soumettre un [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship). ### Gestion des erreurs | Code d’erreur | Cas d’apparition | Réduction des litiges et de la fraude | | --- | --- | --- | | `verification_missing_owners` | Stripe a identifié des bénéficiaires effectifs manquants. | Ajoutez les propriétaires obligatoires, ou fournissez un [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship) sur demande. | | `verification_missing_directors` | Stripe a identifié des directeurs manquants. | Ajoutez les directeurs obligatoires et définissez `company.directors_provided=true`. | | `verification_directors_mismatch` | Les informations du directeur sur le compte ne correspondent pas aux registres officiels. | Ajoutez ou mettez à jour les directeurs requis pour que le compte corresponde aux registres officiels, puis définissez `company.directors_provided=true`. | | `verification_document_directors_mismatch` | Les informations d’un directeur dans un document envoyé ne correspondent pas aux informations du compte. | Ajoutez ou mettez à jour les directeurs nécessaires, ou fournissez des documents justificatifs corrigés. | | `verification_requires_additional_proof_of_registration` | Stripe a besoin de plus d’informations sur la structure de propriété du compte. | Fournissez un [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship) contenant les informations de propriété obligatoires. | | `verification_rejected_ownership_exemption_reason` | Stripe a rejeté le motif d’exemption de propriété soumis. | Ajoutez les UBO obligatoires ou fournissez le [justificatif de propriété des bénéficiaires effectifs finaux](https://docs.stripe.com/acceptable-verification-documents.md?country=SG&document-type=relationship) obligatoire. | ## Tester votre intégration Créez ou mettez à jour un compte connecté singapourien dans un environnement de test et utilisez un [UEN d’entreprise de test singapourienne](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#sample-companies-singapore) comme `company.tax_id`. Utilisez ces exemples pour vérifier que votre intégration gère les états de vérification du KYB, du document constitutif et du bénéficiaire effectif à Singapour, puis examinez les `requirements` du compte. Les résultats de vérification peuvent se mettre à jour de manière asynchrone. Après avoir envoyé les données de test, récupérez le compte ou écoutez un événement `account.updated`, puis examinez ses `requirements`. ### Test des propriétaires manquants Utilisez [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) pour tester les informations de propriétaire manquantes. 1. Définissez `company.owners_provided=true`. 2. N’ajoutez pas les objets [Person](https://docs.stripe.com/api/persons/object.md) obligatoires pour le propriétaire. Cela génère des exigences pour le propriétaire telles que `owners.first_name`, `owners.last_name` et `company.owners_provided`, et renvoie l’erreur `verification_missing_owners`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100002M" \ -d "company[owners_provided]=true" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "company.owners_provided", "owners.first_name", "owners.last_name" ], "errors": [ { "code": "verification_missing_owners", "requirement": "owners.first_name" }, { "code": "verification_missing_owners", "requirement": "owners.last_name" } ] } ``` ### Test d’incohérence des propriétaires Utilisez [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) pour tester l’envoi d’un propriétaire qui ne correspond pas aux données de relation de l’environnement de test. 1. Créez un propriétaire qui ne correspond pas. 2. Définissez `company.owners_provided=true`. Stripe renvoie `verification_missing_owners` car elle ne peut pas faire correspondre le propriétaire envoyés aux propriétaires du profil de test. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100002M" ``` ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d first_name=Mismatch \ -d last_name=Owner \ -d id_number=S9999999Z \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1990" \ -d "address[line1]=10 ANSON ROAD" \ -d "address[city]=Singapore" \ -d "address[postal_code]=079903" \ -d "address[country]=SG" \ -d "relationship[owner]=true" \ -d "relationship[percent_ownership]=30" ``` ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[owners_provided]=true" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "owners.first_name", "owners.last_name" ], "errors": [ { "code": "verification_missing_owners", "requirement": "owners.first_name" }, { "code": "verification_missing_owners", "requirement": "owners.last_name" } ] } ``` ### Test des exigences relatives aux directeurs d’organisations à but non lucratif Utilisez [R01SS0001A](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-r01ss0001a) pour tester les exigences spécifiques au directeur pour une organisation à but non lucratif. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=non_profit \ -d "company[tax_id]=R01SS0001A" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "company.directors_provided", "directors.first_name", "directors.last_name" ], "errors": [] } ``` ### Test des directeurs manquants Utilisez [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) pour tester l’absence des directeurs requis. 1. Définissez `company.directors_provided=true`. 2. N’ajoutez pas les objets [Person](https://docs.stripe.com/api/persons/object.md) de directeur requis. Cela génère des exigences pour le directeur telles que `directors.first_name`, `directors.last_name` et `company.directors_provided`, et renvoie l’erreur `verification_missing_directors`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100002M" \ -d "company[directors_provided]=true" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "company.directors_provided", "directors.first_name", "directors.last_name" ], "errors": [ { "code": "verification_missing_directors", "requirement": "directors.first_name" }, { "code": "verification_missing_directors", "requirement": "directors.last_name" } ] } ``` ### Test d’incohérence des directeurs Utilisez [180100002M](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100002m) pour tester une incohérence de directeur. 1. Créez trois objets [Person](https://docs.stripe.com/api/persons/object.md) de directeur qui ne correspondent pas aux trois directeurs du profil de test. 2. Définissez `company.directors_provided=true`. Cela renvoie `verification_directors_mismatch`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100002M" ``` Créez le premier directeur ne correspondant pas, puis répétez cette requête deux fois de plus avec des informations de directeur différentes ne correspondant pas. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}}/persons \ -u "<>:" \ -d first_name=Mismatch \ -d last_name=Director \ -d id_number=S8888888Z \ -d "dob[day]=1" \ -d "dob[month]=1" \ -d "dob[year]=1990" \ -d "address[line1]=10 ANSON ROAD" \ -d "address[city]=Singapore" \ -d "address[postal_code]=079903" \ -d "address[country]=SG" \ -d "relationship[director]=true" ``` ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "company[directors_provided]=true" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "directors.first_name", "directors.last_name" ], "errors": [ { "code": "verification_directors_mismatch", "requirement": "directors.first_name" }, { "code": "verification_directors_mismatch", "requirement": "directors.last_name" } ] } ``` ### Test de l’absence d’actionnaires majoritaires Utilisez [180100001C](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100001c) pour tester une entreprise où aucun actionnaire ne détient 25 % ou plus de l’entreprise. 1. Envoyez l’UEN. 2. Définissez `company.owners_provided=true` sans ajouter d’objets [Person](https://docs.stripe.com/api/persons/object.md) de propriétaire. Stripe renvoie `verification_missing_directors` car elle exige des directeurs comme bénéficiaires effectifs lorsqu’aucun propriétaire applicable n’existe. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100001C" \ -d "company[owners_provided]=true" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "company.directors_provided", "directors.first_name", "directors.last_name" ], "errors": [ { "code": "verification_missing_directors" } ] } ``` ### Test de propriété complexe ou solution de repli pour les documents Utilisez [180100005E](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100005e) pour simuler une structure de propriété comprenant une entité juridique intermédiaire. Cela génère l’exigence `documents.proof_of_ultimate_beneficial_ownership.files` et l’erreur `verification_requires_additional_proof_of_registration`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100005E" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "documents.proof_of_ultimate_beneficial_ownership.files" ], "errors": [ { "code": "verification_requires_additional_proof_of_registration", "requirement": "documents.proof_of_ultimate_beneficial_ownership.files" } ] } ``` Résolvez le problème en chargeant un document de preuve de bénéficiaire effectif et en le joignant au compte : ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "documents[proof_of_ultimate_beneficial_ownership][files][]={{FILE_ID}}" ``` ### Test de l’exigence de document constitutif Utilisez [180100013R](https://docs.stripe.com/connect/testing.md?accounts-namespace=v1#singapore-180100013r) pour simuler une entreprise privée n’utilisant pas de constitution type. Cela génère l’exigence `documents.company_memorandum_of_association.files` et l’erreur `verification_failed_other`. ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d business_type=company \ -d "company[structure]=private_company" \ -d "company[tax_id]=180100013R" ``` Exigences et erreurs attendues : ```json { "currently_due": [ "documents.company_memorandum_of_association.files" ], "errors": [ { "code": "verification_failed_other", "requirement": "documents.company_memorandum_of_association.files" } ] } ``` Résolvez le problème en chargeant un document constitutif et en l’associant au compte : ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \ -u "<>:" \ -d "documents[company_memorandum_of_association][files][]={{FILE_ID}}" ``` ## Obtenir de l’aide - Pour toute question sur ces modifications d’exigences, contactez le [service de support Stripe](https://support.stripe.com). - Pour les questions sur l’intégration de l’API, consultez la [documentation Connect](https://docs.stripe.com/connect.md). - Pour surveiller l’état de conformité de vos comptes, utilisez la page [Comptes à vérifier](https://dashboard.stripe.com/connect/accounts/overview) dans votre Dashboard. #### Programme - US *Dernière mise à jour : 23 septembre 2025* ## Ce qui change - **Informations requises collectées auprès des comptes connectés :** nous avons modifié les informations demandées aux entreprises individuelles ainsi qu’aux ONG et aux sociétés unipersonnelles à responsabilité limitée, et simplifié la procédure d’obtention du consentement du responsable légal pour les comptes ouverts par des mineurs. Par ailleurs, l’adresse e-mail de la personne qui agit en tant que représentant du compte est désormais requise pour tous les types d’entités juridiques, et une modification a été introduite concernant les entités publiques et les sociétés publiques. - **Procédure de vérification des informations sur l’entreprise et nouvelles réponses de vérification détaillées :** nous avons modifié nos critères de validation des informations des entreprises et introduit de nouveaux codes d’erreur en cas d’informations non acceptées ou non vérifiables. - **Seuil à partir duquel les numéros fiscaux (TIN) sont soumis à vérification :** pour les comptes connectés Custom et Express, nous avons baissé le seuil du volume de paiements à partir duquel nous vérifions les numéros fiscaux afin de nous aligner sur les seuils actuels des déclarations fiscales fédérales. - **Mode de remplissage automatique des libellés de relevé bancaire et des préfixes de libellés de relevé bancaire :** si aucun libellé de relevé bancaire n’est fourni, la logique de préremplissage utilise désormais le nom du profil de l’entreprise, son URL d’entreprise ou le nom de l’entité juridique du compte connecté. Ces changements affecteront tous les utilisateurs établis aux États-Unis qui utilisent la fonctionnalité [card_payments](https://docs.stripe.com/api/accounts/object.md#account_object-capabilities-card_payments). ## Informations requises collectées auprès des comptes connectés Nouvelles informations collectées et nouveaux champs ajoutés à l’API : - Les entreprises dont le paramètre [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) a la valeur `sole_proprietorship` et `single_member_llc` doivent fournir leur adresse (« adresse de l’entreprise »). Si l’adresse de l’entreprise est identique à l’adresse privée de son représentant, vos comptes connectés peuvent indiquer les mêmes valeurs pour les deux. - Les entités juridiques dont le paramètre [company.structure](https://docs.stripe.com/api/accounts/create.md#create_account-company-structure) a la valeur `government_instrumentality`, `tax_exempt_government_instrumentality`, `governmental_unit`, `public_company`, `public_corporation` et `public_partnership` doivent fournir l’adresse e-mail du représentant du compte. Cette exigence s’applique désormais à tous les types d’entités juridiques. - Afin de simplifier la procédure d’obtention du consentement du responsable légal pour les comptes ouverts par des mineurs, l’[API Persons](https://docs.stripe.com/api/persons.md) propose à présent un nouveau type de relation `legal_guardian` ainsi qu’un champ `additional_tos_acceptances` pour enregistrer l’acceptation des Conditions d’utilisation du service Stripe par le responsable légal. Lorsque la date de naissance du représentant du compte indique qu’il s’agit d’un mineur, une exigence de compte est déclenchée pour ajouter un `legal_guardian` avant que le compte puisse être activé. ## Procédure de vérification des informations sur l’entreprise et nouvelles réponses de vérification détaillées ### Mises à jour des informations que nous collectons déjà Vos comptes connectés seront invités à nous communiquer les informations suivantes : | Champ | Mise à jour des exigences | Autres considérations | | --- | --- | --- | | Numéro de sécurité sociale (SSN) ou numéro individuel de contribuable (ITIN) collecté auprès des représentants résidant aux États-Unis | Les quatre derniers chiffres sont requis lors de l’inscription pour tous les types de comptes (y compris les comptes connectés Custom et Express). | Comportement actuel pour les comptes connectés standard | | SSN ou ITIN collectés auprès des propriétaires résidant aux États-Unis. | Les quatre derniers chiffres sont requis dès que le volume de paiements dépasse 500 000 USD pour tous les types de comptes (y compris les comptes connectés Custom et Express) | Voir *SSN Full 9 Digit Note* ci-dessous | | Pièce d’identité nationale ou document de vérification collecté auprès des représentants ne résidant pas aux États-Unis. | Pièce d’identité nationale ou document de vérification requis lors de l’inscription pour tous les types de comptes (y compris les comptes connectés Custom et Express). | Ne s’applique qu’aux représentants ne résidant pas aux États-Unis. | | Pièce d’identité nationale ou document de vérification collecté auprès des propriétaires ne résidant pas aux États-Unis. | Une pièce d’identité nationale ou un document de vérification est requis dès que le volume de paiements dépasse 500 000 USD pour tous les types de comptes (y compris les comptes connectés Custom et Express) | Ne s’applique qu’aux propriétaires ne résidant pas aux États-Unis. | > Si nous ne pouvons pas obtenir par voie programmatique le numéro SSN complet à neuf chiffres d’un individu associé à votre compte à l’aide des informations déjà fournies, vous devez fournir ce numéro complet. ### Nouveaux codes d’erreur de vérification Lorsque nous ne sommes pas en mesure de vérifier les informations fournies par vos comptes connectés, nous faisons apparaître les réponses de vérification détaillées sous la forme de nouveaux codes d’erreur dans le tableau [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors). [Consultez notre documentation](https://docs.stripe.com/connect/handling-api-verification.md#validation-and-verification-errors). #### Erreurs synchrones | Champ | Nouveau code d’erreur | Message d’erreur | | --- | --- | --- | | Description du produit | `invalid_product_description_length` | La description de votre produit doit comporter au moins 10 caractères. | | Description du produit | `invalid_product_description_url_match` | La description de votre produit doit être différente de votre URL. | | Libellé de relevé bancaire (complet) | `invalid_statement_descriptor_length` | Votre libellé de relevé bancaire doit comporter entre 5 et 22 caractères. | | Libellé de relevé bancaire (complet) | `invalid_statement_descriptor_business_mismatch` | Votre libellé de relevé doit correspondre au nom de l’entreprise, au nom de l’entité juridique ou à son URL. | | Libellé de relevé bancaire (complet) | `invalid_statement_descriptor_denylisted` | Les libellés de relevé bancaire génériques ou courants ne sont pas pris en charge. | | Libellé de relevé bancaire (court) | `invalid_statement_descriptor_prefix_mismatch` | Le préfixe de libellé de relevé bancaire doit correspondre à votre libellé de relevé bancaire, au nom de votre entreprise, à la dénomination de votre entité juridique ou à votre URL. | | Libellé de relevé bancaire (court) | `invalid_statement_descriptor_prefix_denylisted` | Les préfixes de libellés de relevé bancaire génériques ou courants ne sont pas pris en charge. | | Nom de l’entité juridique | `invalid_company_name_denylisted` | Les noms d’entreprises génériques ou courants ne sont pas pris en charge. | | Nom de profil de l’entreprise (nom commercial) | `invalid_business_profile_name_denylisted` | Les noms d’entreprises génériques ou courants ne sont pas pris en charge. | | Nom de profil de l’entreprise (nom commercial) | `invalid_business_profile_name` | Les noms de profil d’entreprise doivent être composés de mots reconnaissables. | | Date de naissance de la personne | `invalid_dob_age_under_minimum` | La personne doit être âgée d’au moins 13 ans. | | Date de naissance de la personne | `invalid_dob_age_over_maximum` | La date de naissance doit se situer dans les 120 dernières années. | | Numéro de téléphone de la personne | `invalid_phone_number` | Le numéro de téléphone semble incorrect. Assurez-vous qu’il est au bon format. | | Numéro de téléphone de l’entité juridique | `invalid_phone_number` | Le numéro de téléphone semble incorrect. Assurez-vous qu’il est au bon format. | | Numéro fiscal de l’entreprise | `invalid_tax_id_format` | Les numéros fiscaux doivent être un ensemble unique de 9 chiffres sans tiret ni caractères spéciaux. | | URL | `invalid_url_format` | Format du type https://example.com | | URL | `invalid_url_denylisted` | Les URL d’entreprise génériques ne sont pas prises en charge. | #### Erreurs asynchrones | Champ | Nouveau code d’erreur | Message d’erreur | | --- | --- | --- | | URL | `invalid_url_website_inaccessible` | Cette URL est inaccessible. Assurez-vous qu’elle est disponible et que vous l’avez correctement saisie, ou fournissez-en une autre. | | URL | `invalid_url_website_business_information_mismatch` | Les informations sur l’entreprise mentionnées sur votre site Web doivent correspondre à celles fournies à Stripe. | | URL | `invalid_url_website_incomplete` | Certaines informations obligatoires ne figurent pas sur votre site Web. En savoir plus sur les exigences relatives aux sites Web | | URL | `invalid_url_website_other` | Nous n’avons pas pu vérifier votre entreprise à l’aide de l’URL que vous nous avez fournie. Assurez-vous que vous l’avez correctement saisie ou fournissez-en une autre. | | URL | `invalid_url_web_presence_detected` | Si vous vendez des produits ou des services via un site Web, une application, une page de réseau social ou un profil en ligne, vous devez fournir une URL pour votre entreprise. | ### Modification du seuil à partir duquel les numéros fiscaux (TIN) sont soumis à vérification Afin de nous aligner sur les seuils de déclaration de l’IRS pour les formulaires 1099-K, 1099-NEC et 1099-MISC, nous mettons à jour le seuil à partir duquel nous vérifions le NIF : cette vérification interviendra lorsque votre volume de paiements atteindra 600 USD ou dans les 30 jours suivant la première transaction, selon la première éventualité. ### Mode de remplissage automatique des libellés de relevé bancaire et des préfixes de libellés de relevé bancaire S’il n’est pas indiqué, le libellé de relevé bancaire est rempli automatiquement à l’aide des champs suivants (dans cet ordre) : [business_profile.name](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-name) (nom commercial), [business_profile.url](https://docs.stripe.com/api/accounts/object.md#account_object-business_profile-url), nom de l’entité juridique (soit [individual.first_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-first_name) + [individual.last_name](https://docs.stripe.com/api/accounts/object.md#account_object-individual-last_name), soit [company.name](https://docs.stripe.com/api/accounts/object.md#account_object-company-name)). En outre, si le préfixe du libellé de relevé bancaire n’est pas indiqué, il est rempli automatiquement à partir des 10 premiers caractères du libellé de relevé bancaire. ## See also - [Inscription Connect pour les comptes Custom](https://docs.stripe.com/connect/custom/hosted-onboarding.md) - [Solutions d’inscription pour les comptes Custom](https://docs.stripe.com/connect/custom/onboarding.md) - [Mettre des comptes à jour](https://docs.stripe.com/connect/updating-service-agreements.md) - [Gérer la vérification d’identité avec l’API](https://docs.stripe.com/connect/handling-api-verification.md) - [Test de vérification d’identité pour les comptes Custom](https://docs.stripe.com/connect/testing-verification.md)