---
title: "Create product"
method: POST
path: "/api/v1/products"
tags: ["Catalog"]
---

# Create product

`POST /api/v1/products`

## Request

- Base URL: `https://merchant.zahlo.eu`
- URL: `https://merchant.zahlo.eu/api/v1/products`
- Auth: API key in header `x-api-key`

Create product. Use the response status and request ID to decide whether to retry, reconcile, or ask the customer for action.

## Headers

- `Idempotency-Key` string

## Request body

- ProductCreateRequest
  - `name` string, required
  - `description` string
  - `active` boolean
  - `unitLabel` string, nullable: Shown after amounts on the pay page, receipts and invoices ("€4.00 / kg"); null = per item.
  - `metadata` object: Up to 50 key-value pairs; keys up to 40 characters, values strings up to 500 characters.

## Response `201`

Resource created

- Product
  - `id` string, required
  - `name` string, required
  - `description` string
  - `active` boolean
  - `unitLabel` string, nullable: Shown after amounts on the pay page, receipts and invoices ("€4.00 / kg"); null = per item.
  - `metadata` object: Up to 50 key-value pairs; keys up to 40 characters, values strings up to 500 characters.

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `404`: Resource not found
- `409`: Request conflicts with existing state

---

[API](https://skmtc.dev/zahlo/apis/zahlo-merchant-api.md) - [All operations](https://skmtc.dev/zahlo/apis/zahlo-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zahlo/apis/zahlo-merchant-api/revisions/8fcbef981e0d?raw)
