> ## Documentation Index
> Fetch the complete documentation index at: https://scaleup-c34c4386.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PATCH /api/v1/sdk/organizations/:orgId/products/:productId

> Atualiza um produto pertencente à sub-organização filha, autenticando com o Organization Access Token da organização pai.

Use este endpoint quando o **marketplace (pai)** precisa **manter o catálogo da filha** — renomear ofertas, arquivar produtos, ajustar preços 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](https://scaleup-c34c4386.mintlify.site/api-reference/products/update.md).

### O que não faz este endpoint

* **Não altera** taxas de split ou destinatário de comissão: split pai/filha é configurado **uma única vez** na relação entre organizações (ver [link-as-parent](https://scaleup-c34c4386.mintlify.site/api-reference/sdk/organizations/link-as-parent.md)) e não é mais override por produto.
* 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.

**default\_price\_id** `string`

Aponta o default pra outro preço existente do mesmo produto. Para manipular preços (criar/atualizar/arquivar), use os endpoints dedicados [`POST /v1/prices`](https://scaleup-c34c4386.mintlify.site/api-reference/prices/create) e [`PATCH /v1/prices/:id`](https://scaleup-c34c4386.mintlify.site/api-reference/prices/update).

**metadata** `object`

Metadados livres (chave/valor) associados ao 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

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

## Exemplo

```bash cURL theme={null}
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
  }'
```

```typescript SDK theme={null}
import { Chargefy } from '@chargefy/sdk';

const chargefy = new Chargefy({ accessToken: process.env.CHARGEFY_ACCESS_TOKEN! });

const result = await chargefy.subOrganizations.updateProduct(
  'org_01j9abc333',
  'prod_01j9xyz999',
  {
    name: 'Plano Mensal Plus',
    description: 'Inclui suporte prioritário',
    isArchived: false,
  }
);
if (result.ok) console.log(result.value);
```

## Resposta de exemplo

```json theme={null}
{
  "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"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.