Referência da API
Atualizar produto
Atualiza campos do produto. Diferente de Offers, **todos os campos do Product são editáveis livremente** mesmo com Offers/Subscriptions ativas — porque mudar nome do produto não muda o valor cobrado nem o ciclo (esses estão na Offer). **Imagem:** este endpoint **não aceita** `imageUrl` no corpo. Use [POST /v2/products/:id/image](/docs/api/upload-product-image) pra trocar ou [DELETE /v2/products/:id/image](/docs/api/delete-product-image) pra remover. Produtos arquivados não podem ser editados.
/v2/products/:idimageUrl Enviar `imageUrl` aqui retorna 400. Use POST `/products/:id/image` (multipart) pra trocar a imagem ou DELETE `/products/:id/image` pra remover.Autenticação
HTTP Basic Auth. Envie sua secret key no header:
Authorization: Basic {base64(secret:SUA_SECRET_KEY)}Parâmetros
idstring (path, UUID)obrigatórioUUID do produto.
Exemplo: prd_111aaa-bbb-ccc
Body da requisição
Content-Type: application/json
{
"name": "Curso de Marketing Digital 2026",
"active": false
}Respostas
Produto atualizado. Retorna o objeto completo.
{
"id": "prd_111aaa-bbb-ccc",
"name": "Curso de Marketing Digital 2026",
"imageUrl": "https://seu-bucket.s3.us-east-1.amazonaws.com/products/u-1234/prd_111aaa-bbb-ccc.webp",
"active": false,
"updatedAt": "2026-05-26T15:45:12.501Z"
}Validação falhou, produto arquivado, novo externalId já existe, ou imageUrl enviado (use endpoint separado).
{
"status": 400,
"error": "imageUrl nao eh editavel aqui. Use POST /v2/products/:id/image pra trocar ou DELETE pra remover."
}Produto não encontrado.
{ "status": 404, "error": "Produto nao encontrado" }Exemplos
# Desativar produto (some das listagens de venda, mas Offers continuam funcionando)
curl -X PATCH "https://api.pagnovo.com/v2/products/prd_111aaa-bbb-ccc" \
-H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)" \
-H "Content-Type: application/json" \
-d '{ "active": false }'