ダイレクト支払いを作成する
連結アカウントで直接支払いを作成し、手数料を回収します。
顧客が連結アカウントと直接取引を行うときに「ダイレクト支払い」を作成すると、多くの場合、顧客はプラットフォームの存在に気付きません。ダイレクト支払いの特徴は以下のとおりです。
- 支払いはプラットフォームのアカウントではなく、連結アカウントに支払いとして表示されます。
- 連結アカウントの残高は、支払いのたびに増加します。
- アカウント残高は、支払いごとに発生するプラットフォーム手数料により増加します。
この支払いタイプは、SaaS (サービスとしてのソフトウェア) を提供するプラットフォームに最適です。たとえば、Shopify はオンラインストアフロントを構築するためのツールを提供し、Thinkific は教育者がオンラインコースを販売できるようにしています。
プラットフォームの表示制限
ダイレクト支払いは、プラットフォームレベルでは表示が制限されます。ダイレクト支払いを作成すると、以下のようになります。
PaymentIntentsやChargesなどの取引オブジェクトは、プラットフォームではなく連結アカウントに存在します。- ダイレクト支払いデータにアクセスするには、Stripe-Account ヘッダーの連結アカウント ID を使用して Stripe API をクエリする必要があります。
このスコーピング動作は、Fivetran などのデータ同期サービスや、プラットフォームレベルの API クエリに依存するその他のサードパーティの組み込みに影響します。ダイレクト支払いデータを取得するには、プラットフォームではなく連結アカウントをクエリする必要があります。
メモ
Stripe ダッシュボードの全機能にアクセスできる連結アカウントには、ダイレクト支払いを使用することをお勧めします。
Stripe Elements を使用して、サイトに UI コンポーネントを埋め込むことでカスタムの決済システムを構築します。クライアント側とサーバー側のコードでさまざまな支払い方法を受け付ける決済フォームを構築します。この実装と、Stripe のその他の実装タイプとの比較をご覧ください。
まず、Stripe アカウントを登録します。
アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
PaymentIntent を作成するサーバー側
Stripe は PaymentIntent (支払いインテント) オブジェクトを使用して、顧客から支払いを回収する意図を示し、プロセス全体を通して請求の実施と支払い状態の変化を追跡します。
購入プロセスで顧客に表示される支払い方法は、PaymentIntent にも含まれています。Stripe によってダッシュボードの設定から支払い方法を自動的に取得することも、手動でリスト化することもできます。
貴社の構築済みのシステムで支払い方法の提供にコードベースのオプションを必要とする場合を除き、支払い方法を手動でリスト化しないでください。Stripe は通貨、支払い方法の制約、その他のパラメーターを評価し、対応可能な支払い方法のリストを決定します。購入完了率の上昇につながり、使用通貨と顧客の所在地に最も適した支払い方法を優先的に表示します。一方、優先度の低い支払い方法は、オーバーフローメニューに隠された状態になります。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
支払いの詳細を収集するクライアント側
Payment Element を使用してクライアント側で支払い詳細を収集します。Payment Element は事前構築された UI コンポーネントであり、多様な支払い方法の詳細の収集をシンプルにします。
Payment Element には、HTTPS 接続を介して支払い情報を Stripe に安全に送信する iframe が含まれています。一部の支払い方法では、支払いを確定するために別のページにリダイレクトする必要があるため、Payment Element を別の iframe 内に配置しないでください。iframe を使用することを選び、Apple Pay または Google Pay を受け付けることを希望する場合、iframe で allow 属性を ="payment *" に設定する必要があります。
構築済みのシステムを機能させるには、決済ページのアドレスの先頭を http:// ではなく https:// にする必要があります。HTTPS を使用しなくてもシステムをテストできますが、本番環境で決済を受け付ける準備が整ったら、必ず、HTTPS を有効にしてください。
Stripe に支払いを送信するクライアント側
Payment Element からの詳細を指定して stripe.confirmPayment を使用し、支払いを完了します。ユーザーが支払いを完了した後に Stripe がユーザーをリダイレクトする場所を指定するには、この関数に return_url を指定します。ユーザーはまず、銀行のオーソリページなどの中間サイトにリダイレクトされ、その後 return_ にリダイレクトされます。カード支払いでは、支払いが正常に完了するとすぐに return_ にリダイレクトします。
カード決済で支払いの完了後にリダイレクトを行わない場合は、redirect に if_ を設定できます。これで、リダイレクトベースの決済手段で購入する顧客のみがリダイレクトされます。
return_ が、Web サイト上の支払いステータスを表示するページと対応していることを確認します。Stripe が顧客を return_ にリダイレクトするときは、以下の URL クエリーパラメーターが指定されます。
| パラメーター | 説明 |
|---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。 |
注意
顧客のブラウザーセッションを追跡するツールを利用している場合、リファラー除外リストに stripe. ドメインの追加が必要になる場合があります。リダイレクトを行うと、一部のツールでは新しいセッションが作成され、セッション全体の追跡ができなくなります。
クエリパラメーターのいずれか 1 つを使用して PaymentIntent を取得します。PaymentIntent のステータスを調べて、顧客に表示する内容を決定します。また、return_ を指定するときにカスタムのクエリパラメーターを追加することもできます。このパラメーターはリダイレクトプロセスの間維持されます。
支払い後のイベントを処理するサーバー側
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボードの Webhook ツールを使用するか Webhook のガイドに従ってこれらのイベントを受信し、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアントでは、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了する場合、また悪意を持つクライアントがレスポンスを不正操作する場合もあります。非同期型のイベントをリッスンするよう組み込みを設定すると、単一の組み込みで複数の異なるタイプの支払い方法を受け付けることができます。
Payment Element を使用して支払いを回収する場合は、payment_ イベントのほかにこれらのイベントを処理することをお勧めします。
| イベント | 説明 | アクション |
|---|---|---|
| payment_intent.succeeded | 顧客が正常に支払いを完了したときに送信されます。 | 顧客に注文の確定を送信し、顧客の注文のフルフィルメントを実行します。 |
| payment_intent.processing | 顧客が正常に支払いを開始したが、支払いがまだ完了していない場合に送信されます。このイベントは、多くの場合、顧客が口座引き落としを開始するときに送信されます。その後、payment_ イベント、また、失敗の場合は payment_ イベントが送信されます。 | 顧客に注文確認メールを送信し、支払いが保留中であることを示します。デジタル商品では、支払いの完了を待たずに注文のフルフィルメントを行うことが必要になる場合があります。 |
| payment_intent.payment_failed | 顧客が支払いを試みたが、支払いに失敗する場合に送信されます。 | 支払いが processing から payment_ に変わった場合は、顧客に再度支払いを試すように促します。 |
実装内容をテストする
実装内容をテストするためのその他の情報については、テストをご覧ください。
オプションその他の支払い方法を有効にする
ダッシュボードの連結アカウントの支払い方法を管理するに移動して、連結アカウントで対応する支払い方法を設定します。デフォルトの設定に対する変更は、新規および既存のすべての連結アカウントに適用されます。
支払い方法の情報に関する次のリソースをご覧ください。
- 支払い方法ガイドは、プラットフォームに適した支払い方法の選択に役立ちます。
- アカウントのケイパビリティ を使用して、選択した決済手段が連結アカウントで機能することを確認します。
- 決済手段と製品サポートの表を参照して、選択した決済手段が使用中の Stripe プロダクトと決済フローで機能することを確認します。
支払い方法ごとに、次のいずれかのドロップダウンオプションを選択できます。
| デフォルトで有効にする | 連結アカウントは、決済フローでこの支払い方法に対応します。一部の支払い方法は、無効またはブロックされている可能性があります。これは、Stripe ダッシュボードへのアクセスが許可された連結アカウントが、設定ページで有効化する必要があるためです。 |
| デフォルトで無効にする | 連結アカウントは、決済フローでこの支払い方法に対応しません。Stripe ダッシュボードへのアクセスが許可された連結アカウントに、自身の支払い方法を管理することを許可している場合、連結アカウントはこれを有効にすることができます。 |
| ブロック済み | 連結アカウントは、決済フローでこの支払い方法に対応しません。連結アカウントに Stripe ダッシュボードにアクセスして自身の支払い方法を管理することを許可していても、連結アカウントはこれを有効にできません。 |

支払い方法のオプション
支払い方法を変更した場合は、画面下部のバーにある変更を確認をクリックし、保存して適用をクリックして、連結アカウントを更新する必要があります。

保存ダイアログ
連結アカウントによる支払い方法の管理を許可する
Stripe では、連結アカウントが自身の支払い方法をカスタマイズできるようにすることをお勧めしています。このオプションを有効にすると、Stripe ダッシュボードにアクセスできる各連結アカウントは、支払い方法ページを表示および更新できるようになります。Stripe ダッシュボードには、新規および既存のすべての連結アカウントに対して適用される支払い方法のデフォルトのセットが表示されます。連結アカウントは、お客様がブロックした支払い方法を除き、これらのデフォルトを上書きできます。
このオプションを有効にするには、アカウントのカスタマイズチェックボックスを選択します。画面下部のバーにある変更を確認をクリックし、保存して適用をクリックして、この設定を更新する必要があります。

アカウントのカスタマイズのチェックボックス
支払い方法ケイパビリティ
To allow your connected accounts to accept additional payment methods, their connected accounts must have active payment method capabilities.
If you selected the “On by default” option for a payment method in Manage payment methods for your connected accounts, Stripe automatically requests the necessary capability for new and existing connected accounts if they meet the verification requirements. If the connected account doesn’t meet the requirements or if you want to have direct control, you can manually request the capability in the Dashboard or with the API.
Most payment methods have the same verification requirements as the card_ capability, with some restrictions and exceptions. The payment method capabilities table lists the payment methods that require additional verification.
手数料を回収する
支払いが処理されると、プラットフォームはプラットフォーム手数料という形で取引金額の一部を受け取ることができます。プラットフォーム手数料の料金体系は、次の 2 つの方法で設定できます。
- プラットフォームの料金設定ツールを使用して、料金設定ルールを設定してテストします。この Stripe ダッシュボードのノーコード機能は、現時点では Stripe 手数料の支払い責任を負うプラットフォームでのみ利用できます。
- 社内で料金ルールを設定し、プラットフォーム手数料を PaymentIntent で直接指定します。この方法で設定された手数料は、プラットフォーム料金設定ツールで指定された料金体系ロジックを上書きします。
プラットフォームは、以下の制限でプラットフォーム手数料を請求する場合があります。
application_の値は正の値で、支払い金額よりも小さくする必要があります。回収するプラットフォーム手数料は、支払い金額を上限とします。fee_ amount - プラットフォーム手数料自体に追加の Stripe 手数料はありません。
- ブラジルの規制ならびに遵守要件に従い、ブラジルの連結アカウントが含まれ、ブラジル国外を拠点とするプラットフォームは、Stripe を通じてプラットフォーム手数料を回収することはできません。
application_の通貨は、複数の通貨のいくつかの要素によって決まります。fee_ amount
その結果として生じる支払いの Balance Transaction (取引残高) には、Stripe 手数料とプラットフォーム手数料の両方の詳細な内訳が含まれます。レポート作成の操作性を高めるために、プラットフォーム手数料の回収後に、Application Fee (プラットフォーム手数料) が作成されます。プラットフォーム手数料オブジェクトの amount プロパティをレポート作成に使用します。これにより、Application Fee (プラットフォーム手数料) エンドポイントでこれらのオブジェクトにアクセスできるようになります。
獲得したプラットフォーム手数料は、通常の Stripe の支払いの売上と同じスケジュールでお客様の利用可能なアカウント残高に追加されます。プラットフォーム手数料は、ダッシュボードの手数料収入の合計セクションで確認できます。
注意
デフォルトでは、ダイレクト支払いのプラットフォーム手数料は非同期で作成されます。支払い作成リクエストで application_ オブジェクトを拡張すると、リクエストの一部としてプラットフォーム手数料が同期的に作成されます。application_ オブジェクトを拡張するとリクエストの遅延が増加するため、必要な場合に拡張してください。
非同期で作成されたプラットフォーム手数料に対するプラットフォーム手数料オブジェクトにアクセスするには、application_fee.created Webhook イベントをリッスンします。
手数料を含む売上のフロー
支払いに対するプラットフォーム手数料を指定すると、その手数料の金額がプラットフォームの Stripe アカウントに送金されます。連結アカウントで直接支払いを処理する場合、Stripe 手数料とプラットフォーム手数料を差し引いた支払い額が連結アカウントに入金されます。
たとえば、前の例のように、10 USD の支払いを作成し、そのプラットフォーム手数料が 1.23 USD の場合、1.23 USD がプラットフォームアカウントに送金されます。8.18 USD (10 USD - 0.59 USD - 1.23 USD) が連結アカウントでの手取り額となります (標準的なアメリカの Stripe 手数料を想定した場合)。

複数の通貨で支払いを処理する場合は、Connect でどのように通貨が処理されるかについてもご覧ください。
返金する
プラットフォームは連結アカウントに対して支払いを作成できるのと同様に、連結アカウントに対して支払いの返金を作成することもできます。連結アカウントとして認証済みの状態で、プラットフォームのシークレットキーを使用して返金を作成します。
返金する際に、プラットフォーム手数料は自動的に返金されません。プラットフォームはプラットフォーム手数料を明示的に返金する必要があります。そうしなければ、連結アカウント (支払いが作成されたアカウント) はその金額を失うことになります。返金リクエストで、以下のように refund_ 値として true を渡すことによって、プラットフォーム手数料を返金できます。
デフォルトでは支払いの全額が返金されますが、amount 値を正の整数に設定することで、一部返金を作成することができます。支払いの全額が返金されることになった場合は、プラットフォーム手数料の全額が返金されます。そうでない場合は、プラットフォーム手数料の比例配分された部分が返金されます。別の方法として、refund_ 値に false を指定し、別途プラットフォーム手数料を返金することもできます。
Connect の埋め込みコンポーネント
Connect 埋め込みコンポーネント はダイレクト支払いに対応しています。決済埋め込みコンポーネント を使用することで、連結アカウントがサイト内から決済情報の表示、支払いのキャプチャー、不審請求の申し立ての管理を行えるようになります。
以下のコンポーネントには、ダイレクト支払いの情報が表示されます。
支払いコンポーネント:アカウントのすべての支払いと紛争を表示します。
決済の詳細:特定の決済に関する情報を表示します。
紛争一覧コンポーネント:アカウントのすべての紛争を表示します。
支払いに関する紛争コンポーネント:特定の支払いに関する紛争を表示します。これを使って、支払い用 UI があるページに紛争管理機能を組み込むことができます。