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

Um `discount` define a regra econômica: percentual ou valor fixo, duração,
validade, limite de resgates e escopo de produtos. Ele não precisa ter código
público. Para permitir que compradores digitem um cupom no checkout, crie um
[`discount_code`](/api-reference/discount-codes/object) apontando para o desconto.

Aplicações concretas são registradas internamente como redemptions, com snapshot
da regra e do código no momento da cobrança.

## Data Object

```json theme={}
{
  "id": "disc_123",
  "object": "discount",
  "amount_off": null,
  "applies_to": {
    "products": [
      "prod_123"
    ]
  },
  "created_at": "2026-05-21T12:00:00Z",
  "currency": null,
  "duration": "once",
  "duration_in_months": null,
  "expires_at": "2026-06-01T00:00:00Z",
  "is_active": true,
  "livemode": true,
  "max_redemptions": 500,
  "metadata": {},
  "name": "Black Friday 20%",
  "percent_off_basis_points": 2000,
  "redemptions_count": 0,
  "starts_at": null,
  "type": "percentage",
  "updated_at": null,
  "valid": true
}
```

<ResponseField name="id" type="string">
  Identificador do desconto. Usa o prefixo `disc_*`.
</ResponseField>

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

<ResponseField name="amount_off" type="integer | null">
  Valor fixo do desconto, em centavos. Vem `null` quando `type` é `percentage`.
</ResponseField>

<ResponseField name="applies_to" type="object">
  Escopo de produtos onde o desconto pode ser aplicado.

  <Expandable title="Campos de applies_to">
    <ResponseField name="products" type="array">
      IDs dos produtos elegíveis. Quando vazio, o desconto pode ser aplicado a
      qualquer produto elegível da compra.
    </ResponseField>
  </Expandable>
</ResponseField>

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

<ResponseField name="currency" type="string | null">
  Moeda do valor fixo em código de 3 letras minúsculas, como `brl`. Vem `null`
  quando `type` é `percentage`.
</ResponseField>

<ResponseField name="duration" type="string">
  Duração do desconto: `once`, `repeating` ou `forever`.
</ResponseField>

<ResponseField name="duration_in_months" type="integer | null">
  Quantidade de meses quando `duration` é `repeating`.
</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="is_active" type="boolean">
  `true` quando o desconto 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 aplicações do desconto. Vem `null` quando não há limite.
</ResponseField>

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

<ResponseField name="name" type="string | null">
  Nome público ou interno do desconto.
</ResponseField>

<ResponseField name="percent_off_basis_points" type="integer | null">
  Percentual do desconto em basis points. Vem `null` quando `type` é `fixed_amount`.
</ResponseField>

<ResponseField name="redemptions_count" type="integer">
  Quantidade de vezes em que o desconto já foi aplicado.
</ResponseField>

<ResponseField name="starts_at" type="string | null">
  Data inicial de validade em ISO 8601. Vem `null` quando o desconto já pode ser
  usado.
</ResponseField>

<ResponseField name="type" type="string">
  Tipo econômico do desconto: `percentage` ou `fixed_amount`.
</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 desconto está ativo, dentro da janela de validade e abaixo do
  limite de uso.
</ResponseField>

## Operações

* [Listar descontos](/api-reference/discounts/list)
* [Criar desconto](/api-reference/discounts/create)
* [Consultar desconto](/api-reference/discounts/get)
* [Atualizar desconto](/api-reference/discounts/update)
* [Remover desconto](/api-reference/discounts/delete)
