Practical guides
Receive updates automatically
Use webhooks to receive events without repeatedly checking the API.
A webhook sends an HTTP request to your integration when an event happens. You need a receiving service with an HTTPS URL and a key with webhooks:write.
- Prepare the receiver URL for your integration. Use its webhook endpoint, not its homepage.
- Call Create webhook endpoint, selecting supported event names from the endpoint's event catalogue.
- Store the returned signing
secretsecurely. It is shown only once. - Verify each incoming
X-Acquisity-Signatureheader before trusting the event. Its format ist=<unix>,v1=<hmac_sha256(t.body)>; verification must use the original request body, not re-serialized JSON. Also check that the signedttimestamp is recent (for example, within five minutes of your server clock) and reject older timestamps to prevent replay attacks. - After signature and timestamp validation, deduplicate using the body’s stable
id(also sent asIdempotency-Key). Persist processed IDs and ignore duplicates before applying effects that must happen only once. A recent timestamp alone does not prevent duplicate delivery within the accepted time window. - Check the registered receiver against a representative event before relying on it for your workflow.
Success: your receiver accepts a correctly signed event and processes it. Registration alone does not prove delivery. Treat event handling as repeatable; do not assume exactly-once delivery or immediate arrival.
Personal-token callers also need to be a workspace owner or admin. A receiver error is separate from API authentication: verify that the URL accepts webhook POST requests and that any receiver authentication is configured correctly.