# サブスクリプションで無料トライアル期間を利用する レガシーの trial_end パラメータを使用して、サブスクリプションに無料トライアル期間を提供できます。 > #### レガシー > > 以下のコンテンツは、無料トライアルを提供するための*レガシー* (Technology that's no longer recommended)の導入パスについて説明しています。 > > 新しい導入を構築する場合は、[サブスクリプションにトライアルオファーを設定する](https://docs.stripe.com/billing/subscriptions/trials.md)ことを推奨します。 [サブスクリプションの作成](https://docs.stripe.com/api.md#create_subscription)時に次のように `trial_end` 引数を指定することで、無料のトライアル期間を設けて顧客の*サブスクリプション* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis)を開始できます。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d trial_end=1610403705 ``` `trial_end` パラメータは、トライアルが終了する正確な瞬間を示すタイムスタンプを取ります。サブスクリプションを作成する際に、代わりに [trial_period_days](https://docs.stripe.com/api.md#create_subscription-trial_period_days) パラメータ (現在時点からのトライアルの継続日数を表す整数) を使用することもできます。トライアル期間は 730 日 (2 年) 以下である必要があります。トライアル期間は通常サブスクリプションの開始時に適用されますが、既存のサブスクリプションでトライアル期間を使用して[サブスクリプションの請求期間 (サイクル) を変更する](https://docs.stripe.com/billing/subscriptions/billing-cycle.md)こともできます。 トライアル期間付きのサブスクリプションを作成するときに、決済手段を追加する必要はありません。即時*請求書* (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)は作成されますが、金額は 0 になり、[請求書項目の説明](https://docs.stripe.com/api/invoices/object.md#invoice_object-lines-data-description)には「無料トライアル」の文言が記載されます。 トライアルの終了時にサブスクリプションの `status` が `paused` でない場合、請求書が生成され、`invoice.created` イベント通知が送信されます。約 1 時間後に、Stripe はその請求書の決済を試行します。トライアルの終了時に顧客の新しい請求期間も開始されます。 トライアルを早期終了するには、[Update Subscription (サブスクリプションの更新)](https://docs.stripe.com/api.md#update_subscription) API コールを実行して、`trial_end` 値に新しいタイムスタンプを設定します。即時終了する場合は、次のように **now** を設定します。 ```curl curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \ -u "<>:" \ -d trial_end=now ``` ## 従量課金制のトライアル 従量課金のサブスクリプションでは、トライアル期間をご利用いただけます。Stripe はトライアル期間中に記録された使用量に対すて課金しませんが、トライアル期間の[メーターイベント概要](https://docs.stripe.com/api/billing/meter-event-summary.md)で使用量を確認できます。トライアル期間が終了すると、記録された使用量に対する課金が再開されます。 システムでトライアルのステータス変化に関する [Webhook イベント](https://docs.stripe.com/billing/subscriptions/webhooks.md)が適切に監視・処理されていることを確認します。トライアルが終了し、サブスクリプションが `trialing` から `active` に移行する数日前に、`customer.subscription.trial_will_end` イベントを受け取ります。このイベントを受け取ったら、顧客のアカウントに請求する決済手段があることを確認してください。必要に応じて、今後の請求について顧客に事前に通知します。 ### 従量課金と一時停止されたサブスクリプション サブスクリプションが一時停止中でも、料金に関連付けられた[メーターイベント](https://docs.stripe.com/api/billing/meter-event.md)を送信できますが、その使用量は請求されません。今後の請求書には、再開日以降に発生したメーターイベントのみが含まれます。[従来の使用量レコード](https://docs.stripe.com/billing/subscriptions/usage-based-legacy.md)を使用している場合、サブスクリプションの一時停止中は、新しい使用量レコードを作成できません。 ## トライアル中だったサブスクリプションに新しいトライアルを追加する [`trial_end`](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-trial_end) を指定してサブスクリプションを更新するか、関連するサブスクリプションスケジュールを更新することで、トライアル中でないサブスクリプションに新しいトライアルを追加できます。サブスクリプションには [`phases.trial_end`](https://docs.stripe.com/api/subscription_schedules/create.md?#create_subscription_schedule-phases-trial_end) を指定する必要があります。 前回のトライアル終了後に新しいトライアルを開始するサブスクリプションの場合はほとんど、`trial_start` フィールドは最初のトライアルの開始時に設定されたままになります。[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) が `flexible` に設定されたサブスクリプションの場合、`trial_start` には最新のトライアルの開始が反映されます。 ## トライアルのサブスクリプションを更新する トライアル中のサブスクリプションは、通常どおり更新できます。トライアルで項目を `billing_mode=flexible` または `billing_mode=classic` サブスクリプションに追加すると、これらの項目に対して金額 0 の請求書が生成されます。`billing_mode=classic` の場合、金額 0 の請求書には、以前に請求された項目が含まれることがあります。 ## トライアルを add_invoice_items と組み合わせる サブスクリプションのトライアル期間は、1 回限りの価格と `add_invoice_items` を組み合わせることができます。これは、トライアルの開始と同時に 1 回限りの手数料またはアドオンの請求を行うときに便利です。これを行うと、トライアルがまだ終了していなくても、Stripe は 1 回限りの請求書を自動的に生成します。顧客は 1 回限りの金額を前払いし、継続サブスクリプションの請求はトライアル期間の終了後に開始されます。 ## 支払い方法を収集せずに無料トライアルを作成する > 支払い方法を指定せずに無料トライアルを開始すると、潜在的な顧客は商品やサービスの試用が簡単になりますが、スパム発信者が架空の顧客、使用量、サブスクリプションを多数作成できることにもなります。ここでの登録フローを慎重に検討して、たとえば、無料トライアルサブスクリプションの開始前に、顧客にユーザーアカウントの作成と CAPTCHA の完了を求めるなど、実際の顧客の利用を簡単にする一方で、スパムボットが悪用しにくくなるようにすることをお勧めします。 ダッシュボード、API、Checkout で決済情報を収集せずに、サブスクリプションの無料トライアルに顧客を登録することができます。サブスクリプションを作成する際、トライアル期間中に顧客が支払い方法を指定しなかった場合にサブスクリプションをキャンセルまたは一時停止するように指定できます。サブスクリプションをキャンセルまたは一時停止するには、サブスクリプションを作成または更新するときに `trial_settings.end_behavior.missing_payment_method` パラメーターを設定します。 - **サブスクリプションをキャンセル**: 支払い方法が指定されずに無料トライアルのサブスクリプションが終了する場合、サブスクリプションが即時にキャンセルされます。将来、顧客が有料プランに登録する場合は、別のサブスクリプションを作成できます。利用可能な支払い方法がない状態でトライアルが終了した場合にサブスクリプションをキャンセルするには、`missing_payment_method=cancel` を設定します。 - **サブスクリプションの一時停止**: 支払い方法が指定されずに無料トライアルのサブスクリプションが終了する場合、サブスクリプションは一時停止され、再開されるまでサイクルは動きません。サブスクリプションが一時停止される場合は、(サブスクリプションの[支払いの回収](https://docs.stripe.com/billing/subscriptions/pause-payment.md)が一時停止される場合とは異なり) 請求書は生成されません。サブスクリプションが一時停止された後で顧客が支払い方法を追加した場合は、同じサブスクリプションを再開できます。サブスクリプションは無期限に一時停止したままにすることができます。利用可能な支払い方法がない状態でトライアルが終了した場合にサブスクリプションを一時停止するには、`missing_payment_method=pause` を設定します。 また、支払い方法が存在しない場合は、トライアルの終了時に請求書に `missing_payment_method=create_invoice` を設定します。請求書の確定時に支払い方法が指定されていない場合、サブスクリプションは `past_due` になります。 [無料トライアルメッセージ設定](https://dashboard.stripe.com/settings/billing/automatic)で顧客の決済情報を収集するためのリマインダーメールを設定します。 ### 支払い方法が指定されない無料トライアルがキャンセルされるように設定する 顧客から決済情報を収集せずにサブスクリプションの無料トライアルを作成し、支払い方法が指定されないままトライアルが終了した場合にサブスクリプションがキャンセルされるように設定するには、ダッシュボード、API、または Checkout を使用します。 #### ダッシュボード ダッシュボードを使用して、支払いの詳細を収集することなく、顧客をサブスクリプションの無料トライアルに登録することができます。 1. ダッシュボードのサブスクリプションの設定で、**+サブスクリプションを作成する**を選択します。 1. 顧客と商品の情報を追加した後、**+無料トライアルを追加**を選択して、無料トライアルの期間の日数を入力します。 1. **無料トライアル終了時に支払い方法の指定がない場合は一時停止またはキャンセル**オプションを選択してから、**今すぐキャンセル**を選択します。[テストクロック](https://docs.stripe.com/billing/testing/test-clocks.md)を使用している場合は、トライアルの終了時まで進みます。サブスクリプションの次回の請求書は表示されません。 1. 支払い方法の指定がない状態でトライアルの終了時にサブスクリプションがキャンセルされた状況を知らせる `customer.subscription.deleted` イベントをリッスンします。 支払い方法を指定するか、**顧客に請求書をメールで送信する (決済ページへのリンク付き)** オプションを選択した場合、**無料トライアルの終了時に支払い方法の指定がない場合は一時停止またはキャンセルします**オプションは表示されません。 #### API 導入で [customer-configured Accounts](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer) を使用している場合は、コード例内の `Customer` とイベント参照を、対応する Accounts v2 API リファレンスに置き換えてください。詳細については、[Account オブジェクトで顧客を表す](https://docs.stripe.com/connect/use-accounts-as-customers.md)をご覧ください。 以下の API コールを使用して、決済情報を収集せずにサブスクリプションの無料トライアルに顧客を登録します。トライアルの終了時に支払い方法が指定されない場合、サブスクリプションはキャンセルされます。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d trial_period_days=30 \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "trial_settings[end_behavior][missing_payment_method]=cancel" ``` 既存のサブスクリプションを更新するには、次の API コールを使用します。 ```curl curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \ -u "<>:" \ -d "trial_settings[end_behavior][missing_payment_method]=cancel" ``` #### Checkout Stripe Checkout を使用して、支払いの詳細を収集することなく、顧客をサブスクリプションの無料トライアルに登録することができます。 以下を指定して Checkout セッションを作成します。 - 以下が設定された `subscription_data` ディクショナリー。 - 無料トライアルの期間 (日数) に設定した `trial_period_days` フィールド。この例では、トライアル期間は 30 日です。 - 支払い方法を関連付けられずに無料トライアルが終了する場合にサブスクリプションがキャンセルされるようにする、`cancel` に設定された `trial_settings[end_behavior]` パラメーター。 - 値 `if_required` が指定された `payment_method_collection` フィールド。これにより、決済フローでの支払い情報の収集が任意であることが Stripe に示されます。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=subscription \ -d "line_items[0][price]=price_abc" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_settings][end_behavior][missing_payment_method]=cancel" \ -d "subscription_data[trial_period_days]=30" \ -d payment_method_collection=if_required \ --data-urlencode "success_url=https://example.com/success" ``` Checkout セッションの作成時に、サブスクリプションで `trial_settings.end_behavior.missing_payment_method=cancel` フィールドを設定するか、`subscription_data` フィールドでサブスクリプションを設定した場合は、トライアルの終了前に支払い方法が指定されていなければ、サブスクリプションがキャンセルされます。 ### 支払い方法が指定されない無料トライアルが一時停止されるように設定する 顧客から決済情報を収集せずにサブスクリプションの無料トライアルを作成し、支払い方法が指定されないままトライアルが終了した場合にサブスクリプションが一時停止されるように設定するには、ダッシュボード、API、または Checkout を使用します。 #### ダッシュボード ダッシュボードを使用して、支払いの詳細を収集することなく、顧客をサブスクリプションの無料トライアルに登録することができます。 1. ダッシュボードのサブスクリプションの設定で、**+サブスクリプションを作成する**を選択します。 1. 顧客と商品の情報を追加した後、**+無料トライアルを追加**を選択して、無料トライアルの期間の日数を入力します。 1. **無料トライアル終了時に支払い方法の指定がない場合は一時停止またはキャンセル**オプションを選択してから、**一時停止**を選択します。[テストクロック](https://docs.stripe.com/billing/testing/test-clocks.md)を使用している場合は、トライアルの終了時まで進みます。サブスクリプションの次回の請求書は表示されません。 1. 支払い方法の指定がない状態でトライアルの終了時にサブスクリプションが一時停止した状況を知らせる `customer.subscription.paused` イベントをリッスンします。 支払い方法を指定するか、**顧客に請求書をメールで送信する (決済ページへのリンク付き)** オプションを選択した場合、**無料トライアルの終了時に支払い方法の指定がない場合は一時停止またはキャンセルします**オプションは表示されません。 #### API 以下の API コールを使用して、決済情報を収集せずにサブスクリプションの無料トライアルに顧客を登録します。トライアルの終了時に支払い方法が指定されない場合、サブスクリプションは一時停止されます。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d trial_period_days=30 \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "trial_settings[end_behavior][missing_payment_method]=pause" ``` 既存のサブスクリプションを更新するには、次の API コールを使用します。 ```curl curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \ -u "<>:" \ -d "trial_settings[end_behavior][missing_payment_method]=pause" ``` #### Checkout Stripe Checkout を使用して、支払いの詳細を収集することなく、顧客をサブスクリプションの無料トライアルに登録することができます。 以下を指定して Checkout セッションを作成します。 - 以下が設定された `subscription_data` ディクショナリー。 - 無料トライアルの期間 (日数) に設定した `trial_period_days` フィールド。この例では、トライアル期間は 30 日です。 - 支払い方法を関連付けられずに無料トライアルが終了する場合にサブスクリプションが一時停止されるようにする、`pause` に設定された `trial_settings[end_behavior]` パラメーター。 - 値 `if_required` が指定された `payment_method_collection` フィールド。これにより、決済フローでの支払い情報の収集が任意であることが Stripe に示されます。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=subscription \ -d "line_items[0][price]=price_abc" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_settings][end_behavior][missing_payment_method]=pause" \ -d "subscription_data[trial_period_days]=30" \ -d payment_method_collection=if_required \ --data-urlencode "success_url=https://example.com/success" ``` Checkout セッションの作成時に、サブスクリプションで `trial_settings.end_behavior.missing_payment_method=pause` フィールドを設定するか、`subscription_data` フィールドでサブスクリプションを設定した場合は、トライアルの終了前に支払い方法が追加されていなければ、サブスクリプションが一時停止します。 ### トライアルの終了前に顧客から決済の詳細を収集する 顧客のトライアルが間もなく期限切れとなるときにリマインダーメールを自動的に送信するようにサブスクリプションを設定します。トライアルを提供する際にはカードネットワークの要件に準拠する必要があります。[トライアルとプロモーションのコンプライアンス要件](https://docs.stripe.com/billing/subscriptions/trials/manage-trial-compliance.md)について詳しくはこちら。 ### カスタマーポータルを使用して支払いを回収する 支払い方法を収集せずに顧客のサブスクリプションを作成した後、顧客を Billing カスタマーポータルにリダイレクトして、支払いの詳細を追加してもらうことができます。 まず、[Billing カスタマーポータル](https://docs.stripe.com/customer-management.md)を設定して、顧客がサブスクリプションを各自で管理できるようにします。 次に、顧客から請求先情報を収集します。 1. [`customer.subscription.trial_will_end` イベント](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.trial_will_end)をリッスンします。 1. サブスクリプションに [default payment method (デフォルトの支払い方法)](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) がない場合、[Customer API](https://docs.stripe.com/api/customers/retrieve.md) を使用して購入者のメールアドレスを取得し、お客様のサイトへのリンクが記載されたメッセージを送信します。メールに顧客 ID を埋め込むと便利です (例: `https://example.com?...&customer={{CUSTOMER_ID}}`)。 1. 顧客がサイトにアクセスしたら、前のステップの顧客 ID を使用してカスタマーポータルセッションを作成します。 1. 顧客をカスタマーポータルにリダイレクトします。顧客はここで支払いの詳細を使用してサブスクリプションを更新できます。 ### 顧客がカスタマーポータルでサブスクリプションを再有効化できるようにする カスタマーポータルを使用して、`paused` でサブスクリプションのトライアルが終了した顧客のサブスクリプションを有効にするには、ダッシュボードで新しいサブスクリプションを作成するときに、支払い方法の機能を使用せずに無料トライアルを有効にします。 ### 顧客がトライアルの終了前に支払い情報を提供した場合はトライアルを変換する サブスクリプションと次回の請求書は、トライアルの開始時に作成され、顧客が支払い方法を指定しているときはトライアルの終了時に有効になります。 ### 支払い方法が指定されていない場合に一時停止を設定する 無料トライアルが終了した後、個別のサブスクリプションでデフォルトの支払い方法を利用できない場合は、そのサブスクリプションを一時停止するように設定することができます。 一時停止中でもサブスクリプションを更新することができます。サブスクリプションの一時停止中は顧客は請求されないため、通常は比例配分を生成する更新 (アイテムの追加、価格やプランの変更、数量の変更など) によって比例配分のラインアイテムが生成されることはありません。サブスクリプションが `paused` ステータスに移行した後でトライアルを延長する場合は、トライアルを設定する前に、サブスクリプションを再開する必要があります。 Stripe は、サブスクリプションと顧客の `default_source` と `default_payment_method` を調べて、トライアルの終了時にサブスクリプションの支払い方法が指定されていないかどうかを判断します。 ### 一時停止されているサブスクリプションを再開する 一時停止したサブスクリプションを再開するには、ダッシュボード、API、カスタマーポータル、またはオンライン請求書ページを使用します。 #### ダッシュボード ダッシュボードで一時停止されたサブスクリプションを再開するには、サブスクリプションに移動し、**アクション**メニューから**サブスクリプションを再開**を選択します。顧客にすぐに請求するには、**サブスクリプションを再開**モーダルで**請求期間をリセット**または**常に請求書を発行** (請求期間をリセットしない場合) を選択します。 #### API 一時停止されていたサブスクリプションが再開される場合、サブスクリプションの再開は即時に開始されます。`resume` エンドポイントでは、サブスクリプションを再開して、必要に応じて `billing_cycle_anchor` の日付を変更したり、比例配分を作成したりすることができます。 `billing_cycle_anchor` 値が `unchanged` の場合、`proration_date` (デフォルトは `now`) から現在の請求期間の終了までの期間部分に対して借方の比例配分が作成されます (`proration_behavior=none` でない場合)。これにより、`proration_behavior=always_invoice` の場合には現在の期間の請求書も作成されます。 一時停止されたサブスクリプションを再開するには、`resume` エンドポイントを使用します。再開する前にサブスクリプションで決済手段を指定する必要はありませんが (たとえば、顧客が支払いを行う前に請求書を生成または表示する場合)、サブスクリプションを再有効化する前に請求書の支払いが完了している必要があります。関連付けられた Payment Intent に決済手段が設定されておらず、確定されていない場合、請求書は 23 時間後に自動的に無効になります。 サブスクリプションを再度有効にすると、`items.current_period_start` と `items.current_period_end` のタイムスタンプは、現在の期間の開始日と終了日になるように調整されます。`billing_cycle_anchor=now` の場合は `items.current_period_start == now` となり、トライアル終了後の移行と同様に新しいサイクルが開始されます。 #### カスタマーポータル [カスタマーポータルを使用して支払いを回収](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#use-the-customer-portal-to-collect-payment)してから、顧客をカスタマーポータルに[リダイレクト](https://docs.stripe.com/customer-management/integrate-customer-portal.md#redirect)します。顧客は、**サブスクリプションを開始**を選択して、支払い方法を追加し、サブスクリプションを再開することができます。 #### オンライン請求書ページ [オンライン請求書ページ](https://docs.stripe.com/invoicing/hosted-invoice-page.md)で一時停止されたサブスクリプションを再開するには、支払い方法を指定してから、**承認して支払う**を選択します。 ### サブスクリプションの請求書作成 一時停止されたサブスクリプションでは請求書は作成されません。請求書を引き続き作成する場合は、`pause_collection` を使用して支払いの回収を停止し、請求書を作成して請求期間を先に進めます。 一時停止したサブスクリプションが再開されたときに生成される請求書をプレビューするには、[subscription_details.resume_at](https://docs.stripe.com/api/invoices/create_preview.md#create_create_preview-subscription_details-resume_at) を指定します。 ## トライアルを特定の請求サイクルアンカーと組み合わせる トライアルを `billing_cycle_anchor` と組み合わせると、無料期間の後に比例配分期間が続き、請求期間が固定されます。この機能は API で使用できます。 たとえば、7 月 15 日から 7 日間の無料トライアルを顧客に提供し、8 月 1 日から通常の請求を開始したいとします。 - 7 月 15 日に、顧客に 7 日間の無料トライアルを提供します (7 月 22 日まで)。 - 顧客は 7 月 22 日に、8 月 1 日までの期間の日割り金額の請求書を受け取ります。 - 顧客には 8 月 1 日に全額が請求され、その後 9 月 1 日に、という具合に全額が請求されます。 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d trial_end=1753170047 \ -d billing_cycle_anchor=1627801200 ``` `trial_end` を使用して、既存のサブスクリプションの請求期間を変更することもできます。詳細については、[既存サブスクリプションの請求期間を変更](https://docs.stripe.com/billing/subscriptions/billing-cycle.md#changing)を参照してください。 ## See also - [商品と価格](https://docs.stripe.com/products-prices/overview.md) - [Price (価格)](https://docs.stripe.com/api.md#prices) - [Subscription (サブスクリプション)](https://docs.stripe.com/api.md#subscriptions) - [サブスクリプション請求期間の管理](https://docs.stripe.com/billing/subscriptions/billing-cycle.md)