In the app
Open Settings → Developers → Webhooks. The list shows every endpoint in the workspace: its URL, the events it subscribes to, its status, and when it was created.
A subscription is a standing instruction that ships this workspace’s data to a
third-party URL for as long as it exists, so creating one is workspace
configuration rather than day-to-day work. It sits at the same bar as minting an
API key.
Adding one
1
Enter the URL
A public
http or https endpoint. Custral refuses localhost and private
addresses, and tells you which rule it hit. See
What Custral will and will not call.2
Choose the events
Tick from the catalog, or subscribe with
* or a glob like record.*.3
Copy the signing secret
Shown once, on creation. Nothing can retrieve it afterwards. Store it
before closing the dialog.
Rotating a secret
Rotate mints a newwhsec_… and shows it once. It takes effect immediately with
no overlap window, so deploy the new value first. See
Rotating.
Deleting
Deletion is immediate: matching events stop being queued for that endpoint. A delivery already in flight finishes or fails on its own, and the endpoint’s delivery log goes with it.From an MCP client or the assistant
A key holding thewebhooks:manage scope can register endpoints over
MCP, which is also how the in-app assistant does it.
There is no /v1 endpoint for this yet
Webhook management is not part of the public /v1 REST surface. The routes
the app itself uses are session-authenticated rather than API-key
authenticated, so an sk_… key cannot call them.
To manage subscriptions programmatically today, use the MCP tools above. If a
plain REST endpoint would suit your integration better, say so at
hello@custral.com.
This is the one part of the developer platform where the SDK is a receiver
only.
@custral/sdk verifies and dispatches inbound deliveries
(custral.webhooks); it does not create the
subscription.