EDUCARE — CONFIDENTIAL / 社外秘
2026-09-03 / 起草: Claude Fable 5(調査: Sonnet 部下・12 PSP 一次情報)/ 決裁者: 敏
発端: 敏「どのような課金方法が存在するかから幅広く調査して導入計画を組んで」
主決済は Stripe(Checkout+Billing+Customer Portal+Tax)一択。Cloudflare Workers で動く公式 fetch クライアントと非同期 webhook 署名検証を持つ唯一のグローバル決済代行で、自動更新・解約画面・日割・再請求・領収書を自前で作らずに済む。P0 はクレジットカード+Apple/Google Pay の月額サブスク 1 本で開始し、コンビニ決済を P1、PayPay・銀行振込・キャリア決済を P2 で足す。
技術より先に閉じるゲートが 3 つある。①特定商取引法の表記(=運営者非開示方針と衝突・Praxia 株式会社の登記に接続)②7 月の sol 敵対監査の停止条件 5 点 ③規約 v2 の施行と同意証跡。実装量は小さいが、現状の課金フローは完全に未接続(コード実査 fact)で、生年月日も取得していないため 18 歳ゲートの前提から作る。
| 観点 | 実測 | 含意 |
|---|---|---|
| 権利判定の器 | user_plans+resolveEntitlements()(free/premium・日次上限 100/300)が本番稼働 fact | 読み側はある |
| Stripe 連携 | 既存 webhook は LINE CRM の friend_id 専用。会員 user_id に繋がらず、user_plans への書込経路はコード全域にゼロ fact | 会員用 webhook は新設 |
| 有料付与 | 管理画面からの手動登録のみ fact | 自己サービスの申込画面が無い |
| 年齢 | 生年月日の入力欄・DB 列が存在しない fact | 18 歳ゲートの前提が無い |
| 同意 | ログイン画面の「みなし同意」文言のみ。規約版 ID の記録なし・/terms は 404 fact | clickwrap+版 ID 記録が要る |
| Stripe 口座 | API キーは .env・Keychain のどちらにも無い fact | 口座は未開設と推定 inference |
原本: educaredev/docs/research/billing_methods_survey_20260903.md(出典 URL 付き・fact/inference/unknown 峻別・unknown 34 箇所)。金額を伴う契約前には各社の一次資料で再確認する。
| 決済代行 | 初期/月額 | カード手数料 | サブスク機能 | 国内手段 | Workers 適合 | 評価 |
|---|---|---|---|---|---|---|
| Stripe | 無料/無料(Billing は +0.7%) | 3.6% | ◎ Billing・Portal・Smart Retries・Tax・Invoicing | コンビニ○・銀行振込は限定的 unknown | ◎ 公式 fetch クライアント・非同期署名検証 | 主軸 |
| KOMOJU(Degica) | unknown | unknown | 明示なし | ◎ PayPay・au PAY・銀行振込・コンビニ横断 | REST のため可と推定 inference | P2 の国内レーン |
| PAY.JP | 無料/無料 | 3.0%〜 | ○ 定期課金 API | unknown | 推定可 inference | 代替候補 |
| GMO-PG/SB ペイメント/fincode/Univapay | 要見積(GMO は例 ¥80,000/¥5,000) | 3.4〜3.5%+件別料 | ○ | ◎(40 ブランド級) | unknown | 高額商材・大規模時に再審 |
| Square/PayPal | 無料/無料 | 3.6%〜3.75% | ○ | △ | unknown | 不採用 |
| Paidy(後払い) | — | デジタル 9% | × サブスク不可 fact | — | — | 買い切り講座の P2 でのみ再審 |
| Paddle/Lemon Squeezy(MoR 型) | 手数料込み | 非公開 | ◎(税務代行) | × 国内手段非対応と推定 inference | unknown | 不採用 |
大学生のクレジットカード保有率は約 6 割(日本クレジット協会 令和元年度調査 61.1%・別調査 63.2%)。非保有層はデビット・現金・電子マネーが多い。P0(カードのみ)で始めても致命的ではないが、コンビニ決済(P1)と QR 決済(P2)は「あれば良い」ではなく離脱対策として順位づける。回数券(論文添削チケット)は有効期限を 6 か月以内にすれば資金決済法の前払式支払手段の適用除外になる(超えると基準日残高 ¥10M で供託義務)。アプリ内課金は Web 完結のため不要。
| E 無くす | 自前の請求書・解約 UI・再試行ロジックを作らない(Stripe Portal/Smart Retries に委ねる)。回数券・年額・買い切りは P0 で作らない。 |
| C 一緒に | 特商法の最終確認画面(6 項目)と規約同意(clickwrap・版 ID 記録)を同一画面にする。請求先メールは既存の会員メール(Resend 送信基盤)を流用。 |
| R 並べ替え | 「価格決定 → 実装」でなく「決済配線 → 法務ゲート → 価格決定 → 公開」。配線は Price ID を差し替えるだけなので先に作れる。 |
| S 単純化 | プランは free/premium の 2 値。Stripe の Product 1・Price 1(月額)で開始。 |
◎=P0 必須 ○=P1 △=P2。P0 課金開始の最小 P1 離脱対策 P2 商材拡張
| ID | 大項目 | 機能 | 仕様の要点 | 必須 | Ph |
|---|---|---|---|---|---|
| B-01 | 決済 | Stripe 口座開設・本番審査 | 法人名義(Praxia)で開設。特商法ページ URL が審査で必要 | ◎ | P0 |
| B-02 | 決済 | Checkout Session 発行 | mode=subscription・user_id を metadata に | ◎ | P0 |
| B-03 | 決済 | 最終確認画面 | 特商法 2022 改正の 6 項目+規約 v2 同意を同一画面。同意ログに版 ID・日時 | ◎ | P0 |
| B-04 | 決済 | 会員用 webhook(新設) | 署名検証は非同期版・冪等記録・順序不定はイベントを信用せず API で最新状態を取り直す | ◎ | P0 |
| B-05 | 権利 | user_plans 更新 | valid_until=current_period_end。失効は読み時判定(スケジューラ不要) | ◎ | P0 |
| B-06 | 決済 | Customer Portal | 解約・カード変更・請求履歴・領収書を委ねる。解約は期末まで利用可(規約第 7 条と平仄) | ◎ | P0 |
| B-07 | 決済 | Stripe Tax | 消費税自動計算・税込総額表示 | ◎ | P0 |
| B-08 | 運用 | 返金 | 当社帰責のみ・Stripe ダッシュボードから手動。admin に返金ボタンは作らない | ◎ | P0 |
| B-16 | 法務 | 特商法ページ | 事業者名・所在地・電話・解約条件。Praxia 登記後の法人名で | ◎ | P0 |
| B-17 | 法務 | 年齢ゲート | 有料申込は 18 歳以上、または保護者同意の確認。無料 AI 機能は 18 歳未満にも開放(敏裁定 9/3)。ただし Gemini API と Google Cloud 生成 AI の規約が「18 歳未満が使う可能性の高いアプリ」を禁止 fact → 18 歳未満向け AI は OpenAI/Anthropic へベンダ分離が前提 | ◎ | P0 |
| B-19 | 法務 | 生年月日取得 | users 列+UI。既存会員は次回ログイン時に入力 | ◎ | P0 |
| B-20 | 法務 | 同意証跡 | 規約版 ID 付き clickwrap(user_consents に版 ID 列) | ◎ | P0 |
| B-09 | 運用 | admin 表示 | 会員一覧に Stripe customer/subscription の状態 | ○ | P0 |
| B-10 | 決済 | コンビニ決済 | 初回コンビニ → 継続カードの導線(自動継続には不向き) | ○ | P1 |
| B-11 | 決済 | ダンニング | Smart Retries(既定 2 週間で最大 8 回)+失敗通知メール | ○ | P1 |
| B-18 | 法務 | 領収書 | Stripe Invoicing の領収書 DL。インボイス番号は Praxia の課税事業者判断待ち | ○ | P1 |
| B-12 | 決済 | 年額プラン | Knock 型(月換算 20〜25% 割引)。中途解約の精算式を弁護士確認後に解禁 | △ | P2 |
| B-13 | 決済 | 国内レーン | KOMOJU 等で PayPay・銀行振込・キャリア決済。webhook 2 系統化 | △ | P2 |
| B-14 | 商材 | 回数券 | 有効期限 6 か月以内。未使用残高の試算を先に | △ | P2 |
| B-15 | 商材 | 買い切り講座 | 単発決済+分割払い(分割は国内アクワイアラ依存 unknown) | △ | P2 |
スコープ外: アプリ内課金(Web 完結)/BNPL(サブスク不可)/法人向け SPI 外販の請求書払い(別ゲート)/自前の請求・解約 UI。
| 週 | 作業 | 依存 |
|---|---|---|
| W1 | B-01 口座(法人名義)/B-16 特商法ページ原稿/規約 v2 弁護士照会 | Praxia 登記完了・敏裁定 |
| W1〜2 | B-02〜B-07・B-19・B-20 実装(Codex)→ sol 敵対監査 → Fable QA | Stripe テストキー(法人口座前でも test mode は可) |
| W2 | B-17 18 歳ゲート/B-09 admin 表示 | — |
| W3 | 受入 1〜7・Gemini 監査・ゲート昇格(敏 promote) | sol 停止条件 5 点の閉塞確認 |
| W4 | 価格決定(3 案)→ 本番 Price 作成 → 公開 | 敏 |
| 以降 | P1(コンビニ・ダンニング・領収書)→ P2(年額・国内レーン・回数券・買い切り) | 弁護士確認(年額精算・前払式) |
正本: 02_SAP_Marketing/owned_business/educaredev/docs/BILLING_INTRODUCTION_PLAN_20260903.md/調査原本 docs/research/billing_methods_survey_20260903.md/規約 docs/legal/TERMS_OF_SERVICE_v2_20260903.md