# 段階制料金体系の設定

サブスクリプションの段階制料金体系を設定します。

価格では段階を設定でき、数量や使用量に応じて単価を変更できます。`quantity` や [usage](https://docs.stripe.com/api/billing/meter-event.md) が変化したときに非線形の価格設定が必要な場合は、段階制を使用します。[従量課金モデル](https://docs.stripe.com/subscriptions/pricing-models/usage-based-pricing.md)を作成するには、段階制料金体系と定額料金を組み合わせることができます。

たとえば、[Typographic](https://typographic.io/) という企業が 1 カ月あたりのフォントの使用数が多い顧客に対して相対的に低い料金でサービスを提供しようとしています。以下の段階制料金モデルには、使用数の増加に応じて料金を調整する 2 種類の方法、すなわち [従量課金制](https://docs.stripe.com/subscriptions/pricing-models/tiered-pricing.md#volume-based-pricing) と [累進従量制](https://docs.stripe.com/subscriptions/pricing-models/tiered-pricing.md#graduated-pricing) があります。これらの段階制料金体系へのアプローチをわかりやすくするために、以下の段階を使用します。

|            | フォント数 | 段階ごとの料金 |
| ---------- | ----- | ------- |
| **第 1 段階** | 1-5   | 7 USD   |
| **第 2 段階** | 6-10  | 6.5 USD |
| **第 3 段階** | 11 以上 | 6 USD   |

## 従量課金制

従量ベースの料金では、定期支払いアイテムが、期間末時点の使用総量に対応する階層で請求されます。`quantity` (または `usage`) 全体に段階の単価が掛けられます。段階制料金は `quantity` 全体 (または `usage`) に適用されるため、最終的なコストを計算するときに合計が少なくなる可能性があります。

たとえば、5 つのフォントを利用している顧客には 35 USD (5 × 7 USD) が 11 月に請求されます。その顧客が 12 月に 6 つのフォントをした場合、Typographic はすべてのフォントについて `6-10` のレートを適用して請求します。つまり 12 月の請求額は 39 USD (6 × 6.5 USD) になります。

| 期間終了時の数量と使用量 | 単価      | 合計月額料金  |
| ------------ | ------- | ------- |
| 1            | 7 USD   | 7 USD   |
| 5            | 7 USD   | 35 USD  |
| 6            | 6.5 USD | 39 USD  |
| 20           | 6 USD   | 120 USD |
| 25           | 6 USD   | 150 USD |

#### ダッシュボード

1. [商品カタログ](https://dashboard.stripe.com/products)に移動します。
1. **+ 商品を作成** をクリックします。
1. 商品の**名前**を入力します。
1. (オプション) **説明**を追加します。説明は、決済時の[カスタマーポータル](https://docs.stripe.com/customer-management.md)、および[見積もり](https://docs.stripe.com/quotes.md)に表示されます。

次に、商品の月額料金を作成します。

1. **その他の料金オプション** をクリックします。
1. **継続** を選択します。
1. **料金モデルを選択** で、**段階制料金** と **数量** を選択します。
1. **料金** で、3 つの段階を作成します。
|        | 下限ユニット | 上限ユニット | ユニットあたり | 定額課金  |
| ------ | ------ | ------ | ------- | ----- |
| 第 1 段階 | 1      | 5      | 7 USD   | 0 USD |
| 第 2 段階 | 6      | 10     | 6.5 USD | 0 USD |
| 第 3 段階 | 11     | ∞      | 6 USD   | 0 USD |
1. **請求期間** で、**月次** を選択します。
1. **商品を追加** をクリックして、商品と価格を保存します。商品と価格を編集できるのは、サブスクリプションを作成する時点までです。

#### API

この例に合わせて段階を作成し、`tiers_mode` の値を `volume` に設定します。

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "nickname=Font Volume Pricing" \
  -d "tiers[0][unit_amount]=700" \
  -d "tiers[0][up_to]=5" \
  -d "tiers[1][unit_amount]=650" \
  -d "tiers[1][up_to]=10" \
  -d "tiers[2][unit_amount]=600" \
  -d "tiers[2][up_to]=inf" \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d "recurring[usage_type]=metered" \
  -d "product={{PRODUCT_ID}}" \
  -d tiers_mode=volume \
  -d billing_scheme=tiered \
  -d "expand[0]=tiers"
```

## 累進従量制

累進従量制では、使用状況全体に一律価格を適用するのではなく、各段階の使用状況に応じて請求されます。`quantity` に各段階の金額を乗じて合計金額を算出します。

たとえば、5 フォントの場合、従量課金制と同じ請求になります。つまり 1 フォントあたり 7 USD で合計 35 USD です。使用量が第 1 段階を超えると変化します。5 フォントを超える顧客は、最初の 5 フォントについて 1 フォントあたり 7 USD、6 ～ 10 フォントでは 1 フォントあたり 6.5 USD、11 フォント以上では 1 フォントあたり 6 USD が Typographic から請求されます。6 フォントの顧客の場合、最初の 5 フォントについては 35 USD、6 つ目のフォントについて 6.5 USD が請求され、合計 41.5 USD になります。

| 期間終了時の数量と使用量 | 段階的な段階制料金体系の合計 |
| ------------ | -------------- |
| 1            | 7 USD          |
| 5            | 35 USD         |
| 6            | 41.5 USD       |
| 20           | 127.5 USD      |
| 25           | 157.5 USD      |

#### ダッシュボード

1. [商品カタログ](https://dashboard.stripe.com/products)に移動します。
1. **+ 商品を作成** をクリックします。
1. 商品の**名前**を入力します。
1. (オプション) **説明**を追加します。説明は、決済時の[カスタマーポータル](https://docs.stripe.com/customer-management.md)、および[見積もり](https://docs.stripe.com/quotes.md)に表示されます。

次に、商品の月額料金を作成します。

1. **その他の料金オプション** をクリックします。
1. **継続** を選択します。
1. **料金モデルを選択** で、**段階制料金** と **段階制** を選択します。
1. **料金** で、3 つの段階を作成します。
|        | 下限ユニット | 上限ユニット | ユニットあたり | 定額課金  |
| ------ | ------ | ------ | ------- | ----- |
| 第 1 段階 | 1      | 5      | 7 USD   | 0 USD |
| 第 2 段階 | 6      | 10     | 6.5 USD | 0 USD |
| 第 3 段階 | 11     | ∞      | 6 USD   | 0 USD |
1. **請求期間** で **毎月** を選択します。
1. **商品を追加** をクリックして、商品と価格を保存します。商品と価格を編集できるのは、サブスクリプションを作成する時点までです。

#### API

この例に合わせて段階を作成し、`tiers_mode` の値を `graduated` に設定します。

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "nickname=Per-minute pricing" \
  -d "tiers[0][unit_amount]=700" \
  -d "tiers[0][up_to]=5" \
  -d "tiers[1][unit_amount]=650" \
  -d "tiers[1][up_to]=10" \
  -d "tiers[2][unit_amount]=600" \
  -d "tiers[2][up_to]=inf" \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d "recurring[usage_type]=metered" \
  -d "product={{PRODUCT_ID}}" \
  -d tiers_mode=graduated \
  -d billing_scheme=tiered \
  -d "expand[0]=tiers"
```

## 定額料金の追加

請求書*invoice* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) に追加する定額料金 (`flat_amount`) を指定できます。これは、ボリュームおよび段階的料金の両方に適用されます。例えば、顧客が特定の使用量しきい値を超えた場合に増加する定額料金を設定できます。

| 段階                 | 金額 (単価)                   | 定額課金                        |
| ------------------ | ------------------------- | --------------------------- |
| 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 つのうちの 1 つが必要です。もし`quantity` が `0` の場合、使用された段階制料金モデルに関係なく、合計金額は10 USDです。Stripe は、次の場合に常に最初の定額料金段階に請求します。`quantity=0` の場合に常に最初の定額料金段階に請求します。使用状況がない場合に`0`を請求するには、`up_to=1` 段階を定額料金と等しい`unit_amount` で設定し、`flat_amount` を省略します。
