# 複数のアカウント間で支払い方法を共有してダイレクト支払いを行う 支払い情報をプラットフォームに保存し、連結アカウントに複製してダイレクト支払いを行います。 保存されている同じ支払い情報を使用して、複数の連結アカウントにダイレクト支払いを作成する必要がある場合は、この方法を使用します。それ以外の場合は、[ダイレクト支払いの作成ガイド](https://docs.stripe.com/connect/direct-charges.md)をご覧ください。 ## プラットフォームで支払いの詳細を保存する 顧客から決済情報を収集したら、今後の利用に向けて設定し、プラットフォームに保存します。各決済手段の設定は 1 回のみ必要です。 ### プラットフォームで顧客を作成する プラットフォームで [Customers API](https://docs.stripe.com/api/customers.md) を使用して、顧客を表す `Customer` オブジェクトを作成します。 ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d "name=Jenny Rosen" ``` ### プラットフォームで SetupIntent を作成する 顧客の支払い方法の詳細を収集したら、[SetupIntent API](https://docs.stripe.com/api/setup_intents.md) を使用してプラットフォームに *SetupIntent* (The Setup Intents API lets you build dynamic flows for collecting payment method details for future payments. It tracks the lifecycle of a payment setup flow and can trigger additional authentication steps if required by law or by the payment method) を作成し、顧客に関連付けます。 ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" ``` プラットフォームが連結アカウントと異なる国にある場合、プラットフォームで実行された設定が十分でない可能性があります。たとえば、プラットフォームがアメリカにある場合、設定プロセスで、[SCA の適用](https://docs.stripe.com/strong-customer-authentication.md#sca-enforcement) 対象となる国でのダイレクト支払いに必要な認証がトリガーされない可能性があります。設定が連結アカウントの国の要件を満たすようにするためには、[on_behalf_of](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-on_behalf_of) を使用してその国の連結アカウントを指定する必要があります。 > 支払い情報を収集して保存し、連結アカウントに複製する場合、支払いをプラットフォームで受け付けることができます (連結アカウントでダイレクト支払いを使用することはできません)。これを行うには、SetupIntent を作成する代わりに、[setup_future_usage](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-setup_future_usage)で PaymentIntent を作成します。プラットフォームアカウントの PaymentIntent による売上は、直接プラットフォームの残高に移動します。 ### SetupIntent を確定する SetupIntent の [client_secret](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-client_secret) をフロントエンドに送信し、クライアント側 SDK または UI コンポーネントを使用して支払い情報を収集し、SetupIntent を確認します。たとえば、[Payment Element を使用することで支払い情報を収集し、SetupIntent を確認](https://docs.stripe.com/payments/save-and-reuse.md?platform=web&ui=elements#collect-payment-details)することが可能です。 クライアントで確認すると、顧客は *3D セキュア* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments)による認証など、将来の使用のために支払い情報を設定するために必要なフローを実行できます。 確定が完了すると、*PaymentMethod* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) が作成され、今後使用できるように顧客に紐付けられます。 ## PaymentMethod を複製し、連結アカウントでダイレクト支払いを作成する プラットフォームでの今後の使用に備えて PaymentMethod を設定したら、それを連結アカウントに複製し、ダイレクト支払いを作成します。 ### PaymentMethod を連結アカウントに複製する 以下の例に示すように、Payment Methods API を使用して、プラットフォームアカウントに保存されている PaymentMethod を目的の連結アカウントに複製します。連結アカウントの ID を Stripe アカウントとして指定し、プラットフォームに保存されているCustomer と PaymentMethod の ID を渡します。 > 特定の種類の PaymentMethods のみ複製できます。複製は現在、`type` が `card` と `us_bank_account` のいずれかに設定されている PaymentMethods のみ対応しています。 ```curl curl https://api.stripe.com/v1/payment_methods \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "customer={{PLATFORMCUSTOMER_ID}}" \ -d "payment_method={{PAYMENTMETHOD_ID}}" ``` 複製された PaymentMethod は、固有の ID を持つ独立したオブジェクトです。お客様のプラットフォーム上の PaymentMethod とリンクしたり、同期したりすることはありません。ただし、複製された PaymentMethod はプラットフォームアカウントで行った設定を引き継ぐため、接続アカウント上で再度設定する必要はありません。 ### 連結アカウントで PaymentIntent を作成・確定する [PaymentIntent API](https://docs.stripe.com/api/payment_intents.md) を使用し、複製された PaymentMethod で連結アカウントに *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) を作成および確定します。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d currency=USD \ -d amount=1099 \ -d off_session=true \ -d confirm=true ``` 複製された PaymentMethod を使用して支払いを作成すると、顧客に関連付けられていないため、その支払いは破棄されます。ただし、複製を使用しても、プラットフォームに保存されている元の PaymentMethod には影響しません。使用された複製は再利用できませんが、プラットフォームの PaymentMethod を再度複製して、その新しい複製を別の支払いに使用できます。 ### 連結アカウントの継続支払いを設定する 連結アカウントの継続的なダイレクト支払いに複製された PaymentMethod を使用するには、連結アカウントで Customer オブジェクトを作成し、複製された PaymentMethod を関連付ける必要があります。次に、PaymentIntent を作成する代わりに、複製された PaymentMethod と関連付けられた Customer を使用して、*サブスクリプション* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) を作成します。 > 連結アカウントに作成する Customer オブジェクトは、プラットフォームに保存されている元のオブジェクトとは関連付けられていません。情報の更新を同期させるために、すべてのインスタンスを更新する必要があります。 ## 顧客と支払いの更新に対応する 継続課金を回収しない場合は、連結アカウントに Customer と永続的な PaymentMethod を作成する必要はありません。顧客または決済手段のデータを更新するには、プラットフォームのオブジェクトのみを更新する必要があります。ダイレクト支払いごとに PaymentMethod を複製することで、常にプラットフォームの最新バージョンを使用できます。 継続課金を回収する場合、プラットフォームで 顧客設定アカウント Customer または PaymentMethod を更新する際は、連結アカウントに保存されている対応するオブジェクトも更新する必要があります。プラットフォームで元の PaymentMethod を更新する場合は、再度コピーして、連結アカウント側の 顧客設定アカウント Customer とサブスクリプションに関連付けます。継続課金の複製を保存する連結アカウントごとに、このプロセスを繰り返します。