A webhook wasn't delivered
Diagnose missed webhooks, handle retries, and use status polling as a backstop.
Last updated June 1, 2026
If your server isn't receiving webhooks, work through these checks.
Common causes
- Your endpoint returned a non-2xx status, so we retried instead of marking it delivered.
- Your endpoint was slow or timed out, do heavy work asynchronously and acknowledge quickly.
- Signature verification rejected the request on your side, check you're hashing the exact raw body.
- Your endpoint URL or firewall blocked our request.
How retries work
We retry failed deliveries with exponential backoff for up to 24 hours. Make sure your handler is idempotent so repeated deliveries of the same event don't double-process.
Use polling as a backstop
Even if a webhook is delayed, you can confirm a payment server-side:
curl https://business.boldswitch.ng/api/v1/payment/status/INV-001 \
-H "apikey: live_YOUR_KEY"
Treat completed as the success state before fulfilling an order.
Tip: Verify the X-Boldswitch-Signature against the raw bytes you received. Re-serialising the JSON first will break the check and look like a "missing" webhook.
What's next
Still stuck? Email support@boldswitch.ng.
Was this article helpful?