---
title: "Create channel"
method: POST
path: "/api/v1/channels"
tags: ["channels"]
---

# Create channel

`POST /api/v1/channels`

Creates a new channel within the caller account.

## Request body

- ChannelCreate
  - `code` string, required
  - `name` string, required
  - `type` 'MARKETPLACE' | 'ECOMMERCE' | 'POS' | 'TELEVENDAS' | 'WHATSAPP' | 'APP', required
  - `active` boolean
  - `metadata` object, nullable

## Response `201`

Channel created.

- ChannelCreateResponse
  - `id` string, required
  - `code` string, required
  - `name` string, required
  - `type` 'MARKETPLACE' | 'ECOMMERCE' | 'POS' | 'TELEVENDAS' | 'WHATSAPP' | 'APP', required
  - `active` boolean, required
  - `metadata` object, nullable, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `400` — Request payload, query string, or path parameter failed validation.
- `401` — Authentication is missing, malformed, expired, or refers to a session that is no longer active.
- `403` — The caller is authenticated but lacks the required permission for this action.
- `409` — A channel with the same code already exists in the caller account.
- `422` — The payload passed schema validation but breaks a domain invariant.
- `500` — Unexpected server error. The response body never leaks internal details.

---

[API](https://skmtc.net/kruzer-corp/apis/oms-api.md) · [All operations](https://skmtc.net/kruzer-corp/apis/oms-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kruzer-corp/oms-api/revisions/38ef6e16a7a8/schema)
