サブスクリプションを遡及適用する
サブスクリプションを遡及適用する方法をご紹介します。
サブスクリプションを遡及適用して、すでに経過した期間分を顧客に請求できます。Stripe に移行する際や、または記録保持のためによく使用されます。backdate_
フィールドは、サブスクリプションの遡及適用の開始日を指定します。また、必要に応じて経過した期間部分を顧客に請求したり、次回の請求日を設定したりすることもできます。
遡及適用およびユーザへの請求
サブスクリプションが作成される前に、ユーザーがお客様のサービスにアクセスできる場合、そのアクセスに対してユーザーに請求するとします。
この結果、遡及適用の開始日から現在までの期間を比例配分 (日割り / 秒割り計算) した金額の請求書が作成されます。比例配分された金額は、遡及適用の開始日を起点とする想定上の期間に基づいて算出されます。たとえば、請求期間が毎月 1 日始まりの月次であり、backdate_
を (うるう年以外の) 2 月 15 日に設定した場合、比例配分の計算は 2 月 15 日から 3 月 15 日までの 1 カ月を基に行われます。この月は 28 日間であるため、2 月 15 日から 3 月 1 日までの 14 日間の比例配分金額は、通常の月次支払いのちょうど半分になります。
同様に、backdate_
を 1 月 15 日に設定した場合、比例配分の計算は 1 月 15 日から 2 月 15 日までの想定上の月に基づきます。この月は 31 日間なので、1 月 15 日から 2 月 1 日までの 17 日間の比例配分金額は、通常の月次支払いの 31 分の 17 (すなわち 0.548) となります。
計算について考える別の方法は、遡及適用の開始日を基の開始日と見なし、最初の完全な請求期間の開始を更新された開始日と見なすことです。
ユーザへの請求を行わない遡及適用
遡及適用された期間について顧客に請求せず、サブスクリプションを遡及適用することもできます。この方法は、Stripe に移行する場合に使用できます。そのためには、サブスクリプションの作成時に proration_
を渡します。この結果、start_
が backdate_
と同じ値に設定されますが、遡及適用された期間について顧客への請求は行われません。
遡及適用と請求サイクルアンカーの設定
backdate_
と billing_
を組み合わせてサブスクリプションに遡及適用し、請求サイクルアンカーを将来の日付に設定します。これにより、遡及適用された開始日と請求サイクルアンカーの間の比例配分されたアイテムが、次回の請求書に作成されます。これは、Stripe に移行中で、サブスクリプションの次の請求日を繰り越す一方で、経過した期間について顧客に請求する必要がある場合に使用できます。
たとえば、現在 10 月 15 日で、Stripe に移行中だと仮定します。9 月 1 日に開始したサブスクリプションがあり、次回の請求日は 11 月 1 日です。このサブスクリプションを移行するには、新しいサブスクリプションを作成し、backdate_
を 9 月 1 日に、billing_
を 11 月 1 日に設定します。
これにより、9 月 1 日から 11 月 1 日までの比例配分を適用した金額の請求書が即時に発行されます。また、サブスクリプションの start_
は 9 月 1 日に設定されます。Stripe は次の請求書を 11 月 1 日に発行します。

更新の遡及適用
定期購入の更新時に日割り計算の有効日を設定するには、proration_date パラメーターを使用します。サブスクリプション項目の現在の期間内の整数の Unix タイムスタンプを渡します。サブスクリプションがサブスクリプションスケジュールによってサポートされている場合は、タイムスタンプがサブスクリプションスケジュールの次のフェーズの開始日より前であることを確認してください。
現在の期間より前の proration_
を設定できるのは、過去のサブスクリプションの最初の期間のみです。この場合、proration_
は subscription[start_
(遡及開始日) 以降にすることができます。それ以外の場合、proration_
をサブスクリプショ項目の current_
の前にすることはできません。