# 請求モードを追加して、サブスクリプションの動作を強化し、柔軟性を高めています ## 新規情報 Stripe では、より柔軟なサブスクリプション動作を可能にする新しい `billing_mode` パラメーターを導入しています。[サブスクリプション](https://docs.stripe.com/api/subscriptions/create.md?api-version=2025-06-30.basil)、[請求書プレビュー](https://docs.stripe.com/api/invoices/create_preview.md?api-version=2025-06-30.basil)、[Checkout Sessions](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=2025-06-30.basil)、[見積もり](https://docs.stripe.com/api/quotes/create.md?api-version=2025-06-30.basil)、または [サブスクリプションスケジュール](https://docs.stripe.com/api/subscription_schedules/create.md?api-version=2025-06-30.basil)の作成時に `billing_mode[type]=flexible` を設定することで有効にできます。デフォルトの `classic` モードでは、既存の動作が維持されます。新しい [請求モードの移行エンドポイント](https://docs.stripe.com/api/subscriptions/migrate.md?api-version=2025-06-30.basil)を使用して既存のサブスクリプションを移行することもできます。 今後は、既存の請求動作 `classic` と呼びます。 Flexible 請求モードの新しい動作の概要は、以下のとおりです。違いについて詳しくは、[classic 請求モードと flexible 請求モード](https://docs.stripe.com/billing/subscriptions/billing-mode.md)をご覧ください。 | **影響領域** | **新しい動作** | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **比例配分** | **貸方の比例配分を正確に計算します。** Flexible 請求モードでは、一貫して元の引き落とし金額を使用し、過去の税金、割引、請求サイクルを正確に考慮します。 **比例配分の割引を適用します。** 比例配分を計算するときに、割引は各サブスクリプション項目に均等に配分されるのではなく、按分して適用されます。これにより、特に項目ごとに請求する場合や、割引が不均等に配分された項目をキャンセルする場合に、比例配分が多くなります。 | | **従量制料金** | **従量制項目の追加の際に、金額がゼロの項目を認めません。** Flexible 請求モードでは、従量制項目をサブスクリプションに追加する場合に、金額がゼロの項目は作成されません。結果として請求書が空の場合、請求書は生成されません。 **レポート作成時の価格に基づき、使用量に基づいて請求します。** Flexible 請求モードでは、レポート作成時の価格に基づき、使用量に対して請求が行われます。従量制項目の価格が期間中に変更された場合、その価格変更後に報告された使用量のみが新しい価格で請求されます。 **従量制項目の削除時に未請求使用量に対して請求します。** *従量制項目を削除すると、flexible 請求モードでは未請求の使用量に対する請求書項目が生成されます。これは、API を使用する削除、またはスケジュールフェーズの移行中の削除に適用されます。 **従量制項目とのフェーズ移行の請求書を統合します。** Flexible 請求モードでは、サブスクリプションがサイクルされたときに一貫して単一の請求書が生成され、削除された従量制項目に対して個別に請求書を発行する必要はありません。 | | **請求サイクルの起点** | **暗黙的な請求サイクルの起点のリセットが不要になります。** Flexible 請求モードでは、`cancel_at` 日の設定やゼロ以外の価格への切り替えなど、以前リセットの原因となっていた操作の間でも、`billing_cycle_anchor` は変更されません。 | | **キャンセルの予定** | **`cancel_at` の比例配分動作を構成できます。** `proration_behavior` パラメーターを使用して、短縮された最初のサブスクリプション期間の比例配分を無効にできるようになりました (作成時に `cancel_at` を設定する場合)。 | | **遡及適用** | **遡及適用された期間を複数の請求書項目に分割する。** Flexible 請求モードでは、遡及適用範囲内の請求期間ごとに請求書の項目が個別に作成されます。明示的に設定されていない場合は、請求サイクルの起点が自動的に `backdate_start_date` に調整されます。 | | **トライアル** | **後続のトライアルの開始日を更新します。** トライアル中のサブスクリプションに 2 つ目のトライアルを追加すると、flexible 請求モードでは直近のトライアルの開始日が使用されます。 **キャンセル日が変更された場合、元のトライアル終了日が維持されます。** Flexible 請求モードでは、トライアル終了前に `cancel_at` の日付を変更しても、`trial_end` が維持されます。 **トライアル期間の項目の説明を標準化します。** Flexible 請求モードでは、従量制項目とライセンス項目の両方で一貫した説明形式 (「{quantity} x {product name} の無料トライアル」) を使用して、トライアル情報をより均一に表示できます。 **トライアル中に行われた変更に対して項目を生成します。** Flexible 請求モードでは、変更されていない項目は再請求されません。これにより、顧客はトライアル期間中に行った調整に対してのみ請求されます。 | | **保留中の請求書の項目** | **保留中の請求書項目が一貫して含まれます。** 更新用請求書の生成時に、利用可能な保留中の請求書項目がすべて含まれるようになりました。以前は、これは請求書の更新の具体的な理由に依存していました。 | Flexible 請求モードは、Stripe Billing のすべての機能と互換性があるわけではありません。次の機能には現在互換性がなく、flexible モードを有効にしてサブスクリプションを作成および更新すると `400` エラーコードが返されます。 - 事前請求 (プレビュー) - [請求しきい値](https://docs.stripe.com/billing/subscriptions/usage-based/thresholds.md) - [レガシーの従量課金](https://docs.stripe.com/billing/subscriptions/usage-based-legacy.md) - `pay_immediately=false` を使用したレガシーの 3P 税務システム ([Avalara](https://support.stripe.com/questions/calculate-tax-with-avalara) など) - レガシー `max_occurrences` パラメータ - サブスクリプション固有の `retry_settings` (プレビュー) ## 効果 デフォルトでは、この更新は既存または新規のサブスクリプションには影響しません。以下の API メソッドで `billing_mode[type]=flexible` を設定することでオプトインできます。 - [サブスクリプションを作成する](https://docs.stripe.com/api/subscriptions/create.md?api-version=2025-06-30.basil) - [請求書プレビューを作成する](https://docs.stripe.com/api/invoices/create_preview.md?api-version=2025-06-30.basil) - [Checkout セッションを作成する](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=2025-06-30.basil#create_checkout_session-subscription_data-billing_mode) - [サブスクリプションのスケジュールを作成する](https://docs.stripe.com/api/subscription_schedules/create.md?api-version=2025-06-30.basil) - [見積もりの作成](https://docs.stripe.com/api/quotes/create.md?api-version=2025-06-30.basil) [請求モードの移行エンドポイント](https://docs.stripe.com/api/subscriptions/migrate.md?api-version=2025-06-30.basil)で `billing_mode[type]=flexible` を渡すことで、既存のサブスクリプションをクラシックからフレキシブルに移行できます。フレキシブル請求モードへの切り替えは一方向の更新であり、移行後にサブスクリプションをクラシックモードに戻すことはできません。 ## 変更点 #### REST API #### Ruby #### Python #### PHP #### Java #### Node.js #### Go #### .NET ## アップグレード #### REST API 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. SDK を使用している場合は、この API バージョンに対応する SDK バージョンにアップグレードします。 - SDK を使用していない場合は、`Stripe-Version: 2025-06-30.basil` を含めるように [API リクエスト](https://docs.stripe.com/api/versioning.md)を更新してください。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### Ruby 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. Ruby SDK を [v15.3.0](https://github.com/stripe/stripe-ruby/releases/tag/v15.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### Python 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. Python SDK を [v12.3.0](https://github.com/stripe/stripe-python/releases/tag/v12.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### PHP 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. PHP SDK を [v17.4.0](https://github.com/stripe/stripe-php/releases/tag/v17.4.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### Java 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. Java SDK を [v29.3.0](https://github.com/stripe/stripe-java/releases/tag/v29.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### Node.js 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. Node SDK を [v18.3.0](https://github.com/stripe/stripe-node/releases/tag/v18.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### Go 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. Go SDK を [v82.3.0](https://github.com/stripe/stripe-go/releases/tag/v82.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。 #### .NET 1. Workbench で[現在の API バージョンを表示します](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench)。 1. .NET SDK を [v48.3.0](https://github.com/stripe/stripe-dotnet/releases/tag/v48.3.0)にアップグレードします。 1. [Webhook エンドポイント](https://docs.stripe.com/webhooks/versioning.md)に使用する API バージョンをアップグレードします。 1. 新しいバージョンに対して、[実装内容をテスト](https://docs.stripe.com/testing.md)します。 1. Connect を使用する場合は、[Connect の実装内容をテスト](https://docs.stripe.com/connect/testing.md)します。 1. Workbench で[アップグレードを実行](https://docs.stripe.com/upgrades.md#perform-the-upgrade)します。[バージョンをロールバック](https://docs.stripe.com/upgrades.md#roll-back-your-api-version)できるのは 72 時間以内です。 [Stripe API のアップグレード](https://docs.stripe.com/upgrades.md)について、詳細をご確認ください。