複数のアカウント間で支払い方法を共有してダイレクト支払いを行う
支払い情報をプラットフォームに保存し、連結アカウントに複製してダイレクト支払いを行います。
保存されている同じ支払い情報を使用して、複数の連結アカウントにダイレクト支払いを作成する必要がある場合は、この方法を使用します。それ以外の場合は、ダイレクト支払いの作成ガイドをご覧ください。
プラットフォームで支払いの詳細を保存する
顧客から支払い情報を収集したら、今後使用するための設定を行い、プラットフォームアカウントに保存します。各支払い方法の設定は最初の 1 回のみ必要です。
プラットフォームで顧客を作成する
プラットフォームアカウントで Customers API を使用して、顧客を表す Customer オブジェクトを作成します。
プラットフォームで SetupIntent を作成する
顧客の支払い方法の詳細を収集したら、SetupIntent API を使用してプラットフォームに SetupIntent を作成し、顧客に関連付けます。
プラットフォームが連結アカウントと異なる国にある場合、プラットフォームで実行された設定が十分でない可能性があります。たとえば、プラットフォームが米国にある場合、設定プロセスで、SCA の適用対象となる国でのダイレクト支払いに必要な認証がトリガーされない可能性があります。設定が連結アカウントの国の要件を満たすようにするためには、on_behalf_ofを使用してその国の連結アカウントを指定する必要があります。
注
支払い情報を収集して保存し、連結アカウントに複製する場合、支払いをプラットフォームで受け付けることができます (連結アカウントでダイレクト支払いを使用することはできません)。これを行うには、SetupIntent を作成する代わりに、setup_future_usageで PaymentIntent を作成します。プラットフォームアカウントの PaymentIntent による売上は、直接プラットフォームの残高に移動します。
SetupIntent を確定する
SetupIntent の client_secret をフロントエンドに送信し、クライアント側 SDK または UI コンポーネントを使用して支払い情報を収集し、SetupIntent を確認します。たとえば、Payment Element を使用することで支払い情報を収集し、SetupIntent を確認することが可能です。
クライアントで確認すると、顧客は 3D セキュアによる認証など、将来の使用のために支払い情報を設定するために必要なフローを実行できます。
確定が完了すると、PaymentMethod が作成され、今後使用できるように顧客に紐付けられます。
PaymentMethod を複製し、連結アカウントでダイレクト支払いを作成する
プラットフォームでの今後の使用に備えて PaymentMethod を設定したら、それを連結アカウントに複製し、ダイレクト支払いを作成します。
PaymentMethod を連結アカウントに複製する
以下の例に示すように、Payment Methods API を使用して、プラットフォームアカウントに保存されている PaymentMethod を目的の連結アカウントに複製します。連結アカウントの ID を Stripe アカウントとして指定し、プラットフォームに保存されている Customer と PaymentMethod の ID を渡します。
注
特定の種類の PaymentMethods のみ複製できます。複製は現在、type
が card
と us_
のいずれかに設定されている PaymentMethods のみ対応しています。
複製された PaymentMethod は、一意の ID を持つ独立したオブジェクトです。プラットフォームの PaymentMethod と関連付けられたり、同期が維持されることはありません。ただし、複製された PaymentMethod はプラットフォームアカウントで実行された設定を引き継ぐため、連結アカウントで再度設定する必要はありません。
連結アカウントで PaymentIntent を作成・確定する
PaymentIntent API を使用し、複製された PaymentMethod で連結アカウントに PaymentIntent を作成および確定します。
複製された PaymentMethod を使用して支払いを作成すると、顧客に関連付けられていないため、その支払いは破棄されます。ただし、複製を使用しても、プラットフォームに保存されている元の PaymentMethod には影響しません。使用された複製は再利用できませんが、プラットフォームの PaymentMethod を再度複製して、その新しい複製を別の支払いに使用できます。
連結アカウントの継続支払いを設定する
連結アカウントの継続的なダイレクト支払いに複製された PaymentMethod を使用するには、連結アカウントで Customer オブジェクトを作成し、複製された PaymentMethod を関連付ける必要があります。次に、PaymentIntent を作成する代わりに、複製された PaymentMethod と関連付けられた Costomer を使用して、サブスクリプションを作成します。
注
連結アカウントで作成する Customer オブジェクトは、プラットフォームアカウントに保存されている元の Customer オブジェクトとの関連性を持っていません。元の顧客情報を更新して、それらの情報の同期を維持する場合は、連結アカウントに保存されている、対応する顧客情報も更新する必要があります。
顧客と支払いの更新に対応する
継続支払いを回収しない場合、プラットフォームアカウントの顧客と PaymentMethod の更新のみが必要です。各ダイレクト支払いの PaymentMethod を複製することで、常に最新のバージョンを使用できます。顧客はお客様のプラットフォームアカウントにのみ存在できるため、複数のアカウントで顧客情報を同期する必要はありません。
継続支払いを回収したり、プラットフォームアカウントで顧客または PaymentMethod を更新する場合、連結アカウントに保存されている対応するオブジェクトを更新する必要があります。プラットフォームで元の PaymentMethod を更新する場合は、それを再度複製して、新しい複製を連結アカウントの顧客とサブスクリプションに関連付けます。継続支払いの複製を保存する連結アカウントごとに、このプロセスを繰り返します。