> ## 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.

# Overview

> O objeto Discount Code

Um `discount_code` é o código que o comprador digita, como `BLACK20`. Ele aponta
para um `discount`, que guarda a regra econômica. Vários códigos podem apontar
para o mesmo desconto, cada um com validade, restrições de cliente, mínimo de
compra e limite próprios.

## Data Object

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

<ResponseField name="id" type="string">
  Identificador do código de desconto. Usa o prefixo `dcode_*`.
</ResponseField>

<ResponseField name="object" type="string">
  Sempre `"discount_code"`.
</ResponseField>

<ResponseField name="code" type="string">
  Código digitável pelo comprador.
</ResponseField>

<ResponseField name="created_at" type="string">
  Data de criação em ISO 8601.
</ResponseField>

<ResponseField name="customer" type="string | null">
  Cliente específico que pode resgatar o código. Vem `null` quando qualquer
  cliente pode usar.
</ResponseField>

<ResponseField name="discount" type="string">
  ID do desconto associado (`disc_*`).
</ResponseField>

<ResponseField name="expires_at" type="string | null">
  Data de expiração em ISO 8601. Vem `null` quando não há expiração.
</ResponseField>

<ResponseField name="first_time_transaction" type="boolean">
  `true` quando o código só pode ser usado por clientes sem atividade de
  cobrança anterior.
</ResponseField>

<ResponseField name="is_active" type="boolean">
  `true` quando o código pode ser usado em novas compras.
</ResponseField>

<ResponseField name="livemode" type="boolean">
  `true` em produção; `false` em ambiente de teste.
</ResponseField>

<ResponseField name="max_redemptions" type="integer | null">
  Limite total de usos do código. Vem `null` quando não há limite.
</ResponseField>

<ResponseField name="max_redemptions_per_customer" type="integer | null">
  Limite de usos por cliente. Vem `null` quando não há limite por cliente.
</ResponseField>

<ResponseField name="metadata" type="object">
  Objeto livre para correlacionar o código com o seu sistema. Quando vazio,
  retorna `{}`.
</ResponseField>

<ResponseField name="minimum_amount" type="integer | null">
  Valor mínimo da compra, em centavos. Vem `null` quando não há mínimo.
</ResponseField>

<ResponseField name="minimum_amount_currency" type="string | null">
  Moeda do valor mínimo em código de 3 letras minúsculas, como `brl`. Vem `null`
  quando não há valor mínimo.
</ResponseField>

<ResponseField name="redemptions_count" type="integer">
  Quantidade de vezes em que o código já foi usado.
</ResponseField>

<ResponseField name="updated_at" type="string | null">
  Data da última atualização em ISO 8601.
</ResponseField>

<ResponseField name="valid" type="boolean">
  `true` quando o código está ativo, dentro da janela de validade, acima do
  mínimo exigido e abaixo do limite de uso.
</ResponseField>

## Operações

* [Listar códigos](/api-reference/discount-codes/list)
* [Criar código](/api-reference/discount-codes/create)
* [Consultar código](/api-reference/discount-codes/get)
* [Atualizar código](/api-reference/discount-codes/update)
* [Remover código](/api-reference/discount-codes/delete)
