Skip to main content

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.

Cria uma Price (preço) vinculada a um produto. É imutável após criação (para alterar currency, unit_amount, interval, crie uma price nova e arquive a antiga). Use este endpoint quando precisar adicionar uma tabela de preços alternativa a um produto existente (ex.: uma versão mensal e outra anual do mesmo plano).

Autenticação

Requer Bearer JWT do Supabase (sessão de usuário admin). O produto deve pertencer a uma organização acessível pelo usuário.

Corpo da requisição

product_id
string
required
UUID do produto dono desta price.
name
string
Nome descritivo opcional (ex: “Mensal”, “Anual Early Bird”, “Equipe 10+”). Livre, não tem impacto em cobrança.
currency
string
required
Código ISO de 3 letras em minúsculas (ex: brl).
unit_amount
integer
required
Valor unitário em minor units (centavos). 0 é válido apenas para type='one_time'.
type
string
one_time (padrão) ou recurring.
interval
string
Obrigatório quando type=recurring. Valores: day, week, month, year.
interval_count
integer
Quantidade de intervalos entre cobranças. Padrão: 1 quando type=recurring.
tax_behavior
string
unspecified (padrão), inclusive ou exclusive.
metadata
object
Metadados livres (chave/valor).
active
boolean
Padrão: true. Prices arquivadas (false) continuam existindo mas não são usadas em novos checkouts.
set_as_default
boolean
Quando true, atualiza products.default_price_id para apontar pra esta nova price. Padrão: false.

Resposta

Retorna a price criada (Row completa) com status 201 Created. Para prices recurring, o backend tenta criar um plano de recorrência de forma best-effort — se conseguir, o campo zoop_recurrence_plan_id vem preenchido.

Erros comuns

HTTPSituação
400Validação: currency inválida, unit_amount < 0, recurring sem interval, etc.
403Usuário sem acesso à organização dona do produto.
404product_id não encontrado ou soft-deleted.

Exemplo

curl -X POST "https://<project>.functions.supabase.co/create-price" \
  -H "Authorization: Bearer $SUPABASE_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": "prod_01j9xyz999",
    "currency": "brl",
    "unit_amount": 99000,
    "type": "recurring",
    "interval": "year",
    "interval_count": 1,
    "set_as_default": false
  }'

Resposta de exemplo

{
  "id": "price_01j9xyz998",
  "product_id": "prod_01j9xyz999",
  "type": "recurring",
  "currency": "brl",
  "unit_amount": 99000,
  "interval": "year",
  "interval_count": 1,
  "tax_behavior": "unspecified",
  "metadata": {},
  "active": true,
  "zoop_recurrence_plan_id": "zpp_year_abc",
  "created_at": "2026-04-22T15:00:00Z",
  "modified_at": null,
  "deleted_at": null
}

Relação