---
title: "Create Webhook V2"
method: POST
path: "/v2/webhook_v2"
tags: ["Webhook"]
---

# Create Webhook V2

`POST /v2/webhook_v2`

# Create Webhook V2

Creates a v2 webhook subscription.  
V2 supports additional `args` for event-specific filtering/configuration.

Webhook security behavior is identical to v1:
- optional shared-secret based signing
- outgoing `X-Webhook-Timestamp` and `X-Webhook-Signature`
- receiver verifies raw body + timestamp + signature

See create webhook documentation for detailed signing flow.

## Request body

- CreateWebhookV2
  - `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.
  - `url` string, required
  - `args` object
  - `headers` object
  - `is_active` boolean

## Response `201`

Successful Response

- WebhookResponse
  - `id` string, 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.
  - `url` string, required
  - `args` object
  - `is_active` boolean
  - `fail_count` integer
  - `created_by_client_id` string

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/expent/apis/expent-apis.md) · [All operations](https://skmtc.dev/expent/apis/expent-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expent/expent-apis/revisions/ce1d50af5e2c/schema)
