Skip to main content
Use este endpoint quando o marketplace (pai) precisa manter o catálogo da filha — renomear ofertas, arquivar produtos, ajustar preços, mídias ou metadados — sem depender do OAT da sub-organização. O fluxo é adequado para back-offices centralizados, políticas de compliance (arquivar itens), ou automações que espelham dados de um sistema externo. O corpo da requisição é o mesmo conceito do PATCH /v1/products/:productId: apenas os campos enviados são aplicados. No backend, a rota delega para o mesmo fluxo de atualização de produtos usado pela API geral (productsService.update). Em caso de dúvidas sobre estrutura de prices ou campos customizados, consulte também Atualizar produto.

O que não faz este endpoint

  • Não altera fee_percent nem destinatário de comissão do marketplace: esses valores são definidos somente na criação do produto via Criar produto para sub-organização. Para mudar a taxa, será necessário um fluxo de produto novo ou evolução futura da API.
  • Não substitui o checkout ou assinaturas existentes: alterações de preço seguem as regras já aplicadas pelo serviço de produtos (incluindo planos de recorrência no gateway quando aplicável).

Webhooks

Após uma atualização bem-sucedida, o sistema dispara os eventos já previstos para produtos da filha, incluindo suborganization.product_updated para as organizações pais cadastradas em webhooks — útil para o marketplace reagir a mudanças de catálogo em tempo quase real.

Autenticação

Requer Organization Access Token (OAT) da organização pai via Authorization: Bearer.

Parâmetros de Path

orgId
string
required
Identificador da sub-organização dona do produto. Deve coincidir com organization_id do produto; caso contrário a API responde 404 (sem expor existência do produto em outra org).
productId
string
required
UUID do produto a atualizar.

Corpo da requisição (JSON)

Todos os campos são opcionais; envie apenas o que deseja alterar.
name
string
Novo nome do produto.
description
string
Nova descrição (pode ser null conforme suporte da API principal).
is_archived
boolean
Arquivar (true) ou restaurar visibilidade (false) do produto.
recurring_interval
string
Intervalo de assinatura: month, year, week, day, ou null para produto não recorrente, alinhado ao tipo ProductUpdate do backend.
prices
array
Lista de preços: objetos com id (preço existente a manter) ou definições amount_type / price_amount / price_currency etc., como no PATCH da API de produtos. Ver Atualizar produto para exemplos.
medias
array
Lista de IDs de arquivos (mídias associadas ao produto).
metadata
object
Metadados do produto (mapeados para user_metadata no banco).
reference_id
string
Referência externa idempotente do produto.

Resposta

Retorna 200 OK com o objeto completo do produto após a atualização (mesmo formato que PATCH /v1/products/:id).

Erros comuns

HTTPSituação
403Token não é OAT do pai, ou o pai não tem relação com orgId.
404Produto inexistente ou produto não pertence à orgId informada.
400Validação (preços inválidos, campos obrigatórios de subsistema, etc.).

Exemplo

curl -X PATCH "https://api.chargefy.io/api/v1/sdk/organizations/org_01j9abc333/products/prod_01j9xyz999" \
  -H "Authorization: Bearer $CHARGEFY_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Plano Mensal Plus",
    "description": "Inclui suporte prioritário",
    "is_archived": false
  }'

Resposta de exemplo

{
  "id": "prod_01j9xyz999",
  "name": "Plano Mensal Plus",
  "description": "Inclui suporte prioritário",
  "is_archived": false,
  "organization_id": "org_01j9abc333",
  "recurring_interval": "month",
  "prices": [],
  "metadata": {},
  "modified_at": "2026-03-24T15:00:00Z"
}