サブスクリプションの遡及適用
サブスクリプションの遡及適用は、すでに経過した期間分を顧客に請求するときに使用されます。Stripe に移行する際や、または記録保持のためによく使用されます。backdate_start_date
フィールドは、サブスクリプションの遡及適用の開始日を指定します。必要に応じて経過した期間部分を顧客に請求したり、次回の請求日を設定したりできます。
遡及適用およびユーザへの請求
サブスクリプションが作成される前に、ユーザーがお客様のサービスにアクセスできる場合、そのアクセスに対してユーザーに請求するとします。
この結果、遡及適用の開始日から現在までの期間を比例配分 (日割り / 秒割り計算) した金額のインボイスが作成されます。比例配分された金額は、遡及適用の開始日を起点とする想定上の期間に基づいて算出されます。たとえば、請求期間が毎月 1 日始まりの月次であり、backdate_start_date
を (うるう年以外の) 2 月 15 日に設定した場合、比例配分の計算は 2 月 15 日から 3 月 15 日までの 1 カ月を基に行われます。この月は 28 日間であるため、2 月 15 日から 3 月 1 日までの 14 日間の比例配分金額は、通常の月次支払いのちょうど半分になります。
同様に、backdate_start_date
を 1 月 15 日に設定した場合、比例配分の計算は 1 月 15 日から 2 月 15 日までの想定上の月に基づきます。この月は 31 日間なので、1 月 15 日から 2 月 1 日までの 17 日間の比例配分金額は、通常の月次支払いの 17/31 (or 0.548) となります。
計算について考える別の方法は、遡及適用の開始日を基の開始日と見なし、最初の完全な請求期間の開始を更新された開始日と見なすことです。
ユーザへの請求を行わない遡及適用
遡及適用された期間について顧客に請求せず、サブスクリプションを遡及適用することもできます。この方法は、Stripe に移行する場合に便利です。そのためには、サブスクリプションの作成時に proration_behavior: 'none'
を渡します。この結果、start_date
が backdate_start_date
と同じ値に設定されますが、遡及適用された期間について顧客への請求は行われません。
遡及適用と請求サイクルアンカーの設定
backdate_start_date
と billing_cycle_anchor
を組み合わせてサブスクリプションに遡及適用し、請求サイクルアンカーを将来の日付に設定します。これにより、遡及適用された開始日と請求サイクルアンカーの間の比例配分されたアイテムが、次回のインボイスに作成されます。これは、Stripe に移行中で、サブスクリプションの次の請求日を繰り越す一方で、経過した期間について顧客に請求する必要がある場合に便利です。
たとえば、現在 10 月 15 日で、Stripe に移行中だと仮定します。9 月 1 日に開始したサブスクリプションがあり、次回の請求日は 11 月 1 日です。このサブスクリプションを移行するには、新しいサブスクリプションを作成し、backdate_start_date
を 9 月 1 に、billing_cycle_anchor
を 11 月 1 日に設定します。
これにより、9 月 1 日から 11 月 1 日までの比例配分を適用した金額のインボイスが即時に発行されます。また、サブスクリプションの start_date
は 9 月 1 日に設定されます。Stripe は次のインボイスを 11 月 1 日に発行されます。
更新の遡及適用
サブスクリプションの更新時に比例配分の有効日を設定するには、proration_date
パラメーターを使用します。サブスクリプションの現在の期間に含まれる整数の Unix タイムスタンプを渡します。サブスクリプションにサブスクリプションスケジュールが設定されている場合は、タイムスタンプがサブスクリプションスケジュールの次のフェーズの開始日より前であることを確認してください。
過去のサブスクリプションの最初の期間のみ、現在の期間より前の proration_date
を設定できます。その場合、proration_date
は、subscription[start_date]
(過去の開始日) の任意の時点、またはそれ以降の日付になります。その他すべてのケースでは、proration_date
を current_period_start
より前にすることはできません。