# サブスクリプションの仕組み

継続支払いとサブスクリプションのライフサイクルを管理します。

顧客はサブスクにより継続課金を行い、プロダクトやサービスにアクセスできます。サブスクを作成すると、Stripe により自動的に請求書が生成され、決済の回収が試行され、ライフサイクル全体にわたりサブスクのステータスが管理されます。サブスクは、作成からキャンセルまで、予測可能な一連の状態を経て移行します。

1 回限りの決済とは異なり、サブスクでは今後の請求サイクルのために顧客と決済手段の情報を保存する必要があります。Stripe は決済の再試行ロジック、督促、ステータスの移行を処理します。

## サブスクリプションのライフサイクル

以下のサブスクの各ライフサイクルフェーズは、[Subscription オブジェクト](https://docs.stripe.com/api/subscriptions/object.md)のステータス変更にマッピングされます。これらのステータスを理解することで、アクセスのプロビジョニング、顧客への通知、エラーの処理を行うタイミングを把握できます。ステータス間の移行の監視および処理には、[Webhook イベント](https://docs.stripe.com/billing/subscriptions/webhooks.md#state-changes)を使用できます。

### 定期支払いを作成する

[ダッシュボード](https://dashboard.stripe.com/subscriptions?status=active)または [Subscriptions API](https://docs.stripe.com/api/subscriptions/create.md) で新しいサブスクを作成します。生成される [Subscription オブジェクト](https://docs.stripe.com/api/subscriptions/object.md)には、登録された顧客、[プロダクト](https://docs.stripe.com/api/products.md)、[価格](https://docs.stripe.com/api/prices/object.md)、およびサブスクの現在のライフサイクル状態を反映する `status` が含まれます。

即時決済が必要なサブスクを作成すると、Stripe は [Invoice](https://docs.stripe.com/billing/invoices/subscription.md) および [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) も作成します。サブスクの初期ステータスは `incomplete` であり、顧客が最初の請求書を支払った後に `active` になります。

> ACH デビットなど、決済確定のタイミングが*遅延する* (A payment method that can't immediately return payment status when a customer attempts a transaction (for example, ACH debits). Businesses commonly hold an order in a pending state until payment is successful with these payment methods)決済手段では、ステータスが異なる場合があります。詳細については、[遅延型の決済確定](https://docs.stripe.com/billing/subscriptions/overview.md#delayed-payment-confirmation)をご覧ください。

サブスクの決済の回収と失敗処理のデフォルトは、決済手段によって異なります。API では、サブスクの [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) を設定して、デフォルトを上書きできます。

サブスクの初回の請求を遅らせるために[トライアル期間](https://docs.stripe.com/billing/subscriptions/trials.md)を作成した場合、初期ステータスは `trialing` となり、トライアルが終了して決済が成功すると、サブスクは自動的に `active` に移行します。

### 請求書を処理する

`collection_method` が `charge_automatically` に設定されているサブスクの場合、サブスクの作成時に Stripe はステータスが `open` の[請求書](https://docs.stripe.com/billing/invoices/subscription.md)を作成します。顧客の支払い期限は 23 時間です。この期間中、サブスクのステータスは `incomplete` となり、請求書のステータスは `open` のままです。この 23 時間の期間は、*オンセッション* (A payment is described as on-session if it occurs while the customer is actively in your checkout flow and able to authenticate the payment method) で支払いを行う顧客に対応するものです。23 時間経過後に顧客がアプリケーションに戻ってきた場合は、その顧客に新しいサブスクを作成してください。

`collection_method` が `send_invoice` に設定されているサブスクの場合、Stripe は、設定可能な期日が記載された請求書へのリンクを顧客にメールで送信します。トライアルのないサブスクの場合、初回の請求書が未払いであっても、サブスクの初期ステータスは `active` になります。

詳細については、[サブスクの請求書](https://docs.stripe.com/billing/invoices/subscription.md)をご覧ください。

### 決済を確認

`collection_method` が `charge_automatically` に設定されているサブスクの場合、顧客が請求書を支払うと、サブスクは `active` に更新され、請求書は `paid` に更新されます。[invoice.paid](https://docs.stripe.com/billing/subscriptions/webhooks.md#events) イベントをリッスンするか、サブスクのステータスが `active` であることを確認します。

Stripe では、初回の請求書を作成する際にサブスクの [current_period_start](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-current_period_start) を設定します。支払いを後から完了しても、初回の請求期間の開始日は変更されません。決済手段で顧客によるアクションが必要となり、その完了が遅れた場合、アクセス権を付与した時点で初回の請求期間の残り時間は少なくなります。

これらのサブスクの場合、顧客が 23 時間以内に支払わないと、サブスクは `incomplete_expired` に更新され、請求書は `void` になります。アクセスを再有効化するには、新しいサブスクを作成します。

詳細については、[サブスクリプションステータス](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-statuses)と[決済ステータス](https://docs.stripe.com/billing/subscriptions/overview.md#payment-status)をご覧ください。

### 商品へのアクセスを提供する

サブスクが `active` になると、Stripe は登録されたプロダクトに関連付けられている各機能の有効な[エンタイトルメント](https://docs.stripe.com/billing/entitlements.md)を作成します。顧客がサービスにアクセスした際に、その有効なエンタイトルメントを使用して、サブスクに含まれる機能へのアクセスを許可します。

あるいは、Webhook イベントで[有効なサブスクリプションを追跡](https://docs.stripe.com/billing/subscriptions/webhooks.md#active-subscriptions)し、そのアクティビティに基づいて顧客向けに商品をプロビジョニングします。

### サブスクリプションを更新する

[既存のサブスクリプション](https://docs.stripe.com/billing/subscriptions/change.md)は、キャンセルして再作成することなく、必要に応じて変更できます。最も重要な変更には、サブスクリプション価格の[アップグレードやダウングレード](https://docs.stripe.com/billing/subscriptions/change-price.md)、有効なサブスクリプションの[決済回収](https://docs.stripe.com/billing/subscriptions/pause-payment.md)の一時停止などがあります。

[Stripe Checkout](https://docs.stripe.com/payments/checkout.md) の組み込みでは、セッションのサブスクリプションが `incomplete` 場合、サブスクリプションまたはその請求書を更新できません。[checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) イベントをリッスンして、セッションの完了後に更新を行うことができます。セッションのサブスクリプションをキャンセルしたり、サブスクリプションの請求書を無効にしたり、請求書を回収不能としてマークしたりする場合は、代わりに[セッションを期限切れにする](https://docs.stripe.com/api/checkout/sessions/expire.md)こともできます。

### 未払いのサブスクリプションを処理する

`collection_method=charge_automatically` を設定したサブスクで更新時の決済に失敗すると、サブスクのステータスは `past_due` になります。Stripe は引き続き請求書を作成し、再試行設定に従って決済を試みます。再試行が終了した後、サブスクを `past_due` のままにするか、`unpaid` または `canceled` に変更するかは、ダッシュボードの[決済失敗時の設定](https://dashboard.stripe.com/settings/billing/automatic#manage-failed-payments)によって決まります。

`collection_method=send_invoice` を設定したサブスクでは、請求書が支払期日までに支払われない場合、サブスクのステータスは `past_due` になります。

サブスクのステータスが `unpaid` になると、Stripe は決済を試みなくなります。請求期間ごとに請求書は引き続き作成されますが、そのステータスは `draft` のままです。

無効になった請求書はサブスクのステータスに影響しません。決済が失敗した場合の設定に応じて、Stripe は最新の無効になっていない請求書、または該当するすべての未払い請求書からステータスを決定します。詳細については、[サブスクのステータス解決を設定する](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-status-resolution)および[サブスク決済の失敗](https://docs.stripe.com/billing/collection-method.md#failed-subscription-payments)をご覧ください。

### サブスクリプションをキャンセルする

サブスクリプションは、[請求期間の終了時](https://docs.stripe.com/billing/subscriptions/cancel.md#cancel-at-the-end-of-the-current-billing-period)や[設定した請求期間回数](https://docs.stripe.com/billing/subscriptions/cancel.md#subscription-schedules)の経過後など、いつでも[キャンセル](https://docs.stripe.com/billing/subscriptions/cancel.md)できます。

デフォルトでは、サブスクリプションを解約すると、新しい請求書の作成が無効になり、サブスクリプションに関するすべての未払い請求書の[自動回収が停止](https://docs.stripe.com/billing/subscriptions/cancel.md#handle-invoice-items-when-canceling-subscriptions)されます。また、サブスクリプションが削除され、[metadata](https://docs.stripe.com/metadata.md) と `cancellation_details` を除いて更新できなくなります。顧客が再度サブスクリプションを申し込む場合は、新しい決済情報を収集し、新しいサブスクリプションを作成する必要があります。

## サブスクリプションステータス

サブスクリプションには次のステータスがあります。サブスクリプションに対して実行できるアクションは、ステータスによって異なります。

| ステータス | 説明 |
| --- | --- |
| `trialing` | サブスクリプションは現在トライアル期間中であり、顧客にプロダクトを支障なく提供できます。初回の支払いが行われると、サブスクリプションは自動的に `active` に移行します。 |
| `active` | サブスクの状態は良好です。`past_due` のサブスクを `active` に移行するために、どの請求書を決済する必要があるかは、[サブスク設定](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments)によって決まります。ステータスの判定に最新の請求書が使用される場合、Stripe は無効化されていない最新の請求書を使用してサブスクのステータスを判定します。その請求書を支払うか、手動で回収不能としてマークすると、サブスクは `active` に移行します。ステータスの判定にすべての請求書が使用される場合は、該当するすべての未払い請求書を決済して、サブスクを `active` に移行します。

`active` ステータスは、サブスクに関連するすべての未払い請求書が支払われたことを必ずしも示すものではありません。ステータスの解決に直近の請求書を使用する場合、必要に応じて、その他の未払い請求書を決済待ち (未処理) のままにするか、回収不能としてマークするか、または無効にすることができます。 |
| `incomplete` | サブスクを有効にするには、顧客が 23 時間以内に支払いを正常に完了する必要があります。PaymentIntent のステータスが `requires_payment_method` の場合は、顧客から[新しい決済手段を収集](https://docs.stripe.com/billing/subscriptions/overview.md#requires-payment-method)します。顧客認証など、支払いに[アクションが必要](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action)な場合は、顧客にそのアクションを完了するよう依頼します。支払いが保留中で、PaymentIntent のステータスが `processing` の場合も、サブスクが `incomplete` になることがあります。 |
| `incomplete_expired` | サブスクリプションの初回の支払いが失敗し、サブスクリプションの作成から 23 時間以内に支払いが成功しませんでした。これらのサブスクリプションは顧客に請求されません。このステータスは、サブスクリプションの有効化に失敗した顧客を追跡するために存在します。 |
| `past_due` | 確定された直近の請求書に対する決済が失敗したか、試行されませんでした。ステータスの解決にすべての請求書を使用する場合、`past_due` は、該当する過去の請求書が未払いのままであることを示す場合もあります。この間も引き続きサブスクの請求書は作成されます。サブスクが `past_due` の間、Stripe は決済を再試行することがありますが、このステータスによって必ず決済が再試行されるわけではありません。サブスクの次のステータスは、ダッシュボードの[サブスクの設定](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments)によって決定されます。すべての[決済の再試行](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md)が終了した後も請求書が未払いのままである場合、サブスクを `canceled` または `unpaid` に移行させるか、`past_due` のまま維持するかを設定できます。

サブスクを再有効化するには、ステータス判定で最新の請求書を使用する場合は、無効化されていない最新の請求書を支払うか、手動で回収不能としてマークします。あるいは、すべての請求書を使用する場合は、該当する未払い請求書を決済します。必要な請求書を決済したタイミングが支払期日の前か後かにかかわらず、サブスクは `active` になります。 |
| `canceled` | サブスクリプションがキャンセルされました。キャンセル時に未払いのすべての請求書の自動回収が無効化されます (`auto_advance=false`)。これは、更新できない最終的なステータスです。 |
| `unpaid` | Stripe がサブスクのステータスを `unpaid` に設定するのは、ダッシュボードの[サブスク設定](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments)でこの結果が選択されている場合のみです。サブスクのステータスを規定する請求書は決済されていませんが、サブスクは維持されます。サブスクは請求書の生成を継続しますが、決済の試行は行いません。サブスクが `past_due` の間に Stripe はすでに決済を試行および再試行しているため、サブスクが `unpaid` になった時点でプロダクトへのアクセス権を取り消してください。サブスクを `active` に移行するには、ステータス判定で最新の請求書を使用する場合は、無効化されていない最新の請求書を支払うか、手動で回収不能としてマークします。あるいは、すべての請求書を使用する場合は、該当する未払い請求書を決済します。 |
| `paused` | サブスクリプションはデフォルトの決済手段なしでトライアル期間が終了し、[trial_settings.end_behavior.missing_payment_method](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment) が `pause` に設定されています。サブスクリプションの請求書は作成されなくなりました。顧客にデフォルトの決済手段を関連付けた後で、[サブスクリプションを再開](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#resume-a-paused-subscription)できます。 |

### サブスクのステータス解決の設定

[サブスクの設定](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments)において、Stripe でのサブスクのステータス決定に使用する請求書を選択します。

- **直近の請求書**: デフォルトの動作です。無効化されていない直近の請求書が使用されます。他に未払いの請求書が残っていても、サブスクが `active` に移行することは妨げられません。
- **すべての請求書**: 該当する未払いの請求書が残っている間、サブスクが `active` に移行することはありません。

ステータスの解決にすべての請求書を使用する場合:

- `active` のサブスクは、該当する未払い請求書が検出されると `past_due` に移行します。
- 該当する未払い請求書が精算されるまで、`past_due` のサブスクは `active` にはなりません。すべての再試行が終了した後、`canceled` または `unpaid` のどちらに移行するかは、引き続き決済失敗時の設定によって決まります。
- `unpaid` のサブスクは、該当する未払い請求書が精算されるまで `unpaid` のまま維持されます。
- 一時停止状態から再開された `paused` サブスクは、再開に伴う請求書が精算されても、他の該当する請求書が未払いのままであれば `past_due` に移行します。

請求書が確定され、支払期限があり、精算されていない場合、該当する未払い請求書として扱われます。請求書を精算するには、支払いを行うか、無効にするか、または手動で回収不能としてマークします。決済の再試行が終了した後に Stripe において回収不能とマークされた請求書は、未払いのまま残ります。Stripe において、過去 37 カ月間の該当する請求書が確認されます。

ブロックしている請求書を特定するには、ステータスが `open` または `uncollectible` の[サブスクの請求書を一覧表示](https://docs.stripe.com/api/invoices/list.md)します。回収不能の請求書が未払いのままになるのは、理由が `max_payment_attempts` または `payment_not_received` の場合のみです。`user_forgiven` などその他の理由の場合は、サブスクのアクティブ化はブロックされません。どのケースに該当するかを特定するには、[回収不能の理由](https://docs.stripe.com/api/invoices/object.md#invoice_object-status_details-uncollectible-reason)を確認してください。

設定を変更しても、既存のサブスクが迅速に再評価されることはありません。変更が有効になるのは、請求書決済や決済失敗など、Stripe においてサブスクのステータスが次回評価される時点です。この設定ではステータスの解決のみが変更され、再試行スケジュールや最終的な再試行アクションは変更されません。

## 決済ステータス

[PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) は、すべての決済のライフサイクルを追跡します。サブスクリプションの決済期日になると、Stripe は[請求書](https://docs.stripe.com/billing/invoices/subscription.md)と PaymentIntent を生成します。PaymentIntent ID は請求書に関連付けられ、請求書オブジェクトとサブスクリプションオブジェクトからアクセスできます。

PaymentIntent のステータスは、請求書とサブスクリプションのステータスに影響を与えます。決済のさまざまな結果が、さまざまなステータスにどのようにマッピングされるかを以下に示します。

| 支払い結果 | PaymentIntent ステータス | 請求書のステータス | サブスクリプションのステータス |
| --- | --- | --- | --- |
| 成功 | `succeeded` | `paid` | サブスクのステータスを管理する請求書が精算された場合は `active`、それ以外の場合は既存の `past_due` または `unpaid` ステータス |
| カードエラーによる失敗 | `requires_payment_method` | `open` | `incomplete` |
| 認証による失敗 | `requires_action` | `open` | `incomplete` |

### 決済確定が遅延する決済手段

顧客が取引を試みた際に決済ステータスをすぐに返せない決済手段 (ACH デビットなど) では、サブスクのステータス移行処理が異なります。これらのタイプの決済手段を使用する場合、サブスクは作成後に直接 `active` に移行し、`incomplete` をスキップできます。後で決済が失敗した場合、Stripe は請求書を無効にしますが、サブスクは `active` のままになります。アクセス制御や再試行のロジックを設計する際には、この動作を前提として組み込みます。

以下のセクションでは、即時支払いを必要とするサブスクを作成する際の初回支払いの結果について説明します。以降の請求での支払いの失敗については、[失敗した継続課金の処理](https://docs.stripe.com/billing/subscriptions/overview.md#failed-recurring-payments)を参照してください。

### 初回支払いの成功

顧客のサブスクの初回支払いが成功した場合:

- PaymentIntent の `status` は `succeeded` に移行します。
- 請求書の `status` は `paid` です。
- Stripe は、[サブスク設定](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments)に基づいてサブスクのステータスを決定します。ステータスを管理する請求書が精算されると、サブスクは `active` になります。
- 設定済みの Webhook エンドポイントに Stripe が `invoice.paid` イベントを送信します。

処理期間が長い[決済手段](https://docs.stripe.com/payments/payment-methods/integration-options.md)では、サブスクリプションは直ちに有効になります。このような場合、決済が成功するまで、PaymentIntent のステータスは `processing` サブスクリプションに対して `active` である可能性があります。

サブスクが有効になると、商品への[アクセスを提供](https://docs.stripe.com/billing/subscriptions/overview.md#provision-access)します。

### 初回支払いで決済手段が必要

[支払い拒否](https://docs.stripe.com/declines.md#issuer-declines)などの[カードエラー](https://docs.stripe.com/api/errors.md#errors-card_error)が原因で初回支払いに失敗した場合:

- PaymentIntent の `status` は `requires_payment_method` です。
- サブスクリプションの `status` は `incomplete` です。
- 請求書の `status` は `open` です。

これらのシナリオを処理するには、以下のステップに従います。

1. [invoice.payment_failed](https://docs.stripe.com/api/events/types.md#event_types-invoice.payment_failed) イベントをリッスンし、顧客に通知します。イベントを処理する前に、[Webhook 署名を検証](https://docs.stripe.com/webhooks.md#verify-events)してください。
2. 顧客から新しい決済手段を収集し、それを使用して未払いの請求書の [PaymentIntent を確定](https://docs.stripe.com/api/payment_intents/confirm.md)します。支払いに認証が必要な場合は、[アクションが必要](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action)の手順に従います。
3. 今後の請求書で Stripe が使用する決済手段を変更するため、サブスクの[デフォルトの決済手段](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method)を更新します。
4. プロダクトへの[アクセス権を付与する](https://docs.stripe.com/billing/subscriptions/overview.md#provision-access)前に、`invoice.paid` イベントをリッスンし、サブスクが `active` であることを確認します。

サブスクが `incomplete` の間は、Smart Retries やカスタムの再試行ルールで初回の支払いが再試行されることはありません。そのため、実装側で顧客から代金を回収する必要があります。

[サブスクリプションの支払い失敗を処理](https://docs.stripe.com/billing/subscriptions/webhooks.md#payment-failures)する方法は以下のとおりです。

### 失敗した継続課金を処理します。

サブスクの継続課金が失敗した場合は、`invoice.payment_failed` をリッスンします。[サブスクのステータスの変化を監視](https://docs.stripe.com/billing/subscriptions/webhooks.md#state-changes)し、`past_due` や `unpaid` への移行を検出します。決済手段を更新したり、未決済の請求を支払ったりできるように、顧客に通知します。イベントを処理する前に、[Webhook の署名を確認](https://docs.stripe.com/webhooks.md#verify-events)します。

失敗した支払いを再試行するには、[Smart Retries またはカスタムリトライのルール](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md)を設定します。[失敗した支払いの設定](https://dashboard.stripe.com/settings/billing/automatic)で、最後の再試行後にサブスクをどのように処理するかを選択します。アクセス権を無効にするタイミングや、`past_due` および `unpaid` のサブスクを再有効化する方法を判断するには、[サブスクのステータス表](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-statuses)を使用します。詳細については、[失敗した継続支払い](https://docs.stripe.com/billing/collection-method.md#handle-recurring-charge-failures)を確認してください。

### アクションが必要

一部の決済手段では、[3D セキュア認証](https://docs.stripe.com/payments/3d-secure.md) (3DS) による顧客認証が必要です。認証が必要かどうかは、[Radar ルール](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#three-ds-radar)とカード発行会社によって異なります。

顧客が決済を認証する必要があるために決済が失敗した場合:

- PaymentIntent の `status` は `requires_action` です。
- サブスクリプションの `status` は `incomplete` です。
- 請求書の `status` は `open` です。

これらのシナリオを処理するには、以下のステップに従います。

- [Webhook エンドポイント](https://docs.stripe.com/billing/subscriptions/webhooks.md)を使用して `invoice.payment_action_required` イベントの通知を監視します。これには認証が必要です。
- 顧客に認証が必要であることを通知します。PaymentIntent の Client Secret を取得し、それを [stripe.handleNextAction](https://docs.stripe.com/js/payment_intents/handle_next_action) に渡します。これにより、必要なステップが顧客に案内され、結果がアプリケーションに返されます。
- 支払いが成功したことを確認するには、イベントの送信先で `invoice.paid` イベントを監視します。商品を提供する前に、サブスクが `active` であるか、顧客に有効なエンタイトルメントがあることを確認してください。

## See also

- [サブスクリプションの導入を設計](https://docs.stripe.com/billing/subscriptions/design-an-integration.md)
- [サブスクの実装を構築する](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md)
- [サブスクリプションクイックスタート](https://docs.stripe.com/billing/quickstart.md)
