継続的な料金体系モデル
料金体系モデルは、Stripe での貴社のビジネスを表すパターンです。Product オブジェクトと Price オブジェクトを使用して、販売内容と請求方法をモデル化することができます。
段階別定額
SaaS ビジネスの多くは、顧客が段階的に拡大するサービスオプションを選択できるようにしています。この定額の料金体系モデルは「段階別」と呼ばれます。顧客は、サービスの段階を選択して、その段階に対する定額料金を支払います。
コラボレーションプラットフォームを販売する Togethere というビジネスの例を紹介します。このビジネスでは、基本、スターター、エンタープライズという 3 つのサービスレベルを提供しています。サービスレベルごとに、月額と年額の価格を提供しています。Togethere は複数の国で運営されているため、複数通貨の価格があります。
この例では、Togethere が、Basic
、Starter
、Enterprise
の 3 つの商品を提供しています。各商品には、いくつかの異なる価格が設定されています。Basic レベルの価格は、10 USD/月と 100 USD/年です。どちらも同じ Basic
商品の価格であるため、顧客の領収書とインボイスに記載される商品の説明は同じです。
以下は、Stripe でのこのようなモデルの表示例です。
段階別定額の料金体系モデル
Stripe で段階別料金をモデル化する
サブスクリプションの導入ガイドでは、実装全体に合わせて料金体系モデルを調整する方法を説明しています。
- Stripe Checkout を使用している場合、次のステップはサイトの Checkout セッションの作成になります。Stripe を設定していることを確認してください。
- Stripe Elements を使用している場合は、次のステップが顧客の作成になります。Stripe とサンプルアプリケーションを設定していることを確認してください。
ユーザー数単位
この例で用いられているコラボレーションプラットフォーム企業である Togethere では、ユーザー毎プランの提供も計画しています。ユーザー毎の料金体系は、SaaS ビジネスで一般的なもう 1 つのサービスです。Togethere の顧客は使用するユーザー数を選択し、Togethere はその金額に基づいて請求します。
このシナリオをモデル化するために、Togethere は、各ユニットが 1 人のユーザーを表す商品と価格構造を作成します。Togethere が顧客のサブスクリプションを作成する際に、顧客は、そのサブスクリプションのユーザー数を指定します。
以下は、Stripe でのこのようなモデルの表示例です。
ユーザー数単位の料金体系モデル
その他のモデルのサンプルについては、高度な料金体系モデルのセクションをご覧ください。定額とユーザー単位の料金体系は、ユーザー単位の料金に定額の月額料金を加算して顧客に請求する、SaaS ビジネスで一般的なモデルの 1 つです。
Stripe でユーザー数単位の料金体系をモデル化する
サブスクリプションの導入ガイドでは、実装全体に合わせて料金体系モデルを調整する方法を説明しています。
- Stripe Checkout を使用している場合、次のステップはサイトの Checkout セッションの作成になります。Stripe を設定していることを確認してください。
- Stripe Elements を使用している場合は、次のステップが顧客の作成になります。Stripe とサンプルアプリケーションを設定していることを確認してください。
ユーザー数単位の料金体系のその他のバージョンについては、高度なモデルセクションをご覧ください。
使用量ベースの料金体系
使用量に基づく料金体系は、 SaaS ビジネス向けの一般的な料金体系モデルであり、顧客による商品またはサービスの使用量に基づいて請求できます。企業は、サービスを提供し、使用量に応じて顧客に請求を行います。使用量に基づく料金体系モデルを使用するエンドツーエンドのシステムの表示がどのようになるかを確認するには、使用量ベースの料金体系モデルガイドをご覧ください。
段階制料金
料金に段階を設定して、数量や使用量に合わせて単価を変更することができます。たとえば、Togethere は 1 カ月あたりのプロジェクト利用数が多い顧客に、低料金プランを提供するとします。次の例は、使用量が増えるごとに料金を調整するための 2 つの方法である、従量ベースの料金と段階的な料金を示しています。これらの段階制料金の実装方法を説明するために、次の段階を使用します。
プロジェクト数 | 段階ごとの料金 |
---|---|
1 ~ 5 | 7 USD |
6 ~ 10 | 6.50 USD |
11+ | 6 USD |
Use tiers
if you need non-linear pricing when quantity
or usage changes. You can also combine tiered pricing with base fees to create more complex pricing models.
billing_scheme=per_unit
を指定して価格を作成すると、unit_amount
は顧客の購入数にかかわらず同じになります。Stripe では、この金額に quantity
を乗じて、合計価格が決定されます。たとえば、5 USD の unit_amount
の請求構造は次のようになります。
期間終了時の数量/使用量 | 合計価格 |
---|---|
1 | 5 USD |
5 | 25 USD |
6 | 30 USD |
20 | 100 USD |
25 | 125 USD |
billing_scheme=tiered
を使用して価格を作成すると、顧客の購入数によって単価が変化します。以下は、この段階構造の例です。
段階 | 金額 (単価) |
---|---|
1 ~ 5 (up_to=5 ) | 5 USD (unit_amount=500 ) |
6 ~ 10 (up_to=10 ) | 4 USD (unit_amount=400 ) |
10 ~ 15 (up_to=15 ) | 3 USD (unit_amount=300 ) |
15 ~ 20 (up_to=20 ) | 2 USD (unit_amount=200 ) |
20+ (up_to=inf ) | 1 USD (unit_amount=100 ) |
乗算は以下のように行われます。
Price
オブジェクトにrecurring.usage_type = licensed
が設定されている場合は請求期間の開始時。Price
オブジェクトにrecurring.usage_type = metered
が設定されている場合は請求期間の終了時。
段階制料金では以下を行います。
tiers_mode
をvolume
またはgraduated
のいずれかに設定します。- この段階構造を表す
tiers
配列を作成します。
従量ベースの料金体系
従量ベースの料金では、サブスクリプションアイテムが、期間終了時の使用総量に対応する階層で請求されます。従量ベースの請求階層を実装するには、次のように tiers_mode
の値として volume
を設定します。
従量ベースの料金体系では、5 件のプロジェクトを使用する顧客は期間終了時に 35 USD (5 件のプロジェクトそれぞれに 7 USD) が請求されます。これに対して、翌月の合計プロジェクト数が 6 つになると、すべてのプロジェクトが 6-10
件の料金で請求されます。その月は、39 USD (6.50 × 6) を請求されることになります。
tiers_mode=volume
では、quantity
全体に段階の単価が掛けられます。
期間終了時の数量/使用量 | 数量ベースの段階制料金体系の合計 |
---|---|
1 | 5 USD |
5 | 25 USD |
6 | 24 USD |
20 | 40 USD |
25 | 25 USD |
段階料金は quantity
または usage
全体に適用されるため、最終価格が計算されると合計が減ることがあります。
段階的な料金体系
従量ベースの料金と似ていますが、段階的な料金では、すべての使用量に単一の料金を適用するのではなく、各段階の使用量に応じて請求します。段階的な料金を使用するには、次のように tiers_mode
の値を graduated
に設定します。
段階的な料金体系では、5 件のプロジェクトは従量ベースの料金と同じ 1 件あたり 7 USD で合計 35 USD が請求されます。これは、使用量が最初の段階から外れると変わります。プロジェクト数が 5 件を超える顧客は、最初の 5 プロジェクトについては 1 件あたり 7 USD を請求されますが、6 ~ 10 件のプロジェクトについては 6.50 USD、最終的にそれ以降は 1 件あたり 6 USD になります。プロジェクト数が 6 件の顧客は 41.50 USD (最初の 5 プロジェクト分の 35 USD と、6 件目の 6.50 USD) を請求されます。
tiers_mode=graduated
を使用すると、quantity
に、その段階に該当する数量が乗じられます。その後で、合計が算出されます。たとえば、6 の合計価格は、29 USD です (5 quantity
は 1 ~ 5 の段階に該当する 25 USD。そこに、6 ~ 10 の段階に該当する 1 つ分の quantity
として 4 USD を加える)。
期間終了時の数量と使用量 | 段階的な段階制料金体系の合計 |
---|---|
1 | 5 USD |
5 | 25 USD |
6 | 29 USD |
20 | 70 USD |
25 | 75 USD |
定額手数料を追加する
定額料金 (flat_amount
) を指定してインボイスに追加できます。これは、tiers_mode=volume
と tiers_mode=graduated
の両方に適用されます。たとえば、特定の使用しきい値が満たされると増加する定額料金を使用することなどができます。
段階 | 金額 (単価) | 定額料金 |
---|---|---|
1 ~ 5 (up_to=5 ) | 5 USD (unit_amount=500 ) | 10 USD (flat_amount=1000 ) |
6 ~ 10 (up_to=10 ) | 4 USD (unit_amount=400 ) | 20 USD (flat_amount=2000 ) |
10 ~ 15 (up_to=15 ) | 3 USD (unit_amount=300 ) | 30 USD (flat_amount=3000 ) |
15 ~ 20 (up_to=20 ) | 2 USD (unit_amount=200 ) | 40 USD (flat_amount=4000 ) |
20+ (up_to=inf ) | 1 USD (unit_amount=100 ) | 50 USD (flat_amount=5000 ) |
この例では、quantity
が 12
で、tiers_mode=volume
が設定されている場合、合計請求額は 12 * 3 USD + 30 USD = 66 USD
になります。
quantity
が 12
で、tiers_mode=graduated
の場合、合計金額は 5 * 5 USD + 10 USD + 5 * 4 USD + 20 USD + 2 * 3 USD + 30 USD = 111 USD
となります。段階には、unit_amount
または flat_amount
のいずれか、または両方を含めることができますが、少なくとも 2 つのうちいずれかは含める必要があります。
quantity
が 0
の場合、tiers_mode
に関係なく、合計金額が 10 USD
になります。quantity=0
のときには、常に最初の段階の定額手数料が課金されます。使用量がないときの請求を 0
にするには、定額手数料と等しい unit_amount
の up_to=1
段階を設定し、flat_amount
を省略します。
変動料金
変動料金モデルには 2 つのタイプがあります。
- インライン料金: サブスクリプション、インボイス、Checkout セッションを作成する際に顧客の価格を定義します。
- Pay What You Want (買い手が価格を決める) 方式の料金体系: 顧客は、チップや寄付などのように、支払う金額を入力します。このタイプの変動価格は、継続支払いではサポートされていません。1 回限りの支払いにこのタイプの価格を使用する方法については、顧客が支払い金額を決定できるようにするをご覧ください。
インライン料金
状況によっては、事前設定されていないカスタム価格を使用することができます。たとえば、Stripe 以外で商品カタログを管理する場合などにインライン価格を使用できます。
注
インライン価格は、API でのみ作成できます。インライン価格は Payment Links に対応していません。
インライン価格のユースケースを作成するには、サブスクリプションを作成する際に、price.id ではなく price_data を渡します。たとえば、顧客をインライン価格の月次サブスクリプションに登録するには、次を実行します。
これにより、基本サービスに対する 50 USD の月次の継続価格が作成されます。デフォルトでは、price_data
で作成された価格は、別の顧客またはサブスクリプションに再利用できないように実質的にアーカイブ (active=false
とマーク) されます。インライン価格は、作成後に更新することも再利用することもできません。以下の API でも price_data
を使用できます。
多通貨の価格
1 つの Price で複数の通貨に対応できます。この機能を利用すると、国際的に販売している場合に各地域に合った価格を管理できます。
多通貨の Price を作成する
多通貨の Price は、API またはダッシュボードで作成できます。
クーポン、プロモーションコード、配送料金も価格と同様に多通貨に対応しています。
多通貨の Price をレンダリングする
顧客に現地通貨で価格を表示するには、多通貨の Price を取得して、その currency_options.<currency>.unit_amount フィールドを確認します。デフォルトの API 応答には、currency_options
は含まれていません。応答にこのフィールドを含めるには、currency_options
フィールドを拡張します。
注
遅延を改善してレート制限に伴う問題を避けるには、顧客がサイトを訪れるたびに Price を再取得するのではなく、Price をキャッシュするようにします。
多通貨の Prices を使用する
各購入では、実装での Price の使用方法に応じて、多通貨の Price の対応通貨のいずれかが使用されます。
単一通貨の Price から多通貨に移行する
単一通貨の価格が既存の場合、ダッシュボードで、後からその価格に複数の通貨を追加できます。
注
既存の価格に複数の通貨をさかのぼって追加できるのは、Stripe ダッシュボードだけです。Stripe API では複数通貨を後から追加する機能をサポートしていません。API を使用している場合は、最初から多通貨の価格を作成してください。
Price に新しい通貨を追加した後でその通貨を変更するには、既存の Price をアーカイブして新しい Price を作成する方法しかありません。既存の価格の管理方法をご確認ください。
Checkout または Payment Links を使用している場合、多通貨の Price が自動的に有効になります。顧客の現地通貨が Price で対応している通貨であることを Stripe が検知すると、その通貨が自動的に使用されます。1 回の購入で複数の価格、クーポン、プロモーションコード、または配送料金が使用されている場合、そのすべてが顧客の現地通貨に対応していて、それらのデフォルト通貨がすべて同じである必要があります。
サブスクリプションを直接作成する場合、多通貨の Price は currency
パラメーターを渡すまでは有効になりません。currency
パラメーターを渡さない場合、サブスクリプションは常に Price のデフォルトの通貨を使用します。
複数の価格
商品では複数の価格を使用して、異なる複数の価格オプションを定義できます。商品の説明は価格間で共有されるため、顧客の領収書とインボイスで同じように表示され、価格のみが異なります。
Togethere の商品が拡張されるにつれて、同じ商品をさまざまな価格で提供するようになりました。特に一部の顧客は、四半期や年次のサブスクリプションによって割引が適用される前払いを希望します。Togethere は四半期あたり 57 USD というオプションを設定します。
年次の 220 USD のオプションも作成します。