# サブスクリプションで Webhook を使用する Webhook を使用して、サブスクリプションのアクティビティ通知を受信する方法をご紹介します。 Webhook イベントを通じて、アプリ内で Stripe から通知を受け取ります。ほとんどのアクティビティは非同期で行われるため、Webhook イベントを使用して *Subscriptions* を管理します。[イベントの送信先](https://docs.stripe.com/event-destinations.md)を作成して、Webhook エンドポイントまたは Amazon EventBridge や Azure Event Grid などのその他の送信先でこれらのイベントを処理します。 サブスクリプションでの Webhook の使用: 1. アプリに Webhook エンドポイントを作成します。 1. ワークベンチで [Webhook エンドポイント](https://docs.stripe.com/webhooks.md)を登録します。 1. Stripe イベントを処理するロジックを追加します。Subscriptions については、支払いの失敗やサブスクリプションステータスの変更 (`trial` から `active` ステータスへの移行など) が含まれます。[webhook quickstart](https://docs.stripe.com/webhooks/quickstart.md) を用いて、最小限の webhook エンドポイントを構築することができます。[受信イベントが Stripe からのものであること](https://docs.stripe.com/webhooks.md#verify-events)を必ず確認してください。 1. Webhook エンドポイントをテストして、想定どおりに動作していることを確認します。 アプリケーションがAWSで実行されている場合は、[AWSアカウントのAWS EventBridgeに直接イベントを送信するようにStripeを設定](https://docs.stripe.com/event-destinations/eventbridge.md)できます。アプリケーションがAzureで実行されている場合は、[AzureサブスクリプションのAzure Event Gridに直接イベントを送信するようにStripeを設定](https://docs.stripe.com/event-destinations/eventgrid.md)できます。 ## サブスクリプションイベント Stripe は、サブスクリプションが作成または変更されるたびに、[イベント](https://docs.stripe.com/api.md#event_types)をトリガーします。一部のイベントはサブスクリプションが作成されるとただちに送信され、その他のイベントは一定の請求期間で発生します。 自社の構築済みのシステムでイベントが適切に処理されることを確認します。たとえば、支払いが失敗すると顧客にメールを送信したり、サブスクリプションがキャンセルされると顧客のアクセスを取り消したりすることができます。 次の表は、サブスクリプションに関連する最も一般的なイベントについて説明したものであり、該当する場合は、イベントを処理するためのアクションを提示しています。 > Accounts v2 API は、Connect ユーザー向けに GA になり、その他の Stripe ユーザー向けには公開プレビューになります。 > > Regardless of whether you use [Accounts v2](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md) objects or [Customer](https://docs.stripe.com/api/customers.md) objects to represent your customers, use the `customer.subscription` events to track subscription events. | イベント | 説明 | | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `v2.core.account.created` | [v2 Account](https://docs.stripe.com/api/v2/core/accounts/object.md) が正常に作成されたときに送信されます。 | | `customer.created` | [Customer (顧客)](https://docs.stripe.com/api/customers/object.md)の作成に成功すると送信されます。 | | `customer.subscription.created` | サブスクリプションが作成されると送信されます。決済を完了するために顧客の認証が必要な場合、または `payment_behavior` を [default_incomplete](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) に設定した場合、サブスクリプションの `status` が `incomplete` になる場合があります。 | | `customer.subscription.deleted` | 顧客のサブスクリプションが終了すると送信されます。 | | `customer.subscription.paused` | サブスクリプションの`ステータス` が `paused` に変化したときに送信されます。たとえば、[無料トライアルが決済手段なしで終了](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment)したときにサブスクリプションを一時停止するように[設定](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-trial_settings-end_behavior-missing_payment_method)した場合に送信されます。請求は、サブスクリプションが[再開(/api/subscriptions/resume)されるまで行われません。この期間中も請求書は作成され続けるため、[決済の回収](https://docs.stripe.com/billing/subscriptions/pause-payment.md)を一時停止してもこのイベントは送信されません。 | | `customer.subscription.resumed` | 以前に `paused` ステータスだったサブスクリプションを再開すると送信されます。これは、[決済の回収](https://docs.stripe.com/billing/subscriptions/pause-payment.md#unpausing)の一時停止を解除した場合には適用されません。 | | `customer.subscription.trial_will_end` | [トライアル期間終了](https://docs.stripe.com/billing/subscriptions/trials.md)の 3 日前に送信されます。トライアル期間が 3 日未満の場合、このイベントがトリガーされます。 | | `customer.subscription.updated` | サブスクリプションが開始または[変更](https://docs.stripe.com/billing/subscriptions/change.md)された場合に送信されます。たとえば、サブスクリプションの更新、クーポンの追加、割引の適用、請求書アイテムの追加、プランの変更はすべて、このイベントのトリガーとなります。 | | `entitlements.active_entitlement_summary.updated` | 顧客の有効なエンタイトルメントが更新されると送信されます。このイベントを受け取ると、商品の機能へのアクセスをプロビジョニングまたはデプロビジョニングすることができます。[エンタイトルメントの導入](https://docs.stripe.com/billing/entitlements.md)の詳細をご覧ください。 | | `invoice.created` | 新規または更新済みのサブスクリプションに対して請求書が作成されると送信されます。Stripe で `invoice.created` に対する成功レスポンスを受信できない場合、[自動請求](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md)で指定されたすべての請求書の確定が最大 72 時間遅延します。詳しくは、[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)をご覧ください。 - [Finalize an Invoice (請求書の確定)](https://docs.stripe.com/api/invoices/finalize.md) API にリクエストを送信することで通知に応答します。 | | `invoice.finalized` | 請求書の確定に成功し、支払いの準備が整うと送信されます。 - 顧客に請求書を送信できます。詳しくは、[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)をご覧ください。 - 設定に応じて、Stripe は自動的にデフォルトの支払い方法に請求するか、回収を試みます。詳しくは、[確定後のメール](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails)をご覧ください。 | | `invoice.finalization_failed` | 請求書の確定に失敗しました。[請求書の確定の失敗を処理する方法](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures)と[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)の詳細を見る。 - 請求書の [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) を調べて、エラーの原因を特定します。 - Stripe Tax を使用している場合は、`Invoice` オブジェクトの[automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) フィールドを確認してください。 - `automatic_tax[status]=requires_location_inputs` の場合、請求書を確定させることはできず、決済を回収できません。顧客に通知し、必要な[顧客の住所情報](https://docs.stripe.com/tax/customer-locations.md)を回収します。 - `automatic_tax[status]=failed` の場合、後でリクエストを再試行します。 | | `invoice.paid` | 請求書の支払いに成功すると送信されます。このイベントを受け取り、サブスクリプションの `status` が `active` になると、商品へのアクセスを提供できます。 | | `invoice.payment_action_required` | 請求書に顧客の認証を必要とする場合に送信されます。請求書で[アクションが必要](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action)な場合にサブスクリプションを処理する方法をご紹介します。 | | `invoice.payment_failed` | 請求書に対する決済が失敗しました。PaymentIntent のステータスは`requires_action` に変わります。サブスクリプションのステータスは、サブスクリプションの最初の請求書に対して_のみ_ `incomplete` のままになります。決済が失敗した場合、以下のような処理を行います。 - 顧客に通知します。 - ダッシュボードで[サブスクリプション設定](https://dashboard.stripe.com/settings/billing/automatic)を行い、[Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) およびその他の売上の回収機能を有効にします。 - PaymentIntent を使用している場合、新しい支払情報を収集し、[PaymentIntent を確定](https://docs.stripe.com/api/payment_intents/confirm.md)します。 - サブスクリプションの [default payment method (デフォルトの支払い方法)](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) を更新します。 | | `invoice.upcoming` | サブスクリプションの更新の数日前に送信されます。何日前に送信されるかについては、[ダッシュボード](https://dashboard.stripe.com/settings/billing/automatic)の**次回の更新イベント**に設定された数値を参照します。既存のサブスクリプションについては、日数の変更は次の請求期間から有効になります。必要に応じて、[追加の請求書アイテム](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items)を加えることもできます。 | | `invoice.updated` | 支払いが成功または失敗したときに送信されます。支払いが成功の場合には、`paid` 属性が `true` に、`status` が `paid` に設定されます。支払いが失敗の場合には、`paid` が `false` に、`status` は `open` のままになります。また、支払いの失敗は、`invoice.payment_failed` イベントもトリガーします。 | | `payment_intent.created` | [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) が作成されると送信されます。 | | `payment_intent.succeeded` | PaymentIntent が正常に支払いを完了すると送信されます。 | | `subscription_schedule.aborted` | サブスクリプションスケジュールが、支払いの滞納により関連するサブスクリプションが終了となったことが原因でキャンセルされた場合に送信されます。 | | `subscription_schedule.canceled` | サブスクリプションスケジュールがキャンセルされ、それに関連するアクティブなサブスクリプションもキャンセルされた場合に送信されます。 | | `subscription_schedule.completed` | サブスクリプションスケジュールのすべての[フェーズ](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#subscription-schedule-phases)が完了した場合に送信されます。 | | `subscription_schedule.created` | 新しいサブスクリプションスケジュールが作成された場合に送信されます。 | | `subscription_schedule.expiring` | サブスクリプションスケジュールが無効になる 7 日前に送信されます。 | | `subscription_schedule.released` | サブスクリプションスケジュールがサブスクリプションから[リリース](https://docs.stripe.com/api/subscription_schedules/release.md)されたとき、または停止され関連付けが解除されたときに送信されます。サブスクリプションはその後も残ります。 | | `subscription_schedule.updated` | サブスクリプションスケジュールが更新された場合に送信されます。 | ## 支払いの失敗を処理する イベントは、Stripe がサブスクリプションの請求書の支払い失敗を通知するために利用する信頼性の高い方法です。支払い失敗のケースには一時的なものもあり、たとえば、カード発行会社が最初の支払いを拒否しているにもかかわらず、自動再試行を許可した場合などにこの一時的な支払い失敗が発生します。それ以外の支払い失敗は最終的なもの (例: 顧客が使用できる決済手段がないなど) であり、アクションが必要です。 | イベント | 説明 | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `invoice.payment_failed` | 請求書の支払いが失敗しました。PaymentIntent のステータスが `requires_payment_method` になり、サブスクリプションのステータスは `incomplete` になります。支払いの失敗があった場合、以下の対応を検討してください。 - 顧客に通知します。 - PaymentIntents を使用している場合、新しい支払情報を収集し、[PaymentIntent を確定](https://docs.stripe.com/api/payment_intents/confirm.md)します。 - サブスクリプションの[デフォルトの支払い方法](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method)を更新します。 - [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) を有効にすることを検討してください。 | ## 追加のアクションが必要な支払いを処理する 支払い方法によっては、顧客認証のような追加手順の完了が必要になることがあります。こうしたイベントを受け取ったら、お客様のアプリから顧客に対して、必要な対応を行うように通知する必要があります。[追加措置が必要なイベントを処理する](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action)方法については、サブスクリプション概要ガイドをご覧ください。 | イベント | 説明 | | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invoice.finalization_failed` | 請求書を確定できませんでした。[請求書確定失敗](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures)の対処方法については、ガイドをご覧ください。[請求書確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)の詳細については、請求書概要ガイドをご覧ください。 - Invoice の [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) を調べて、エラーの原因を判別します。 - Stripe Tax を使用している場合は、請求書オブジェクトの [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax) フィールドを確認してください。 - `automatic_tax[ステータス]=requires_location_inputs` の場合、請求書を確定させることはできず、支払いを回収できません。顧客に通知し、必要な[顧客店舗](https://docs.stripe.com/tax/customer-locations.md)を徴収します。 - `automatic_tax[status]=failed` の場合は、後でリクエストを再試行してください。 | | `invoice.payment_failed` | 請求書の支払いが失敗しました。PaymentIntent のステータスが `requires_action` になり、サブスクリプションのステータスは `incomplete` になります。支払いの失敗があった場合、以下の対応を検討してください。 - 顧客に通知します。 - PaymentIntents を使用している場合、新しい支払情報を収集し、[PaymentIntent を確定](https://docs.stripe.com/api/payment_intents/confirm.md)します。 - サブスクリプションの[デフォルトの支払い方法](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method)を更新します。 - [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) を有効にすることを検討してください。 | | `invoice.payment_action_required` | 請求書に顧客の認証を必要とする場合に送信されます。請求書で[アクションが必要](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action)な場合にサブスクリプションを処理する方法をご紹介します。 | ## 有効なサブスクリプションを追跡する サブスクリプションでは、お客様のウェブサイトと Stripe 間での調整が必要になります。顧客の継続課金の成功または失敗によって、顧客が商品またはサービスの利用を継続できるかどうかが決まります。 一般的なシステムの場合、顧客がサブスクリプションを登録したときに顧客の認証情報と、その顧客のアクセス有効期限を表すマッピングされたタイムスタンプ値がサイトに保存されます。顧客のログイン時に、タイムスタンプが将来の日付になっているかを確認してください。顧客がログインしたときのタイムスタンプが将来の日付である場合、そのアカウントは有効であり、顧客は引き続きサービスにアクセスできます。 サブスクリプションが[更新](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle)されると、Stripe は登録されている顧客の決済手段に[自動請求](https://docs.stripe.com/invoicing/automatic-charging.md)するか、または顧客に[請求書をメールで送付](https://docs.stripe.com/invoicing/integration.md#accept-invoice-payment)して支払いの回収を試みます。Stripe は Webhook イベントを送信して、お客様のサイトに請求書のステータスを通知します。 1. サイトが `invoice.paid` イベントを受信します。 - 決済手段に自動請求する場合、更新の数日前にお客様のサイトは、設定した [Webhook エンドポイント](https://docs.stripe.com/webhooks.md)への `invoice.upcoming` イベントを受信します。このイベントをリッスンして、次の請求書に[請求書項目を追加](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items)することができます。`collection_method=send_invoice` の場合、Stripe は `invoice.upcoming` イベントを送信しません。 1. アプリケーションは、支払い済みの顧客を検索します。 1. アプリケーションは、データベース内の顧客のアクセス有効期限を将来の適切な日付 (1 日または 2 日の猶予期間あり) に更新します。 ## サブスクリプションのステータス変化を検出する 次の表で説明するサブスクリプションステータスの移行が、システムで適切に監視・処理されていることを確認してください。 一部のステータス変更には特別な注意が必要です。 - トライアル期間が終了し、サブスクリプションが `trialing` から `active` に移行する数日前に、`customer.subscription.trial_will_end` イベントが送信されます。このイベントを受け取ったら、顧客に請求するための決済手段が顧客にあるか確認します。必要に応じて、今後請求されることを顧客に通知します。 - サブスクリプションが `past_due` に移行すると、顧客に直接通知し、支払い詳細を更新するように依頼します。Stripe はこのプロセスを自動化するのに役立ついくつかの機能を提供しています。[売上回収](https://docs.stripe.com/billing/revenue-recovery.md)についてご確認ください。 - サブスクリプションが `canceled` または `unpaid` に変更されたら、製品へのアクセスを取り消します。 | ステータス | 説明 | | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `trialing` | サブスクリプションは現在トライアル期間中であり、顧客にプロダクトを支障なく提供できます。初回の支払いが行われると、サブスクリプションは自動的に `active` に移行します。 | | `active` | サブスクリプションの状態は良好です。`past_due` のサブスクリプションでは、関連する最新の請求書を支払うか、回収不可としてマークすると、サブスクリプションが `active` に移行します。`active` は、サブスクリプションに関連するすべての未払いの請求書が支払われたことを示すものではない点に注意してください。その他の未払いの請求書は、支払い待ちのまま残すことも、回収不可としてマークすることも、必要に応じて無効にすることもできます。 | | `incomplete` | サブスクリプションを有効にするには、顧客が 23 時間以内に支払いを成功させる必要があります。または、支払いで顧客認証などの[対応が必要](https://docs.stripe.com/billing/subscriptions/webhooks.md#requires-action)です。保留中の支払いがあり、PaymentIntent のステータスが `processing` の場合も、サブスクリプションが `incomplete` になることがあります。 | | `incomplete_expired` | サブスクリプションの初回の支払いが失敗し、サブスクリプションの作成から 23 時間以内に支払いが成功しませんでした。これらのサブスクリプションは顧客に請求されません。このステータスは、サブスクリプションの有効化に失敗した顧客を追跡するために存在します。 | | `past_due` | 最新の *確定済み* の請求書の決済は、失敗したか、試行されていません。サブスクリプションは、引き続き請求書を作成します。ダッシュボードの [subscription settings](https://dashboard.stripe.com/settings/billing/automatic) によって、サブスクリプションの次のステータスが決まります。[smart retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) を試行しても請求書が未払いの場合は、サブスクリプションを `canceled`、`unpaid`、または `past_due` のままにするように設定できます。サブスクリプションを再度有効にするには、顧客に最新の請求書を決済してもらいます。サブスクリプションのステータスは、決済が最新の請求書より前に行われたか、最新の請求書の期日を過ぎたかに関係なく、`active` になります。 | | `canceled` | サブスクリプションがキャンセルされました。キャンセル時に未払いのすべての請求書の自動回収が無効化されます (`auto_advance=false`)。これは、更新できない最終的なステータスです。 | | `unpaid` | 最新の請求書は支払われていませんが、サブスクリプションはそのまま保持されます。最新の請求書は未処理のままになり、請求書は引き続き生成されますが、支払いの試行は行われません。サブスクリプションが `unpaid` の場合は、`past_due` の時点で支払いの試行と再試行がすでに行われているため、プロダクトへのアクセスを取り消します。サブスクリプションのステータスを `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)できます。 | ## Webhook エンドポイントとインボイス Webhook エンドポイントを登録して、請求書のステータスを追跡します。請求書を正しく確定できるかどうかの問題はサブスクリプションシステムにとって重要であり、確定に失敗した場合でも適切に処理しなければなりません。 [自動回収](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md)を有効にすると、Stripe は自動的に[インボイス](https://docs.stripe.com/billing/invoices/subscription.md)を確定し、自動回収を開始します。 - Stripe が `invoice.created` の成功応答を受信できない場合、[自動回収](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md)の設定された請求書の確定が最大 72 時間延期されます。ただし、[カスタムの確定日を設定](https://docs.stripe.com/invoicing/scheduled-finalization.md)している請求書はこの限りではありません。 - `invoice.created` に正しく応答すると、アカウントに設定されたすべての Webhook エンドポイントだけでなく、連結されたあらゆるプラットフォームの Webhook エンドポイントも処理されます。これには、[Organizations](https://docs.stripe.com/get-started/account/orgs.md) で設定された Webhook エンドポイントは含まれません。組織で `invoice.created` をリッスンすることはできますが、自動回収を使用している場合、正しく応答しても請求書の確定に影響を与えることはありません。 - 同期的に決済を試行するようにサブスクリプションを更新した (初回の請求書で、および一部の更新で) 場合には、このような遅延は発生しません。 - 請求書を確定しない限り、請求書の支払いは回収できません。Webhook エンドポイントで `invoice.finalization_failed` イベントをリッスンできることを確認してください。 ### 請求書の確定に関連する Webhook イベント [請求書のイベントタイプ](https://docs.stripe.com/api/events/types.md#event_types-invoice.created)の一覧をご覧ください。 | イベント | 説明 | | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invoice.created` | インボイスは正常に作成され、確定の準備が整っています。[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)についての詳細は、ドキュメントをご確認ください。 - [Finalize an Invoice (請求書の確定)](https://docs.stripe.com/api/invoices/finalize.md) API にリクエストを送信することで通知に応答します。 | | `invoice.finalized` | 請求書は正常に確定され、支払いの準備が整っています。 - 顧客にインボイスを送信できます。[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)についてご確認ください。 - 設定に応じて、Stripe は自動的にデフォルトの決済手段に請求するか、収集を試みます。[確定後のメール](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails)についてご確認ください。 | | `invoice.finalization_failed` | インボイスを確定できませんでした。ガイドを参照して、[請求書の確定の失敗を処理](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures)する方法をご確認ください。請求書の概要ガイドに記載されている[請求書の確定](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized)を確認してください。 - Invoice の [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) を調べて、エラーの原因を判別します。 - Stripe Tax を使用している場合、Invoice オブジェクトの [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) フィールドを確認します。 - `automatic_tax[status]=requires_location_inputs` の場合、インボイスを確定させることはできず、支払いを回収できません。顧客に通知し、必要な[顧客の場所](https://docs.stripe.com/tax/customer-locations.md)を収集します。 - `automatic_tax[status]=failed` の場合、後でリクエストを再試行します。 | ### 成功した請求書の確定 Stripe は `invoice.created` イベントへの成功応答を受信してから 1 時間待機し、その後に決済を試みます。 72 時間以内に成功応答を受信できない場合には、Stripe は請求書の確定と送信を試みます。 1 回限りの請求書をサブスクリプションの請求書とは異なる方法で処理する場合、Webhook 本文の `subscription` プロパティを確認してください。このプロパティーは、請求書がサブスクリプション用として作成されたかどうかを示します。 本番環境では、Webhook エンドポイントが正しく応答しない場合、Stripe は指数バックオフを使用して最長 3 日間 Webhook 通知の再試行を続けます。サンドボックスでは、数時間にわたって 3 回再試行します。その間は、正常な応答を受信しない限り顧客への請求を試行しません。また、Webhook にエラーが発生していることを知らせるメールも送信します。 この動作は、お客様のアカウントで定義されたすべての Webhook エンドポイントに適用されます。[Connect アプリケーション](https://stripe.com/works-with)、またはその他のサードパーティーサービスで受信 Webhook を処理できない場合も含まれます。 ### 請求書確定の失敗 Stripe でインボイスを確定できない場合、`invoice.finalization_failed` [イベント](https://docs.stripe.com/api/events/types.md#event_types-invoice.finalization_failed)が Webhook エンドポイントに送信されます。インボイスを確定できない場合、サブスクリプションは引き続きアクティブなままです。そのため、支払いの回収ができなくても、ユーザーはまだ商品にアクセスできる可能性があります。確定できないインボイスは確実に処理してください。確定されていないインボイスに対して支払いを回収することはできません。 請求書の確定が失敗した理由を判別するには、インボイスオブジェクトの `last_finalization_error` [フィールド](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error)を確認してください。ここには、処理を進める方法を含む、失敗に関する詳細な情報が示されています。 Stripe Tax を使用している場合は、[automatic_tax.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax-status) フィールドが `requires_location_inputs` になっていないか確認してください。これは、住所情報が無効または不十分であることを示します。認識済みの顧客の所在地が Stripe Tax で見つからない場合、請求書を確定することはできません。[請求書の確定失敗を処理する](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures)方法をご紹介します。 ## テスト Webhook エンドポイントまたは[イベントの送信先](https://docs.stripe.com/event-destinations.md)をテストするには、次の 2 つのオプションのいずれかを選択します。 1. サンドボックスでアクションを実行し、イベントの送信先に正規のイベントを送信します。たとえば、[charge.succeeded](https://docs.stripe.com/api.md#event_types-charge.succeeded) イベントをトリガーするには、[支払いを成功させるテストカード](https://docs.stripe.com/billing/subscriptions/webhooks.md#cards)を使用できます。 1. [Stripe CLI を使用してイベントをトリガー](https://docs.stripe.com/webhooks.md#test-webhook)するか、[Stripe for Visual Studio Code を使用](https://docs.stripe.com/stripe-vscode.md#webhooks)してイベントをトリガーします。 ## See also - [サブスクリプションのライフサイクル](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle) - [サブスクリプションをテストする](https://docs.stripe.com/billing/testing.md)