# Kupony API

> Vytvářejte kupony a spravujte jejich zásoby jedinečných kódů pro e-maily.

Základní URL: `https://api.emailit.com/v2`. Autentizujte se hlavičkou `Authorization: Bearer <API key>`.

## Vytvoření kuponu — POST /coupons

> Vytvořte pro své e-maily kupon se zásobou jedinečných kódů, nebo s jedním sdíleným kódem. Alfaverze: otevřená jen týmu Emailitu.

# Vytvoření kuponu

Vytvoří kupon. Do e-mailu ho vložíte pomocí `{{coupon "key"}}`: když se e-mail vykreslí, každý příjemce dostane kód. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

- Kupon typu **unique** obsahuje zásobu jednorázových kódů. Každému příjemci se přidělí nejstarší volný kód, jeden pro každou kampaň nebo automatizaci, a stejný kód dostane znovu pokaždé, když se mu tento e-mail vykreslí. Kódy ze svého obchodu nahrajte tady nebo endpointem [Přidání kódů ke kuponu](/cs/docs/api-reference/coupons/add-codes/), nebo kódy vygenerujte v Emailitu a naimportujte je do svého obchodu.
- Kupon typu **static** má jeden kód, `static_code`, pro všechny.

Když [objednávka](/cs/docs/api-reference/orders/create/) uvede kód v `coupon_codes`, kód se označí jako uplatněný. Viz [Produkty, kupony a košík](/cs/docs/campaigns/products-and-coupons/#coupon-codes).

`POST /coupons`

## Tělo požadavku

- `key` (string, povinné): Název, který používáte v obsahu, jedinečný ve workspace. 1 až 64 malých písmen, číslic, `-` nebo `_`, na začátku písmeno nebo číslice. Velká písmena se převedou na malá.

- `name` (string, povinné): Název kuponu zobrazovaný ve webovém rozhraní, nejvýše 191 znaků.

- `description` (string | null): Poznámka pro váš tým. Delší text se zkrátí na 1 000 znaků.

- `kind` (string): `unique` (výchozí hodnota), nebo `static`.

- `static_code` (string | null): Nejvýše 191 znaků. Povinné u kuponu typu static: kód, který dostanou všichni. U kuponu typu unique text, který příjemci dostanou, když je zásoba prázdná nebo kupon vypršel. Bez něj dostanou prázdný řetězec.

- `discount_label` (string | null): Krátký popis slevy, například `10% off`. Delší text se zkrátí na 191 znaků.

- `expires_at` (string | null): Datum a čas ve formátu ISO 8601. Po něm dostanou příjemci kuponu typu unique místo kódu `static_code`, a to i v e-mailech vykreslených znovu. Emailit platnost ve vašem obchodě nevynucuje.

- `codes` (string[] | string): Kódy, které se přidají do zásoby: pole, nebo text s jedním kódem na řádek. U textu ve formátu CSV se čte první sloupec a záhlaví jako `code` nebo `coupon_code` se přeskočí. Kód má 2 až 64 písmen, číslic, `-`, `_` nebo `.` a začíná písmenem nebo číslicí. Neplatné kódy se vynechají a duplicity se přidají jednou. Až 10 000 kódů.

## Odpověď

`201 Created` s [objektem kuponu](/cs/docs/api-reference/coupons/get/). Pokud je některé pole neplatné nebo stejný klíč už má jiný kupon, vrací `422`.
**Požadavek** `POST /coupons`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/coupons \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "welcome-10",
    "name": "Welcome 10% off",
    "description": "First-order discount for new subscribers.",
    "kind": "unique",
    "static_code": "WELCOME10",
    "discount_label": "10% off",
    "expires_at": "2026-12-31T23:59:59Z",
    "codes": ["WELCOME-7KQ2M9XA", "WELCOME-H4TZ8RCN", "WELCOME-P2WD6YFE"]
  }'
```

**201**

```json
{
  "object": "coupon",
  "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
  "key": "welcome-10",
  "name": "Welcome 10% off",
  "description": "First-order discount for new subscribers.",
  "kind": "unique",
  "static_code": "WELCOME10",
  "discount_label": "10% off",
  "expires_at": "2026-12-31T23:59:59.000Z",
  "codes_total": 3,
  "codes_available": 3,
  "codes_assigned": 0,
  "codes_redeemed": 0,
  "created_at": "2026-10-01T09:00:12.304Z",
  "updated_at": "2026-10-01T09:00:12.304Z"
}
```

**422**

```json
{
  "message": "Validation failed. key: A coupon with this key already exists.",
  "errors": {
    "key": [
      "A coupon with this key already exists."
    ]
  }
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/create/

## Načtení kuponu — GET /coupons/{id}

> Načtěte kupon podle jeho ID nebo klíče s počty dostupných, přidělených a uplatněných kódů. Alfaverze: otevřená jen týmu Emailitu.

# Načtení kuponu

Načte kupon podle jeho ID nebo klíče s počty jeho kódů. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

`GET /coupons/{id}`

## Parametry v cestě

- `id` (string, povinné): ID kuponu (`cpn_...`), nebo `key` kuponu.

## Objekt kuponu

- `object` (string): Vždy `coupon`.

- `id` (string): ID kuponu (`cpn_...`).

- `key` (string): Název, který používáte v obsahu e-mailu: `{{coupon "welcome-10"}}`. Viz [Produkty, kupony a košík](/cs/docs/campaigns/products-and-coupons/#coupon-codes).

- `name` (string): Název kuponu zobrazovaný ve webovém rozhraní.

- `description` (string | null): Poznámka pro váš tým.

- `kind` (string): - `unique`: zásoba jednorázových kódů. Každý příjemce dostane vlastní kód, jeden pro každou kampaň nebo automatizaci, a když se mu e-mail vykreslí znovu, dostane stejný kód. - `static`: jeden kód, `static_code`, pro všechny.

- `static_code` (string | null): Sdílený kód kuponu typu static. U kuponu typu unique text, který příjemci dostanou, když už nezbývá žádný kód nebo kupon vypršel. Bez něj dostanou prázdný řetězec.

- `discount_label` (string | null): Krátký popis slevy, například `10% off`.

- `expires_at` (string | null): Po tomto čase dostanou příjemci kuponu typu unique místo kódu `static_code`.

- `codes_total` (integer): Kódy v zásobě.

- `codes_available` (integer): Kódy, které lze ještě rozdat: nejsou přidělené žádnému kontaktu ani použité v objednávce.

- `codes_assigned` (integer): Kódy přidělené kontaktu, včetně těch, které už byly uplatněny.

- `codes_redeemed` (integer): Kódy použité v [objednávce](/cs/docs/api-reference/orders/create/) (`coupon_codes`).

- `created_at, updated_at` (string): Kdy byl kupon vytvořen a kdy se naposledy změnil, ve formátu ISO 8601 v UTC.

**Požadavek** `GET /coupons/{id}`

**cURL**

```bash
curl https://api.emailit.com/v2/coupons/welcome-10 \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "object": "coupon",
  "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
  "key": "welcome-10",
  "name": "Welcome 10% off",
  "description": "First-order discount for new subscribers.",
  "kind": "unique",
  "static_code": "WELCOME10",
  "discount_label": "10% off",
  "expires_at": "2026-12-31T23:59:59.000Z",
  "codes_total": 5000,
  "codes_available": 3812,
  "codes_assigned": 1188,
  "codes_redeemed": 143,
  "created_at": "2026-10-01T09:00:12.304Z",
  "updated_at": "2026-10-01T09:00:12.304Z"
}
```

**404**

```json
{
  "error": "Coupon not found",
  "message": "Coupon not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/get/

## Úprava kuponu — POST /coupons/{id}

> Změňte klíč, název, typ, náhradní nebo sdílený kód, popisek nebo platnost kuponu. Alfaverze: otevřená jen týmu Emailitu.

# Úprava kuponu

Upraví kupon. Změní se jen pole, která pošlete. Kódy přidáte endpointem [Přidání kódů ke kuponu](/cs/docs/api-reference/coupons/add-codes/): `codes` se v tomto požadavku ignoruje. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

Pokud změníte `key`, upravte i značky `{{coupon "key"}}` ve svých e-mailech: Emailit kupony dohledává podle klíče v obsahu.

`POST /coupons/{id}`

## Parametry v cestě

- `id` (string, povinné): ID kuponu (`cpn_...`), nebo aktuální `key` kuponu.

## Tělo požadavku

Kterékoli z polí `key`, `name`, `description`, `kind`, `static_code`, `discount_label` a `expires_at` s pravidly endpointu [Vytvoření kuponu](/cs/docs/api-reference/coupons/create/). Pokud chcete `description`, `static_code`, `discount_label` nebo `expires_at` vymazat, pošlete `null`. Kupon, který je typu `static` nebo se jím stane, musí mít `static_code`.

## Odpověď

`200 OK` s upraveným [objektem kuponu](/cs/docs/api-reference/coupons/get/). Pokud parametru `id` neodpovídá žádný kupon, vrací `404`, a pokud je některé pole neplatné nebo je nový klíč už obsazený, vrací `422`.
**Požadavek** `POST /coupons/{id}`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/coupons/welcome-10 \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "expires_at": "2027-01-31T23:59:59Z" }'
```

**200**

```json
{
  "object": "coupon",
  "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
  "key": "welcome-10",
  "name": "Welcome 10% off",
  "description": "First-order discount for new subscribers.",
  "kind": "unique",
  "static_code": "WELCOME10",
  "discount_label": "10% off",
  "expires_at": "2027-01-31T23:59:59.000Z",
  "codes_total": 5000,
  "codes_available": 3812,
  "codes_assigned": 1188,
  "codes_redeemed": 143,
  "created_at": "2026-10-01T09:00:12.304Z",
  "updated_at": "2026-10-09T15:47:20.061Z"
}
```

**404**

```json
{
  "error": "Coupon not found",
  "message": "Coupon not found."
}
```

**422**

```json
{
  "message": "Validation failed. static_code: A static coupon needs its code.",
  "errors": {
    "static_code": [
      "A static coupon needs its code."
    ]
  }
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/update/

## Výpis kuponů — GET /coupons

> Vypište kupony ve svém workspace od nejnovějších s počty jejich kódů. Alfaverze: otevřená jen týmu Emailitu.

# Výpis kuponů

Vypíše kupony ve vašem workspace, nejnovější jako první, s počty jejich kódů. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

`GET /coupons`

## Parametry dotazu

- `page` (integer): Číslo stránky pro stránkování (nejméně 1, výchozí hodnota 1).

- `limit` (integer): Počet kuponů, které se vrátí (nejméně 1, nejvýše 100, výchozí hodnota 25).

- `search` (string): Hledá v názvu nebo klíči kuponu bez ohledu na velikost písmen.

- `match`, `order`, `direction`: viz [Filtrování](https://emailit.com/cs/docs/api-reference/filtering/).

## Filtry a řazení

Klíče filtrů a řazení: viz [Filtrování](https://emailit.com/cs/docs/api-reference/filtering/).

## Odpověď

Stránka [objektů kuponů](/cs/docs/api-reference/coupons/get/) v poli `data` a k tomu `total_records`, `next_page_url` a `previous_page_url`. URL stránek nesou jen `page` a `limit`, takže když na ně přejdete, přidejte znovu své vyhledávání a filtry.
**Požadavek** `GET /coupons`

**cURL**

```bash
curl "https://api.emailit.com/v2/coupons?kind.exact=unique" \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": [
    {
      "object": "coupon",
      "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
      "key": "welcome-10",
      "name": "Welcome 10% off",
      "description": "First-order discount for new subscribers.",
      "kind": "unique",
      "static_code": "WELCOME10",
      "discount_label": "10% off",
      "expires_at": "2026-12-31T23:59:59.000Z",
      "codes_total": 5000,
      "codes_available": 3812,
      "codes_assigned": 1188,
      "codes_redeemed": 143,
      "created_at": "2026-10-01T09:00:12.304Z",
      "updated_at": "2026-10-01T09:00:12.304Z"
    }
  ],
  "total_records": 1,
  "next_page_url": null,
  "previous_page_url": null
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/list/

## Smazání kuponu — DELETE /coupons/{id}

> Smažte kupon i se všemi jeho kódy. Alfaverze: otevřená jen týmu Emailitu.

# Smazání kuponu

Smaže kupon spolu se všemi jeho kódy, včetně přidělených a uplatněných. Objednávky si kódy ve svém `coupon_codes` ponechají. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

`DELETE /coupons/{id}`

## Parametry v cestě

- `id` (string, povinné): ID kuponu (`cpn_...`), nebo `key` kuponu.

**Požadavek** `DELETE /coupons/{id}`

**cURL**

```bash
curl -X DELETE https://api.emailit.com/v2/coupons/cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "object": "coupon",
  "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
  "deleted": true
}
```

**404**

```json
{
  "error": "Coupon not found",
  "message": "Coupon not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/delete/

## Výpis kódů kuponu — GET /coupons/{id}/codes

> Vypište kódy kuponu s tím, komu byly přiděleny a zda byly uplatněny, jako JSON, nebo jako export CSV. Alfaverze: otevřená jen týmu Emailitu.

# Výpis kódů kuponu

Vypíše kódy kuponu, nejstarší jako první: v pořadí, v jakém se rozdávají. Pomocí `format=csv` je vyexportujete, například abyste vygenerované kódy naimportovali do svého obchodu. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

`GET /coupons/{id}/codes`

## Parametry v cestě

- `id` (string, povinné): ID kuponu (`cpn_...`), nebo `key` kuponu.

## Parametry dotazu

- `page` (integer): Číslo stránky pro stránkování (nejméně 1, výchozí hodnota 1).

- `limit` (integer): Počet kódů, které se vrátí (nejméně 1, nejvýše 100, výchozí hodnota 50).

- `status` (string): - `available`: kód není přidělený žádnému kontaktu ani použitý v objednávce, takže ho lze ještě rozdat. - `assigned`: kód je přidělený kontaktu a není uplatněný. - `redeemed`: kód byl použit v objednávce.

- `format` (string): `json` (výchozí hodnota), nebo `csv`. CSV vrátí všechny kódy odpovídající `status` v jednom souboru, bez stránkování, se sloupci `code`, `status`, `email`, `assigned_at` a `redeemed_at`. Filtry `key.condition` a řazení se na CSV nevztahují.

- `match`, `order`, `direction`: viz [Filtrování](https://emailit.com/cs/docs/api-reference/filtering/).

## Filtry a řazení

Klíče filtrů a řazení: viz [Filtrování](https://emailit.com/cs/docs/api-reference/filtering/).

## Odpověď

Stránka kódů kuponu v poli `data` a k tomu `total_records`, `next_page_url` a `previous_page_url`. Každý kód má:

- `object` (string): Vždy `coupon_code`.

- `id` (string): ID kódu (`cpc_...`).

- `code` (string): Samotný kód.

- `contact_id, email` (string | null): Kontakt, kterému je kód přidělený, nebo `null`.

- `source_id` (string | null): Kampaň (`cmp_...`) nebo automatizace (`aut_...`), jejíž e-mail kód dostal.

- `assigned_at` (string | null): Kdy byl kód přidělen.

- `redeemed_at, redeemed_order_id` (string | null): Kdy byl kód uplatněn a kterou objednávkou (`ord_...`).

- `created_at` (string): Kdy byl kód přidán do zásoby.

**Požadavek** `GET /coupons/{id}/codes`

**cURL**

```bash
curl "https://api.emailit.com/v2/coupons/welcome-10/codes?status=assigned&limit=2" \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": [
    {
      "object": "coupon_code",
      "id": "cpc_3s6oCjlRbLFujYObEAcuiZmGKqu",
      "code": "WELCOME-H4TZ8RCN",
      "contact_id": "con_3MjLVacsYA6keJucAbOs3o3XhyA",
      "email": "grace@example.com",
      "source_id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
      "assigned_at": "2026-10-08T09:00:41.773Z",
      "redeemed_at": null,
      "redeemed_order_id": null,
      "created_at": "2026-10-01T09:00:12.304Z"
    },
    {
      "object": "coupon_code",
      "id": "cpc_3u9TrZTopqOgaqT9FcZFareUFGj",
      "code": "WELCOME-P2WD6YFE",
      "contact_id": "con_3EwrXnu9OaQWlfI1AyPUUEoYjQs",
      "email": "ada@example.com",
      "source_id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
      "assigned_at": "2026-10-08T09:00:41.802Z",
      "redeemed_at": null,
      "redeemed_order_id": null,
      "created_at": "2026-10-01T09:00:12.304Z"
    }
  ],
  "total_records": 1045,
  "next_page_url": "/v2/coupons/cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ/codes?page=2&limit=2",
  "previous_page_url": null
}
```

**CSV**

```text
code,status,email,assigned_at,redeemed_at
WELCOME-7KQ2M9XA,redeemed,ada@example.com,2026-10-08T09:00:41.751Z,2026-10-08T14:32:10.000Z
WELCOME-H4TZ8RCN,assigned,grace@example.com,2026-10-08T09:00:41.773Z,
WELCOME-QX3B9NMV,available,,,
```

**404**

```json
{
  "error": "Coupon not found",
  "message": "Coupon not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/list-codes/

## Přidání kódů ke kuponu — POST /coupons/{id}/codes

> Nahrajte kódy ze svého obchodu do kuponu typu unique, nebo nechte Emailit vygenerovat náhodné kódy. Alfaverze: otevřená jen týmu Emailitu.

# Přidání kódů ke kuponu

Přidá kódy do zásoby kuponu typu unique. Buď nahrajte kódy, které existují ve vašem obchodě, pomocí `codes`, nebo nechte Emailit vytvořit náhodné kódy pomocí `generate` a pak je naimportujte do svého obchodu přes [Výpis kódů kuponu](/cs/docs/api-reference/coupons/list-codes/) (`format=csv`). Kódy, které už v zásobě jsou, se přeskočí. Kupony typu static mají jeden kód a vracejí `422`. Vyžaduje API klíč s oprávněním `full`.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. Ostatní požadavky vracejí `403` s `error: "commerce_alpha"`. API klíče fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

`POST /coupons/{id}/codes`

## Parametry v cestě

- `id` (string, povinné): ID kuponu (`cpn_...`), nebo `key` kuponu.

## Tělo požadavku

Pošlete `codes`, nebo `generate`. Když pošlete obojí, použije se `generate`.

- `codes` (string[] | string): Až 10 000 kódů: pole, nebo text s jedním kódem na řádek. U textu ve formátu CSV se čte první sloupec a záhlaví jako `code` nebo `coupon_code` se přeskočí. Kód má 2 až 64 písmen, číslic, `-`, `_` nebo `.` a začíná písmenem nebo číslicí. Kódy, které tomu neodpovídají, se vrátí v `invalid`.

- `generate` (object): Vytvoří náhodné kódy z velkých písmen a číslic, bez snadno zaměnitelných znaků `0`, `O`, `1` a `I`. - `count` (integer, povinné): 1 až 10 000 kódů. - `prefix` (string): nejvýše 20 písmen, číslic, `-` nebo `_`, které se vloží před každý kód. Například `WELCOME-`. - `length` (integer): počet náhodných znaků za předponou, od 4 do 32. Výchozí hodnota je 8. Hodnoty mimo tento rozsah se upraví na nejbližší povolenou hodnotu.

## Odpověď

- `added` (integer): Kódy přidané do zásoby.

- `skipped` (integer): Kódy, které už v zásobě byly.

- `invalid` (string[]): Nahrané hodnoty, které nejsou platnými kódy a nepřidaly se.

- `coupon` (object): [Objekt kuponu](/cs/docs/api-reference/coupons/get/) s novými počty.

Pokud parametru `id` neodpovídá žádný kupon, vrací `404`. `422` vrací u kuponu typu static, když nebyl odeslán žádný platný kód, když bylo odesláno víc než 10 000 kódů, nebo když je `generate.count` nebo `generate.prefix` mimo povolený rozsah.
**Požadavek** `POST /coupons/{id}/codes`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/coupons/welcome-10/codes \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "generate": { "count": 5000, "prefix": "WELCOME-", "length": 8 } }'
```

**200**

```json
{
  "added": 5000,
  "skipped": 0,
  "invalid": [],
  "coupon": {
    "object": "coupon",
    "id": "cpn_3sMKUvFbx63T9hhDoNea7fmo1fQ",
    "key": "welcome-10",
    "name": "Welcome 10% off",
    "description": "First-order discount for new subscribers.",
    "kind": "unique",
    "static_code": "WELCOME10",
    "discount_label": "10% off",
    "expires_at": "2026-12-31T23:59:59.000Z",
    "codes_total": 5003,
    "codes_available": 5003,
    "codes_assigned": 0,
    "codes_redeemed": 0,
    "created_at": "2026-10-01T09:00:12.304Z",
    "updated_at": "2026-10-01T09:00:12.304Z"
  }
}
```

**422**

```json
{
  "message": "Validation failed. codes: Static coupons have one code; set static_code instead.",
  "errors": {
    "codes": [
      "Static coupons have one code; set static_code instead."
    ]
  }
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/coupons/add-codes/
