Cloud Events
Generic signed webhook event
Receives arbitrary normalized webhook events, verified via X-Webhook-Signature HMAC over X-Webhook-Timestamp plus the raw body using WEBHOOK_SIGNING_SECRET. The Unix timestamp must be within five minutes of the server clock to prevent replay. The request names the owning userId; source defaults to webhook and may be mcp, github, linear, or stripe for connector/provider gateways. Payload is sealed, and routing uses the same cloud event router as provider webhooks.
post/v1/webhooks/events
Request
- Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
- URL: /v1/webhooks/events
- Auth: API key in header X-Webhook-Signature
Headers
X-Webhook-Timestampstring required
Unix timestamp included in the webhook signature; must be within five minutes of server time.
Request body
Example request
{
"dedupeKey": "webhook:zapier-acme-ar:evt_123",
"eventType": "invoice.disputed",
"occurredAt": "2026-06-06T14:00:00Z",
"source": "webhook",
"sourceAccountId": "zapier-acme-ar",
"sourceEventId": "evt_123",
"subject": "Invoice #4821 dispute",
"text": "Acme disputed invoice #4821.",
"userId": "a8dfa9b6-a7b2-46ea-982c-622a914c00e5"
}Response
Duplicate dedupeKey: existing event returned.
Example response
{
"eventId": "0c0afab1-7f6f-4f0b-9d8e-1e58e8b0f111",
"routingStatus": "pending"
}Changes
No recorded changes to this operation across all 50 revisions of this API.