---
title: "Create webhook"
method: POST
path: "/seller/webhooks"
tags: ["seller-webhooks"]
---

# Create webhook

`POST /seller/webhooks`

Create a new webhook endpoint for the authenticated seller.

Use this endpoint when onboarding a receiver service that should receive seller-side events.

What this endpoint configures:

- The destination 'url' where deliveries are sent.
- Optional 'description' so teams can identify endpoint purpose (for example, 'Production OMS').
- Optional 'enabled' flag to control whether deliveries start immediately.
- Optional 'additionalHeaders' that are included with each webhook request.
- Initial 'subscriptions' defining which event types are delivered.

Important behavior:

- A seller can register up to 5 webhook endpoints.
- URL uniqueness is enforced per seller; creating a duplicate URL returns 409.
- At least one subscription event is required in the request.
- The response includes the webhook secret and generated webhook id.

## Request body

- CreateSellerWebhookRequest — Request body for creating a new webhook endpoint.
  - `url` string, uri, required — Destination URL that will receive webhook deliveries
  - `description` string — Optional human readable description
  - `enabled` boolean — Whether the webhook should be active immediately
  - `additionalHeaders` object — Additional headers to include on webhook deliveries
  - `subscriptions` string[], required — Initial subscriptions to associate with the webhook

## Response `201`

Webhook endpoint created

- SellerWebhookEndpoint — Represents a webhook endpoint configured by a seller to receive event notifications.
  - `id` string, required — Unique identifier for the webhook endpoint
  - `url` string, uri, required — Destination URL for webhook deliveries
  - `description` string, nullable — Optional human readable description
  - `enabled` boolean, required — Indicates whether the webhook is currently active
  - `additionalHeaders` object, required — Additional headers sent with each webhook request
  - `secret` string, required — Shared secret used to generate webhook signatures
  - `lastSuccessAt` string, date-time, nullable, required — Timestamp of the most recent successful delivery
  - `lastFailureAt` string, date-time, nullable, required — Timestamp of the most recent failed delivery
  - `consecutiveFailures` integer, required — Current number of consecutive delivery failures
  - `maxConsecutiveFailures` integer, required — Threshold at which the webhook will automatically be disabled
  - `createdAt` string, date-time, required — Timestamp when the webhook endpoint was created
  - `updatedAt` string, date-time, required — Timestamp when the webhook endpoint was last updated
  - `subscriptions` string[], required — Event types that the webhook is subscribed to

## Other responses

- `400` — Invalid request
- `404` — Seller not found
- `409` — A webhook already exists for the provided URL

---

[API](https://skmtc.net/managem/apis/managem-api.md) · [All operations](https://skmtc.net/managem/apis/managem-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/managem/managem-api/versions/5ed45d6a9e2f/schema)
