アカウント登録
Account onboarding Connect 埋め込みコンポーネントを使用します。
アカウント登録コンポーネントは Accounts API を使用して要件を読み取り、アカウント登録フォームを生成します。このフォームは、Stripe がサポートしているすべての国に合わせて調整されており、データ検証機能が付属しています。加えて、あらゆるビジネスタイプ、会社代表者の詳細設定、ドキュメントのアップロード、本人確認、検証ステータスをサポートしています。
詳細については、埋め込みアカウント登録をご覧ください。
要件の収集オプション
埋め込み型のアカウント登録では、currently_
または eventually_
要件の収集と、今後の要件の収集のみを制御できます。この動作をカスタマイズするには、アカウント登録コンポーネントを導入する際に collectionOptions
属性を使用します。アカウントタイプの要件の詳細については、必要な確認情報をご覧ください。
外部口座の収集
external_account_collection 機能を使用して、コンポーネントで外部口座情報を収集するかどうかを制御します。このパラメーターはデフォルトで有効になっており、要件が期限切れになったときや変更されたときに最新情報を収集する責任を負うプラットフォーム (Custom アカウントを含む) のみが無効にできます。external_
が有効になっている場合は、ユーザー認証が必要です。disable_stripe_user_authentication パラメーターを使用して Stripe ユーザー認証からオプトアウトできます。
Stripe ユーザー認証を無効にする
disable_stripe_user_authentication 機能を使用して、コンポーネントで Stripe ユーザー認証が必要かどうかを制御します。デフォルト値は、external_account_collection 値の反対です。たとえば、external_
を設定していない場合、disable_
はデフォルトで false になります。この値は、controller.
が application
であるアカウントに対してのみ true になります。
ベストプラクティスとして、2 段階認証または同等のセキュリティ対策を導入することをお勧めします。この機能をサポートするアカウント (Custom アカウントなど) の設定により、連結アカウントがマイナス残高を返済できない場合は、お客様がそのアカウントに代わって責任を負います。
ユーザーに表示するポリシーをカスタマイズする
Stripe の利用規約とプライバシーポリシーは、オンラインのアカウント登録で連結アカウントに提示されます。Stripe の利用規約に同意していない連結アカウントは、アカウント登録の最後の画面で規約を受け入れるように求められます。また、オンラインのアカウント登録のフッターにも、Stripe の利用規約とプライバシーポリシーへのリンクが掲載されています。
プラットフォームが要件の収集を行う連結アカウントに対しては、アカウント登録フローをカスタマイズする追加オプションがあります。以下に概要を示します。
自社で利用規約への同意を管理する
プラットフォームとして、貴社が必要な情報を収集する責任を負う連結アカウントを登録している場合、Stripe のオンラインのアカウント登録コンポーネントではなく、自社のプロセスを使用して利用規約への同意を収集できます。自社のプロセスを使用する場合、アカウント登録の最終画面では、連結アカウントには入力した情報の確認のみが求められます。Stripe の利用規約への同意は貴社で確実に取得する必要があります。
ただし、オンラインのアカウント登録には (フッターなどに) 利用規約へのリンクが表示されます。このリンクを、自社の規約およびプライバシーポリシーへのリンクで置き換えることを選択できます。
利用規約およびプライバシーポリシーへのリンク
Stripe の利用規約とプライバシーポリシーはオンライン登録のいたるところで連結アカウントに提示されます。貴社が要件の収集に責任を負う連結アカウントの場合、これらのリンクを自社の規約とポリシーに置き換えることができます。以下の手順に従って Stripe 利用規約を組み込み、Stripe プライバシーポリシーにリンクします。
アカウントセッションを作成する
アカウントセッションの作成時に、components
パラメーターで account_
を指定してアカウント登録を有効にします。
アカウントセッションを作成して Stripe Connect を設定したら、アカウント登録コンポーネントをアプリにレンダリングできます。
class MyViewController: UIViewController, AccountOnboardingControllerDelegate { override func viewDidLoad() { super.viewDidLoad() // Optional. If you use CollectionOptions, make sure to follow our policy instructions. // let collectionOptions = AccountCollectionOptions() // collectionOptions.fields = .eventuallyDue // collectionOptions.futureRequirements = .include let accountOnboardingController = embeddedComponentManager.createAccountOnboardingController( // fullTermsOfServiceUrl: URL(string: "{{URL}}")!, // recipientTermsOfServiceUrl: URL(string: "{{URL}}")!, // privacyPolicyUrl: URL(string: "{{URL}}")!, // skipTermsOfServiceCollection: false, // collectionOptions: collectionOptions ) accountOnboardingController.delegate = self // Display the component in your app accountOnboardingController.present(from: self) } // MARK: - AccountOnboardingControllerDelegate func accountOnboardingDidExit(_ accountOnboarding: AccountOnboardingController) { print("User exited the onboarding flow") } }
accountOnboardingDidExit
がトリガーされたら、Account
の詳細を取得して次のステータスを確認します。
- details_submitted
- charges_enabled
- payouts_enabled
- リクエストされたその他のケイパビリティ
必要なケイパビリティがすべて有効な場合、連結アカウントをアプリケーションの次のステップに進めることができます。