Skip to main content
A webhook source gives you a URL. Any system that can send an HTTP request can send events to it.
The default source of a project has the same ID as the project.

Send an event

hooksnode keeps the body byte for byte, and keeps the request headers. The body can be up to 4 MiB. It does not have to be JSON, but filters and transforms need a JSON object.

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.
  1. Open the source and turn on Signing. hooksnode makes a secret.
  2. In your sender, compute an HMAC-SHA256 of the raw body with the secret.
  3. Send it in the X-Webhook-Signature header as sha256=<hex>.
A missing or wrong signature gets 401.
This check uses a secret that hooksnode makes. Providers such as Paystack and Stripe sign with their own secret and header. For those providers, leave inbound signing off, and check the provider’s signature in your destination. hooksnode sends the provider’s headers on unchanged.

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 answers 429 with Retry-After: 60.