Skip to main content
Test your webhook integration before going to production.

Testing Locally with ngrok

Your webhook endpoint needs a public URL. Use ngrok to tunnel to your local server:
1

Start your local server

2

Start ngrok

3

Register the webhook

Use the ngrok URL as your webhook endpoint:
4

Trigger an event

Perform an action that triggers a webhook, such as completing a Stripe test checkout with attribution metadata or approving an affiliate application.

Simulating a Webhook with cURL

To test your endpoint’s signature verification, simulate a delivery:

Verification Checklist

Before going to production, confirm:
  • Your endpoint returns 200 within 30 seconds
  • Signature verification works correctly
  • You handle duplicate deliveries (check event id)
  • You process events asynchronously (don’t block the response)
  • Your endpoint uses HTTPS in production
  • You’ve subscribed only to events you need
  • Error handling is in place – a crash won’t take down your server

Debugging Delivery Issues

If webhooks aren’t arriving:
  1. Check the dashboard – go to Settings → Webhooks to see delivery status and errors
  2. Verify the URL – is your endpoint reachable from the public internet?
  3. Check HTTPS – production webhooks require HTTPS (localhost HTTP is allowed in development)
  4. Check event subscription – did you subscribe to the event types you’re expecting?
  5. Check response code – a non-2xx response triggers retries, not immediate re-delivery