Skip to main content
Cria um recurso product. Você pode criar o produto sem preço e definir os valores depois via POST /v1/prices, ou enviar prices[] inline no mesmo request. Quando prices[] tem itens, o primeiro preço do array vira default_price, ou use default_price_index para escolher outro. name é obrigatório. Todo o resto tem padrão ou é resolvido pela Chargefy — inclusive o default_price quando você envia prices[]. Use metadata para correlacionar o produto com IDs do seu sistema. Qualquer chave funciona (ex.: sku, reference_id); o objeto inteiro é retornado em todos os webhooks.

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
default:"0"
Índice do preço em prices[] que vira default_price. Padrão: 0 (o primeiro preço do array). Enviado sem prices[], ou fora do range do array, retorna erro 400.
string
Descrição livre. Envie null para deixar vazio.
string
URL retornada por POST /v1/files com purpose=product_image. Envie null para deixar vazio. URLs externas não são aceitas.
boolean
default:"true"
Indica se o produto é tributável. Padrão: true.
array
Lista de recursos de marketing exibidos ao comprador nas superfícies de venda. No máximo 15 itens. Padrão [].
object
Objeto livre string → string para correlacionar com o seu sistema. Padrão {}.
string
required
Nome do produto exibido em checkout, faturas e webhooks.
array
Lista opcional de preços inline. Cada item segue o mesmo shape de POST /v1/prices (sem product_id). Quando omitido ou vazio, o produto nasce com default_price: null e prices: [].

O que a Chargefy resolve sozinha

  • default_price — com prices[], aponta para prices[default_price_index] (o primeiro, por padrão); sem prices[], fica null.
  • is_active — o produto nasce ativo.
  • is_tax_applicable — sem valor explícito, true.
  • marketing_features e metadata — sem valor explícito, [] e {}.
  • Preços inline — cada item de prices[] herda os mesmos padrões de POST /v1/prices: type one_time, interval_count 1, tax_behavior unspecified, is_active true.
  • Webhooks — além de product.created, cada preço inline dispara o próprio price.created.

Resposta

200 OK com o objeto product completo. Todo campo declarado pelo DTO público é sempre retornado; vazio é null, {} ou [].

Erros comuns

Webhook

A criação dispara product.created com o product completo em data.object. Cada preço inline também dispara price.created.