メインコンテンツへスキップ

何をお探しですか?

私たちのサービスを探索し、目標達成をどのようにお手伝いできるかをご覧ください

サブスクリプション課金と権限管理システムの構築

サブスクリプション課金と権限管理を2つの連携システムとして設計します:プランを請求書と請求へ変換する課金パスと、同じプランを強制される機能または使用量制限に変換する権限管理レイヤーです。手動で状態をコピーするのではなく、サブスクリプション変更イベントで接続することで、プラン変更、支払い失敗、解約が即座にアクセス権に反映されます。

ソリューションレビューを予約する 関連ソリューションを確認する

著者: Netbase Commerce and Platform Engineering Desk · 監修: David (CEO) · 更新日 · 1 分で読める

star

このガイドは、製品に課金する価格モデルが決まった後、最初または次の課金システム構築を検討しているSaaSファウンダー、CTO、エンジニアリングリードを対象としています。SaaSプラットフォームエンジニアリングガイドでプラットフォーム全体を扱っていますが、このガイドはテナントが定義され(マルチテナントSaaSアーキテクチャ)、MVPモジュールリストに課金が項目として含まれた後(SaaS MVPアーキテクチャロードマップ)の、課金と権限管理システム自体をより深く掘り下げます。

このガイドの内容

課金と権限管理は1つではなく2つのシステムである

課金システムは「この顧客はいくら支払う義務があり、支払われたか」という問いに答えます:プラン、価格、請求書、支払い方法、税金、返金です。権限管理システムは、はるかに頻繁に問われる問いに答えます:「この顧客は今この機能を使えるか、残りはどれだけか。」両者は一致している必要がありますが、同じコードパスではありません。課金は月次または年次スケジュールで動作し、数秒の遅延を許容します。権限管理のチェックはすべてのリクエストで実行され、ミリ秒単位で返す必要があります。これらを1つの絡み合ったモジュールとして扱うことが、両者が乖離する最も一般的な原因です:プランのダウングレードが請求書を更新しても機能フラグが更新されなかったり、解約されたサブスクリプションが数日間アクセスを維持し続けたりします。

課金状態と権限管理はどのように同期を保つか?

両者はイベントを通じて同期を保ちます。最初のシステムのデータベースを2番目のシステムが読み取る方式ではありません。サブスクリプションが作成、更新、アップグレード、ダウングレード、一時停止、または解約されると、課金システムはイベントを発行します。権限管理更新ステップがそれを受け取り、変更のトリガーに関係なく、顧客がアクセスできる内容を再計算します。StripeのBillingドキュメントにはこのことが直接記載されています:アクティブなサブスクリプションは購入した製品に紐付いた各機能にアクティブな権限を作成し、アプリケーションはその権限を確認すべきであり、顧客が何をできるかを判断するためにプラン名を確認すべきではないとされています。実践的なルールはこれに続きます:製品コードで「この顧客はProプランか」と問うのではなく、「この顧客はCSVエクスポートの権限を持っているか、残り行数はいくらか」と問いましょう。プランは名前変更や契約によるオーバーライドが可能ですが、権限管理の問いは安定したままです。

データモデル:5つのオブジェクト、1つの依存チェーン

  • プラン

    保持する内容
    名前、価格、課金間隔、含まれる機能と制限
    変更されるタイミング
    価格変更が行われたとき(既存顧客に対してはまれ)
  • サブスクリプション

    保持する内容
    顧客が利用中のプラン、そのステータスと更新日
    変更されるタイミング
    アップグレード、ダウングレード、一時停止、解約、トライアル終了
  • 請求書

    保持する内容
    課金期間に請求された内容と支払い状況
    変更されるタイミング
    各課金サイクル、およびすべての支払い試行時
  • 使用量レコード

    保持する内容
    課金期間に紐付いた機能の使用量計測
    変更されるタイミング
    すべての計測イベント(APIコール、シート、生成されたレポート)
  • 権限

    保持する内容
    サブスクリプションが現在付与する内容(プランに任意のオーバーライドを加算して計算)
    変更されるタイミング
    すべてのサブスクリプションまたはオーバーライドの変更時、すべてのアクセスチェック時に読み取られる

権限テーブルはシンプルに保ちましょう:機能キー、制限またはブール値、それが属するサブスクリプションです。価格ロジックを持たせることは避けてください。価格はプランと請求書に、アクセスルールは権限に置きます。カスタム制限を交渉したエンタープライズ契約は、新しいプランではなく1つのサブスクリプションへのオーバーライド行になります。これにより、ベースのプランカタログが小さく読みやすい状態を保ちます。

自社開発か既存プラットフォーム採用か:意思決定フレームワーク

方式 強み リスク 選ぶべき状況
決済APIで直接構築(カード、請求書発行、Webhook) 価格ロジックと権限管理モデルを完全にコントロールできる ライフサイクル、リトライロジック、すべてのエッジケース(日割り計算、トライアルから有料、税金)を自社で管理する 価格設定がコアな差別化要素である、またはプランが課金プラットフォームのモデルに合わないほど特殊な場合
サブスクリプション課金プラットフォームの採用(Stripe Billingおよび同等製品) ライフサイクル、請求書発行、税金、リトライは処理済み。権限管理はプラットフォームから読み取り可能 価格モデルがプラットフォームのプランと使用量計測モデルに合う必要があるか、変換レイヤーを構築する必要がある プランが標準的(階層型またはシート単価、使用量アドオンあり/なし)で、市場投入時間が最優先の場合
ハイブリッド:支払いと請求書発行は課金プラットフォーム、権限管理サービスは自社 支払いコンプライアンスのスコープ(PCI DSS)をプラットフォームに委ねつつ、権限管理ロジックを製品固有に保てる 2つのシステムを同期させる必要があり、両者のイベントパイプラインは決して止まってはならない 価格に製品固有のルール(バンドル、使用量上限、契約オーバーライド)があり、課金プラットフォームのプランモデルではきれいに表現できない場合

3つのどの方式も、製品コードでの権限チェックの必要性をなくしません。課金プラットフォームはプランが付与すべき内容を計算しますが、どのコードパスがその答えを必要とするかを知っているのは製品だけです。

使用量計測と使用量ベース課金

使用量ベースおよびハイブリッド課金(基本料金プラス使用量超過分)では、請求書に到達する前に、使用量レコードが冪等であり、適切な課金期間に紐付いている必要があります。信頼性を保つための2つのルール:すべての使用量イベントに一意の識別子を付与してリトライによる二重カウントを防ぐこと、そして請求書の発行時だけでなく継続的に使用量を権限管理レイヤーにロールアップすることで、顧客が請求書に記載される前にハードリミットに達するようにします。上限をリアルタイムで強制するのは権限管理レイヤーであり、請求書ではありません。請求書は権限管理レイヤーがすでに許可した内容を報告するのみです。

課金と権限管理構築のシーケンス計画

  1. まずプランカタログをモデル化する

    :課金インテグレーションコードを書く前に、プランごとのすべての機能フラグと使用量制限を含めて。

  2. 権限テーブルをプランテーブルから分離する

    :契約によるオーバーライドや旧プランが1行になるように(新しいプラン定義にするのではなく)。

  3. 上記の意思決定テーブルから課金方式を選択する

    :価格モデルがどれほど標準的か、ライフサイクルロジックをどこまで自社で管理したいかに基づいて。

  4. ローンチ前にWebhookから権限管理へのパイプラインを構築する

    :すべてのサブスクリプション変更イベントが権限管理を更新し、すべての権限チェックがそのテーブルを読み取るようにする(プラン名ではなく)。

  5. 支払い失敗時のポリシーを事前に決定する

    :一時停止、未払いマーク、解約、何回のリトライ後か。これはテクニカルな設定ではなく顧客維持の判断です。

  6. ハッピーパスだけでなくライフサイクル全体をテストする

    :トライアルから有料への転換、サイクル途中のダウングレード、更新時のカード拒否、1つの課金期間内の解約後の再サブスクリプション。

  7. スケジュールに従って照合する

    :アクティブなサブスクリプションとアクティブな権限を毎日比較し、見逃したWebhookを顧客が気づく前に捕捉する。

課金と権限管理構築におけるAIの役割

AIの役割はここでは限定的です:請求が成功するか権限が付与されるかを決定することはなく、これらは決定論的かつ監査可能なままでなければなりません。Netbaseは主要な商用およびオープンソースのAIモデルと連携しており、プロジェクトごとに選定しています。以下の各項目は、Netbaseでの成熟度を示します。

存在する実績と存在しない実績

Netbaseはクライアント製品内で定期的なサブスクリプション型課金を構築し、自社およびクライアントのSaaSプラットフォーム内に財務・ERPモジュールを持っています:

  • Dey Page。 複数の州をカバーするビジネスディレクトリで、フィーチャードリスティングの掲載とフィールド検証バッジがサブスクリプションとして販売され、PaystackとFlutterwaveの決済ゲートウェイを通じて請求されています(Dey Pageの実績)。
  • Cloodo Workspace。 Netbaseのビジネス部門のデジタルワークプレイスで、Cloud ERPモジュールにCRM、HRM、AIモジュールと並んで財務機能が1つのワークスペースに含まれています(Cloodoの実績)。
  • 米国クライアント向けCloud ERP(非公開)。 2020年から、マルチテナントのクラウドERPをSaaSとして提供するオフショア開発と管理パートナー。計画中の第2フェーズでは、販売時点管理、在庫、ロイヤルティに加えて財務管理とレポートが対象となります(Cloud ERPの実績)。このフェーズは計画中であり、納品済みではありません。

存在しない実績。 Netbaseの公開済み実績には、スタンドアロンの使用量計測または権限管理エンジン、ある課金モデルから別のモデルへの移行(例:シートベースから使用量ベースへ)、および課金または権限管理構築の公開済みの期間、コスト、コンバージョン数字はいずれも記載されていません。上記のフレームワークは、1つの実測済みNetbaseプロジェクトではなく、一般的な納品プラクティスとStripeおよびPCIセキュリティ標準審議会の公開ドキュメントから導出されています。

代替案:課金と権限管理レイヤーを誰が構築・運用するか

  • 自社チーム、課金プラットフォームのAPIを利用

    強み
    製品のプランと権限ルールについての深い知識
    選ぶべき状況
    リソースがあり、価格ロジックがプラットフォームのモデルに近い場合
  • 自社チーム、決済APIで直接構築

    強み
    完全なコントロール、プラットフォームのプランモデルに縛られない
    選ぶべき状況
    価格が十分に特殊で、課金プラットフォームのプランモデルでは大がかりな回避策が必要な場合
  • 専任のエンジニアリングパートナー

    強み
    製品コード、課金インテグレーション、権限管理サービスにまたがる1つのチーム
    選ぶべき状況
    構築が複数のシステム(製品、課金、請求書発行、管理ツール)にまたがる、またはこのレイヤーを担当するチームがまだいない場合

Netbaseのカスタム開発では、クライアントがそのために作成されたIPを所有し、ほとんどのプロジェクトはディスカバリー後に合意された請負契約で実施されます。スコープに応じて、マイルストーンベース、月次チームリテーナー、またはKPI連動の条件も提供しています。Netbaseの自社プロダクト化ライブラリには、財務機能を持つCloud ERPモジュールが含まれており、請求書発行とレポート側の構築を短縮できる成長機能アクセラレーターです。サービスはSaaS開発とWebアプリケーション開発にあり、SaaS製品アクセラレーターから始められます。

このガイドの限界

  • どの課金プラットフォームのプランモデル、価格API、税機能も完全には説明していません。採用前に各自のドキュメントをお読みください。
  • 期間、コスト、コンバージョン数字は主張していません。プロジェクトの実際の数字は価格モデル、支払い方法の組み合わせ、スケールによって異なります。
  • 税計算と送金、チャージバック、収益認識はスコープ外です。それぞれ専門家のレビューが必要です。

Netbaseコンサルタントと次のステップを計画する

よくある質問

単一階層のプランの場合、コードでプラン名を確認する方法はしばらくは機能します。使用量制限、契約オーバーライド、または複数のプランを追加した時点で、販売された内容と実施された内容の間のズレが十分に一般的になるため、課金イベントで更新されるシンプルな権限テーブルは、サポートインシデントが発生する前に構築する価値があります。

サブスクリプションを一時停止するか、リトライを続けながら未払いとしてマークするか、解約するか、何回の試行後かを事前に決定してください。これは顧客維持の判断です。即座に解約したサブスクリプションは通常、顧客が保留中の請求書を支払うだけでなく再サブスクリプションを要求されることになります。

単一プランの製品であればはい。ただし、後から権限モデルに顧客を移行する作業は、最初からシンプルに構築するよりも手間がかかります。すべての過去のプラン変更とオーバーライドを、発生時に記録するのではなく再構築する必要があるためです。

課金期間終了前にハードリミットを強制するプランの場合のみです。次の請求書で超過分を報告するプランはバッチで計測できます。クォータ到達後にさらなる使用をブロックするプランは、権限管理レイヤーがリアルタイムに近い形で使用量を把握する必要があります。

次のステップ

使用量ベースや契約オーバーライドを含む価格モデルをお知らせください。課金と権限管理構築を適切な順序でスコープするソリューションレビューを予約します。SaaS製品アクセラレーターソリューションを確認するか、Netbaseのインサイトをさらに閲覧することもできます。

コンバージョンを高めるAI内蔵Webアプリケーション開発 コンバージョンを高めるAI内蔵Webアプリケーション開発

Netbase JSCは、プロダクトチームおよびコマースチームを対象に、高速で保守性の高いWebアプリとストアフロントフロントエンドの開発を提供します。成果を測定できる場面にAI検索・アシスタント・自動化を組み込みます。印刷・EC分野のクライアント事例がその価値を示しています:PrintLeoのページ読み込みは35%改善し、4over4はジャーニー刷新後にコンバージョンが48%向上しました。

詳しく見る
line
SaaSプロダクトアクセラレーター:実績あるNetbase JSCモジュールでAI対応SaaSを立ち上げる SaaSプロダクトアクセラレーター:実績あるNetbase JSCモジュールでAI対応SaaSを立ち上げる

SaaSプロダクトアクセラレーターは、アカウント・請求・ロール・インテグレーション向けの再利用可能なNetbase JSCモジュール群です。創業者やプロダクトチームがサブスクリプションソフトウェアを迅速に立ち上げられるよう支援し、初回リリースからプロダクト内AIにも対応しています。モジュールの再利用により開発期間を最大60%短縮でき、このアプローチはNetbase JSC自身のWeb to PrintサービスであるPrintcartで実証されています。

詳しく見る
line

Netbaseにリモートで依頼する

Netbase JSCのすべての案件はリモートで納品されるため、どの国・業界のクライアントともお取引できます。これまで80カ国のクライアントと実績があります。契約・請求書はNetbase JSCが発行し、お支払いはNetbase JSCの口座への銀行振込またはPayPal Businessで行います。CEOのHuy Nguyen(David)にWhatsAppまたはメールでお問い合わせください。

Netbaseに問い合わせる

プロジェクトを相談する

Netbase JSCは、デジタルプロダクトおよびAI活用ビジネスシステムの設計・構築・モダナイゼーション・運用を支援します。
プロジェクトのお問い合わせ

project@netbasejsc.com

WhatsApp

+84 937 869 689

オフィス住所

91 Nguyen Chi Thanh, Dong Da, Hanoi, Vietnam

お問い合わせ

構築・モダナイゼーション・運用したいものをお知らせください。

構築・モダナイゼーション・運用したいものをお知らせください。

Netbaseに問い合わせる