Subscribed unsubscribe Subscribe Subscribe

定期課金プラン変更機能の紹介

こんにちは。PAY.JPのAPIを書いてるTakumaです。

今までは一度作成した定期課金のプランを変更することは出来ませんでしたが、2015年12月2日よりプランの変更が可能になりました。これによりプランのアップグレードやダウングレードがリクエスト一つで手軽に行えます。以下はプラン変更のサンプルリクエストです。

リクエスト:

curl https://api.pay.jp/v1/subscriptions/sub_hi1im1takuma1i7love9you0allx \
-u sk_test_c62fade9d045b54cd76d7036: \
-d plan=pln_9589006d14aad86aafeceac06b60 \
-XPOST

上の例では plan に新しいプランのidを渡すことにより、そのプランへ変更しています。

プラン変更時の挙動

初回課金のタイミング

新しいプランへの課金は変更時に行います。これは新しいプランにtrial_daysやbilling_dayが付いている場合でも変わりません。プラン変更時に改めてトライアル期間を付与したい場合は上のリクエストに -d trial_end=1479340800 と追加する事でトライアル終了時を指定することが出来ます。

初回課金額と新しい課金周期

上記の通り、プラン変更時の課金は即時行われます。その時の課金金額は新しいプラン金額で、変更時を基点に新しく一ヶ月の課金周期が設定されます。新しいプランにbilling_dayが付いている場合も即時課金が行われますが、次回更新時は直近の課金日になります。後述の日割りを適用することにより、この挙動を変える事が出来ます。

プラン変更での日割り適用

定期課金日割り機能の紹介では課金日が指定されている定期課金作成時の課金額に日割りを適用する方法を紹介しました。プラン変更時にも同様に日割りを適用させる事ができます。

適用方法

上のリクエストに -d prorate=true と追加する事で日割りを適用させる事が出来ます。

日割り適用時の初回課金額と新しい課金周期

日割りが有効の場合、課金周期を変えずに更新日までの日数分だけ課金します。また、新しいプランにbilling_dayがある場合、直近の課金日までの日数分を課金します。計算方法について詳しくはこちらの記事を参照ください。

未使用日数分の返金

日割りが有効の場合、古いプランの金額に対して、残っている課金周期日数分の金額を返金します。返金額の計算方法は基本的に課金時のと同じですが、当日分は返金額に加算されません。

例えば、古いプランの金額が1,000円で、課金周期期間が11月1日から12月1日までの30日間、プラン変更日が11月17日だとします。周期開始日(11月1日)からプラン変更時(11月17日)までの日数(当日含め)は17日なので、残りの日数である13日(11月18日から12月1日まで)が返金対象です。30日のうち13日を返金するので、この場合の返金額は 1,000円 x 13 / 30 = 433円となります。

プラン変更と日割り機能を組みわせて利用する事により、煩わしい課金/返金額の計算から実行までを全てPAY.JPに任せる事が出来ます。支払いに関わる部分は出来る限りPAY.JPに任せる事で、デベロッパーのみなさんがサービスの開発に集中出来る事を願ってます。