Webhook Verification & Security
To ensure that only legitimate requests from your service providers reach your consumers, Hooque provides several layers of authentication and verification.
Authentication Modes
When creating a webhook, you can choose from three authentication categories:
- Public (No Auth): Any request sent to the webhook URL will be accepted and queued. Use this only for internal testing or with providers that do not support authentication.
- Preset Providers: Optimized verification strategies for popular SaaS platforms (e.g., Stripe, GitHub). Hooque automatically handles signature verification, timestamp validation, and replay protection.
- Manual Configuration: Custom verification logic using standard methods like HMAC, Basic Auth, or API Keys.
Supported Preset Providers
Hooque supports built-in signature verification for the following platforms. When using these, simply provide the Webhook Secret (sometimes called a "Signing Secret" or "Verification Token") from the provider's dashboard.
| Category | Supported Providers |
|---|---|
| Version Control | GitHub, GitLab, Bitbucket |
| Payments & Billing | Stripe, Shopify, Lemon Squeezy |
| Communication | Slack, Discord, Intercom |
| Operations | PagerDuty, Jira (Atlassian), Monday.com, Asana |
| Infrastructure & Apps | Svix, Clerk, WorkOS, HubSpot, Typeform |
How it works
- Select a provider in the Hooque dashboard.
- Copy the Secret from your provider (e.g., Stripe Developer Dashboard -> Webhooks -> Signing Secret).
- Paste the Secret into the "Webhook Token" field in Hooque.
- Hooque will now automatically reject any incoming requests that do not match the provider's signing algorithm.
Manual Authentication
If your provider is not listed above, or if you are sending custom webhooks, you can manually configure verification.
1. HMAC (Signed Payloads)
The most common method for securing webhooks. You provide a secret and specify:
- Algorithm: sha1, sha256, etc.
- Header: The header containing the signature (e.g., X-Signature).
- Encoding: hex or base64.
2. API Key
Hooque checks for a static key in a specific header.
- Header: e.g., X-API-Key.
- Value: The secret key you configured.
3. Basic Auth
Standard HTTP Basic Authentication. - Username: (Optional) - Password: Your configured secret.
4. Query Parameter
Hooque checks for a specific token in the URL query string.
- Parameter Name: e.g., token.
- Value: The secret token.
Security Best Practices
Rotate Secrets Regularly
If you suspect a secret has been leaked, rotate it immediately in both the provider's dashboard and Hooque.
Use HTTPS
Always use the https:// version of your Hooque webhook URL to ensure data is encrypted in transit.
Verify in your Consumer (Optional)
While Hooque verifies the source of the webhook, your consumer should still check the content of the message to ensure it matches your expected schema.