Frequently Asked Questions
Common questions and answers about webhook monitoring, CLI usage, and integration troubleshooting.
General Questions
What is the difference between webhooks and APIs?
Webhooks are push-based - services send data to you when events happen. APIs are pull-based - you request data from services when you need it.
| Aspect | Webhooks | APIs |
|---|---|---|
| Direction | Service → You | You → Service |
| Timing | Real-time | On-demand |
| Efficiency | High | Lower (polling required) |
| Control | Service decides when | You decide when |
Do I need authentication to use webhook monitoring?
No! Our webhook monitoring service doesn't require authentication for basic functionality. Simply:
- Create an endpoint in the dashboard
- Get your webhook URL
- Start receiving events immediately
How many endpoints can I create?
Limits depend on your plan:
- Free: 3 endpoints
- Pro: 25 endpoints
- Enterprise: Unlimited
Technical Questions
Why am I seeing duplicate webhook events?
Duplicate events can happen because:
- Webhook sources retry failed deliveries
- Network issues cause multiple sends
- Your handler errors trigger resends
Solution: Implement idempotency in your handler:
const processedEvents = new Set();
app.post('/webhooks', (req, res) => {
const eventId = req.body.id;
if (processedEvents.has(eventId)) {
return res.status(200).json({ message: 'Already processed' });
}
processedEvents.add(eventId);
// Process the event...
});
My webhook handler is slow. How can I improve performance?
Quick fixes:
- Respond immediately, process asynchronously:
app.post('/webhooks', (req, res) => {
res.status(200).json({ received: true }); // Respond first
processAsync(req.body); // Process later
});
- Optimize database queries
- Use connection pooling
- Implement caching for frequently accessed data
Can I test webhooks without deploying my application?
Yes! Use our CLI tool for local development:
# Install CLI
npm install -g @hookvm/cli
# Forward webhooks to your local server
hookvm listen https://hookvm.com/hooks/your-endpoint-id \
--target http://localhost:3000/webhooks
CLI Questions
The CLI command is not found after installation
Possible solutions:
- Check global installation:
npm list -g @hookvm/cli
- Add npm global bin to PATH:
export PATH="$(npm config get prefix)/bin:$PATH"
- Install with proper permissions:
sudo npm install -g @hookvm/cli
Can I monitor multiple endpoints simultaneously?
Yes! Open multiple terminal windows:
# Terminal 1
hookvm listen https://hookvm.com/hooks/endpoint-1
# Terminal 2
hookvm listen https://hookvm.com/hooks/endpoint-2
How do I save CLI output to a file?
# Save all output
hookvm listen endpoint-url --disable-ui > webhook.log 2>&1
# Background process
nohup hookvm listen endpoint-url --disable-ui >> webhook.log 2>&1 &
Integration Questions
Which webhook sources are supported?
Our service accepts webhooks from any source that can send HTTP POST requests:
- Payment processors: Stripe, PayPal, Square
- E-commerce: Shopify, WooCommerce, BigCommerce
- Development: GitHub, GitLab, Bitbucket
- Communication: Slack, Discord, Twilio
- Custom APIs: Any service that sends webhooks
How do I verify webhook signatures?
Different services use different signature methods:
Stripe (SHA-256):
const stripe = require('stripe')();
app.post('/webhooks/stripe', express.raw({type: 'application/json'}), (req, res) => {
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);
// Process verified event...
});
GitHub (SHA-1):
const crypto = require('crypto');
const signature = req.headers['x-hub-signature'];
const expectedSignature = crypto
.createHmac('sha1', process.env.GITHUB_SECRET)
.update(JSON.stringify(req.body))
.digest('hex');
Can I filter which events I receive?
Yes! Configure event filtering in your endpoint settings:
- By event type: Only receive specific event types
- By content: Filter based on event data
- By source: Limit to specific IP ranges
Billing Questions
How does webhook event counting work?
We count:
- Incoming webhooks - Events received by your endpoints
- Forwarded events - Events sent to your handlers (CLI forwarding)
- Test events - Events sent via dashboard testing
We don't count:
- Failed deliveries that we retry
- Health check requests
- Configuration API calls
What happens if I exceed my plan limits?
- Soft limits: We'll notify you before you exceed limits
- Hard limits: New events may be queued or rejected
- Grace period: Usually 7 days to upgrade your plan
Can I upgrade or downgrade my plan anytime?
Yes! Plan changes take effect immediately:
- Upgrades: Access to new features right away
- Downgrades: Features removed at next billing cycle
Troubleshooting Questions
Events appear in dashboard but my handler isn't called
Common causes:
- Handler URL incorrect - Check endpoint configuration
- Local server not running - Start your development server
- Wrong HTTP method - Ensure handler accepts POST requests
- Network issues - Check firewall and connectivity
The CLI shows "connection failed"
Try these steps:
- Check internet connection
- Verify endpoint URL is correct
- Test with curl:
curl -I https://hookvm.com/hooks/your-endpoint-id
- Check firewall settings for WebSocket connections
Getting "too many headers" errors
This is handled automatically in newer CLI versions:
# Update CLI
npm update -g @hookvm/cli
The CLI now filters headers to prevent server limits.
Getting More Help
Documentation
Support Channels
- Community Forum: Ask questions and share solutions
- Email Support: For account and billing issues
- Live Chat: Available during business hours
- GitHub Issues: Report bugs and request features
Before Contacting Support
- Check this FAQ for common solutions
- Search the documentation
- Try basic troubleshooting (restart, refresh, update)
- Gather error messages and logs
When contacting support, include:
- Exact error messages
- Steps to reproduce
- Your environment (OS, browser, CLI version)
- Endpoint ID or configuration details
Still have questions? Contact our support team or check the troubleshooting guide.