# Stripe へのアカウントの移行 支払いを中断せずに、Stripe でのアカウントの処理を開始します。 支払い履歴や顧客データを含め、既存のマルチパーティー決済事業を Stripe に移行できます。事業の性質に応じて、*マーケトプレイス* (A Connect platform that provides a platform-branded storefront for products and services from its connected accounts) または *SaaS プラットフォーム* (A Software as a Service (SaaS) Connect platform that provides Stripe products and services to its connected accounts) を設定できます。クライアント企業を表す *連結アカウント* (A person or business accepting payments or receiving payouts on a Connect platform) を設定して Connect 統合に移行するには、以下の手順に従ってください: 1. 移行プランとタイムラインを作成する 1. 連結アカウントの連携を更新する 1. アカウントを作成してアカウント登録を行う 1. 未対応の要件と継続的な要件を処理する 1. 支払いデータと顧客データを Stripe に移行する ## 移行プランを作成する Stripe への移行が成功するためには、移行プラン、タイムライン、連結アカウントの顧客確認情報、支払いデータと顧客データが必要です。 連結アカウントは Stripe にオンボーディングする必要があり、各アカウントについて Stripe の本人確認 (KYC) データを送信する必要があります。Stripe はまた、アカウントから情報の収集を要求することがあります。以前のプロバイダーで収集していたデータと、Stripe が要求するデータを分析して把握してください。Stripe は連結アカウントを有効化する前に KYC データを確認します。アカウントの認証状況は、[account.updated](https://docs.stripe.com/api/events/types.md#event_types-account.updated) イベントや [Retrieve Account](https://docs.stripe.com/api/account/retrieve.md) API を使用して監視できます。認証に失敗したアカウントは、有効化前に対応が必要です。 Stripe へのアカウント登録後の支払いデータの厳密な移行日を含めます。支払いデータと顧客データには、移行の一環として [PAN のインポート](https://docs.stripe.com/get-started/data-migrations/pan-import.md)が必要です。アカウントは一括でインポートすることをお勧めします。 ## 導入を更新する Stripe に移行するための連携の更新の一環として、アプリケーションで変更が必要になる場合があります。たとえば、料金体系の更新など、連結アカウントによるプラットフォームの使用法の変更が必要ないか検討してください。変更内容を事前にアカウントに連絡することをお勧めします。 ### Stripe 利用規約への同意 連結アカウントが有効化されるためには、Stripe 利用規約に同意する必要があります。 要件の期限が来た場合や要件に変更があった場合に Stripe が更新された情報を収集する責任を負うアカウント (Standard アカウントおよび Express アカウントを含む) の場合、アカウントはアカウント登録フロー内で Stripe の利用規約に同意する必要があります。 要件に変更があった場合に連結アカウント (Custom アカウントを含む) から[更新情報を収集](https://docs.stripe.com/connect/required-verification-information.md)する責任を負う場合、[Stripe の利用規約を自社の利用規約に組み込むことができます](https://docs.stripe.com/connect/updating-service-agreements.md#adding-stripes-service-agreement-to-your-terms-of-service)。利用規約の同意はオンボーディングフローの最後に配置することを推奨しますが、ビジネス上より自然であれば最初に置くことも可能です。連結アカウントを作成または更新する際には、Stripe に送信するために [更新された利用規約情報](https://docs.stripe.com/api/accounts/update.md#update_account-tos_acceptance) の同意を記録し、アカウントにその旨を伝えてください。 ### 連結アカウントを Stripe に登録する Stripe は連結アカウント向けにさまざまなレベルのアカウント登録のサポートを提供しています。次のいずれかの方法で連結アカウントの登録フローを構築してください。 | 方法 | 長所 | 短所 | | ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [Stripe のホスティング登録](https://docs.stripe.com/connect/custom/onboarding.md#stripe-hosted-onboarding) | - 導入の負担が最も小さい | - Stripe のブランド名を使用して、プラットフォームのブランディングを制限 - フローロジックに対する制御に制限がある - 連結アカウントは、貴社のサイトを離れずにプロセスを完了するのではなく、Stripe にリダイレクトされる | | [埋め込みアカウント登録](https://docs.stripe.com/connect/custom/onboarding.md#embedded-onboarding) | - [カスタマイズの自由度が高い](https://docs.stripe.com/connect/customize-connect-embedded-components.md) - Stripe 以外のブランディングに限定 - 連結アカウントは自社サイトのフローに残る - 導入の負担が小さい | - フローロジックに対する制御に制限がある | | [API ベースのアカウント登録](https://docs.stripe.com/connect/custom/onboarding.md#api-based-onboarding) | - 自社の UI を完全にコントロールする | - 構築するのに高額の費用と時間がかかる - 維持管理の負担が増大し続ける (特に、絶えず変化するグローバル要件への対応の負担が大きい) - Stripe のリスク審査を解決することはできません | ## アカウントを作成してアカウント登録を行う 以下は、プロセスの概要です。 (See full diagram at https://docs.stripe.com/connect/migrate-to-stripe) ### アカウント要件を設定する 以下の要因は、連結アカウントの[登録要件](https://docs.stripe.com/connect/required-verification-information.md)に影響します。 - 連結アカウントの所在国 - 連結アカウントに適用される[利用規約タイプ](https://docs.stripe.com/connect/service-agreement-types.md) - 連結アカウントでリクエストされる[ケイパビリティ](https://docs.stripe.com/connect/account-capabilities.md) - [business_type](https://docs.stripe.com/api/accounts/object.md#account_object-business_type) (個人または会社など) および [company.structure](https://docs.stripe.com/api/accounts/object.md#account_object-company-structure) (`public_corporation` または `private_partnership` など) [必須情報確認](https://docs.stripe.com/connect/required-verification-information.md)ツールを使用して、これらの要素の変更が連結アカウントのアカウント登録要件にどのように影響するかを確認します。 ### 連結アカウントを作成する Stripe に移行するアカウントごとに、関連する Account を作成します。 必要なアカウント設定を指定する連結アカウントを作成します。任意の情報を事前入力できますが、`controller` プロパティを指定する必要があります。アカウントの国はデフォルトでプラットフォームと同じ国に設定され、アカウント登録時に選択が確定されます。 > この例では、アカウント作成時に設定できるプロパティの一部のみが含まれています。住所や URL 情報など、設定できるプロパティの一覧については、 [アカウントの作成](https://docs.stripe.com/api/accounts/create.md) をご覧ください。 ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d "controller[fees][payer]=account" \ -d "controller[losses][payments]=stripe" \ -d "controller[stripe_dashboard][type]=none" \ -d "controller[requirement_collection]=stripe" \ -d country=US \ -d "capabilities[card_payments][requested]=true" \ -d "capabilities[transfers][requested]=true" ``` 連結アカウントの情報をすでに収集している場合は、`Account` オブジェクトにその情報を事前入力できます。個人情報や事業情報、外部のアカウント情報など、あらゆるアカウント情報を事前に入力できます。 `Account` を作成したら、`relationship.representative` を true に設定した [Person](https://docs.stripe.com/api/persons/create.md) を作成して、アカウント開設の責任者と、事前に入力したいアカウント情報 (氏名など) を表します。 ```curl curl https://api.stripe.com/v1/accounts/{{ACCOUNT_ID}}/persons \ -u "<>:" \ -d first_name=Jenny \ -d last_name=Rosen \ -d "relationship[representative]=true" ``` Connect アカウント登録で、事前入力された情報が要求されることはありません。ただし、アカウント所有者は [Connect 利用規約](https://docs.stripe.com/connect/service-agreement-types.md)に同意する前に、事前入力された情報を確認するよう求められます。 実装内容をテストする場合、[テストデータ](https://docs.stripe.com/connect/testing.md)を使用してアカウント情報を事前入力します。 作成した `Account` の ID を保存して、後で参照できるようにします。 すべての既存のデータを適用して Stripe を更新した後、未対応の要件がないか探します。未対応の要件は、`currently_due` 配列に一覧表示されます。`currently_due` のすべての要件をアカウントから収集する必要があります。これは、Stripe がアカウントを確認して、アカウントのケイパビリティを有効にするために必要です。 ```json { ... "requirements": { "alternatives": [], "current_deadline": null"currently_due": [ "business_profile.url", "external_account", "individual.first_name", "individual.last_name", "tos_acceptance.date", "tos_acceptance.ip" ], "disabled_reason": "requirements.past_due", "errors": [], "eventually_due": [ "business_profile.url", "external_account", "individual.first_name", "individual.last_name", "individual.id_number", "tos_acceptance.date", "tos_acceptance.ip" ], "past_due": [ "business_profile.url", "external_account", "individual.first_name", "individual.last_name", "tos_acceptance.date", "tos_acceptance.ip" ], "pending_verification": [] }, ... } ``` アカウントの既存のデータをすべて入力したら、アカウントをStripe UI に誘導して、Stripe 認証情報を設定します。情報を確認して、Stripe 利用規約に同意します。 ### 新しいアカウントにアカウント登録フローをガイドする 既存のアカウントを移行するほか、新規アカウントを Stripe に登録するためのフローを構築します。このアカウント登録フローを使用して、移行対象のアカウントについて不足しているデータを収集することもできます。 [アカウント登録のオプション](https://docs.stripe.com/connect/onboarding.md)を確認して、アカウント登録フローを作成します。 作成した `Account` の ID を保存して、後で参照できるようにします。 ## 未対応の要件と継続的な要件を処理する 連結アカウントのデータが送信されると、Stripe はそれを確認します。このプロセスには、確認の性質に応じて数分または数時間かかる場合があります。このプロセスの進行中、リクエストしたケイパビリティの `status` は `pending` になります。 ### ステータスを確認する 連結アカウントのケイパビリティのステータスは、以下によって取得できます。 - Account オブジェクトの [capabilities](https://docs.stripe.com/api/accounts/object.md#account_object-capabilities) ハッシュで、関連するケイパビリティを確認します。 - [Capabilities API](https://docs.stripe.com/api/capabilities/retrieve.md) から直接ケイパビリティをリクエストし、関連するケイパビリティのステータスを確認します。 - [Webhook](https://docs.stripe.com/connect/webhooks.md) エンドポイントで `account.updated` [イベント](https://docs.stripe.com/api/events/types.md#event_types-account.updated)をリッスンし、関連するケイパビリティの `capabilities` ハッシュを確認します。 確認が完了すると、ケイパビリティが `active` になり、連結アカウントで利用できるようになります。アカウントの確認は継続的に実行され、それ以降に確認が失敗すると、ケイパビリティは `active` から移行します。`account.updated` イベントをリッスンして、ケイパビリティの状態の変化を検出します。 構築済みの Connect の実装内容が法令を遵守し、稼働中であることを確認するには、アカウントの `charges_enabled` と `payouts_enabled` が両方とも true であることを確認します。API を使用するか、`account.updated` イベントをリッスンすることができます。その他の関連フィールドについて、詳細はアカウントの [requirements (要件)](https://docs.stripe.com/api/accounts/object.md#account_object-requirements) ハッシュを確認してください。アプリケーションおよび関連ポリシーに応じてステータスが変化する可能性があるため、単一の値に基づいて実装を確認することはできません。 - [charges_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-charges_enabled) は、支払いと送金を含む全体的な支払いパスが正しく機能することを確認し、`card_payments` と `transfers` ケイパビリティのどちらがアクティブになっているかを評価します。 - [payouts_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-payouts_enabled) は連結アカウントが外部口座に入金できるかを評価します。リスクポリシーによっては、連結アカウントが入金を有効にせずに取引を開始することを許可できます。連結アカウントに支払うには、[最終的には入金を有効にする必要](https://docs.stripe.com/connect/manage-payout-schedule.md)があります。 以下のロジックは、連結アカウントに表示するサマリーのステータスを定義するための開始ポイントとして使用できます。 #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' def account_state(account) reqs = account.requirements if reqs.disabled_reason && reqs.disabled_reason.include?("rejected") "rejected" elsif account.payouts_enabled && account.charges_enabled if reqs.pending_verification "pending enablement" elsif !reqs.disabled_reason && !reqs.currently_due if !reqs.eventually_due "complete" else "enabled" end else "restricted" end elsif !account.payouts_enabled && account.charges_enabled "restricted (payouts disabled)" elsif !account.charges_enabled && account.payouts_enabled "restricted (charges disabled)" elsif reqs.past_due "restricted (past due)" elsif reqs.pending_verification "pending (disabled)" else "restricted" end end accounts = Stripe::Account.list(limit: 10) accounts.each do |account| puts "#{account.id} has state: #{account_state(account)}" end ``` ### 確認エラーを処理する アカウント登録フローに応じて、確認失敗に対する対処方法を変えます。 > API を使用して Stripe のリスク審査に対応することはできません。埋め込みコンポーネント、Stripe のホスティング登録、または修復リンクを使用して、連結アカウントが対応できるように設定できます。ダッシュボードを使用して、連結アカウントの代わりにリスク審査に対応することもできます。 #### API [account.updated](https://docs.stripe.com/api/events/types.md#event_types-account.updated) イベントをリッスンします。`current_deadline` が着信したときにアカウントに `currently_due` フィールドが含まれている場合は、対応する機能が無効になり、そのフィールドが `past_due` に追加されます。 アカウントが情報の修正に使用できる明確な指示が記載された[フォームを作成](https://docs.stripe.com/connect/migrate-to-stripe.md#create-forms-to-collect-information)します。アカウントに通知し、次に Accounts API を使用して、[修正された情報を送信](https://docs.stripe.com/connect/migrate-to-stripe.md#update-the-connected-account)します。 (See full diagram at https://docs.stripe.com/connect/migrate-to-stripe) すべての確認エラーに対処するカスタムフローの作成を計画している場合: - 可能性のあるすべての[確認エラーとその対処法](https://docs.stripe.com/connect/handling-api-verification.md)に関する詳細を確認します。 - [確認状態をテストします](https://docs.stripe.com/connect/testing-verification.md)。 #### 埋め込み [account.updated](https://docs.stripe.com/api/events/types.md#event_types-account.updated) イベントをリッスンします。`current_deadline` が着信したときにアカウントに `currently_due` フィールドが含まれている場合は、対応する機能が無効になり、そのフィールドが `past_due` に追加されます。 [アカウント登録コンポーネント](https://docs.stripe.com/connect/supported-embedded-components/account-onboarding.md)にアカウントを誘導して、確認要件を修正できるようにします。 (See full diagram at https://docs.stripe.com/connect/migrate-to-stripe) ### Stripe ユーザー認証を無効にする 埋め込みアカウント登録を使用する場合、[Stripe ユーザー認証](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#user-authentication-in-connect-embedded-components)がデフォルトで有効になります。[`disable_stripe_user_authentication`](https://docs.stripe.com/api/account_sessions/create.md#create_account_session-components-account_onboarding-features-disable_stripe_user_authentication) を使用して、この動作を削除できます。 [ベストプラクティス](https://docs.stripe.com/connect/risk-management/best-practices.md#prevent-account-take-overs)として、2 要素認証または同等のセキュリティ対策を導入することをお勧めします。Custom など、この機能をサポートするアカウント設定では、連結アカウントが[マイナス残高](https://docs.stripe.com/connect/risk-management/best-practices.md#decide-your-approach-to-negative-balance-liability)を返済できない場合、貴社がそのアカウントに対する責任を負うことになります。 #### オンライン [account.updated](https://docs.stripe.com/api/events/types.md#event_types-account.updated) イベントをリッスンします。`current_deadline` が着信したときにアカウントに `currently_due` フィールドが含まれている場合は、対応する機能が無効になり、そのフィールドが `past_due` に追加されます。 Stripe ホスティング登録フォームにアカウントを誘導して、確認要件を修正できるようにします。 (See full diagram at https://docs.stripe.com/connect/migrate-to-stripe) ## 支払いデータと顧客データを Stripe に移行する Stripe で連結アカウントを作成したら、[PAN データのインポートをリクエスト](https://docs.stripe.com/get-started/data-migrations/pan-import.md)します。これにより、支払いと顧客データが連結アカウントに移行されます。 ## See also - [アカウント登録の設定を選択](https://docs.stripe.com/connect/onboarding.md) - [API による本人確認の処理](https://docs.stripe.com/connect/handling-api-verification.md) - [アカウント本人確認のテスト](https://docs.stripe.com/connect/testing-verification.md)