Fincs

講座 / 退会フロー

講座 / 退会フロー

本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(## 🔧 実装詳細 以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。

概要

講座契約を解約するための退会フロー。受講者の自身による退会と、運営アドミンによる強制退会の 2 経路がある。

重要な仕様の違い:

  • 受講者の自身による退会は常に「次回更新時退会」: 解約申請後も契約満了日までは引き続き講座を利用できる。満了日に終了が確定する
  • 即時退会は運営アドミンのみ: 規約違反対応・CS 連携で即時の利用停止が必要な場合に運営側で実施
  • クーリングオフ: 法定要件に基づく契約取消(運営アドミン専用)。契約レコード自体を削除する

主な使い方:

  • 受講者: mypage > 契約内容、または講座内の退会導線から 5 ステップフロー(開始 → 注意事項 → 解約理由アンケート → 確認 → 完了)
  • 運営アドミン: 強制退会・契約削除・クーリングオフを運営アドミン専用機能で実行

退会後の挙動:

  • 受講者の解約申請直後: 契約満了日まで利用継続(トーク・コンテンツとも閲覧可能)
  • 契約満了後: トーク閲覧不可・コンテンツ閲覧不可になる
  • 解約取消: 契約満了前であれば解約取消が可能(再入会の手続き不要で復旧)

サブスクリプション(月額・年額等)が解約フローの対象。0 円契約・一括前払い等は別経路(運営アドミン側のクーリングオフ等)で扱う。

📝 レビュー観点(draft 段階の記述ヒント、完成時に削除):

  • 目的: 受講者が講座契約を解約する経路。アンケート回答 + 解約申請の 5 ステップフロー
  • 誰が使うか: 受講者(自身の退会)、運営アドミン(強制退会)
  • どこで使うか: mypage > 契約内容、講座内の退会導線
  • 隣接機能との関係: 入会フロー(./join.md)/ 契約管理(./contract.md)/ 全プラットフォーム退会(../user/account-lifecycle.md — 個別講座退会とは別)
  • CS 問い合わせで頻発する論点: 「退会したのにまだ請求された」「退会したらいつから使えなくなるか」「退会取消できるか」「退会したらトーク履歴は消えるか」
  • [本機能特有] 「次回更新時退会」が基本: 受講者の退会申請は契約満了日まで利用可、満了日にバッチで終了確定
  • [本機能特有] 即時退会は運営アドミンのみ: 強制退会経路を使うと指定日(または当日)に終了
  • [本機能特有] 退会取消可能: 契約満了前なら取消(解約取消)API で復旧可
  • [本機能特有] 退会後のデータ: 契約終了後はトーク・コンテンツとも閲覧不可(バッチ確定後)

利用シナリオ

シナリオ 1: 受講者の標準的な退会

受講者が mypage > 契約内容から「解約する」を押下し、5 ステップフロー(開始 → 注意事項 → 解約理由アンケート → 確認 → 完了)を通過。「解約手続きが完了しました」表示。契約満了日までは引き続き利用可能で、満了日に自動的に契約終了が確定する。

シナリオ 2: 解約後の取消(再開)

「やっぱり継続したい」と気づいた受講者が、契約満了前であれば解約取消の経路で復旧。次回更新も自動的に行われ、引き続きサブスクが継続する。

シナリオ 3: 一括前払い(買切)の解約 / クーリングオフ

一括前払いプランは標準の解約フローでは解約できず、クーリングオフ等の運営アドミン経由の対応となる。受講者から CS に問い合わせを受け、運営アドミンが法定クーリングオフ期間内なら契約レコードごと削除して返金処理に進む。

シナリオ 4: 運営アドミンによる強制退会

CS 対応や規約違反対応で運営アドミンが即時 / 指定日終了で受講者を強制退会させる。終了日を指定して契約終了を確定させる(指定なしの場合は当日終了)。

よくある失敗ケース

  • 「退会したのにまだ請求された」: 受講者の退会は次回更新時退会のため、満了日前に新たな課金がかかる場合がある(多くは一括前払い時のケース、要 CS 説明)
  • 「退会したらいつから使えなくなるか」: 契約満了日まで利用可。満了日翌日から閲覧不可
  • 「退会取消できるか」: 契約満了前なら可。満了後は再入会扱いで通常の入会フローへ
  • 「退会したらトーク履歴は消えるか」: 受講者本人の閲覧はできなくなるが、講師・運営側からは履歴として残る
  • 「サブスクではない契約は解約できない」: 一括前払い等は CS 経由でクーリングオフ・契約削除を依頼

📝 レビュー観点:

  • 標準的な退会(5 画面通過 → 次回更新時退会)
  • 退会後の取消(解約取消)
  • 一括前払いプランの退会(クーリングオフ運用)
  • 運営アドミンによる強制退会(CS 対応 / 規約違反対応)
  • 失敗ケース: サブスク以外の退会試行、既に退会済み

権限別仕様

権限定義は ../user-roles.md 参照。用語は ../terminology.md

講座権限軸

操作 未受講者 受講者 サブ講師 メイン講師
退会フローへの遷移 × ○(契約者) ×(自講座は退会不可) ×(自講座は退会不可)
解約アンケート回答 ×
解約申請 ×
解約取消 ×

横断軸

操作 運営アドミン テストユーザー 投稿禁止
自身の退会 (通常と同じ) (通常と同じ) (通常と同じ)
強制退会(即時 or 指定日) ○(運営アドミン専用機能) × ×
契約削除(クーリングオフ) ○(運営アドミン専用機能) × ×

📝 レビュー観点:

  • 講師が自講座から退会できるかは要確認(運用上想定外)
  • 運営アドミン強制退会の典型用途(CS 対応 / 規約違反 / 講座終了時の一括処理)

機能詳細(ふるまい)

5 ステップフロー

# ステップ 内容
1 開始(start) 「本当に解約しますか?」確認
2 注意事項(notice) 解約後の影響(トーク閲覧不可・コンテンツ閲覧不可・再入会条件 等)
3 理由(reason) 解約理由アンケート(選択式 + 自由記述)
4 確認(confirm) 「入会中講座の解約を行います」最終確認
5 完了(complete) 「解約手続きが完了しました」

即時退会 vs 次回更新時退会の違い

退会経路によって終了タイミングが異なる:

経路 即時 / 次回更新 利用継続 適用対象
受講者の解約申請(mypage 退会フロー) 次回更新時退会 契約満了日まで継続利用可 サブスクのみ
運営アドミンの強制退会 即時退会(または指定日) 即時 or 指定日に終了 運営アドミン専用
運営アドミンのクーリングオフ 契約削除 契約レコード自体を削除 運営アドミン専用

退会理由アンケート

退会フローの 3 番目(理由)ステップでアンケートに回答する:

  • 選択式: あらかじめ用意された解約理由の選択肢から該当するものを選択(複数選択可の場合あり)
  • 自由記述: 補足的な意見・要望を自由記述欄に入力(任意)

回答内容は運営側で集計し、CS 対応・サービス改善の参考に利用される。

退会後のデータアクセス可否

退会経路によってアクセス可否のタイミングが異なる:

  • 解約申請直後(受講者経由): 契約満了日までは引き続き利用可能。トーク・コンテンツとも閲覧可
  • 契約満了後 / 即時退会後: トーク閲覧不可・コンテンツ閲覧不可。トーク履歴自体は講師・運営側からは引き続き参照可能(受講者本人だけが見えなくなる)
  • トーク参加者リスト: 退会後もトークルームの参加者リストには残ることがある(運用上の課題)

退会取消(解約取消)

契約満了前であれば、解約申請を取り消して再開できる:

  • 取消可能期間: 契約満了日まで(満了日後は再入会扱いで通常の入会フローへ)
  • 取消後の挙動: 自動更新が再開される(解約予約が解除される)
  • 取消経路: 受講者向けの取消画面は限定的で、CS 経由で運営側に依頼するケースもある

📝 レビュー観点:

  • 入力 → 処理 → 出力: 各ステップの状態保持と離脱挙動
  • エッジケース: 解約取消の有効期限(契約満了直前のレースコンディション)、複数契約状態(プラン変更予約中の解約)
  • エラー表示: サブスクでない契約の解約試行(contract.cancel.subscription.not.exist)、二重解約(contract.already.cancel.contract
  • [本機能特有] 退会後のトーク: 契約終了で閲覧不可になるが、Firestore のユーザーリストには残置(dev 改善課題)
  • [本機能特有] 解約完了通知メール: 現状未実装(要件次第で追加)

admin 操作

できる操作

  • 強制退会: PUT /admin_master/withdrawal/{user_id}/{plan_id}、即時 or 指定日終了。ForcedWithdrawalUseCase
  • 契約削除: DELETE /admin_master/contract/{user_id}/{plan_id}/{plan_price_id}、契約レコード自体を削除
  • クーリングオフ: DELETE /admin_master/cooling_off/{user_id}/{plan_id}/{plan_price_id}、法定クーリングオフ対応

詳細は ../admin/contract.md 参照。

実装されていない / 不明

  • 運営アドミンによる解約アンケート代理登録: 専用経路なし
  • 退会済みユーザーへの再入会条件設定: 個別管理は未実装

📝 レビュー観点:

  • 強制退会と契約削除の使い分け(運用ルール)
  • クーリングオフの運用フロー(法定 8 日等の管理)

品質 / 約束事項

  • 応答性: 解約申請は同期処理で即時受理。終了確定(次回更新時退会)は契約満了日に走るバッチで自動処理(日次想定)
  • 信頼性: 解約申請は契約データに直接反映されるため、二重申請は事前チェックで弾かれる。バッチ処理失敗時はリトライされ、確定は契約満了日付近に確実に走る
  • 制限値: 1 講座あたり 1 解約申請まで
  • データ保持: 解約後も契約レコードは保持(運営側で履歴参照可)

📝 レビュー観点:

  • 応答性: 解約申請の即時反映、終了確定のバッチタイミング(日次想定)
  • データ保持: 解約後の個人情報・支払い履歴の保持期間(法定要件との整合)
  • [本機能特有] 解約完了通知: 現状未実装、要件確認

変更履歴(リリースノート候補)

v2.29.2: 2026-05-01(PSD 初版)

  • [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない

📝 レビュー観点:

  • 過去の主要変更(解約アンケート追加 / クーリングオフ対応 等)

関連ドキュメント


このページの内容を AI に質問しますか?
関連 spec を自動抽出して ChatGPT / Claude などに渡せます。
AI Prompt で開く →