Skip to main content
Cria um discount. Para um cupom digitável pelo comprador, crie depois um discount_code com discount_id. Obrigatórios: name e type. O campo de valor depende do type — exatamente um dos dois formatos: type=fixed exige amount_off + currency; type=percentage exige percent_off_basis_points. Enviar o formato errado para o type escolhido (ou nenhum) retorna 400. Todo o resto tem default.

Autenticação

A API key da própria organização atua diretamente. A API key de plataforma exige o header Organization: <organization_id> apontando para uma organização conectada ativa.

Attributes

integer
Valor fixo em centavos (inteiro positivo). Obrigatório quando type=fixed; só válido com type=fixed.
object
Escopo do desconto. Use products com IDs prod_*; array vazio (padrão) aplica a todos os produtos. Todos os IDs precisam ser de produtos ativos da organização — ID desconhecido ou de outra organização retorna 400. Quando há produtos definidos, o abatimento é calculado somente sobre o subtotal das linhas elegíveis.
string
Código ISO de 3 letras (normalizado para minúsculas). Obrigatório quando type=fixed; só válido com type=fixed.
string
default:"once"
Duração do desconto em cobranças recorrentes.
integer
Número de meses (inteiro positivo). Obrigatório quando duration=repeating; para once e forever é ignorado e fica null.
string
Data ISO 8601 de expiração. Padrão: null (sem expiração). Precisa ser posterior a starts_at quando ambos são enviados.
boolean
default:"true"
Se o desconto nasce ativo. Padrão: true.
integer
Limite total de aplicações (inteiro positivo). Padrão: null (sem limite).
object
Objeto livre para correlação. Padrão: {}.
string
required
Nome do desconto.
integer
Percentual em basis points, de 1 a 10000 (2000 = 20%). Obrigatório quando type=percentage; só válido com type=percentage.
string
Data ISO 8601 a partir da qual o desconto passa a valer. Padrão: null (vale imediatamente). Precisa ser anterior a expires_at quando ambos são enviados — senão 400.
string
required
Tipo econômico do desconto.

O que a Chargefy resolve sozinha

  • duration nasce once quando omitido.
  • O campo de valor do tipo não usado é zerado: type=fixed deixa percent_off_basis_points como null; type=percentage deixa amount_off e currency como null.
  • duration_in_months fica null quando duration não é repeating.
  • is_active nasce true e redemptions_count nasce 0.
  • currency é normalizada para minúsculas.

Resposta

200 OK com o objeto discount completo.