# 連結アカウントに SaaS 利用料を請求する Billing を使用して、SaaS 利用料のサブスクリプションを連結アカウントに直接請求します。 このガイドでは、[Accounts v2](https://docs.stripe.com/connect/accounts-v2.md) を使用して SaaS プラットフォームをConnect にインテグレーションし、連結アカウントにサブスクリプション料金を直接請求できるようにする方法を説明します。 **Connect プラットフォームの Accounts v2 は[ダッシュボード](https://dashboard.stripe.com/settings/early_access)から有効にできます。** > #### テスト環境 > > この連携を試すには、[サンドボックス](https://docs.stripe.com/sandboxes.md)を使用する必要があります。テスト環境は使用できません。 ## プラットフォームのアカウントを Connect に登録する [ダッシュボード](https://dashboard.stripe.com/connect)のアカウント登録プロセスに従って、Stripe アカウントを Connect プラットフォームとして設定します。 [Connect 実装ガイド](https://docs.stripe.com/connect/interactive-platform-guide.md)では、プラットフォームの設定オプションについて説明しています。 既存のプラットフォームがある場合、このシステムは Accounts v1 を使用する連結アカウントをサポートしません。これらを含める場合、ここで説明する手順に従ってアカウントを再作成した後、古いアカウントを削除する必要があります。 ## Accounts v2 API を使用して連結アカウントを作成する > この導入では、API v2 の[アカウント](https://docs.stripe.com/api/v2/core/accounts.md)、[Account Links](https://docs.stripe.com/api/v2/core/account-links.md)、[Events](https://docs.stripe.com/api/v2/core/events.md?api-version=preview)、[EventDestinations](https://docs.stripe.com/api/v2/core/event_destinations.md?api-version=preview)、[Persons](https://docs.stripe.com/api/v2/core/persons.md) のみを使用します。その他すべてのオブジェクトは API v1 に属します。 Accounts v2 API を使用して、連結アカウントごとに `customer` 設定と `merchant` 設定を持った `Account` オブジェクトを作成します。 - `customer` 設定を通じて `Account` は、`Account` に関連付けられた決済手段を使用して、プラットフォームにサブスクリプション料金を支払うことができます。 - `merchant` 設定により、`Account` を顧客からカード支払いを受け付けられる連結アカウントにすることができます。`merchant` 設定を割り当てる際は、以下の連結アカウントの機能も定義する必要があります。 - カード決済の受け入れ機能をリクエストするには、[configuration.merchant.capabilities.card_payments.requested](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-merchant-capabilities-card_payments-requested) をtrue に設定してください。 - [ダッシュボード](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-dashboard)を設定して、Stripe ダッシュボードへのアクセスを指定します。以下の例では、`dashboard` を `full` に設定しており、これは `Account` が Stripe ダッシュボード全体にアクセスできることを意味します。 - [defaults.responsibilities.fees_collector](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-defaults-responsibilities-fees_collector) を `stripe` または `application` に設定して、`Account` から手数料を徴収する責任を指定します。 - [defaults.responsibilities.losses_collector](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-defaults-responsibilities-losses_collector) を `stripe` または `application` に設定して、`Account` のマイナス残高に対する責任を指定します。 > #### include を使用してレスポンスにオブジェクトを読み込む > > API v2 で`アカウント`を作成、取得、または更新すると、[include パラメーターで](https://docs.stripe.com/api-includable-response-values.md)指定した場合にのみ、レスポンスに特定のプロパティが入力されます。指定しなかったプロパティは、実際の値に関係なく、null としてレスポンスに含まれます。 ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-05-27.preview" \ --json '{ "contact_email": "furever_contact@example.com", "display_name": "Furever", "dashboard": "full", "identity": { "business_details": { "registered_name": "Furever" }, "country": "us", "entity_type": "company" }, "configuration": { "customer": { "capabilities": { "automatic_indirect_tax": { "requested": true } } }, "merchant": { "capabilities": { "card_payments": { "requested": true } } } }, "defaults": { "currency": "usd", "responsibilities": { "fees_collector": "stripe", "losses_collector": "stripe" }, "locales": [ "en-US" ] }, "include": [ "configuration.customer", "configuration.merchant", "identity", "requirements" ] }' ``` レスポンスには ID が含まれており、システム全体で `Account` を参照する場合はこれを使用します。 ```json{% { "id": "acct_xxxxxxxxxxxxxxxx", "object": "v2.core.account", "applied_configurations": [ "customer", "merchant" ], "configuration": { "customer": { "automatic_indirect_tax": { "exempt": "none", "ip_address": null, "location": null, "location-source": "identity_address" }, "billing": { ... }, "capabilities": { "automatic_indirect_tax": { "requested": true, "status": "restricted", "status_details": [ { "code": "requirements_past_due", "resolution": "provide_info" } ] } }, "shipping": ..., "test_clock": ... }, "merchant": { "bacs_debit_payments": null, "branding": { ... }, "capabilities": { ... "card_payments": { "requested": true, "status": "restricted", "status_details": [ { "code": "requirements_past_due", "resolution": "provide_info" } ] }, "stripe_balance": { "payouts": { "requested": true, "status": "restricted", "status_details": [ { "code": "requirements_past_due", "resolution": "provide_info" } ] } }, ... }, "card_payments": { "decline_on": { "avs_failure": false, "cvc_failure": false } }, "mcc": null, ... "statement_descriptor": { ... }, "support": { "address": { ... }, ... } }, "recipient": null }, "contact_email": "furever_contact@example.com", "created": "2025-03-04T02:23:20.000Z", "dashboard": "full", "identity": { "attestations": { ... }, "terms_of_service": { "account": null }, "business_details": { ... "registered_name": "Furever", ... }, "country": "US", "entity_type": "company", "individual": null }, "defaults": null, "display_name": "Furever", "metadata": {}, "requirements": { "collector": "stripe", "entries": [ { "awaiting_action_from": "user", "description": "representative.surname", "errors": [], "impact": { "restricts_capabilities": [ { "capability": "card_payments", "configuration": "merchant", "deadline": { "status": "past_due" } }, { "capability": "stripe_balance.payouts", "configuration": "merchant", "deadline": { "status": "past_due" } } ] }, "minimum_deadline": { "status": "past_due" }, "reference": null, "requested_reasons": [ { "code": "routine_onboarding" } ] } ], "summary": { "minimum_deadline": { "status": "past_due", "time": null } } } } ``` ### アカウントの責任 Stripe 手数料の支払い方法やマイナス残高に対する責任など、連結アカウントの一部の動作を責任によって定義できます。この責任は、連結アカウントに `merchant` 設定を追加するときに設定します。 `Accounts` が連結アカウントとして支払いを回収できるようにするには、次の `responsibilities` を設定します。 | プロパティ | 説明 | 値 | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [defaults.responsibilities.fees_collector](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-defaults-responsibilities-fees_collector) | Stripe が連結アカウントのダイレクト支払いに対して、支払い手数料を徴収する方法を定義します (デスティネーション支払いまたは支払いと送金別方式の場合、Stripe は常にプラットフォームから手数料を徴収します)。 | - `application`: プラットフォームは連結アカウントからプラットフォーム手数料を徴収し、Stripe はプラットフォームから支払い手数料を徴収します。 - `stripe`: Stripe が連結アカウントから直接、決済手数料を徴収します。 | | [defaults.responsibilities.losses_collector](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-defaults-responsibilities-losses_collector) | 連結アカウントで発生したマイナス残高に対する責任を割り当てます。 | - `application`: プラットフォームが連結アカウントのマイナス残高に対する責任を負い、[リスクを管理](https://docs.stripe.com/connect/risk-management.md)します。 - `stripe`: Stripe が連結アカウントのマイナス残高に対する責任を負います。プラットフォームが引き続きプラットフォームアカウントのマイナス残高に対する責任を負います。 | 責任には次の制限が適用されます。 - `losses_collector` を `application` に設定した場合は、`fees_collector` も `application` に設定する必要があります。 - アカウントでデスティネーション支払いを使用する場合には、`losses_collector` と `fees_collector` を `application` に設定することをお勧めします。 サポートされている設定について、詳細は[システムの推奨事項](https://docs.stripe.com/connect/integration-recommendations.md)をご覧ください。 ### 支払いタイプ ベータリリースでは、[連結アカウントへの支払い](https://docs.stripe.com/connect/charges.md)は、ダイレクト支払いおよびデスティネーション支払いのみがサポートされています。支払いと送金別方式は使用することができません。 デスティネーション支払いを利用するには、[on_behalf_of パラメーターを設定](https://docs.stripe.com/connect/destination-charges.md?platform=web&ui=elements#settlement-merchant)して、連結アカウントを売上処理加盟店にする必要があります。また、`recipient` 設定を連結アカウントに追加し、`stripe_transfers` ケイパビリティをリクエストしなければなりません。 ## 受信者設定を連結アカウントに追加する プラットフォームの Stripe 残高から連結アカウントの Stripe 残高への送金を許可するには、`recipient` 設定を追加して、`stripe_balance.stripe_transfers` ケイパビリティをリクエストします。デスティネーション支払いを利用するには、このケイパビリティが必要です。 `stripe_balance.stripe_transfers` をリクエストすると、`recipient` 設定の `stripe_balance.payouts` ケイパビリティも自動的にリクエストされます。これにより、連結アカウントは外部銀行口座への入金を実行できるようになります。 `merchant` 設定では、独自の `stripe_balance.payouts` ケイパビリティが自動的にリクエストされます。これは、`recipient` 設定の `stripe_balance.payouts` ケイパビリティと同じです。アカウントにその他の `recipient` ケイパビリティが必要ない場合は、`recipient` 設定を追加する必要はありません。 > ベータリリースでは、[海外入金](https://docs.stripe.com/connect/cross-border-payouts.md)はサポートされていません。 `recipient` の設定を追加し、`stripe_balance.stripe_transfers` ケイパビリティをリクエストするには、`Account` を更新し、[configuration.recipient.capabilities.stripe_balance.stripe_transfers.requested](https://docs.stripe.com/api/v2/core/accounts/update.md#v2_update_accounts-configuration-recipient-capabilities-stripe_balance-stripe_transfers-requested) パラメーターを true に設定します。 ```curl curl -X POST https://api.stripe.com/v2/core/accounts/acct_xxxxxxxxxxxxxxxx \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-05-27.preview" \ --json '{ "include": [ "identity", "requirements" ], "configuration": { "recipient": { "capabilities": { "stripe_balance": { "stripe_transfers": { "requested": true } } } } } }' ``` ## 連結アカウントのアカウントを登録する 連結アカウントがプラットフォームを通じて支払いを受け付けられるようにするには、[連結アカウントのアカウント登録](https://docs.stripe.com/connect/onboarding.md)が必要です。アカウントを Stripe ホスティング登録に誘導したり、Connect 埋め込みコンポーネントを使用してブランド名の入ったフローを提供したり、貴社に合わせたカスタムのアカウント登録フローをコーディングで作成したりすることができます。Stripe ホスティング登録は最もシンプルなオプションです。埋め込みコンポーネントを使用すると、ほとんどのプロセスを自動的に処理しながら、ある程度のカスタマイズが可能になります。カスタムのアカウント登録フローはプラットフォーム側で完全に制御できますが、実装と継続的な更新が必要であるため、最も多くのリソースが必要になります。 #### Stripe ホスティング登録 Stripe ホスティング登録を導入するには、[Stripe ホスティング登録ガイド](https://docs.stripe.com/connect/hosted-onboarding.md)の手順に従い、以下の変更を加えます。 - [アカウントを作成して情報を事前入力する](https://docs.stripe.com/connect/hosted-onboarding.md#create-account)ステップで、本ガイドに記載されている Accounts v2 のプロセスに従って `Accounts` を作成します。 - [要件の更新を特定して対処する](https://docs.stripe.com/connect/hosted-onboarding.md#requirement-updates)ステップで、[v2.core.account[requirements].updated イベントをリッスンする](https://docs.stripe.com/connect/integrate-billing-connect.md#listen-for-account-updates)イベント送信先を作成します。`account.updated` v1 イベントはリッスンしないようにしてください。 > Stripe ホスト型アカウント登録ガイドは Accounts v1 API を使用しています。API v2 では Accounts v1 API を利用できず、[API v2 のAccount](https://docs.stripe.com/api/v2/core/accounts.md)の構造は[API v1 のAccount](https://docs.stripe.com/api/accounts.md?api-version=preview) の構造と異なります。そのため、ホスト型アカウント登録ガイドで Accounts v1 のプロパティが参照されている箇所では、API v2 の対応するプロパティを使用してください。また、API v2 でほとんど `Account` プロパティを取得するには、[include parameter を使用する](https://docs.stripe.com/api-includable-response-values.md)ことを忘れないでください。 #### オンラインのアカウント登録 以下のステップでは、サイトに [Account onboarding Connect 埋め込みコンポーネント](https://docs.stripe.com/connect/supported-embedded-components/account-onboarding.md) を含めることで、連結アカウントのアカウント登録の基本的なプロセスについて説明します。アカウント登録プロセスについて、詳細は[埋め込みアカウント登録ガイド](https://docs.stripe.com/connect/embedded-onboarding.md)をご覧ください。 1. [アカウントセッションの作成](https://docs.stripe.com/api/account_sessions/create.md?api-version=preview)で、有効にするコンポーネントとして `Account` の ID と `account_onboarding` を指定します。 ```curl curl https://api.stripe.com/v1/account_sessions \ -u "<>:" \ -d account=acct_xxxxxxxxxxxxxxxx \ -d "components[account_onboarding][enabled]=true" \ -d "components[account_onboarding][features][external_account_collection]=true" ``` 1. アカウントセッションを作成し、[ConnectJS を初期化](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions)したら、アカウント登録コンポーネントをフロントエンドに表示します。 #### JavaScript ```js // Include this element in your HTML const accountOnboarding = stripeConnectInstance.create('account-onboarding'); accountOnboarding.setOnExit(() => { console.log('User exited the onboarding flow'); }); container.appendChild(accountOnboarding); // Optional: make sure to follow our policy instructions above // accountOnboarding.setFullTermsOfServiceUrl('{{URL}}') // accountOnboarding.setRecipientTermsOfServiceUrl('{{URL}}') // accountOnboarding.setPrivacyPolicyUrl('{{URL}}') // accountOnboarding.setCollectionOptions({ // fields: 'eventually_due', // futureRequirements: 'include', // requirements: { // exclude: ['business_profile.product_description'] // } // }) // accountOnboarding.setOnStepChange((stepChange) => { // console.log(`User entered: ${stepChange.step}`); // }); ``` #### HTML + JS | メソッド | タイプ | 説明 | デフォルト | | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | | `setFullTermsOfServiceUrl` | `string` | [利用規約全文](https://docs.stripe.com/connect/service-agreement-types.md#full)への同意の絶対 URL。 | [Stripe の利用規約全文](https://stripe.com/connect-account/legal/full) | | `setRecipientTermsOfServiceUrl` | `string` | [Recipient (受取人) の利用規約](https://docs.stripe.com/connect/service-agreement-types.md#recipient)への同意の絶対 URL。 | [Stripe 受取人利用規約](https://stripe.com/connect-account/legal/recipient) | | `setPrivacyPolicyUrl` | `string` | プライバシーポリシーへの絶対 URL。 | [Stripe プライバシーポリシー](https://stripe.com/privacy) | | `setSkipTermsOfServiceCollection` | `string` | [非推奨] 代わりに要件制限 `exclude: ["tos_acceptance.*"]` を使用してください。true の場合、埋め込みオンボーディングは利用規約の収集をスキップし、利用規約の承諾を[自分で収集](https://docs.stripe.com/connect/updating-service-agreements.md#indicating-acceptance)する必要があります。 | false | | `setCollectionOptions` | `{fields: 'currently_due' | 'eventually_due', future_requirements: 'omit' | 'include', requirements: { exclude: string[] } | { only: string[] }}` | `currently_due` または `eventually_due` 要件の収集をカスタマイズし、[future requirements](https://docs.stripe.com/connect/handle-verification-updates.md) を含めるかどうかを制御し、要件の収集を制限します。`eventually_due` を指定すると、`eventually_due` と `currently_due` 双方の要件が収集されます。 | `{fields: 'currently_due', futureRequirements: 'omit'}` | | `setOnExit` | `() => void` | 連結アカウントがアカウント登録プロセスを終了しました。 | | | `setOnStepChange` | `({step}: StepChange) => void` | 連結アカウントがアカウント登録プロセス内のいずれかのステップから別のステップに移動しました。以下で説明するように、`StepChange` を使用して現在のステップを識別します。 | | このコンポーネントを使用して新しいアカウントを設定するには、以下を実行します。 1. [連結アカウント](https://docs.stripe.com/api/accounts/create.md) を作成します。この API コールで `Account` オブジェクトに関する情報を事前入力できます。 1. 連結アカウントの ID を使用して、[Connect の埋め込みコンポーネントを初期化](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions)します。 1. `account-onboarding` エレメントを含めて、連結アカウントにアカウント登録フローを表示します。 1. このコンポーネントから送信される `exit` イベントをリッスンします。Stripe は、連結アカウントがアカウント登録プロセスを終了したときにこのイベントを送信します。 1. `exit` がトリガーされたら、`Account` の詳細を取得して、以下のステータスを確認します。 - [details_submitted](https://docs.stripe.com/api/accounts/object.md#account_object-details_submitted) - [charges_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-charges_enabled) - [payouts_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-payouts_enabled) - その他のリクエストされたケイパビリティ 必要なケイパビリティがすべて有効な場合、連結アカウントをフローの次のステップに進めることができます。 #### React | React プロパティ | タイプ | 説明 | デフォルト | 必須またはオプション | | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------- | | `onExit` | `() => void` | 連結アカウントがアカウント登録プロセスを終了すると、コンポーネントはこのコールバック関数を実行します | | 必須 | | `fullTermsOfServiceUrl` | `string` | [利用規約](https://docs.stripe.com/connect/service-agreement-types.md#full)の全文へのリンク | [Stripe の利用規約全文](https://stripe.com/connect-account/legal/full) | オプション | | `recipientTermsOfServiceUrl` | `string` | [受取人利用規約](https://docs.stripe.com/connect/service-agreement-types.md#recipient)へのリンク | [Stripe 受取人利用規約](https://stripe.com/connect-account/legal/recipient) | オプション | | `privacyPolicyUrl` | `string` | プライバシーポリシーへのリンク | [Stripe プライバシーポリシー](https://stripe.com/privacy) | オプション | | `skipTermsOfServiceCollection` | `boolean` | [非推奨] 代わりに要件制限 `exclude: ["tos_acceptance.*"]` を使用してください。true の場合、埋め込みオンボーディングは利用規約の収集をスキップし、利用規約の承諾を[自分で収集](https://docs.stripe.com/connect/updating-service-agreements.md#indicating-acceptance)する必要があります。 | false | オプション | | `collectionOptions` | `{fields: 'currently_due' | 'eventually_due', futureRequirements?: 'omit' | 'include', requirements?: { exclude: string[] } | { only: string[] }}` | `currently_due` または `eventually_due` 要件の収集をカスタマイズし、[future requirements](https://docs.stripe.com/connect/handle-verification-updates.md) を含めるかどうかを制御し、要件の収集を制限します。`eventually_due` を指定すると、`eventually_due` と `currently_due` 双方の要件が収集されます。コンポーネントが最初にレンダリングされた後は、このパラメーターは更新できません。 | `{fields: 'currently_due', futureRequirements: 'omit'}` | オプション | | `onStepChange` | `({step}: StepChange) => void` | コンポーネントは、オンボーディングプロセス内で連結アカウントが 1 つのステップから別のステップに移動したときに、このコールバック関数を実行します。以下で説明するように、`StepChange` を使用して現在のステップを特定します。 | | オプション | 1. [連結アカウント](https://docs.stripe.com/api/accounts/create.md) を作成します。この API コールで `Account` オブジェクトに関する情報を事前入力できます。 1. 連結アカウントの ID を使用して、[Connect の埋め込みコンポーネントを初期化](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions)します。 1. `account-onboarding` エレメントを含めて、連結アカウントにアカウント登録フローを表示します。 1. 連結アカウントがアカウント登録プロセスを終了したときに実行するコールバック関数 `onExit` を渡します。 1. `onExit` がトリガーされたら、`Account` の詳細を取得して次のステータスを確認します。 - [details_submitted](https://docs.stripe.com/api/accounts/object.md#account_object-details_submitted) - [charges_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-charges_enabled) - [payouts_enabled](https://docs.stripe.com/api/accounts/object.md#account_object-payouts_enabled) - その他のリクエストされたケイパビリティ 必要なケイパビリティがすべて有効な場合、連結アカウントをフローの次のステップに進めることができます。 ### StepChange オブジェクト `StepChange` タイプは `connect.js` で定義されています。連結アカウントがアカウント登録プロセスでステップ間を移動するたびに、ステップ変更ハンドラーは、以下のプロパティが指定された `StepChange` オブジェクトを受け取ります。 | 名前 | タイプ | サンプル値 | | ------ | ---------------------------- | --------------- | | `step` | `string` (有効なステップ名を指定してください) | `business_type` | アカウント登録ステップへの一意の参照。 | ##### 手順の制限 - `StepChange` オブジェクトは分析専用です。 - ステップは任意の順序で表示でき、繰り返す場合があります。 - 有効な `step` 名のリストは、予告なしにいつでも変更される可能性があります。 #### ステップ名 アカウント登録フローの各ページには、以下のステップ名のいずれかが設定されています。 | ステップ名 | 説明 | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `stripe_user_authentication` | [ユーザー認証](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#user-authentication-in-connect-embedded-components)には、Stripe が管理するウィンドウへのポップアップが含まれます。ワークフローを続行する前に、連結アカウントは認証を終える必要があります。 | | `risk_intervention` | リスクに関する要件を解決するための指示を連結アカウントに提示します。 | | `legal_entity_sharing` | 連結アカウントは任意で、同じ所有者の既存のアカウントに記載されている[事業情報を再利用](https://docs.stripe.com/connect/networked-onboarding.md)できます。 | | `business_type` | 連結アカウントの会社形態を設定します。場合により、連結アカウントに国を設定することもできます。 | | `business_details` | 連結アカウントのビジネスに関する情報を収集します。 | | `business_verification` | 会社の定款など、会社の企業識別番号を確認できる証明書類を収集します。または、誤って入力された会社情報をユーザーが修正できるようにします。 | | `business_bank_account_ownership_verification` | 銀行口座情報 (法的所有者の名前、口座番号など) が、そのユーザーの Stripe アカウントの情報と一致していることを裏付けるのに必要な書類を収集します。 | | `business_documents` | ビジネスに関する追加書類および確認要件を収集します。 | | `representative_details` | 担当者に関する情報を収集します。 | | `representative_document` | 担当者の存在を証明する政府発行の本人確認書類を収集します。 | | `representative_additional_document` | 担当者の情報を裏付ける追加書類を収集します。 | | `legal_guardian_details` | 未成年者が開設したアカウントに対する法定後見人の同意を収集します。 | | `owners` | 会社の[代表者](https://support.stripe.com/questions/beneficial-owner-and-director-definitions)に関する情報を収集します。 | | `directors` | 会社の[取締役](https://support.stripe.com/questions/beneficial-owner-and-director-definitions)に関する情報を収集します。 | | `executives` | 会社の[幹部](https://support.stripe.com/questions/beneficial-owner-and-director-definitions)に関する情報を収集します。 | | `proof_of_ownership_document` | [会社代表者](https://support.stripe.com/questions/beneficial-owner-and-director-definitions)を確認するための文書を収集します。 | | `proof_of_authorization` | 社内で[担当者が十分な権限のある地位に就いている](https://support.stripe.com/questions/representative-authority-verification)ことを確認するための文書を収集します。 | | `confirm_owners` | Stripe に提供した会社代表者情報が最新かつ正確であることを、連結アカウントが証明できるようにします。 | | `risa_compliance_survey` | (日本国内のビジネスにのみ適用されます。)[改正割賦販売法](https://stripe.com/guides/installment-sales-act)に関連する質問に回答します。 | | `treasury_and_card_issuing_terms_of_service` | 該当する機能をリクエストする際に、[プラットフォーム向け Treasury と Card Issuing](https://docs.stripe.com/treasury/connect.md) の利用規約への同意を取得します。 | | `external_account` | 連結アカウントの [external account](https://docs.stripe.com/api/accounts/object.md#account_object-external_accounts) を収集します。 | | `support_details` | 顧客が連結アカウントのビジネスを識別するのに役立つ情報を収集します。このサポート情報は、支払い明細書、請求書、領収書に表示できます。 | | `climate` | 連結アカウントが [Stripe Climate](https://docs.stripe.com/climate.md) にオプトインできるようにします。 | | `tax` | 連結アカウントが [Stripe Tax](https://docs.stripe.com/tax.md) にオプトインできるようにします。 | | `summary` | アカウント登録の最終審査のステップ。連結アカウントは、入力した情報をこのステップで更新できます。利用規約とプライバシーの URL がこの画面に表示されます。 | | `summary_risk` | 連結アカウントは、リスク要件に関する情報をサマリーステップで更新できます。 | | `summary_business_type` | 連結アカウントは、サマリーステップから、ビジネスタイプに関連する情報を更新できます。 | | `summary_business` | 連結アカウントは、ビジネスに関する情報をサマリーステップで更新できます。 | | `summary_support` | 連結アカウントは、サマリーステップから、ビジネスに関連する公開情報を更新できます。 | | `summary_persons` | 連結アカウントは、アカウントに保存されている個人に関する情報をサマリーステップで更新できます。 | | `summary_external_account` | 連結アカウントは、サマリーの段階から [external account](https://docs.stripe.com/api/accounts/object.md#account_object-external_accounts) に関する情報を更新できます。 | | `summary_tax` | 連結アカウントは、[Stripe Tax](https://docs.stripe.com/tax.md) システムに関する情報をサマリーステップで更新できます。 | | `summary_tax_identification_form` | 連結アカウントは、W8 / W9 フォームの資格情報をサマリーステップで更新できます。これは、Stripe が W8 / W9 フォームの情報を収集する必要がある場合に表示されます。 | | `summary_climate` | 連結アカウントは、[Stripe Climate](https://docs.stripe.com/climate.md) システムに関する情報をサマリーステップで更新できます。 | | `terms_of_service` | `only` ToS 受諾を徴収するために要件制限を活用する場合、`only` 要件制限を活用する場合はサマリーステップがレンダリングされないため、特別なステップをレンダリングします。 | #### API を使用したカスタムのアカウント登録 API アカウント登録では、[Accounts API](https://docs.stripe.com/api/v2/core/accounts.md) を使用して、連結アカウントのアカウント登録フロー、報告機能、コミュニケーションチャネルを構築します。その場合、Stripe は連結アカウントから完全に認識されないようにすることも可能です。 プラットフォームは、連結アカウントとのやり取りのすべてと、本人確認に必要な情報のすべてを収集する責任を負います。法律や規制の変更が要件に影響を与えることがあるため、要件は定期的に確認して更新する必要があります。 > [API アカウント登録ガイド](https://docs.stripe.com/connect/api-onboarding.md)では、カスタムのアカウント登録フローの実装方法について詳しく説明しています。しかし、ガイド内のコード例は Accounts v1 API を使用しています。Accounts v1 API は API v2 では使用できず、[API v2 の Account](https://docs.stripe.com/api/v2/core/accounts.md) の構造は[API v1 のAccount](https://docs.stripe.com/api/accounts.md?api-version=preview) の構造とは異なります。アカウント登録ガイドで Accounts v1 のプロパティが参照されている場合は、代わりに Accounts v2 の対応するプロパティを使用してください。また、API v2 でほとんどの `Account` プロパティを取得するには、[include パラメーターを使用すること](https://docs.stripe.com/api-includable-response-values.md)を忘れないでください。 必要なケイパビリティと責任に基づいて `Account` の要件を特定するには、`include` パラメーターを使用して `Account` を取得し、その要件、構成、ID に関する情報をリクエストします。 ```curl curl -G https://api.stripe.com/v2/core/accounts/acct_xxxxxxxxxxxxxxxx \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-01-28.clover" \ -d "include[0]=requirements" \ -d "include[1]=configuration.merchant" \ -d "include[2]=defaults" \ -d "include[3]=identity" ``` 必要な情報を特定したら、それを収集して確認し、`Account` に追加します。本人確認情報の追加プロセスは、`Account` が個人と会社のどちらを代表しているかによって内容が異なります。 - `Account` の [identity.entity_type](https://docs.stripe.com/api/v2/core/accounts/retrieve.md#v2_retrieve_accounts-response-identity-entity_type) が `individual` の場合は、直接更新できます。 ```curl curl -X POST https://api.stripe.com/v2/core/accounts/acct_xxxxxxxxxxxxxxxx \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-01-28.clover" \ --json '{ "include": [ "configuration.merchant", "defaults", "identity", "requirements" ], "configuration": { "merchant": { "mcc": "5734", "statement_descriptor": { "descriptor": "FurEver" }, "support": { "phone": "+14155552863" } } }, "identity": { "entity_type": "individual", "business_details": { "product_description": "Saas pet grooming platform at furever.dev using Connect embedded components", "url": "http://accessible.stripe.com" }, "attestations": { "terms_of_service": { "account": { "ip": "255.255.255.255" } } }, "individual": { "date_of_birth": { "day": 1, "month": 1, "year": 1990 }, "email": "jenny.rosen@example.com", "given_name": "Jenny", "surname": "Rosen" } } }' ``` - `Account` の [identity.entity_type](https://docs.stripe.com/api/v2/core/accounts/retrieve.md#v2_retrieve_accounts-response-identity-entity_type) が `company` の場合、[relationship.representative](https://docs.stripe.com/api/v2/core/persons/create.md#v2_create_core_person-relationship-representative) を true に設定して、[そのアカウントの Person オブジェクトを作成](https://docs.stripe.com/api/v2/core/persons/create.md)する必要があります。以下に例を示します。 ```curl curl -X POST https://api.stripe.com/v2/core/accounts/acct_xxxxxxxxxxxxxxxx/persons \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-01-28.clover" \ --json '{ "nationalities": [ "us" ], "phone": "415-555-2863", "given_name": "Jenny", "surname": "Rosen", "email": "jenny.rosen@example.com", "address": { "line1": "27 Fredrick Ave", "city": "Brothers", "postal_code": "97712", "state": "OR", "country": "us" }, "id_numbers": [ { "type": "us_ssn_last_4", "value": "0000" } ], "date_of_birth": { "day": 28, "month": 1, "year": 2000 }, "relationship": { "director": true, "executive": false, "legal_guardian": false, "owner": true, "percent_ownership": "0.8", "representative": true, "title": "CEO" }, "legal_gender": "female", "political_exposure": "none" }' ``` ## 連結アカウントの外部口座の作成 外部口座の作成プロセスは、連結アカウントがダッシュボードへのアクセス権を持っているかどうかで内容が異なります。 - `Account` の `dashboard` が `full` または `express` の場合、アカウント所有者はダッシュボードを使用して外部アカウントを追加することができます。 - `Account` の `dashboard` が `none` の場合、[/v1/external_accounts](https://docs.stripe.com/api/external_account_bank_accounts/create.md?api-version=preview) エンドポイントを使用して外部アカウントを作成できます。 > 連結アカウントのダッシュボードへのアクセスに関係なく、API v1 コールを使用して、外部アカウントの[取得](https://docs.stripe.com/API/external_account_bank_accounts/retrieve.md?API-version=preview)、[リスト](https://docs.stripe.com/API/external_account_bank_accounts/list.md?API-version=preview)、[更新](https://docs.stripe.com/API/external_account_bank_accounts/update.md?API-version=preview)、または[削除](https://docs.stripe.com/API/external_account_bank_accounts/delete.md?API-version=preview)ができます。 ```curl curl https://api.stripe.com/v1/external_accounts \ -u "<>:" \ -H "Stripe-Version: 2025-04-30.preview" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "external_account[account_number]=000123456789" \ -d "external_account[routing_number]=110000000" \ -d "external_account[country]=US" \ -d "external_account[currency]=USD" \ -d "external_account[object]=bank_account" ``` ## 連結アカウントの支払いを設定する 連結アカウントの支払いを設定するには、[ダイレクト支払い](https://docs.stripe.com/connect/direct-charges.md?platform=web)または[デスティネーション支払い](https://docs.stripe.com/connect/destination-charges.md?platform=web)の手順を参照してください。デスティネーション支払いを使用するには、[on_behalf_of パラメーターを設定](https://docs.stripe.com/connect/destination-charges.md?platform=web#settlement-merchant)する必要があります。 ## 連結アカウントの入金を設定する ダッシュボードまたは API を使用して、連結アカウントの入金設定 (スケジュール、明細書表記、遅延日数など) を構成できます。 #### API [バランス設定](https://docs.stripe.com/api/balance-settings.md) API を使用します。 ```curl curl https://api.stripe.com/v1/balance_settings \ -u "<>:" \ -H "Stripe-Version: 2025-08-27.preview" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d debit_negative_balances=true \ -d "payments[payouts][schedule][interval]=weekly" \ -d "payments[payouts][schedule][weekly_payout_days][]=monday" ``` #### ダッシュボード 1. ダッシュボードで、[連結アカウント](https://dashboard.stripe.com/connect/accounts) ページに移動し、更新するアカウントを検索します。 1. アカウントをクリックして、その詳細ページを開きます。 1. アクティビティセクションで、アカウント残高の横にあるオーバーフローメニュー (⋯) をクリックし、**入金スケジュールを編集**をクリックします。 ## 連結アカウントの要件変更をリッスンする アカウントの要件は、多くの場合、金融規制当局、カードネットワーク、その他の金融機関が実施する変更によって変更される可能性があります。要件変更の Webhook 通知を設定するには、Account v2 の更新イベントをリッスンするイベントの送信先を作成します。 1. [Stripe ダッシュボード](https://dashboard.stripe.com)で、ナビゲーションメニューのフッターにある**開発者**をクリックして開発者メニューを開き、**Webhook** を選択します。 1. **+ 送信先を追加**をクリックします。 1. Event from セクションで、**Connected accounts** を選択します。 1. **詳細設定を表示**を選択します。Payload style セクションで、**Thin** を選択します。 1. 「Events」フィールドに「v2」と入力して、v2 イベントタイプを検索します。連結アカウントで使用される設定タイプのそれぞれに、**v2.core.account[requirements].updated** と **v2.core.account[configuration.configuration\_type].capability\_status\_updated** タイプを選択します。 [インタラクティブな Webhook エンドポイントビルダー](https://docs.stripe.com/webhooks/quickstart.md)に従って、イベントの送信先の設定を続けます。 更新された要件を収集して更新イベントに応答するようにアプリケーションを構成します。 ### 開発時にローカルリスナーを設定する [Stripe CLI](https://docs.stripe.com/cli/listen) をインストールし、ローカルリスナーを設定することで、ローカルサーバーにイベントを送信し、開発に使用することができます。 1. [Stripe ダッシュボード](https://dashboard.stripe.com)にログインします。 1. Stripe CLI で、`stripe login` コマンドを入力します。ブラウザーにリダイレクトされ、アカウントの確認と認証が行われます。 1. CLI に戻り、次のコマンドを実行します。プラットフォームと連結アカウントで利用可能なすべての V2 イベントをリッスンし、http://localhost:4242 に転送します。 #### curl ```bash stripe listen --thin-events 'v2.core.account[requirements].updated,v2.core.account[configuration.recipient].capability_status_updated,v2.core.account[configuration.merchant].capability_status_updated,v2.core.account[configuration.customer].capability_status_updated' --forward-thin-to http://localhost:4242 ``` ## Billing を連携させて継続料金を回収する Stripe Billing を使用して連結アカウントから継続料金を回収するには、以下の手順を実行します。 1. 継続料金に対応する商品を 1 つ以上作成します。 1. アカウントを顧客として、手数料商品のサブスクリプションを作成します。 1. (オプション) カードなどの他の決済手段に付随する取引手数料を回避して、連結アカウントの Stripe 残高から直接サブスクリプション料金を回収するには、デスティネーション支払いを[決済手段として設定](https://docs.stripe.com/payments/pay-with-balance.md)します。 > 連結アカウントは、支払いを行うのに十分な利用可能残高がある場合にのみ、Stripe 残高を使用して支払うことができます。残高支払いの失敗回を避するための推奨事項を[この手順の後半](https://docs.stripe.com/connect/integrate-billing-connect.md#avoid-balance-payment-failures)で説明しています。 ### 継続料金で商品を作成する サブスクリプション料金を表す商品と料金を作成します。API またはダッシュボードを使用できます。 #### API [商品を作成](https://docs.stripe.com/api/products/create.md?api-version=preview)し、デフォルト価格を継続支払いとして定義します。`expand` パラメーターに `default_price` を含めて価格情報を返します。 ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ -d "name=Connected account subscription fee" \ -d "default_price_data[unit_amount]=1000" \ -d "default_price_data[currency]=usd" \ -d "default_price_data[recurring][interval]=month" \ -d "expand[]=default_price" ``` 後でサブスクリプションを作成する際に使用できるように、料金 ID (`price_xxxxxxxxxxxxxx`) を記録します。 > 複数の通貨で残高支払いを受け付ける場合は、商品ごとに通貨で[個別の価格を作成](https://docs.stripe.com/products-prices/manage-prices.md#create-price)します。たとえば、USD の価格で商品を作成し、連結アカウントに EUR で請求する場合は、その商品の価格を EUR で追加します。 #### ダッシュボード ダッシュボードで、[商品カタログ](https://dashboard.stripe.com/products?active=true) に移動し、**+ 商品を作成**をクリックします。[商品を作成](https://docs.stripe.com/products-prices/manage-prices.md#create-product) して、価格を割り当てます。価格をサブスクリプションとして設定するには、**継続**価格設定を選択し、**請求期間**を設定します。 商品と料金を追加したら、後でサブスクリプションを作成する際に使用できるように、料金 ID を記録します。料金 ID は `price_xxxxxxxxxxxxxx` のようになります。ダッシュボードでは、商品詳細ページから料金 ID をクリップボードにコピーできます。[料金] セクションで、サブスクリプション料金の横にあるオーバーフローメニュー (⋯)をクリックし、**料金 ID をコピー**をクリックします。 ### サブスクリプションを作成して連結アカウントに請求する 連結アカウントの Stripe 残高から SaaS サブスクリプション料金を直接回収できます。連結アカウントは以下の要件を満たしている必要があります。 - `merchant` 設定と `customer` 設定の両方が必要です。 - `merchant` 設定の `card_payments` ケイパビリティを有効にする必要があります。 - 利用可能残高には、全額を支払うのに十分な資金が必要です。 #### SetupIntents を使用する 連結アカウントの所有者がサブスクリプションを購入するためのカスタムプロセスを実装する場合は、[SetupIntent を使用](https://docs.stripe.com/payments/save-and-reuse.md?platform=web&ui=elements)して、`Account` オブジェクトに `PaymentMethod` を関連付けます。 SetupIntent の作成時に、[アカウントの Stripe 残高からの支払い](https://docs.stripe.com/payments/pay-with-balance.md)を決済手段として関連付けるには、次の値を指定します。 ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -H "Stripe-Version: 2025-04-30.preview" \ -d "payment_method_types[]=stripe_balance" \ -d confirm=true \ -d customer_account=acct_xxxxxxxxxxxxxx \ -d usage=off_session \ -d "payment_method_data[type]=stripe_balance" ``` SetupIntent が正常に作成されると、次のようなデータが返されます。 ```json { "id": "seti_123", "object": "setup_intent", "customer": "cus_xxxxxxxxxxxxxx", "customer_account": "acct_xxxxxxxxxxxxxx", "payment_method": "pm_xxxxxxxxxxxxxx", "status": "succeeded" } ``` その後、[customer_account](https://docs.stripe.com/api/subscriptions/create.md?api-version=preview#create_subscription-customer) として `Account` ID を渡すことで、アカウントに紐づけられた `PaymentMethod` を使用して[サブスクリプション](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=elements&api-integration=checkout#create-session)を作成できます。 アカウントの Stripe 残高から支払いを回収するサブスクリプションを作成するには、次の例のように、決済手段の種類を明示的に設定します。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -H "Stripe-Version: 2025-04-30.preview" \ -d customer_account=acct_xxxxxxxxxxxxxx \ -d default_payment_method=pm_xxxxxxxxxxxxxx \ -d "items[0][price]=price_xxxxxxxxxxxxxx" \ -d "items[0][quantity]=1" \ -d "payment_settings[payment_method_types][0]=stripe_balance" ``` #### 埋め込み型 Checkout を使用する [Embedded Checkout](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=checkout&ui=embedded-page) を使用すると、サイトに決済画面を埋め込み、連結アカウントのオーナーがアクセスしてサブスクリプションを購入できるようになります。 > 埋め込み型 Checkout は、[Stripe 残高からのダイレクト支払い](https://docs.stripe.com/payments/pay-with-balance.md)をサポートしていません。Stripe 残高からサブスクリプション料金を回収するには、SetupIntents を使用してカスタムの確認フローを作成します。 #### Checkout セッションを作成し、以下のパラメーターを渡します。 - [line_items](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-line_items) 配列にハッシュを追加します。`quantity` を `1` に、`price` を作成した商品の価格 ID に設定します。 - [モード](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-mode) を `subscription` に設定します。 - [ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-ui_mode) を `embedded_page` に設定します。 - [return_url](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-return_url) は、連結アカウントの所有者が支払いを試みた後に戻されるページのアドレスに設定します。次のコード例に示すように、URL 内で `session_id` を `{CHECKOUT_SESSION_ID}` テンプレート変数に設定します。決済は変数を決済セッション ID に置き換えるため、戻り先のページがアクセスが可能になります。 - [customer_account](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-customer_account) を支払い先の `Account` の ID に設定します。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2025-04-30.preview" \ -d "line_items[0][price]=price_xxxxxxxxxxxxxx" \ -d "line_items[0][quantity]=1" \ -d mode=subscription \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}" \ -d customer_account=acct_xxxxxxxxxxxxxxxx ``` > 支払い後に Stripe が連結アカウントの所有者を戻すページの作成とホストはプラットフォームの責任になります。そのページには、支払いの成否に関わりなく戻されることになります。 返される `Session` オブジェクトには [client_secret](https://docs.stripe.com/api/checkout/sessions/object.md?api-version=preview#checkout_session_object-client_secret) 値が含まれています。これを記録して、決済フォームを表示するときに使用します。 #### 次のコード例に示すように、前の手順の client_secret を使用して、埋め込まれた決済フォームが表示されます。 #### HTML + JS 1. Stripe.js を読み込む *PCI 準拠* (Any party involved in processing, transmitting, or storing credit card data must comply with the rules specified in the Payment Card Industry (PCI) Data Security Standards. PCI compliance is a shared responsibility and applies to both Stripe and your business)を維持するには、*Stripe.js* (Use Stripe.js’ APIs to tokenize customer information, collect sensitive card data, and accept payments with browser payment APIs) を使用して、支払い詳細がお客様のサーバーを経由せずに直接 Stripe に送られるようにします。Stripe.js を常に js.stripe.com から読み込むことにより、PCI 準拠が維持されます。このスクリプトをバンドルに含めたり、自分でホストしたりしないでください。 1. 決済フォームを定義する 顧客の情報を安全に収集するには、空のプレースホルダー `div` を作成します。Stripe はこの `div` に iframe を挿入します。 Checkout は [Stripe.js](https://docs.stripe.com/js.md) の一部として利用できます。HTML ファイルのヘッダーに Stripe.js スクリプトを追加してページに含めます。次に、マウンティングに使用する空の DOM ノード (コンテナ) を作成します。 ```html Accept a payment
``` 1. Stripe.js を初期化する 公開可能な API キーで Stripe.js を初期化します。 1. Checkout セッションの client secret を取得する サーバーに [Checkout セッションの作成](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview)をリクエストする非同期の `fetchClientSecret` 関数を作成し、クライアントシークレットを取得します。 1. Checkout を初期化する `fetchClientSecret` 関数を使用して Checkout を初期化し、決済フォームのプレースホルダー `
` にマウントします。Checkout は、HTTPS 接続を介して支払い情報を Stripe に安全に送信する iframe に表示されます。 一部の支払い方法では、別のページにリダイレクトして支払いを確定する必要があるため、Checkout は別の iframe 内に配置しないでください。 ```javascript // Initialize Stripe.js const stripe = Stripe('<>'); initialize(); // Fetch Checkout Session and retrieve the client secret async function initialize() { const fetchClientSecret = async () => { const response = await fetch("/create-checkout-session", { method: "POST", }); const { clientSecret } = await response.json(); return clientSecret; }; // Initialize Checkout const checkout = await stripe.createEmbeddedCheckoutPage({ fetchClientSecret, }); // Mount Checkout checkout.mount('#checkout'); } ``` #### React 1. Stripe を React アプリに追加する 支払い情報を Stripe に直接送信し、お客様のサーバーには送信されないようにすることで *PCI 準拠* (Any party involved in processing, transmitting, or storing credit card data must comply with the rules specified in the Payment Card Industry (PCI) Data Security Standards. PCI compliance is a shared responsibility and applies to both Stripe and your business)を維持するには、[React Stripe.js](https://docs.stripe.com/sdks/stripejs-react.md) をインストールする必要があります。 ```bash npm install --save @stripe/react-stripe-js @stripe/stripe-js ``` 1. Stripe.js を読み込む Stripe ライブラリを設定するには、 Stripe の公開可能な API キーを使用して `loadStripe()` を呼び出します。 `EmbeddedCheckoutProvider` を作成します。返された `Promise` をプロバイダーに渡します。 1. Checkout セッションの client secret を取得する サーバーに [Checkout セッションの作成](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview)をリクエストする非同期の `fetchClientSecret` 関数を作成し、クライアントシークレットを取得します。 1. Checkout を初期化する 子コンポーネントが埋込型 Checkout コンシューマーを介してStripe サービスにアクセスできるようにするには、`loadStripe` の結果として生成されたプロミスと `fetchClientSecret` 関数を `option` として埋込型 Checkout プロバイダーに渡します。 ```jsx import * as React from 'react'; import {loadStripe} from '@stripe/stripe-js'; import { EmbeddedCheckoutProvider, EmbeddedCheckout } from '@stripe/react-stripe-js'; // Make sure to call `loadStripe` outside of a component's render to avoid // recreating the `Stripe` object on every render. const stripePromise = loadStripe('pk_test_123', { }); const App = ({fetchClientSecret}) => { const options = {fetchClientSecret}; return ( ); } ``` #### 戻りページを表示する 顧客が支払いを試行すると、Stripe はサイトでホストされている戻りページに顧客をリダイレクトします。Checkout セッションを作成したときに、[return_url](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=preview#create_checkout_session-return_url) パラメーターで戻りページの URL を指定しています。また、Checkout セッション ID を含めるようにも設定してください。 > 決済の進行中、決済手段によっては、発行会社/銀行のオーソリページなどの中間ページに顧客がリダイレクトされる場合があります。そのページでの操作を完了した顧客は、Stripe によって戻り先ページにリダイレクトされます。 戻りページで支払い結果を処理します。読み込まれたら、URL の Checkout セッション ID を使用して [決済セッションを取得](https://docs.stripe.com/api/checkout/sessions/retrieve.md?api-version=preview)し、その[ステータス](https://docs.stripe.com/api/checkout/sessions/object.md?api-version=preview#checkout_session_object-status)を調べます。ステータス値は、以下のように支払い結果に対応します。 - `complete`: 支払いが成功しました。Checkout セッションの情報を使用して成功ページを表示します。 - `open`: 支払いが失敗またはキャンセルされました。顧客がやり直せるように Checkout を再度マウントします。 ```js // Retrieve a Checkout Session // Use the session ID initialize(); async function initialize() { const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); const sessionId = urlParams.get('session_id'); const response = await fetch(`/session-status?session_id=${sessionId}`); const session = await response.json(); // Handle the session according to its status if (session.status == 'open') { // Remount embedded Checkout window.location.replace('http://localhost:4242/checkout.html') } else if (session.status == 'complete') { document.getElementById('success').classList.remove('hidden'); document.getElementById('customer-email').textContent = session.customer_email; // Show success page // Optionally use session.payment_status or session.customer_email // to customize the success page } } ``` ```javascript // Add an endpoint to fetch the Checkout Session status app.get('/session_status', async (req, res) => { const session = await stripe.checkout.sessions.retrieve(req.query.session_id); const customer = await stripe.customers.retrieve(session.customer); res.send({ status: session.status, payment_status: session.payment_status, customer_email: customer.email }); }); ``` ## Stripe 残高の支払い失敗を処理するようシステムを設定する 連結アカウントの Stripe 残高から支払いを回収する際は、アカウントの利用可能残高に全額を支払えるだけの十分な資金がなければなりません。残高が十分でなかった場合、支払いは失敗します。連結アカウントの Stripe 残高から直接支払いを回収する場合は、残高に関連する支払いの失敗を管理するようにシステムを設定することをお勧めします。 ### 残高支払いの失敗を回避する 連結アカウントの Stripe 残高での支払いは、利用可能な資金に依存するため、連結アカウントの残高を最大化する手順を実行することで、支払いの失敗を回避できます。 #### 連結アカウントの入金スケジュールを調整する 入金スケジュールをサブスクリプションの請求サイクルに合わせて調整します。たとえば、毎月 1 日にサブスクリプション料金を請求し、毎週月曜日に入金をスケジュール設定する場合、月曜日が多い月は入金額が多くなります。これらの月は、入金の少ない月よりも利用可能な残高が少なくなり、支払いが失敗する可能性が高くなります。 入金による決済の失敗を回避する別の方法として、サブスクリプションの決済前に手動入金に変更できます。各サブスクリプション決済の一定期間前に、連結アカウントに十分な残高がある場合は[手動入金](https://docs.stripe.com/connect/manage-payout-schedule.md)に切り替えて、自動入金によってアカウントが清算される前にサブスクリプションの決済が行われるようにします。サブスクリプションの決済後に、自動入金を再開します。 #### 連結アカウントの最低残高を設定する アカウントの最低残高を定義することで、自動入金によって連結アカウントの利用可能残高が一定額を下回るのを防ぐことができます。 連結アカウントごとの最小残高は、[Balance Settings API](https://docs.stripe.com/payouts/minimum-balances-for-automatic-payouts.md#minimum-balances-platforms) を使用してプログラムで設定できます。または、ダッシュボードで連結アカウントごとに手動で最小残高を設定することもできます。 1. ダッシュボードでアカウントを見つけます。 1. アカウントのオーバーフローメニュー (⋯) から、[…のダッシュボードを表示](https://docs.stripe.com/connect/dashboard/managing-individual-accounts.md#view-the-dashboard-as-a-connected-account)を選択します。 1. 歯車のアイコンをクリックし、**設定**を選択します。 1. アカウント設定で**ビジネス**をクリックします。 1. **外部の入金口座とスケジュール設定**タブを選択します。 1. **支払い残高に最低金額を保持する**をオンにして、金額を入力します。 ### 残高支払いの失敗に対応する [Webhook](https://docs.stripe.com/webhooks.md) と[イベントの送信先](https://docs.stripe.com/billing/subscriptions/webhooks.md#events)を設定して、サブスクリプションの支払いに関する通知を受信します。`invoice.payment_failed` イベントをリッスンして、支払いの失敗を特定します。支払いに失敗したときは、以下のようになります。 - PaymentIntent のステータスが `requires_action` に変わります。 - 現在の請求書のサブスクリプションステータスは `incomplete` のままです。 - サブスクリプションは引き続き請求書を生成しますが、請求書は `draft` ステータスのままです。 #### 自動での再試行 継続支払いのサブスクリプション請求書で利用可能な残高が不十分なために残高決済に失敗した場合は、[再試行を有効にします](https://dashboard.stripe.com/revenue_recovery/retries)。自動再試行では、残高不足の失敗後に 2 回の決済試行がスケジュールされます。 - 最初の再試行は、決済の失敗から少なくとも 24 時間後に行われます。 - 必要に応じて、2 回目の再試行は、最初の再試行の次の日曜日に行われます。 この再試行スケジュールは、連結アカウントが Stripe 残高により多くの資金を蓄積し、スケジュールされた入金との競合を回避できるようにすることを目的としています。 追加手数料なしで任意の金額の再試行を有効にできます。 #### 手動で再試行する 利用可能な残高が不足しているために Stripe 残高からの決済が失敗した場合は、次の手順に従って手動で再試行できます。 1. 連結アカウントの入金スケジュールの期間を `manual` に設定します。 1. 次回連結アカウントに入金される支払いをリッスンしてから、[アカウントの利用可能な残高を確認](https://docs.stripe.com/api/balance/balance_retrieve.md)します。 1. 利用可能な残高がサブスクリプション料金以上の場合は、未払い請求書の決済手段を `stripe_balance` に設定して再試行します。それ以外の場合は、利用可能な残高が請求書の支払いに十分になるまで、支払いのリッスンを続けます。 1. 支払いが成功したら、連結アカウントの通常の入金スケジュールに戻します。 失敗した Stripe 残高での支払いを再試行する代わりに、別の決済手段を[請求書で直接指定](https://docs.stripe.com/billing/collection-method.md#set-collection-method-invoice)して、試すことができます。また、連結アカウントが自身の[サブスクリプションの決済手段を更新](https://docs.stripe.com/billing/subscriptions/payment-methods-setting.md#update-payment-method)できるようにするフローを実装することもできます。 ## Accounts API v2 の制限 Accounts v1 は、次の場合に使用する必要があります。 - OAuth を使用して連結されたアカウント - 受取人利用規約に署名したアカウント - 次のケイパビリティをリクエストまたは管理するには、次の手順に従います。 - `treasury` - `card_issuing_*` - `legacy_payments` などの[非推奨ケイパビリティ](https://docs.stripe.com/connect/account-capabilities.md?accounts-namespace=v2#deprecated-capabilities) - 非推奨の決済手段 - 支払い方法の公開または非公開プレビュー > #### 越境入金 > > [Global Payouts](https://docs.stripe.com/global-payouts.md) を使用して海外に送金します。