SiteOps
トップメディアダッシュボード更新履歴
記事一覧

Stripe webhookイベントが発生しないとき、最初の30分でやること

Stripe webhookが「来ない」ように見えるとき、最初の30分で「イベント未発生/配信失敗/受信・検証失敗」を切り分けるチェックリストです。

著者: 川原更新: 2026-05-15収益改善RSS
Xで共有FacebookLinkedIn
料金相談

Stripe webhookイベントが発生しない(最初の30分でやること)は、まず「そもそもイベントが起きているのか(Stripe側)」「起きているのに届かないのか(配信)」「届いているのに処理できないのか(受信/検証)」を切り分けると、最短で復旧できます。

最初に結論

  • 「Webhookが来ない」の原因が イベント未発生 なのか 配信失敗 なのかで、見る画面が変わります。
  • まずは Stripe Dashboard の Events と Webhookの配信ログ で「イベントがある/ない」「送信先が正しい/古い」「テスト/本番の取り違え」を確定させます。
  • 直近の変更(デプロイ/環境変数/キー/ドメイン/ルーティング)を“時刻で”当てます。

最初の30分でやること

1) 症状を固定する(Stripe Dashboard)

  • 期待しているイベントは何か(例: checkout.session.completed / customer.subscription.created / invoice.paid)
  • いつから「来なくなった」のか(直近のデプロイ/キー差し替え時刻と照合)
  • 対象はテストか本番か(Dashboard右上のモード + アプリのAPIキー)

2) 「イベント自体が起きているか」を確認する(Events)

  • Stripe Dashboard の Events で、該当イベントが発生しているかを検索する
  • ない場合(よくある原因):
    • 決済/購読のフロー自体が成立していない(例: Checkout未完了、支払い失敗)
    • テスト/本番のモードが違う(テストで起こして本番を見ている等)
    • 別アカウント/別プロジェクト(Connect含む)を見ている

3) 「Webhookに送っているか」を確認する(Webhook配信ログ)

  • 該当Endpointに Delivery attempts があるか
  • 送信先URLが “今の本番URL” か(www有無/サブドメ/パス/古い環境)
  • Endpointが disabled になっていないか
  • イベントのListen対象がズレていないか(必要なイベントが含まれているか)

ログの読み方:

  • 配信ログがない → (多くは)イベント未発生/モード違い/別アカウント
  • 4xx → アプリが拒否(ルーティング/署名検証/HTTPメソッド/ボディ処理)
  • 5xx → アプリ例外(DB/外部API/バグ)
  • タイムアウト → 同期処理が重い(キュー化/非同期化/冪等化)

4) アプリ側の受信(ルーティング)を確認する

  • Webhookの受信URL/メソッドが想定どおりか
  • 直近の移行でパスが変わってないか(例: /api/webhook/stripe → /api/stripe/webhook など)
  • ミドルウェアで弾かれていないか(認証/CSRF/リダイレクト)

5) 署名検証(Signing secret)を確認する

  • EndpointのSigning secretと、アプリの環境変数が一致しているか
  • テスト/本番モードを取り違えていないか
  • 生のリクエストボディを改変していないか(検証前にJSONパースしている等)

6) “2xxで速く返す”設計になっているか

  • Webhookハンドラが同期で重い処理をしていないか(外部API、重いDB集計など)
  • Stripeの再送(retries)を前提に 冪等性 を満たしているか(イベントIDで重複排除)
  • 失敗時に、どこで落ちたかがログで分かるか(署名/DB/外部API)

SiteOpsで最短にする

複数サービス運営では、同じ「Webhookが来ない」でも原因が違うことが多いです。SiteOpsは「どの環境で」「どのイベントで」「いつから」「どの変更の直後か」を並べて、最初の30分の切り分けを短縮します。

次に読む

  • /media/stripe-webhook-delivery-failure-first-30-minutes
  • /media/stripe-webhook-signature-verification-failed-first-30-minutes

相談する(SiteOps)

  • まずは ダッシュボード で、影響が出ているサイト(どの異常から触るべきか)を先に列挙します
  • 相談したい場合は お問い合わせ から状況を送ってください(止血の順番を一緒に整理できます)
  • 料金と導入の流れは 料金ページ にまとめています

参考にした一次情報

  • Stripe Docs: Webhooks
  • Stripe API: Events

この記事を書いた人

川原

SiteOps編集チームの公開窓口として、検索、アクセス、収益データをもとにした運営判断の知見をまとめています。

著者情報

関連記事

AdSenseのCPC(単価)が急落したとき、最初の30分でやること収益改善更新: 2026-05-17CSP強化でAdSenseが出なくなったとき、最初の30分でやること収益改善更新: 2026-05-17Stripeの支払いが突然0件になったとき、最初の30分でやること収益改善更新: 2026-05-17
前の記事Stripe Webhookの署名検証に失敗するとき、最初の30分でやること次の記事StripeのWebhookが届かないとき、最初の30分でやること

次にやること

複数サイトの検索、アクセス、収益データをまとめて見直すなら、SiteOpsのダッシュボードでサイト別に確認できます。

料金を見る相談したい / お問い合わせ