StripeでCtoCサブスクを作る場合の接続方法

Stripeは便利な反面はじめて使う方には多少わかりづらいかもしれません。マーケットプレイス的な事例はいくつかありましたがCtoCサブスクの事例が見つからず苦労したので記事にしました。

CtoCサブスクはオンラインサロンサービスをイメージしてください。誰でも月額課金の窓口を不特定多数向けに作れるものです。このCtoCサブスクをStripeで作る場合どういった構成になるのかを見ていきます。

## 重要な追記

- [2019年7月にExpressが日本に解禁されていたようです。](https://stripe.com/jp/blog/changelog/2019-07)
- Customアカウントでもオンボード（販売者登録UI）が使えそうです（[ドキュメント](https://stripe.com/docs/connect/hosted-onboarding)）

Expressの場合後述するスタンダードの懸念をクリアした簡易版ダッシュボード（販売履歴や出金管理のみ）を使えるので

- 販売ユーザーの登録フロースクラッチがしんどい
- 販売ユーザーごとの販売履歴管理ダッシュボードスクラッチがだるい

というケースではExpressをお勧めします。Connetにおいても登録フローがStripeUIで行けそうな雰囲気なのでそちらも追って新着情報きそうです。

流動的な法的対応やグローバルな対応を考えるとStripeUIで販売者登録を行う方が良いと思います。（外部サービスのUIを見せたくないならカスタムアカウントでスクラッチするしかありません）

### 余談

自前で販売者登録フローを2日ほど潰してスクラッチした矢先なので嬉しい反面、切ない。。。

## 概念

Stripeには主に4つの概念が存在します。

- 決済（チャージ）
- 顧客（カスタマー）
- 定期支払い（billing）
- 接続（Connect）

順番に説明します。

## 決済（チャージ）と顧客（カスタマー）

ワンショット（単発）の決済を指します。自販機に100円を入れたらジュースが出て終わり。そういうイメージです。Amazonのように一度登録したクレカで複数回決済させたい場合顧客（カスタマー）としてプラットフォームのStripeアカウントに登録しておく必要があります。

CtoCではないECの場合はこのチャージとカスタマーだけで完結するので実装は簡単です。

## 定期支払い（billing）

サブスクリプションのことです。この場合顧客をプラットフォームとStripeに保存することは必須なので「1回だけクレカを使って定期購読を作成し、顧客情報をプラットフォームとStripeで保持しない。」ということは**できません。**

マイサロン専用のサービス（他の人はサロンを作れない）であれば決済、顧客、定期支払いを覚えれば実装可能です。

## 接続（Connect）

CtoCで決済させる場合売り手（販売者）をプラットフォームの子アカウントとして接続（Connect）しないといけません。Amazonを例にとると

・親Stripe（Amazon）
・子Stripe（店主） = 親に接続

こうすることでプラットフォームに出品した商品の売上を親Stripeを介して子Stripeに渡すことができます。

ここが本題ですが、Connetには3つの接続タイプがあります。

- スタンダード
- エクスプレス（アメリカ、カナダのみ）
- カスタム

エクスプレスは日本非対応なので割愛します。

### スタンダード接続

子アカウントは普通にStripeアカウントを作るか、あるいは既に存在するアカウントをプラットフォームのStripeアカウントに接続します。ここでミソなのが今回のような**定期支払いの場合、顧客情報は子アカウント側で保持する必要がある**ことです。この点でハマりました。

Stripeの場合顧客のクレカ情報はStripe内部で保持されるので子アカウントが顧客のクレカ番号などを見ることはできません。ですがダッシュボードから顧客のアクションを自由に制御できます。たとえば子アカウントAはダッシュボードから以下のことができます。

- 100万の商品をポチッと作る
- プラットフォーム経由で紐づいた顧客Bに上記の商品を決済させる

これができてしまうのがスタンダード接続＋定期支払いコンボの最大の弱点です。ちなみに単発決済だけなら子アカウントに顧客情報を渡す必要はないのでこのリスクは発生しません。

*Stripe怖いと思うかもしれませんが通常Webサービスにクレカ情報を渡す＝プラットフォームに実質的決済権を渡すことです。たとえば我々の決済権を使ってAmazonが買ってもない商品を勝手に決済することは技術的に可能です。Stripeの場合ダッシュボードが優秀が故にオーナーであれば簡単に誰でも簡単にそれができてしまいますが、クレカ情報はオーナーにも秘匿される点においてむしろ他の決済サービスより信頼性は高いでしょう。*

つまりスタンダードでCtoCオンラインサロンプラットフォームを作る場合オーナーの信頼性を担保しないとこんな悪さができてしまいます。

1. プラットフォームを使ってオーナーAが「月額100円で金儲け教えます！」というトラップサロンを作る
2. プラットフォーム経由でサロン登録者の顧客情報がオーナーAに渡る
3. オーナーAが顧客のアクションを操作して全員に10万の決済をさせる

恐ろしいです。高額決済ならそもそもクレカ利用料制限に引っかかったり引き落とし額ですぐバレるでしょうが、毎月100円みたいな少額決済をそれっぽい商品名で決済された場合気づかない可能性があります。

いずれにせよこれは不正決済にあたるのでStripeに返金や本人確認の責務が生じます（スタンダードの場合）。プラットフォームとしては「Stripe側で解決してくれ」でいいのですが、実際問題信用が終わるのでサービスも終わります。

ドキュメントだと「スタンダードは手数料ゼロでカスタムだと手数料がかかる。スタンダードが基本。」のような印象を受けますが、**定期支払いxスタンダードというケースにおいては絶対にオススメできません。**

採用可能性としては子アカウントが信用できる法人のケースです。スタンダードの場合Stripeのサポートやダッシュボードが使えるので、「不正決済をする恐れがない法人」のみが子アカウントであればスタンダードでも良いと思います。

そうでない場合、後述するカスタム接続が唯一の選択肢になります。

### カスタム接続

カスタムの場合本人確認から返金対応まですべてプラットフォーム側が行う必要があります。その代わり**子アカウントに顧客情報を渡す必要はありません。**日本の場合本人確認すべき点が（法的に）かなり多く、入力フォームの実装や本人確認に結構コストがかかります。また子アカウントへ送金の都度手数料が発生するので、運営コストも高くなります。（スタンダードは０。決済手数料のみ）

参考までに手数料です。

・200円/月（当月送金した子アカウントごと）
・250円/回（送金ごと）
・0.25円/回（送金金額に対する手数料）

この場合たとえば100円レベルの小物を売買するプラットフォームが成立しなくなる（売上より手数料の方が高くなる）のでその場合はStripeに個別に相談するようです。

## まとめ

以上を踏まえ**CtoCサブスクサービスの場合カスタム接続が実質唯一のオプション**です。割愛したエクスプレスはスタンダードとカスタムのいいとこ取りなので日本で展開されたら即採用したいところですが、まだアナウンスはありません。

Stripeは世界的に有名な決済サービスでとにかくサポートが手厚いです。日本人スタッフが迅速かつ超丁寧に疑問に答えていただいたことで本記事がかけています。所々でサポートが神という声を見かけましたが本当でした。

Stripeを使う上で不明なことはサポートに聞いてみるといいでしょう。