Wire Pay
ログイン
デモモード — 外部APIは呼び出さず、ダミーで決済を生成します。

管理画面マニュアルテストデータ

各機能の使い方と、加盟店へ送信する通知パラメータの仕様です。表示言語に合わせて切り替わります。

第 14 章 / 全 27 章

Webhook 送信ログ

取引・返金・チャージバック・定期課金の状態が変わると、加盟店の システム通知先 URL に Webhook(通知)を送ります。送信の記録・失敗の確認・再送はこの画面で行います。ペイロードの形式・署名の検証方法は 通知パラメータ仕様 を参照してください。

送信されるイベント

イベントタイミング
payment.completed取引が完了になったとき(手動完了・決済リンクの完了・入金消込の一致 / 超過・加盟店サイトからの自動完了)
payment.failed取引が失敗になったとき
payment.expired振込期限超過で期限切れになったとき(毎時の自動処理を含む)
payment.cancelled取引がキャンセルされたとき
refund.completed返金が承認され完了したとき
limit.exceeded加盟店の限度額超過で取引が失敗として記録されたとき
chargeback.openedチャージバックが登録されたとき
subscription.charged定期課金の課金が成功したとき
subscription.payment_failed定期課金の課金が失敗し再試行待ちになったとき
subscription.suspended定期課金が 3 回目の失敗で停止したとき

送信先は加盟店の通知設定(通知の型 / パラメータセット / 識別子)に従い、event パラメータが常に含まれます。加盟店が設定されていない取引(プロバイダ直の取引)には送信しません。

署名

ヘッダー内容
X-Timestamp送信時刻(UNIX 秒)
X-Signaturev1=<HMAC-SHA256(鍵, "<X-Timestamp>.<ペイロード>") の 16 進>
Wirepay-Signature互換用。t=<X-Timestamp>,v1=<同じ値>
  • 鍵 は加盟店の 署名シークレット(加盟店詳細の APIキータブで発行。テスト / 本番それぞれ最新の有効なもの)です。署名シークレットが無い環境への通知は送信しません(パスワードで代用することはありません): 送信ログに failed(error: signing_secret_missing)で記録され、通知センターに「Webhook 署名シークレット未設定」(警告、加盟店 × 環境ごとに 24 時間に 1 通)が届きます。署名シークレットを発行してから 今すぐ再送 すると署名を付けて送信します。加盟店の新規登録時にはテスト環境の署名シークレットが自動発行され、完了画面に 1 回だけ表示されます。
  • ペイロード は POST(JSON / フォーム)ならリクエストボディそのもの、GET ならクエリ文字列(? の後ろ)です。
  • 受信側は同じ計算で v1 を求めて定数時間比較し、X-Timestamp が 5 分以上古い場合は拒否してください(コード例は通知パラメータ仕様の章)。

リトライと断念

2xx 以外の応答、または 10 秒 以内に応答が無い場合は失敗として記録し、1 分 → 5 分 → 30 分 → 2 時間 → 24 時間 の間隔で最大 5 回まで自動再送します(期限が来たものは毎時 30 分の Cron /api/cron/webhook-retry が送信)。5 回失敗すると 断念 になり、トップページの「Webhook 失敗件数」に含まれます。

ステータス意味
送信待ち作成直後でまだ送信していない(テストや WEBHOOK_DELIVERY=queue ではここで止まり、Cron が送る)
成功2xx を受け取った
リトライ待ち失敗し、次回の再送時刻を待っている
失敗最後の試行が失敗した(次回予定なし。手動再送で再開)
断念5 回失敗した

一覧・詳細・再送

  • 一覧は失敗 / 断念 / リトライ待ちを上に表示し、加盟店・イベント・ステータス・期間で絞り込めます。CSV 出力あり。加盟店詳細の Webhook送信ログ タブにはその加盟店の直近の通知が表示されます。
  • 詳細ではリクエスト(メソッド・URL・ヘッダー・ボディ)、最後の応答(ステータスコードと先頭 1KB)、試行履歴(回数・応答コード・所要時間・きっかけ = 自動 / Cron / 管理画面)を確認できます。
  • 詳細の「対象取引」は注文番号のリンクで、取引の現在のステータスと最終更新日時、同じイベントで最後に成功した送信の日時を並べて表示します。一覧の 断念のみ チップで断念した通知だけを絞り込めます。
  • 今すぐ再送(admin / developer)はリトライ予定に関係なく新しい試行として直ちに送信します。確認ダイアログに取引の現在のステータスと最後に成功した送信日時を表示し、加盟店側で二重処理されないよう注意を促します。断念した通知も再送でき、操作ログ(webhook.resend)に記録されます。再送時は X-Timestamp と署名を再計算します。

デモ用の受信エンドポイント

seed の加盟店は通知先が /api/demo/webhook-receiver になっています。クエリで応答を切り替えて動作を確認できます。相対 URL は APP_URL(未設定なら Vercel のプロダクション URL、ローカルでは http://localhost:3000)を基準に解決されます。

クエリ応答
?result=ok200(受信内容をエコー)
?result=error500(失敗 → リトライ)
?result=timeout12 秒待って応答(タイムアウト → リトライ)