関連ページ
一度作成した Plan の価格を変更する方法
- Stripe は一度作成した Plan の価格変更ができない
- https://stripe.com/docs/api/plans/update external_link
By design, you cannot change a plan’s ID, amount, currency, or billing cycle.
- https://stripe.com/docs/api/plans/update external_link
- 途中で Plan の価格を変更したい場合は以下の手順を踏む必要がある
- 修正後の価格を設定した Plan を新たに作成する
- https://stripe.com/docs/api/plans/create external_link
- Product は既存の Plan と同一のものを紐づける
- Subscription を修正する
- 修正後の価格を設定した Plan を新たに作成する
- Subscription を修正する際に proration(比例配分) の仕組みを知っておく必要がある
prorate: true
にするときは、proration_date
を一緒に指定すると、全顧客で中立な価格変更が可能になる- https://stripe.com/docs/api/subscriptions/update external_link
proration_date
が未指定の場合、API を実行した時間が自動的に入るため最初に変更された顧客が損をし、最後に変更された顧客が得をする
prorate: false
を指定すれば、比例配分せずに Subscription を更新することが可能- だが、プランを値上げする場合、Subscription 変更タイミングと次回の請求タイミングが遠い人ほど得をすることになる
- 価格変更前のプランで使える期間が長いため
- だが、プランを値上げする場合、Subscription 変更タイミングと次回の請求タイミングが遠い人ほど得をすることになる
proration(比例配分)の仕組み
参考文献
- https://stripe.com/docs/billing/subscriptions/prorations external_link
- https://qiita.com/y_toku/items/404b3c99632161f18579 external_link
超簡単な仕組みの解説
- 大前提として、Stripe の課金の仕組みは 前払い モデルになっている
- 例: \330/月 の Plan に対して Subscription を作ると、その場ですぐに支払いが発生する
- Subscription に関わる請求金額が変更される場合、常に次の請求タイミングで調整が入る
- プランの価格が上がる場合(upgrade)
- 以下の例で考える
- 4/1 0:00 に \330/月の Plan に対して Subscription が作成される
- 4/16 0:00 に 1. で作成された Subscription を \3300/月の Plan に upgrade する
- Subscription を更新する際に
prorate: true
(デフォルト値) のまま更新すると、5/1 での請求は \4335 になる- 内訳は、5月分の新プランの月額利用料(\3300) + 4月分の調整費
- 4月分の調整費は、
新プランの半月分 \1150 - 旧プランで利用する予定だった半月分 \115 = \1035
となる
- 以下の例で考える
- プランの価格が下がる場合(downgrade)
- 以下の例を考える
- 4/1 0:00 に \3300/月の Plan に対して Subscription が作成される
- 4/16 0:00 に 1. で作成された Subscription を \330/月の Plan に downgrade する
- Subscription を更新する際に
prorate: true
(デフォルト値) のまま更新すると、5/1 での請求はなしとなる- 内訳は、5月分の新プランの月額利用料(\330) + 4月分の調整費
- 4月分の調整費は、
新プランの半月分 \115 - 旧プランの利用する予定だった \1150 = -\1035
となる - 請求額が
\330 - \1035 = -\705
となり、マイナス分はクレジットとして Stripe が持ち続けることになる - クレジットは翌月以降の請求分として使いまわされるため、このままプランが変更されないと、6/1、7/1 の請求もなくなり、8/1 に \285 請求される
\705 - \330 * 2 = \45
となり、8月分の請求をするときに \285 足りなくなるため
- 以下の例を考える