Webhook

Create Webhook

Create Webhook

Create a webhook subscription for an event.
When that event occurs, your endpoint receives an HTTP POST.

Required Inputs

  • event: event key from /webhook/events-list
  • url: your public HTTPS endpoint

Optional Inputs

  • headers: custom headers to include in delivery requests
  • is_active: enable/disable delivery without deleting config

Shared Secret Authentication (Recommended)

To verify webhook authenticity, set headers["X-Webhook-Secret"] while creating webhook.

For each delivery, your endpoint receives:

  • X-Webhook-Timestamp
  • X-Webhook-Signature in format v1=<signature>

Verify using:

  • Algorithm: HMAC-SHA256
  • Signed content: timestamp + "." + raw_request_body

Best practice:

  • Reject requests with old timestamp (for example older than 5 minutes).
  • Use constant-time compare for signatures.
  • Process only after signature verification succeeds.

Important Note

X-Webhook-Secret is used only for signing and should not be treated as an incoming authentication header in your receiver.

post/v2/webhook

Request body

event'test' | 'event.catalog.item.add' | 'event.catalog.item.update' | 'event.catalog.item.delete' | 'event.catalog.item.table.row.add' | 'event.catalog.item.table.row.update' | 'event.catalog.item.table.row.delete' | 'event.catalog.custom' | 'event.contract.add' | 'event.contract.update' | 'event.contract.delete' | 'event.project.integration.start' | 'event.project.start' | 'event.project.finish' | 'event.project.approval.submitted' | 'event.project.step.status.change' | 'event.catalog.modification' | 'event.contact.info.upserted' | 'event.integration.status.updated' | 'event.catalog.vendor.manager.modified' | 'event.contract.details.upserted' | 'event.table.row.upserted' required

An enumeration.

urlstring required
headersobject
is_activeboolean

Response

Successful Response

idstring required
event'test' | 'event.catalog.item.add' | 'event.catalog.item.update' | 'event.catalog.item.delete' | 'event.catalog.item.table.row.add' | 'event.catalog.item.table.row.update' | 'event.catalog.item.table.row.delete' | 'event.catalog.custom' | 'event.contract.add' | 'event.contract.update' | 'event.contract.delete' | 'event.project.integration.start' | 'event.project.start' | 'event.project.finish' | 'event.project.approval.submitted' | 'event.project.step.status.change' | 'event.catalog.modification' | 'event.contact.info.upserted' | 'event.integration.status.updated' | 'event.catalog.vendor.manager.modified' | 'event.contract.details.upserted' | 'event.table.row.upserted' required

An enumeration.

urlstring required
argsobject
is_activeboolean
fail_countinteger
created_by_client_idstring

Changes

No recorded changes to this endpoint across all 1 revision of this API.