# Inscription des utilisateurs hébergée par Stripe Inscrivez des comptes connectés en les redirigeant vers un flux d'inscription hébergé par Stripe. L’inscription hébergée par Stripe gère la collecte des informations sur l’entreprise et sur la vérification de l’identité des comptes connectés, réduisant drastiquement les efforts requis de la part de la plateforme. Il s’agit d’un formulaire Web hébergé par Stripe qui s’affiche de manière dynamique selon les fonctionnalités, le pays et le type d’entreprise de chaque compte connecté. ![](https://b.stripecdn.com/docs-statics-srv/assets/hosted_onboarding_form.e59ba8300f563e43489953f06127f52c.png) Le formulaire d’inscription hébergée dans l’exemple d’intégration Stripe, [Furever](https://furever.dev/). L’onboarding hébergé par Stripe prend en charge l’[onboarding en réseau](https://docs.stripe.com/connect/networked-onboarding.md), qui permet aux propriétaires de plusieurs comptes Stripe de partager des informations d’entreprise entre leurs comptes. Lorsqu’ils procèdent à l’onboarding d’un nouveau compte, ils peuvent réutiliser les informations d’un compte existant au lieu de les soumettre à nouveau. ## Personnaliser le formulaire d'inscription [Dashboard] Vous pouvez personnaliser l’aspect visuel du formulaire avec le nom, la couleur et l’icône de votre marque en accédant à la [page des paramètres Connect](https://dashboard.stripe.com/account/applications/settings) dans le Dashboard. L’inscription hébergée par Stripe nécessite ces informations. Stripe recommande également de [recueillir les informations bancaires](https://dashboard.stripe.com/settings/connect/payouts/onboarding) de vos comptes connectés lors de leur inscription. ## Créer un compte et pré-remplir les informations [Côté serveur] Créez un [compte connecté](https://docs.stripe.com/api/accounts.md) avec les propriétés par défaut du [contrôleur](https://docs.stripe.com/api/accounts/create.md#create_account-controller). Pour en savoir plus sur les propriétés des contrôleurs, consultez la section [Concevoir une intégration](https://docs.stripe.com/connect/interactive-platform-guide.md). Vous pouvez également créer un compte connecté en spécifiant un [type](https://docs.stripe.com/api/accounts/create.md#create_account-type) de compte. Si vous spécifiez le pays du compte ou demandez des fonctionnalités pour celui-ci, le propriétaire du compte ne peut pas modifier son pays. Sinon, cela dépend de l’accès au Dashboard du compte : - **Dashboard Stripe complet** : lors de l’inscription, le propriétaire du compte peut sélectionner n’importe quel pays acquéreur, de la même manière que lors de l’inscription à un compte Stripe classique. Stripe demande automatiquement un ensemble de fonctionnalités pour le compte en fonction du pays sélectionné. - **Dashboard Express** : lors de l’inscription, le titulaire du compte peut choisir parmi une liste de pays que vous configurez dans votre plateforme Dashboard les [options d’inscription](https://dashboard.stripe.com/settings/connect/onboarding-options/countries). Vous pouvez également configurer ces options pour préciser les fonctionnalités par défaut à demander pour les comptes de chaque pays. - **Pas de Dashboard Stripe** : si Stripe est responsable de la collecte des exigences, le flux d’inscription permet au titulaire du compte de sélectionner n’importe quel pays acquéreur. Sinon, votre flux d’inscription personnalisé doit définir le pays et demander des fonctionnalités. #### Avec les propriétés du contrôleur ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d "controller[fees][payer]=application" \ -d "controller[losses][payments]=application" \ -d "controller[stripe_dashboard][type]=express" ``` #### Avec un type de compte ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d type=standard ``` La réponse inclut l’ID, que vous utilisez pour référencer le `Account` tout au long de votre intégration. ### Demandez des fonctionnalités Vous pouvez demander des [fonctionnalités](https://docs.stripe.com/connect/account-capabilities.md#creating) lors de la création d’un compte en attribuant la valeur true à la propriété `requested` des fonctionnalités souhaitées. Pour les comptes ayant accès au Dashboard Express, vous pouvez également configurer vos [options d’inscription](https://dashboard.stripe.com/settings/connect/onboarding-options/countries) de manière à demander automatiquement certaines fonctionnalités lors de la création d’un compte. Les interfaces utilisateur d’inscription de Stripe recueillent automatiquement les conditions requises pour les fonctionnalités demandées. Pour réduire les efforts d’inscription, demandez uniquement les fonctionnalités dont vous avez besoin. ### Préremplissage des informations Si vous disposez d’informations sur le titulaire du compte (comme son nom, son adresse, etc.), vous pouvez simplifier l’inscription en les fournissant lors de la création ou de la modification du compte. L’interface d’inscription demande au titulaire du compte de confirmer les informations préremplies avant d’accepter le [contrat d’utilisation du service Connect](https://docs.stripe.com/connect/service-agreement-types.md). Le titulaire du compte peut modifier toutes les informations préremplies avant d’accepter le contrat d’utilisation du service, même si vous avez fourni les informations à l’aide de l’API Accounts. Si vous inscrivez un compte et que votre plateforme lui fournit une URL, préremplissez la [business_profile.url](https://docs.stripe.com/api/accounts/create.md#create_account-business_profile-url) du compte. Si l’entreprise n’a pas d’URL, vous pouvez préremplir sa [business_profile.product_description](https://docs.stripe.com/api/accounts/create.md#create_account-business_profile-product_description) à la place. Lorsque vous testez votre intégration, utilisez des [données de test](https://docs.stripe.com/connect/testing.md) pour simuler différents résultats, notamment la vérification d’identité, la vérification des informations de l’entreprise, les échecs de virement, etc. ## Déterminer les informations à collecter En tant que plateforme, vous devez décider entre collecter toutes les informations requises auprès de vos comptes connectés au début du processus *(inscription complète)* (Upfront onboarding is a type of onboarding where you collect all required verification information from your users at sign-up), ou les recueillir progressivement *(inscription progressive)* (Incremental onboarding is a type of onboarding where you gradually collect required verification information from your users. You collect a minimum amount of information at sign-up, and you collect more information as the connected account earns more revenue). L’inscription complète collecte les exigences `eventually_due` pour le compte, tandis que l’inscription progressive collecte uniquement les exigences `currently_due`. | Type d’inscription | Avantages | | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | \**En amont ** | - Ne nécessite normalement qu’une seule requête pour l’ensemble des informations - Évite les problèmes de paiement et de traitement dus au non-respect des délais - Permet de détecter en amont les risques potentiels lorsque les clients refusent de communiquer des informations | | **Progressive** | - Les comptes peuvent s’inscrire rapidement parce qu’ils n’ont pas à fournir autant d’informations | Pour déterminer si vous devez utiliser l’inscription complète ou progressive, consultez les [exigences](https://docs.stripe.com/connect/required-verification-information.md) relatives aux emplacements et aux fonctionnalités de vos comptes connectés. Stripe s’efforce de minimiser son impact sur les comptes connectés, cependant, les exigences sont susceptibles d’évoluer. Dans le cas des comptes connectés pour lesquels vous êtes responsable de la collecte des exigences, vous pouvez personnaliser le comportement des [exigences futures](https://docs.stripe.com/connect/handle-verification-updates.md) à l’aide du paramètre `collection_options`. Pour collecter les futurs besoins du compte, définissez [`collection_options.future_requirements`](https://docs.stripe.com/api/account_links/create.md#create_account_link-collection_options-future_requirements) sur `include`. ## Créer un lien de compte [Côté serveur] Créez un [lien de compte](https://docs.stripe.com/api/account_links/create.md) en utilisant l’ID du compte connecté et en incluant une [URL de rafraîchissement](https://docs.stripe.com/connect/hosted-onboarding.md#refresh-url) ainsi qu’une [URL de redirection](https://docs.stripe.com/connect/hosted-onboarding.md#return-url). Stripe redirige le compte connecté vers l’URL de rafraîchissement si l’URL du lien de compte a déjà été visitée, a expiré ou n’est pas valide. Stripe redirige les comptes connectés vers l’URL de redirection lorsqu’ils ont terminé ou quitté le flux d’inscription. De plus, en fonction des informations que vous avez besoin de recueillir, vous pouvez transmettre soit `currently_due`, soit `eventually_due` pour le paramètre `collection_options.fields`. Dans cet exemple, l’option `eventually_due` est transmise pour utiliser l’inscription complète. L’option `currently_due` est quant à elle transmise pour l’inscription progressive. ```curl curl https://api.stripe.com/v1/account_links \ -u "<>:" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ --data-urlencode "refresh_url=https://example.com/refresh" \ --data-urlencode "return_url=https://example.com/return" \ -d type=account_onboarding \ -d "collection_options[fields]=eventually_due" ``` ### Rediriger votre compte connecté vers l’URL de lien de compte Redirigez le compte connecté vers l’URL de lien de compte pour l’envoyer vers le flux d’inscription des utilisateurs. Vous ne pouvez utiliser chaque URL de lien de compte temporaire qu’une seule fois, car elle donne accès aux informations personnelles du titulaire du compte. Authentifiez le compte dans votre application avant de le rediriger vers cette URL.[Pré-remplissez](https://docs.stripe.com/connect/hosted-onboarding.md#prefill-information) toutes les informations du compte avant de générer le lien de compte, car vous ne pourrez plus lire ni écrire d’informations pour le compte connecté par la suite. > N’envoyez pas d’URL de lien de compte par e-mail, SMS ou autre moyen de paiement en dehors de l’application de votre plateforme. Fournissez-les plutôt au titulaire du compte authentifié dans votre application. #### iOS #### Swift ```swift import UIKit import SafariServices let BackendAPIBaseURL: String = "" // Set to the URL of your backend server class ConnectOnboardViewController: UIViewController { // ... override func viewDidLoad() { super.viewDidLoad() let connectWithStripeButton = UIButton(type: .system) connectWithStripeButton.setTitle("Connect with Stripe", for: .normal) connectWithStripeButton.addTarget(self, action: #selector(didSelectConnectWithStripe), for: .touchUpInside) view.addSubview(connectWithStripeButton) // ... } @objc func didSelectConnectWithStripe() { if let url = URL(string: BackendAPIBaseURL)?.appendingPathComponent("onboard-user") { var request = URLRequest(url: url) request.httpMethod = "POST" let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any], let accountURLString = json["url"] as? String, let accountURL = URL(string: accountURLString) else { // handle error } let safariViewController = SFSafariViewController(url: accountURL) safariViewController.delegate = self DispatchQueue.main.async { self.present(safariViewController, animated: true, completion: nil) } } } } // ... } extension ConnectOnboardViewController: SFSafariViewControllerDelegate { func safariViewControllerDidFinish(_ controller: SFSafariViewController) { // the user may have closed the SFSafariViewController instance before a redirect // occurred. Sync with your backend to confirm the correct state } } ``` #### Android ```xml