コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要
Connect の使用を開始
導入の基本
導入の例
    高度な統合設計
    マーケットプレイスを構築する
    SaaS プラットフォームを構築する
    連結アカウントに SaaS 手数料を請求する
    Connect 機能がすべて埋め込まれた実装を構築する
アカウント管理
アカウント登録
アカウントのダッシュボードを設定する
連結アカウントのタイプの操作
決済処理
決済を受け付ける
アカウントへの送金
プラットフォーム管理
Connect プラットフォームを管理
Connect プラットフォームの納税申告書
ホームプラットフォームおよびマーケットプレイスExample integrations

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

支払いを回収してマーケットプレイスに入金する

顧客から支払いを回収した後、マーケットプレイスの売り手またはサービスプロバイダーに入金します。

このガイドでは、決済を受け付け、売上をサービスプロバイダーや売り手の銀行口座に移動する方法を説明します。デモンストレーションでは、住宅所有者と賃貸物件を探す人を結びつける賃貸住宅のマーケットプレイスを構築します。また、テナント (顧客) から支払いを受け付け、住宅所有者 (プラットフォームのユーザー) に支払う方法についても説明します。

前提条件

  1. プラットフォームを登録します。
  2. ビジネスの詳細を追加して、本番環境利用の申請を行います。
  3. プラットフォームプロフィールを完成させます。
  4. ブランド設定をカスタマイズします。ビジネス名、アイコン、ブランドカラーを追加します。

Stripe を設定する
サーバー側

Stripe の公式ライブラリをインストールし、アプリケーションから API にアクセスします。

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

連結アカウントを作成する

売り手または代行業者がプラットフォームに登録したら、それらを表す 連結アカウント を作成します。連結アカウントを使用すると売り手の識別情報を収集し、売り手の決済を受け付け、売上を売り手の銀行口座に移動できます。住宅賃貸の例では、連結アカウントは住宅所有者を表します。

情報を事前入力して連結アカウントを作成する

/v2/core/accounts API を使用して 連結アカウントのダッシュボードと責任 を指定して連結アカウントを 作成 します。

Command Line
cURL
No results
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-08-27.preview" \ --json '{ "contact_email": "furever_contact@example.com", "display_name": "Furever", "defaults": { "responsibilities": { "fees_collector": "application", "losses_collector": "application" } }, "dashboard": "express", "identity": { "business_details": { "registered_name": "Furever" }, "country": "us", "entity_type": "company" }, "configuration": { "merchant": { "capabilities": { "card_payments": { "requested": true } } }, "recipient": { "capabilities": { "stripe_balance": { "stripe_transfers": { "requested": true } } } } }, "include": [ "configuration.merchant", "configuration.recipient", "identity", "requirements" ] }'

連結アカウントの情報をすでに収集している場合は、Account オブジェクトにその情報を事前入力できます。個人情報や事業情報、外部のアカウント情報など、あらゆるアカウント情報を事前に入力できます。

Connect アカウント登録で、事前入力された情報が要求されることはありません。ただし、アカウント所有者は Connect 利用規約に同意する前に、事前入力された情報を確認するよう求められます。

実装内容をテストする場合、テストデータを使用してアカウント情報を事前入力します。

アカウントリンクを作成する

以下のパラメーターを使用して Account Links v2 API を呼び出すことでアカウントリンクを作成できます。

  • account
  • refresh_url
  • return_url
  • type = account_onboarding
  • configurations = recipient と merchant
Command Line
cURL
No results
curl -X POST https://api.stripe.com/v2/core/account_links \ -H "Authorization: Bearer
sk_test_BQokikJOvBiI2HlWgH4olfQ2
"
\ -H "Stripe-Version: 2025-08-27.preview" \ --json '{ "account":
"{{CONNECTED_ACCOUNT_ID}}"
, "use_case": { "type": "account_onboarding", "account_onboarding": { "configurations": [ "recipient", "merchant" ], "refresh_url": "https://example.com/reauth", "return_url": "https://example.com/return" } } }'

ユーザーをアカウントリンク URL にリダイレクトする

アカウントリンク作成レスポンスには url 値が含まれます。アプリケーションでユーザーを認証したら、この URL にリダイレクトしてフローに送ります。アカウントリンク URL は連結アカウントユーザーの個人情報へのアクセスを許可するため、一時的な 1 回限りの使用です。情報を事前入力する場合は、アカウントリンクを生成する前に入力する必要があります。アカウントリンクの作成後は連結アカウントの情報の読み取りまたは書き込みができなくなります。

セキュリティのヒント

アカウントリンクの URL をメールやショートメッセージ、またはその他の方法で、プラットフォームのアプリケーション外に送信しないでください。URL は、アプリケーション内で認証済みのアカウント所有者に提供してください。

ConnectOnboardViewController.swift
Swift
Objective C
No results
import UIKit import SafariServices let BackendAPIBaseURL: String = "" // Set to the URL of your backend server class ConnectOnboardViewController: UIViewController { // ... override func viewDidLoad() { super.viewDidLoad() let connectWithStripeButton = UIButton(type: .system) connectWithStripeButton.setTitle("Connect with Stripe", for: .normal) connectWithStripeButton.addTarget(self, action: #selector(didSelectConnectWithStripe), for: .touchUpInside) view.addSubview(connectWithStripeButton) // ... } @objc func didSelectConnectWithStripe() { if let url = URL(string: BackendAPIBaseURL)?.appendingPathComponent("onboard-user") { var request = URLRequest(url: url) request.httpMethod = "POST" let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any], let accountURLString = json["url"] as? String, let accountURL = URL(string: accountURLString) else { // handle error } let safariViewController = SFSafariViewController(url: accountURL) safariViewController.delegate = self DispatchQueue.main.async { self.present(safariViewController, animated: true, completion: nil) } } } } // ... } extension ConnectOnboardViewController: SFSafariViewControllerDelegate { func safariViewControllerDidFinish(_ controller: SFSafariViewController) { // the user may have closed the SFSafariViewController instance before a redirect // occurred. Sync with your backend to confirm the correct state } }

プラットフォームに戻るユーザーを処理する

Connect アカウント登録では return_url と refresh_url の両方を渡して、アカウントユーザーがプラットフォームにリダイレクトされるすべてのケースを処理する必要があります。

注

テスト環境 (例えば、ローカルホストでテストする場合など) では return_url と refresh_url に HTTP を使用できますが、本番環境で使用できるのは HTTPS のみです。本番移行前に必ずテスト用の URL を HTTPS の URL に入れ替えます。

return_url

連結アカウントユーザーがアカウント登録フローを完了すると、Stripe はこの URL へのリダイレクトを実行します。ただしこれはすべての情報が収集されたことを意味するものでも、アカウントの要件がすべて満たされたことを意味するものでもありません。ユーザーがフローに正常に入りそこから正常に出たことのみを意味します。

この URL を通じて状態は渡されません。ユーザーが return_url にリダイレクトされたら、以下のいずれかを行いアカウントの要件の状態を確認します。

  • v2.core.account[requirements].updated Webhook をリッスンします。
  • Accounts v2 API を呼び出し、返されたオブジェクトを検査します。

refresh_url

以下のケースでは、Stripe はユーザーを refresh_url にリダイレクトします。

  • リンクの期限が切れている (リンク作成後、数分が経過した)。
  • ユーザーがすでに URL にアクセスしている (ユーザーがページを更新したか、ブラウザーで戻るボタンまたは進むボタンをクリックした)。
  • プラットフォームがアカウントにアクセスできなくなった。
  • アカウントが拒否された。

サーバーで同じパラメーターを使用して Account Links v2 を再度呼び出すメソッドをトリガーし、ユーザーを新しいリンクにリダイレクトするように refresh_url ページを設定します。

アカウント登録を完了していないユーザーを処理する

return_url にリダイレクトされたユーザーがアカウント登録プロセスを完了していない可能性があります。/v2/core/accounts エンドポイントを使用してユーザーのアカウントを取得し configuration.recipient.capabilities.stripe_balance.stripe_transfers.status が active かどうかを確認します。ステータスが active ではなく configuration.recipient.capabilities.stripe_balance.stripe_transfers.status_details.code が requirements_past_due の場合は UI プロンプトを表示してユーザーが新しいアカウントリンクを使用してアカウント登録を続行できるようにします。必要に応じて他のコードも処理します。

支払い方法を有効にする

支払い方法の設定を表示し、サポートする支払い方法を有効にします。カード支払い、Google Pay、Apple Pay はデフォルトで有効化されていますが、支払い方法は必要に応じて有効または無効に設定できます。

決済フォームを表示する前に、Stripe は通貨、支払い方法の制約、その他のパラメーターを評価し、対応する支払い方法のリストを決定します。購入完了率の向上につながり、通貨と顧客の場所に最も関連性の高い支払い方法が優先的に表示されます。優先度の低い支払い方法は、オーバーフローメニューの下に隠れた状態になります。

決済を受け付ける

Stripe Checkout を使用して決済を受け付けます。Checkout は複数の支払い方法に対応し、顧客に最適な方法を自動的に表示します。Stripe がオンラインで提供するページを使用して Checkout で決済を受け付けるか、事前構築済みのオンライン支払いフォームを自社のウェブサイトに直接追加することができます。また、(Payment Element を使用して) カスタムフローを構築して、1 回のフロンドエンド実装で複数の支払い方法を受け付けることも可能です。

Checkout セッションを作成する クライアントおよびサーバー

Checkout セッションは、ラインアイテム、注文金額と通貨、および受け付け可能な支払い方法など、Stripe のオンライン決済ページで顧客に表示する内容を制御します。

サーバー側のエンドポイントを呼び出して Checkout セッションを作成する購入ボタンをウェブサイトに追加します。

checkout.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

サーバー側で、Stripe の API に以下の呼び出しを行います。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=payment \ -d "line_items[0][price]"=
"{{PRICE_ID}}"
\ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"=
"{{CONNECTED_ACCOUNT_ID}}"
\ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/cancel"
  • line_items: この引数は、顧客が購入しようとしているアイテムを表します。このアイテムは Stripe がオンラインで提供するユーザーインターフェイスに表示されます。
  • success_url: この引数は、支払いを完了したユーザーのリダイレクト先を示します。
  • cancel_url: この引数は、キャンセルをクリックしたユーザーのリダイレクト先を示します。
  • payment_intent_data[application_fee_amount]: この引数は、プラットフォームが取引で受け取る予定の金額を指定します。支払いがキャプチャーされると、プラットフォームから、transfer_data[destination] で指定された連結アカウントに支払い金額の全額が即時送金されます。その後 application_fee_amount がプラットフォームに返金され、プラットフォームの金額から Stripe 手数料が差し引かれます。
  • payment_intent_data[transfer_data][destination]: この引数は、支払いがデスティネーション支払いであることを示します。デスティネーション支払いでは、支払いがプラットフォームで処理され、売上が即時かつ自動的に連結アカウントの保留中の残高に送金されます。賃貸住宅の例では、顧客がプラットフォームを使用して支払い、住宅所有者がプラットフォームで支払いを受ける機能を構築します。

Checkout では、デスティネーション支払いにプラットフォームアカウントのブランド設定を使用します。詳細については、ブランディングをカスタマイズするをご覧ください。

このセッションは、デスティネーション支払いを作成します。送金のタイミングを管理したり、1 回の支払いの売上を複数の当事者に送金したりする必要がある場合は、代わりに、支払いと送金別方式を使用してください。支払いと送金別方式を使用する場合は、連結アカウントによる支払いの受け付けを有効化する方法をご覧ください。

支払い後のイベントを処理する サーバー側

支払いが完了すると Stripe は checkout.session.completed イベントを送信します。Webhook を使用してこのイベントを受信し、顧客への注文確認メールの送信、データベースへの売上の記録、配送ワークフローの開始などのアクションを実行します。

クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックの実行前に顧客がブラウザーのウィンドウを閉じたり、アプリケーションを終了したりする可能性があります。また、一部の支払い方法では支払いの確定までに 2 ~ 14 日かかることがあります。実装で非同期イベントをリッスンするように設定すると、1 つの実装で複数の支払い方法に対応できるようになります。

Checkout で支払いを回収するときは、checkout.session.completed イベントの処理に加えて、以下の 2 つのイベントも処理することをお勧めします。

イベント説明次のステップ
checkout.session.completed顧客が Checkout フォームを送信して、支払いを正常に承認しました。支払いの成功または失敗の結果を待ちます。
checkout.session.async_payment_succeeded顧客の支払いが成功しました。購入された商品やサービスのフルフィルメントを行います。
checkout.session.async_payment_failed何らかの理由により支払いが拒否されたか、失敗しました。顧客にメールで連絡して、新たに注文するように依頼します。

これらのイベントのすべてに、Checkout Session (Checkout セッション) オブジェクトが含まれています。支払いが成功すると、基となる PaymentIntent のステータスが processing から succeeded に変わります。

テスト

アカウントを作成し、OAuth を使用して、アカウント作成フローをテストします。

カード番号シナリオテスト方法
カード支払いは成功し、認証は必要とされません。クレジットカード番号と、任意の有効期限、セキュリティコード、郵便番号を使用してクレジットカードフォームに入力します。
カード支払いには認証が必要です。クレジットカード番号と、任意の有効期限、セキュリティコード、郵便番号を使用してクレジットカードフォームに入力します。
カードは、insufficient_funds などの拒否コードで拒否されます。クレジットカード番号と、任意の有効期限、セキュリティコード、郵便番号を使用してクレジットカードフォームに入力します。
UnionPay カードは、13 ~ 19 桁の可変長です。クレジットカード番号と、任意の有効期限、セキュリティコード、郵便番号を使用してクレジットカードフォームに入力します。

実装内容をテストするためのその他の情報については、テストをご覧ください。

不審請求の申請

お客様は支払いの売上処理加盟店であるため、お客様のプラットフォームは不審請求の申請に対する責任を負います。不審請求の申請に対応するためのベストプラクティスを必ず理解するようにしてください。

入金

デフォルトでは、連結アカウントに送金する売上は、連結アカウントの Stripe 残高に追加され、ローリング方式によって毎日入金されます。入金頻度を変更するには、連結アカウントの詳細ページに移動し、残高セクションの右端のボタンをクリックして、入金スケジュールの編集を選択します。

返金

返金を行うには、支払いページに移動します。返金する支払いの左側にあるチェックボックスをクリックして、個々の支払いを選択します。支払いを選択すると、ページの右上隅に返金ボタンが表示されます。返金ボタンをクリックして、選択したすべての支払いに対する顧客への返金を行います。

注

連結アカウントは、デフォルトでは Express ダッシュボード からの決済の返金を開始できません。連結アカウントが Express ダッシュボードを使用している場合、返金を処理するか、Express ダッシュボードの機能 をカスタマイズして返金を処理できるようにすることができます。

参照情報

  • ダッシュボードで連結アカウントを管理する
  • 返金
  • 明細書表記をカスタマイズする
  • 複数通貨を処理する
  • Express ダッシュボード
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc