> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Discount Code

> Cria um código resgatável para um desconto.

Cria um `discount_code` para um `discount` existente. Se `code` não for enviado,
um código é gerado automaticamente.

## Attributes

<ParamField body="code" type="string">
  Código público. Aceita letras, números e hífens; é normalizado para
  maiúsculas.
</ParamField>

<ParamField body="discount_id" type="string" required>
  ID do desconto (`disc_*`).
</ParamField>

<ParamField body="customer" type="string">
  Cliente específico (`cus_*`) que pode resgatar este código. Quando omitido,
  qualquer cliente pode usar.
</ParamField>

<ParamField body="expires_at" type="string">
  Data ISO 8601 de expiração do código.
</ParamField>

<ParamField body="first_time_transaction" type="boolean" default="false">
  Quando `true`, restringe o resgate a clientes sem atividade de cobrança
  anterior.
</ParamField>

<ParamField body="max_redemptions" type="integer">
  Limite total de aplicações deste código.
</ParamField>

<ParamField body="max_redemptions_per_customer" type="integer">
  Limite de aplicações por cliente para este código.
</ParamField>

<ParamField body="metadata" type="object">
  Objeto livre para correlação.
</ParamField>

<ParamField body="minimum_amount" type="integer">
  Valor mínimo da compra em centavos.
</ParamField>

<ParamField body="minimum_amount_currency" type="string">
  Moeda do valor mínimo. Obrigatório quando `minimum_amount` é enviado.
</ParamField>

<RequestExample>
  ```bash cURL theme={}
  curl -X POST "https://api.chargefy.io/v1/discount-codes" \
    -H "Authorization: Bearer {{API_KEY}}" \
    -H "Content-Type: application/json" \
    -d '{
      "discount_id": "disc_123"
    }'
  ```
</RequestExample>

## Resposta

<ResponseExample>
  ```json 200 theme={}
  {
    "id": "dcode_123",
    "object": "discount_code",
    "code": "BLACK20",
    "created_at": "2026-05-21T12:00:00Z",
    "customer": "cus_123",
    "discount": "disc_123",
    "expires_at": null,
    "first_time_transaction": true,
    "is_active": true,
    "livemode": true,
    "max_redemptions": 500,
    "max_redemptions_per_customer": 1,
    "metadata": {},
    "minimum_amount": 10000,
    "minimum_amount_currency": "brl",
    "redemptions_count": 0,
    "updated_at": null,
    "valid": true
  }
  ```
</ResponseExample>
