Stripe Connectを試してみる

この記事は、JP_Stripes Advent Calendar 2022 14日目の記事です。
今年はJP_Stripesの活動として、福岡でのオフライン開催も行い関連するイベントがいくつかオフラインで開催されました。オフラインでの活動が戻ってきた年でもありました。
Stripeの機能をずっと追いかけてはいましたが、Stripe Connectを実際に触ったことがなかったため今回試してみました。
目的
「あるECサイトの売上を、商品の出品者の売上げとして送金できるところまでが行える」を目的にしました。
「Stripe Connectでできること」「どのような設定があるのか」「どのように連携されているのか」が把握できる最低限の機能なのかなと思い、この目的にしました。
ドキュメント
公式のStripe ConnectのテストサイトとしてRocket Ridesというサイトがあります。サクッと動作を試すことはできExpressのUIの確認ができますが、Stripe Connectのデータの関連性などわかりにくい部分がありました。
Stripe Connect のテストや、Express アカウントで Connect を使用するを見ながら試すことはできるのですが、用語の意味が分からなかったり、うまく進められない部分がありました。
ちなみにJP_Stripes Advent Calendar 2022 6日目のStripe Connectの連結アカウントと支払い方法を改めておさらい - 東雲研究所 技術ブログがわかりやすく、参考にさせてもらいました。
以下の流れで作業を進めれば、ひとまず利用できる状態になるはずです。
Stripe Connect利用準備
Stripeアカウントの作成
お試し用のStripeアカウントを作成します。業務を行っている国は「日本」

Connectの使用を開始
右上の「テスト環境」をOnにして、Connectのリンクを開き「Stripe Connectの使用を開始する」を押す。

Connectの設定
後の工程で必要になるブランディング設定をします。目的に書いた「ECサイト」側のブランディング設定です。
右上の歯車アイコンから設定画面を開き「Connectの設定」を開きます。

「ブランディング」という項目があるので、「ビジネス名」と「プラットフォームのブランディングを適用する」にチェックをいれます。デザインの「アイコンを設定」をしたあとに「ブランディングの変更を保存」を行う(ちゃんと保存しましょう)。
連結アカウントの作成
出品者のアカウントの作成をします。そのアカウントのことを連結アカウントと呼びます。
誰でもECサイトの出品者になれてしまうと、悪意ある出品者が偽物を出品してしまう恐れがあります。そのため、出品者の本人確認情報を提供してもらい一定の検証をStripeで行ってくれます。
今回は、StripeのUIで入力・検証が行えるExpressタイプで作業します。比較的わかりやすくてサクッと登録できます。
まずはExporessタイプのアカウントを作成します。Stripe CLIを利用すると便利です。最初に作成したStripeアカウントがStripe CLIで利用できるようにログインを行います。
stripe login

アカウント作成コマンドを実行
stripe accounts create \
--country=JP \
--type=express \
--business-type=individual \
-d "capabilities[card_payments][requested]"=true \
-d "capabilities[transfers][requested]"=true
処理結果にアカウントIDが含まれるため、そのアカウントIDを利用して連結アカウント登録用URLを発行します。
stripe account_links create \
--account=<アカウントID> \
--refresh-url="https://example.com/reauth" \
--return-url="https://example.com/return" \
--type=account_onboarding
処理結果にURLが含まれているので、そのURLをブラウザで開きます。あとは本人確認情報の入力が続きます。

電話番号や、口座情報などはテストデータが利用できます。フォーム項目毎にテストデータを利用のボタンが出てくるので利用します。本当の本人確認情報を入れる必要はないです。

最後まで設定をすると、コマンドで指定したreturn-urlにリダイレクトします。適当なURLに設定しているため変な画面が出ますが閉じてよいです。
問題なく連結アカウントが作成できていれば、Connect画面で連結アカウントが表示されます。

銀行口座の設定
銀行口座の設定をします。Stripeに対して入出金できる口座の設定です。テスト環境であれば適当な口座番号で登録ができます、
「残高」メニューを開き、「銀行口座を追加」をクリック。

入金設定
連結アカウントへの送金などが行えるように入金設定を変える。「設定」の「ビジネス設定」の「銀行口座とスケジュール設定」を開く。 入金スケジュールを「手動入金」に変更して「保存」する。

本番環境利用申請
現状のままでは、Stripeへ銀行口座からの残高追加が行えないため、連結アカウントへの送金もできない。 残高追加が行えるようにするには本番環境利用申請を行う必要がある。左上の「設定を開始」から行います。

情報はテスト環境であれば適当に入力してかまわないです。
残高の追加と送金
今までの手順で問題なければ、「残高」メニューを開くと、右側に「残高に追加」ボタンが表示されます。

適当に金額を入れて残高を確保します。その後「Connect」メニューを開き、連結アカウントを1つ選択します(連結アカウントのダッシュボードが表示される)。 アクティビティページの「売上を追加」を行うことで、連結アカウントに送金が行えます。

これで目的であった「あるECサイトの売上を、商品の出品者の売上げとして送金できるところまでが行える」が達成できたと思います!
まとめ
Stripe Connectはとてもいろいろなことができるように作られているため、構築者が考えている概念「ECサイトと出品者がいて・・・」に合わせるための設定が想像しにくいです。ドキュメントも構築の流れは書いていますが「こうあるべき設定」が分からない。「Expressってなに?プラットフォーム?OAuth2??本人確認??」などConnectのこともよく理解していない状況で、難しい用語によって設定との関連性が分からなくなります。
ひとまずある目的に即した設定ができて、そこから少しずつ変えていったりすることで「こうあるべき設定」が理解できると思うため、試してみてください。用語の理解などはその後からでも問題ないはずです!
駄文
支払いと送金別方式を試したくて今回調べた。この支払い方法のフロー、最初理解ができなかったが、会計方法や立場を変えてみるととてもよくできた仕組みだなととても感動した。 この仕組みを作った人、天才では。