機能 / 管理者機能
課金・プラン管理
4プラン構成
Solo / Team / Standard / Business の4プラン。ユーザー数・メールアカウント数・ストレージの組み合わせで選択できます。各プランの金額・上限の詳細は 料金ページ をご覧ください。
アドオン(3種類)
- 追加ユーザー
- 追加メールアカウント
- 追加ストレージ(10GB単位)
本体の課金サイクル(月/年)に関わらず、アドオンは 常に月額請求 です。プラン上限を少しだけ超えた分にも柔軟に対応できます。
14日無料トライアル
新規テナント作成時に自動開始。クレカ不要、Team プラン相当の上限が一時適用されます。期間終了後はトライアル前の状態のまま、課金プランへ進むかどうかを判断できます。
Stripe 連携基盤(実装済み)
以下の Stripe 連携 API・Webhook 処理・状態同期は実装済みです。
- Stripe Checkout(新規契約): 新規 Subscription 作成 API。事前プレビューで請求先情報入力が必須
- Stripe Billing Portal: 支払方法変更・解約・プラン変更の deep link 取得 API
- Webhook 状態同期:
customer.subscription.*/invoice.*等を非同期処理 - 請求書 PDF: Stripe 側で自動発行・保管
アプリ内から自助で操作完結
/settings/billing/ 配下の管理画面(admin のみ)で、以下を自分で操作できます:
- 新規契約(プラン選択 → 請求先入力 → 税込み確認 → Stripe Checkout へ)
- プラン変更(Stripe Billing Portal の deep link 経由)
- 支払方法の更新(同上)
- 契約の解約 / 解約予約のキャンセル
- アドオン数量の増減(追加ユーザー / メールアカウント / ストレージ)
請求書 PDF の取得
/settings/billing/invoices/ 画面で過去の請求書を一覧表示。各請求書の PDF を直接ダウンロードしたり、Stripe ホスト型のページで開いたりできます。返金/値引き履歴(credit_notes)も折りたたみで表示。
請求先情報管理
住所・Tax ID(適格請求書発行事業者番号等)を GET/PUT /api/billing/customer-info で管理。invoice.finalization_failed 後の復旧にも対応します。
返金 / 値引き処理
Stripe の credit_note.* Webhook を処理し、billing_credit_notes に保存しつつ billing_records.amount_refunded_jpy を再計算。返金履歴も完全に追跡されます。
内部のライフサイクル状態管理(5段階)
rivio は内部で以下5段階の状態管理を行います。利用者向けの UI ではこれらの状態に応じた警告バナーや書き込み制限が適用されます(状態名そのものを画面に表示するわけではなく、「読み取り専用モードです」のような形で表現されます)。
| 状態 | 説明 |
|---|---|
| トライアル中 | 新規登録から14日間。Team 相当の上限 |
| 利用中 | 通常利用可能 |
| 制限中(読み取り専用) | 支払失敗・解約予約等。書き込み・送信が 423。閲覧と admin 操作(課金 API 経由の復帰)は可能 |
| 停止中 | API 全面 423。アプリ内からの自己復旧導線は現時点なし |
| 解約済み | 契約終了(terminated)。この段階では active な Subscription イベント受信により復帰し得る。data_deleted/deleted(データ削除フェーズ完了)以降は完全に復帰不可 |
段階的な制限フロー
支払い失敗から制限開始(T0)を起点に、以下のタイマーで遷移します。
- T0 + 30日: 停止中(suspended)
- T0 + 60日: 契約終了(terminated)
- T0 + 90日: データ削除フェーズ開始 → アプリデータ削除完了で
data_deleted/deleted確定 - T0 + 120日: DB バックアップ消去通知
- 請求関連記録: 電子帳簿保存法に基づき長期保管
送信制御フラグ
email_sending_enabled で送信を入口でブロック可能。日次送信上限到達時には自動で停止し、plan-info API 経由でフロントの状態バナーに表示されます。