# 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&nbsp;v1. Vous pouvez voir les propriétés correspondantes de l’API Accounts&nbsp;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&nbsp;: 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&nbsp;avril&nbsp;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&nbsp;semaines d’ingénierie | 3 à 4&nbsp;semaines d’ingénierie | 30 à 40&nbsp;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&nbsp;:

- [Vérification Know Your Customer (KYC)](https://docs.stripe.com/connect/upcoming-requirements-updates.md#know-your-customer-kyc-verification)
- [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&nbsp;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&nbsp;206&nbsp;- 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&nbsp;avril&nbsp;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&nbsp;mai&nbsp;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&nbsp;- 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&nbsp;:

- Personne morale (pour les entrepreneurs individuels et les sociétés unipersonnelles)&nbsp;;
- 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&nbsp;:

- [Stripe Identity](https://docs.stripe.com/connect/upcoming-requirements-updates.md#stripe-identity)&nbsp;: (Recommandé) 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)&nbsp;: 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)&nbsp;: 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 en charge les numéros d’identification nationaux suivants.

| Pays | Type de pièce d’identité nationale |
| --- | --- |
| Danemark | Registre central des personnes (CPR) |
| Finlande | Henkilötunnus (code d’identité personnel) |
| Grèce | Arithmós Forologikoú Mitróou (AFM / numéro fiscal) ou Prosopikós Arithmós (numéro personnel) |
| Irlande | Numéro Personal Public Service (PPS) |
| Italie | Codice Fiscale (code fiscal) |
| Lettonie | Personas kods (code personnel) |
| Pologne | Numéro PESEL |
| Roumanie | Cod Numeric Personal (CNP) |
| 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&nbsp;v1, et non v2.

#### Étape&nbsp;1&nbsp;: Créez un compte connecté pour les tests (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&nbsp;:

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&nbsp;2&nbsp;: 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&nbsp;3&nbsp;: 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&nbsp;4&nbsp;: 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&nbsp;5&nbsp;: 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&nbsp;:

- 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&nbsp;6&nbsp;: 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`&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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**&nbsp;: 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&nbsp;:

- 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&nbsp;:

| 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 «&nbsp;Attestation de bénéficiaires effectifs&nbsp;» pour les propriétaires et un document «&nbsp;Preuve d’immatriculation&nbsp;» 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&nbsp;:
- [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&nbsp;attestations de bénéficiaires effectifs.

L’exemple suivant présente un compte connecté autorisé à vérifier les directeurs au lieu des propriétaires&nbsp;:

```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&nbsp;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&nbsp;attestations de bénéficiaires effectifs&nbsp;:

```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` (Public preview) | 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&nbsp;%)
- Directeurs et dirigeants
- Autres membres autorisés du compte

Important&nbsp;: 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&nbsp;:

#### 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éremplissez les informations sur l’UBO et le directeur (Private preview)

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&nbsp;mai&nbsp;2026**

Début&nbsp;2026, les plateformes étaient tenues de collecter un numéro KvK (Kamer van Koophandel), un numéro d’immatriculation d’entreprise unique à 8&nbsp;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&nbsp;mai&nbsp;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&nbsp;:

- 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 (Public preview)

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 «&nbsp;données introuvables&nbsp;» est distincte des codes d’erreur de vérification existants&nbsp;:

- **`verification_missing_owners`**&nbsp;: indique que le compte ne contient pas de propriétaires connus.
- **`verification_failed_keyed_match`**&nbsp;: 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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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`&nbsp;:

```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)&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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&nbsp;:

```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`&nbsp;:

```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&nbsp;:

- 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&nbsp;juillet&nbsp;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&nbsp;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&nbsp;semaines d’ingénierie | 3 à 4&nbsp;semaines d’ingénierie | 30 à 40&nbsp;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&nbsp;:

- **KYC&nbsp;: vérification de l’identité des personnes physiques**&nbsp;: 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&nbsp;: vérification de l’identité des entités juridiques**&nbsp;: collecte du CNPJ, du nom juridique de l’entreprise et de l’adresse d’immatriculation pour les entités juridiques&nbsp;; gérer les flux de vérification programmatique et de repli sur documents.
- **État d’immatriculation du numéro fiscal**&nbsp;: gestion de l’état d’immatriculation pour les états de CPF et CNPJ inactifs ou non valides.
- **Preuve d’autorisation**&nbsp;: vérifiez que le représentant de l’entreprise est autorisé à représenter l’entreprise&nbsp;; effectuez la résolution par une correspondance par voie programmatique ou par l’attestation `company.representative_declaration`.
- **Vérification UBO et des relations**&nbsp;: vérifiez que les propriétaires (UBO) et les directeurs figurent dans le registre CNPJ&nbsp;; 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**&nbsp;: collectez le bénéfice mensuel ou les revenus bruts.
- **Nouveaux codes d’erreur**&nbsp;: gestion des nouveaux codes d’erreur de vérification exposés dans le tableau `requirements.errors`.

## KYC&nbsp;: 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&nbsp;:

- **Représentant de l’entreprise**&nbsp;: la personne qui signe les Conditions d’utilisation du service et est légalement responsable du compte.
- **Propriétaires**&nbsp;: 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é `<stripe-connect-kyc-details>` 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&nbsp;:** les représentants de l’entreprise doivent avoir 18&nbsp;ans ou plus. Les propriétaires, dirigeants et responsables doivent avoir 18&nbsp;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&nbsp;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&nbsp;:

| 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&nbsp;:

```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&nbsp;:

```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é&nbsp;; 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&nbsp;:

| Champ | Description |
| --- | --- |
| `company.tax_id` | CNPJ (numéro d’immatriculation d’entreprise brésilien à 14&nbsp;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&nbsp;; 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&nbsp;:

```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&nbsp;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&nbsp;000&nbsp;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&nbsp;; 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&nbsp;:

```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`&nbsp;:

```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&nbsp;:

```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&nbsp;:

| 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&nbsp;:

1. **Préremplissage par voie programmatique** (Private preview)&nbsp;: 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**&nbsp;: 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**&nbsp;: 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&nbsp;; en cas d’omission, la personne est traitée comme un UBO (seuil de > 25&nbsp;%). |

### 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)&nbsp;:

```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&nbsp;:

- **Association des directeurs**&nbsp;: au lieu de vérifier les propriétaires, fournissez les directeurs (`company.directors_provided`, `directors.first_name`, `directors.last_name`).
- **Association des directeurs + document**&nbsp;: fournissez les directeurs et chargez un fichier `documents.proof_of_registration`.
- **Chargement de document pour le propriétaire**&nbsp;: fournissez les noms des propriétaires et chargez un fichier `documents.proof_of_ultimate_beneficial_ownership`.

### Préremplissez les informations sur le propriétaire et le 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&nbsp;?

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&nbsp;:

```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&nbsp;:

```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é&nbsp;: simple (tous les actionnaires sont des personnes physiques) ou complexe (au moins un actionnaire est lui-même une entité juridique)&nbsp;:

#### Structures de propriété simples

Chargez un *contrato social* ou un *estatuto social*. Le document doit contenir les informations suivantes&nbsp;:

- 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&nbsp;: 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&nbsp;: 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&nbsp;:

```json
{
  "code": "verification_document_id_number_mismatch",
  "reason": "",
  "requirement": "person.id_number"
}
```

### Test&nbsp;: 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&nbsp;: É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&nbsp;:

```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&nbsp;:

```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&nbsp;: 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&nbsp;: Aucune erreur `verification_failed_representative_authority`. La procuration est acceptée par voie programmatique. Seules les exigences UBO subsistent.

### Test&nbsp;: É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&nbsp;:

```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&nbsp;:

```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&nbsp;: Répondre aux exigences grâce à la correspondance par voie programmatique des propriétaires

Utilisez le CNPJ&nbsp;`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&nbsp;: Après la configuration d’`owners_provided`, toutes les exigences relatives aux propriétaires sont satisfaites. Aucune erreur `verification_missing_owners` ne subsiste.

### Test&nbsp;: Répondre aux exigences par le chargement de documents de propriétaires (`verification_missing_owners`)

Utilisez le CNPJ&nbsp;`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&nbsp;:

```json
[
  { "code": "verification_missing_owners", "requirement": "owners.first_name" },
  { "code": "verification_missing_owners", "requirement": "owners.last_name" }
]
```

Chargez un document pour y remédier&nbsp;:

```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&nbsp;: Répondre aux exigences par le biais de l’association des directeurs

Utilisez le CNPJ&nbsp;`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&nbsp;: Après la configuration de `directors_provided` et `owners_provided`, les exigences relatives aux directeurs et aux propriétaires sont satisfaites.

### Test&nbsp;: 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&nbsp;:

```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&nbsp;:

```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&nbsp;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)&nbsp;PSN01, Stripe met à jour ses exigences de vérification «&nbsp;Know Your Business&nbsp;» (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&nbsp;semaines d’ingénierie | 3 à 4&nbsp;semaines d’ingénierie | 30 à 40&nbsp;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&nbsp;:

- **KYB&nbsp;: Informations de l’entreprise et vérification de l’entité juridique&nbsp;:** 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&nbsp;:** 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&nbsp;:** 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&nbsp;:** Collectez les [informations de vérification des bénéficiaires effectifs et des relations](https://docs.stripe.com/connect/upcoming-requirements-updates.md#sg-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&nbsp;2026 | Commencez à planifier votre intégration. | Vérifiez ce guide et les changements pour commencer à planifier les mises à jour de votre intégration. |
| Septembre&nbsp;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&nbsp;novembre&nbsp;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&nbsp;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&nbsp;: 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` (Nouveau) | 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` (Nouveau) | 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` (Nouveau) | 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 "<<YOUR_SECRET_KEY>>:" \
  -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&nbsp;:

```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&nbsp;:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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, consultez le hash `requirements` de l’objet Account. Il indique les champs d’adresse dont la vérification a échoué, répertorie `company.verification.document` comme solution alternative pour répondre à l’exigence et inclut des détails dans le tableau [errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors)&nbsp;:

```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 match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "requirement": "company.address.line1"
    },
    {
      "code": "verification_failed_keyed_match",
      "reason": "We couldn't match the account's registered business address to government records. You can either fix any errors in the account's Unique Entity Number (UEN) or registered business address. Alternatively, you can upload a document that shows the company's registered address.",
      "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&nbsp;: 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&nbsp;: 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/)&nbsp;: 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 <<YOUR_SECRET_KEY>>: \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -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` (Nouveau) | Chargement de fichier. |

### Réponse initiale aux exigences

Lorsqu’un document de constitution est exigé, le hachage `requirements` du compte inclut&nbsp;:

```json
{
  "currently_due": [
    "documents.company_memorandum_of_association.files"
  ]
}
```

### Charger les statuts de constitution

L’exemple suivant montre comment charger des statuts personnalisés&nbsp;:

```bash
curl https://files.stripe.com/v1/files \
  -u <<YOUR_SECRET_KEY>>: \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -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 leurs propriétaires.
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&nbsp;% 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` (Nouveau) | Code pays à deux lettres ([ISO&nbsp;3166-1&nbsp;alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). |
| `person.dob` (Nouveau) | [Date de naissance](https://docs.stripe.com/api/persons/object.md#person_object-dob). |
| `person.address` (Nouveau) | [Adresse résidentielle](https://docs.stripe.com/api/persons/object.md#person_object-address). |

Pour les propriétaires UBO et les dirigeants, Stripe vérifie la dénomination sociale et le numéro d’identification. Les pseudonymes, la nationalité, la date de naissance et l’adresse de résidence sont obligatoires pour se conformer aux nouvelles exigences réglementaires de Singapour, mais ne déclenchent pas de vérification d’identité distincte.

Les champs obligatoires concernant les personnes utilisent des chemins avec le préfixe du rôle dans le hachage `requirements` du compte&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -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&nbsp;% 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 "<<YOUR_SECRET_KEY>>:"
```

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 "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Pour obtenir toutes les informations sur les mécanismes de vérification des UBO existants, les seuils de propriété, les dirigeants pouvant être des UBO en cas de besoin, les exemptions, les documents justificatifs des UBO, les déclarations de direction et les codes d’erreur, consultez la section [Informations de vérification obligatoires](https://docs.stripe.com/connect/required-verification-information.md). Cette section couvre uniquement les **nouveaux champs** ajoutés lors de cette mise à jour.

## 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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[owners_provided]=true"
```

Exigences et erreurs attendues&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -d "company[owners_provided]=true"
```

Exigences et erreurs attendues&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=non_profit \
  -d "company[tax_id]=R01SS0001A"
```

Exigences et erreurs attendues&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100002M" \
  -d "company[directors_provided]=true"
```

Exigences et erreurs attendues&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -d "company[directors_provided]=true"
```

Exigences et erreurs attendues&nbsp;:

```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&nbsp;% 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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100001C" \
  -d "company[owners_provided]=true"
```

Exigences et erreurs attendues&nbsp;:

```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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100005E"
```

Exigences et erreurs attendues&nbsp;:

```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&nbsp;:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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 "<<YOUR_SECRET_KEY>>:" \
  -d business_type=company \
  -d "company[structure]=private_company" \
  -d "company[tax_id]=180100013R"
```

Exigences et erreurs attendues&nbsp;:

```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&nbsp;:

```curl
curl https://api.stripe.com/v1/accounts/{{CONNECTEDACCOUNT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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&nbsp;: 23&nbsp;septembre 2025*

## Ce qui change

- **Informations requises collectées auprès des comptes connectés&nbsp;:** 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&nbsp;:** 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&nbsp;:** 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&nbsp;:** 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&nbsp;:

- 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 («&nbsp;adresse de l’entreprise&nbsp;»). 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&nbsp;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&nbsp;:

| 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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;ans. |
| Date de naissance de la personne | `invalid_dob_age_over_maximum` | La date de naissance doit se situer dans les 120&nbsp;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&nbsp;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&nbsp;1099-K, 1099-NEC et 1099-MISC, nous mettons à jour le seuil à partir duquel nous vérifions le NIF&nbsp;: cette vérification interviendra lorsque votre volume de paiements atteindra 600&nbsp;USD ou dans les 30&nbsp;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)&nbsp;: [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&nbsp;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)
