---
title: "Create webhook"
method: POST
path: "/public/v2/webhooks/"
tags: ["Webhooks"]
---

# Create webhook

`POST /public/v2/webhooks/`

Register a webhook endpoint for events. The signing secret is returned once and never shown again.

## Headers

- `Idempotency-Key` string

## Request body

- WebhookSchemaCreateIn
  - `url` string, required
  - `topics` string[]

## Response `201`

Created

- WebhookCreateSchemaOut
  - `uuid` string, required
  - `url` string, required
  - `topics` string[], required
  - `is_active` boolean, required
  - `disabled_at` string, nullable
  - `disabled_reason` string
  - `created_at` string, required
  - `last_modified_at` string, required
  - `secret` string, required

## Other responses

- `400` — Bad Request
- `422` — Unprocessable Content

## Changes

- **2026-08-12** `34b7cf5b4b6c` — 1 info
  - added the new optional `header` request parameter `Idempotency-Key`

[Change history](https://skmtc.dev/dualentry/apis/dualentry-public-api/changes/public/v2/webhooks/post.md)

---

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