Send an event
Responses
Most providers retry on
5xx and 429. Do not drop an event when you get these codes.
Check signatures on the way in
You can make hooksnode refuse events that are not signed with a secret. Use this for your own senders.- Open the source and turn on Signing. hooksnode makes a secret.
- In your sender, compute an HMAC-SHA256 of the raw body with the secret.
- Send it in the
X-Webhook-Signatureheader assha256=<hex>.
401.
For Paystack, Flutterwave, Stripe or Meta, pick that provider’s signature preset and paste its secret. hooksnode checks the provider’s own header. For Paystack, paste the webhook signing secret (
whsec_…) or the secret key (sk_…) as given. Paystack-Signature is checked when present (t=<unix>, v1=<key id>:<hex HMAC-SHA512 of "<t>.<body>">, 300 seconds, several v1 values during rotation). x-paystack-signature (HMAC-SHA512 of the body) is checked only when Paystack-Signature is absent. Presets are in internal/service/sigverify/sigverify.go. hooksnode still forwards those signature headers. It does not forward Cookie, Authorization or X-Forwarded-*. Set those on the destination if you need them. See Destination rules.Old /proxy URLs
POST /proxy/:userID is removed. Callers get 410 Gone. Point them at POST /p/<source-id> instead. The default source id is the project id.
Rate limit
Each source takes up to 1,000 events a minute by default. On a Pro project you can raise the limit up to 1,000,000 a minute. Over the limit, hooksnode answers429 with Retry-After: 60.