> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook - 再送と障害復旧

> Webhook の再送メカニズムと障害復旧戦略。

## 再送メカニズム

加盟店が `{"message": "success"}` を返さない場合 (failed/unknown の返却、HTTP 200 以外、リクエストタイムアウト、解析不能な応答)、Waffo は自動的に再送します。

## 再送戦略

最大で **8 回** (初回通知を含む) 再送します。間隔は徐々に長くなります。

| 試行回  | 間隔   | 累積時間      |
| ---- | ---- | --------- |
| 1 回目 | 即時   | 0         |
| 2 回目 | 30 秒 | 30 秒      |
| 3 回目 | 1 分  | 約 1.5 分   |
| 4 回目 | 4 分  | 約 5.5 分   |
| 5 回目 | 30 分 | 約 35 分    |
| 6 回目 | 4 時間 | 約 4.5 時間  |
| 7 回目 | 8 時間 | 約 12.5 時間 |
| 8 回目 | 8 時間 | 約 20.5 時間 |

<Note>8 回すべて失敗した場合、通知は恒久的失敗としてマークされ、以降は再送されません。</Note>

## 障害復旧

すべての再送が失敗した場合:

1. **能動的な照会**: 注文照会またはサブスクリプション照会 API を呼び出して最新ステータスを取得する
2. **リコンサイル**: 定期的に注文ステータスを一括照会し、ローカルのレコードと比較する
3. **サポートへの問い合わせ**: Webhook が継続的に届かない場合は、ネットワーク設定を確認するか Waffo テクニカルサポートにお問い合わせください

## よくある失敗原因

* 加盟店の `notifyUrl` に到達できない (ネットワーク問題、ポートが 80/443 ではない)
* 応答ボディが `{"message": "success"}` ではない (タイプミスや余分なフィールドなど)
* 応答の Content-Type が `application/json` ではない
* 応答に `X-SIGNATURE` ヘッダーが含まれていない
* 加盟店サーバーの処理タイムアウト

## 注意事項

<Note>
  * 再送によってイベントが順不同で到着する場合があります。常に最終ステータスを信頼できる情報源として扱ってください
  * Webhook のみに依存せず、能動的な照会をフォールバックとして利用してください
  * Webhook 処理ロジックは冪等性を保つようにしてください
</Note>
