# サブスクリプションを遡及適用する サブスクリプションを遡及適用する方法をご紹介します。 サブスクリプションを遡及適用して、すでに経過した期間分を顧客に請求できます。Stripe に移行する際や、または記録保持のためによく使用されます。`backdate_start_date` フィールドは、サブスクリプションの遡及適用の開始日を指定します。また、必要に応じて経過した期間部分を顧客に請求したり、次回の請求日を設定したりすることもできます。 ## 請求モードに関する考慮事項 [API バージョン 2025-04-30](https://docs.stripe.com/changelog/basil.md#2025-04-30.preview) では、遡及適用の動作はサブスクリプションの [billing_mode](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-billing_mode) によって異なります。 ### Before `billing_mode=classic` を使用すると、遡及適用期間の日数で比例配分された単一の項目が作成されます。 ### After `billing_mode=flexible` を使用して、遡及期間に発生した自然請求期間ごとに 1 つの項目を生成します。これは通常の請求と同様に動作します。 > 請求書の項目がデフォルトの上限である 250 件を超える場合、遡及適用はサポートされません。 ## 遡及適用およびユーザへの請求 サブスクリプションが作成される前に、ユーザーがお客様のサービスにアクセスできる場合、そのアクセスに対してユーザーに請求するとします。 #### ダッシュボード ダッシュボードでこの期間をユーザーに請求するには、以下のようにします。 1. **支払い** > **サブスクリプション**ページに移動します。 1. **+サブスクリプションを作成する**をクリックします。 1. 顧客を検索または追加します。 1. 価格と商品情報を入力します。 1. **サブスクリプションの詳細**セクションで、サブスクリプションの開始日と終了日を選択します。遡及適用するには、開始日を過去の日付にします。 1. 請求期間を開始する日付を選択します。 1. (任意) **支払い**または**詳細設定**オプションを設定します。 1. **サブスクリプションを作成**をクリックします。サブスクリプションは選択した日付に開始されます。 #### API API を使用して過去に遡って請求するには、`customer`、`price`、`backdate_start_date` を渡して、遡及適用されたサブスクリプションを作成します。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d backdate_start_date=1575176400 \ -d "items[0][price]={{PRICE_ID}}" ``` これにより、遡及適用の開始日から現在までの期間の料金が記載された*請求書* (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)が作成されます。 サブスクリプションに `billing_mode=classic` が設定されている場合、Stripe は、遡及開始日からの想定期間に基づいて、遡及期間の比例配分額を 1 つ作成します。たとえば、月初からの請求期間があり、`backdate_start_date` を (うるう年以外の) 2 月 15 日に設定すると、Stripe は 2 月 15 日から 3 月 15 日までの想定月を基準に比例配分を計算します。2 月の日数は 28 日であるため、2 月 15 日から 3 月 1 日までの 14 日間の比例配分額は、通常の月次請求の金額のちょうど半分になります。 同様に、`backdate_start_date` を 1 月 15 日に設定した場合、Stripe は 1 月 15 日から 2 月 15 日までの 1 カ月を基準にして比例配分を計算します。この月の日数は 31 日であるため、1 月 15 日から 2 月 1 日までの 17 日間の比例配分額は、通常の月額料金の 31 分の 17 (約 0.548) となります。 また、遡及適用の開始日を基の開始日と見なして計算を表示することも可能です。その後、最初の請求期間の開始日が更新された開始日になります。 サブスクリプションに `billing_mode=flexible` が設定されている場合、Stripe は、遡及期間に発生した自然請求期間ごとに個別の項目を生成します。つまり、各期間は、Stripe がその期間に通常請求したかのように処理されます。 ## ユーザへの請求を行わない遡及適用 遡及適用された期間について顧客に請求せず、サブスクリプションを遡及適用することもできます。この方法は、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 日に設定します。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d backdate_start_date=1575176400 \ -d billing_cycle_anchor=1572580800 \ -d "items[0][price]={{PRICE_ID}}" ``` これにより、9 月 1 日から 11 月 1 日までの比例配分を適用した金額の請求書が即時に発行されます。また、サブスクリプションの `start_date` は 9 月 1 日に設定されます。Stripe は次の請求書を 11 月 1 日に発行します。 ## 遡及適用と割引 遡及サブスクリプションに[クーポン](https://docs.stripe.com/billing/subscriptions/coupons.md)を適用すると、クーポンの期間は、API コールを行った日付ではなく、遡及開始日からカウントされます。つまり、クーポンの期間は遡及期間によって消費されます。 たとえば、3 月 1 日に `backdate_start_date` を 1 月 1 日に設定してサブスクリプションを作成し、`duration=repeating` および `duration_in_months=2` のクーポンを適用すると、クーポンは 1 月と 2 月の請求期間 (1 月 1 日からの 2 カ月間) に適用されます。クーポンの 2 カ月間の期間は、遡及期間によって完全に消費されているため、3 月の請求書や今後の請求書には適用されず、割引はサブスクリプション項目から削除されます。 クーポンを遡及期間の後に現在および将来の請求書に適用するには、クーポンの期間を遡及期間より長くする必要があります。同じ例で、`duration_in_months=3` のクーポンは 1 月、2 月、3 月を対象とし、遡及期間の後の最初の請求書に割引を適用します。 > クーポンの期間が遡及期間の長さ以下である場合、割引は遡及期間内の請求書にのみ適用されます。遡及期間の後に新しい請求書に繰り越されることはありません。 次の表は、クーポン期間と遡及適用の相互作用をまとめたものです。 | | | | | クーポンの期間 | 遡及適用の動作 | | `1 回` | 遡及期間を対象とする最初の請求書にのみ適用されます。 | | `繰り返し` (N カ月) | 期間は遡及開始日から開始されます。N が遡及期間以下の場合、割引はそれ以降の請求書が作成される前に期限切れになります。 | | `無期限` | 遡及期間の請求書と今後のすべての請求書を含む、すべての請求書に適用されます。特別な考慮事項はありません。 | ## 更新の遡及適用 定期購入の更新時に[日割り計算](https://docs.stripe.com/billing/subscriptions/prorations.md)の有効日を設定するには、[proration_date](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_date) パラメーターを使用します。サブスクリプション項目の現在の期間内で発生する整数の Unix タイムスタンプを渡します。サブスクリプションでサブスクリプションスケジュールが使用されている場合は、タイムスタンプがスケジュールの次のフェーズの開始日より前であることを確認してください。 過去のサブスクリプションの最初の期間のみ、現在の期間より前の `proration_date` を設定できます。この場合、`proration_date` は `subscription[start_date]` (遡及適用の開始日) 以降にする必要があります。それ以外の場合、`proration_date` を `current_period_start` より前にすることはできません。