## Create a webhook `client.webhooks.create(WebhookCreateParamsparams, RequestOptionsoptions?): WebhookWithSecret` **post** `/v2/webhooks/{teamId}` Registers a webhook and enqueues an asynchronous verification handshake (run by the dispatcher). The response includes the signing `secret`, shown only this once; `verified` is false until the handshake passes. ### Parameters - `params: WebhookCreateParams` - `teamId?: string` Path param - `name: string` Body param - `url: string` Body param: HTTP(S) endpoint. Rejected if it resolves to a private/internal address. - `description?: string | null` Body param - `enabled?: boolean` Body param ### Returns - `WebhookWithSecret extends Webhook` Returned ONLY on creation. Includes the signing secret (shown once) and the pending verification status. - `secret: string` HMAC signing secret (prefix `whsec_`). Store it now — it is never returned again. The dispatcher signs each delivered payload with it so your endpoint can verify authenticity. - `verification?: Verification` Status of the verification handshake enqueued by this request. The handshake runs asynchronously in the dispatcher; poll the webhook (its `verified` flag flips to true on success) to observe the outcome. - `status: "pending"` Always `pending` at the moment of the response — the dispatcher has been asked to run the handshake but has not reported back yet. - `"pending"` ### Example ```typescript import Micro from '@micro-so/sdk'; const client = new Micro({ teamID: 'My Team ID', apiKey: process.env['MICRO_API_KEY'], // This is the default and can be omitted }); const webhookWithSecret = await client.webhooks.create({ name: 'x', url: 'https://example.com' }); console.log(webhookWithSecret); ``` #### Response ```json { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "enabled": true, "name": "name", "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "url": "https://example.com", "verified": true, "description": "description", "updated_at": "2019-12-27T18:11:19.117Z", "verification_token": "verification_token", "verified_at": "2019-12-27T18:11:19.117Z", "secret": "secret", "verification": { "status": "pending" } } ```