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.
Retry mechanism
When the merchant does not return{"message": "success"} (returns failed/unknown, HTTP non-200, request timeout, or unparseable response), Waffo automatically retries.
Retry strategy
Up to 8 retries (including the initial notification), with increasing intervals:| Attempt | Interval | Cumulative time |
|---|---|---|
| 1st | Immediate | 0 |
| 2nd | 30 seconds | 30s |
| 3rd | 1 minute | ~1.5min |
| 4th | 4 minutes | ~5.5min |
| 5th | 30 minutes | ~35min |
| 6th | 4 hours | ~4.5h |
| 7th | 8 hours | ~12.5h |
| 8th | 8 hours | ~20.5h |
After all 8 attempts fail, the notification is marked as permanently failed and no further retries are made.
Failure recovery
If all retries fail:- Proactive query: Call the order query or subscription query API to get the latest status
- Reconciliation: Periodically query order statuses in batches and compare them with local records
- Contact support: If you continue to not receive Webhooks, check your network configuration or contact Waffo technical support
Common failure reasons
- Merchant
notifyUrlis unreachable (network issue, port not 80/443) - Response body is not
{"message": "success"}(e.g., typo, extra fields) - Response Content-Type is not
application/json - Response is missing the
X-SIGNATUREheader - Merchant server processing timeout
Notes
- Retries may cause events to arrive out of order; always use the terminal status as the source of truth
- Do not rely solely on Webhooks; use proactive queries as a fallback
- Ensure your Webhook handling logic is idempotent