Skip to main content
curl -X POST "https://api.chargefy.io/v1/prices" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "brl",
    "product_id": "prod_123",
    "unit_amount": 4990
  }'
{
  "id": "price_123",
  "object": "price",
  "created_at": "2026-05-16T14:09:27Z",
  "currency": "brl",
  "is_active": true,
  "livemode": true,
  "metadata": {},
  "name": "Anual",
  "product": "prod_123",
  "recurring": {
    "interval": "year",
    "interval_count": 1,
    "trial_period_days": 14,
    "usage_type": "licensed"
  },
  "tax_behavior": "unspecified",
  "type": "recurring",
  "unit_amount": 99000,
  "updated_at": null
}
Cria um recurso price para um product existente. Campos de valor são imutáveis depois da criação: para mudar currency, unit_amount, type, recurring ou product_id, crie outro preço e desative o antigo. Use metadata para correlacionar o preço com IDs do seu sistema. Qualquer chave funciona; 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

currency
string
required
Código ISO 4217 em minúsculas. Ex.: brl, usd.
recurring
object
Obrigatório quando type é recurring. Vem ausente em preços one_time.
is_active
boolean
default:"true"
Se o preço fica disponível para novas vendas.
metadata
object
Objeto livre string → string. Padrão {}.
name
string
Rótulo interno do preço (ex.: "Mensal", "Anual"). Envie null para deixar vazio.
product_id
string
required
ID do produto (prod_*) dono do preço.
set_as_default
boolean
default:"false"
Quando true, atualiza product.default_price para apontar para este preço imediatamente após a criação.
tax_behavior
string
default:"unspecified"
unspecified, inclusive ou exclusive.
type
string
default:"one_time"
one_time ou recurring.
unit_amount
integer
required
Valor unitário em minor units (centavos). 0 é válido para one_time e recurring.
curl -X POST "https://api.chargefy.io/v1/prices" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "brl",
    "product_id": "prod_123",
    "unit_amount": 4990
  }'

Resposta

200 OK com o objeto price completo. Todo campo declarado pelo DTO público é sempre retornado; vazio é null ou {}.
CampoTipoObservação
idstringID do preço (price_*)
objectstringSempre "price"
productstringProduto dono
namestring | null
typestringone_time ou recurring
currencystringISO 4217 minúsculo
unit_amountintegerMinor units
recurringobject | nullnull em one_time; inclui interval, interval_count, trial_period_days, usage_type
tax_behaviorstringunspecified/inclusive/exclusive
is_activeboolean
livemodebooleantrue em produção; false em ambiente de teste
metadataobjectEco do metadata enviado
created_atstringISO 8601
updated_atstring | nullISO 8601
{
  "id": "price_123",
  "object": "price",
  "created_at": "2026-05-16T14:09:27Z",
  "currency": "brl",
  "is_active": true,
  "livemode": true,
  "metadata": {},
  "name": "Anual",
  "product": "prod_123",
  "recurring": {
    "interval": "year",
    "interval_count": 1,
    "trial_period_days": 14,
    "usage_type": "licensed"
  },
  "tax_behavior": "unspecified",
  "type": "recurring",
  "unit_amount": 99000,
  "updated_at": null
}

Erros comuns

StatuscodeQuando ocorre
400invalid_requestproduct_id ausente; currency não é ISO de 3 letras; unit_amount negativo ou ausente; type inválido
400invalid_requestrecurring.interval ausente em recurring; recurring.interval_count não-inteiro ou < 1
400invalid_requestrecurring enviado em one_time; tax_behavior inválido; metadata não-objeto
404resource_missingproduct_id não existe nesta organização

Webhook

A criação dispara price.created com o price completo em data.object.