Atualizar um produto
PUT e PATCH usam o mesmo handler e são equivalentes — ambos aplicam um patch parcial; envie
| Operação | Método | Endpoint |
|---|---|---|
| Atualizar (parcial) | PATCH | /v1/products/{productId} |
| Atualizar (alias) | PUT | /v1/products/{productId} |
| Excluir | DELETE | /v1/products/{productId} |
PUT e PATCH usam o mesmo handler e são equivalentes — ambos aplicam um patch parcial; envie
apenas os campos que deseja alterar (ao menos um). Escopos: products:update / products:delete.
Atualizar produto
PATCH / PUT /v1/products/{productId}
Atualiza apenas os dados do produto. As variantes não são alteradas por aqui — use os
endpoints de Variantes. O slug é regenerado automaticamente quando o name muda
(não é aceito na requisição). Os campos aceitos são os mesmos da criação
(exceto variants), todos opcionais.
curl -X PATCH "https://api.selectwin.io/v1/products/prd_01hqzvabc" \
-H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ" \
-H "Content-Type: application/json" \
-d '{
"name": "Premium Course",
"description": "Curso completo (2026)",
"enabled": true,
"type": "digital",
"language": "pt-BR",
"category": "courses",
"warrantyDays": 30,
"salesPage": "https://loja.com/premium",
"externalReference": "SKU-EXT-1"
}'Resposta 200 OK
Retorna o produto completo (mesmo formato de Consultar), já com as variantes:
{
"id": "prd_01hqzvabc",
"name": "Premium Course",
"slug": "premium-course",
"salesPage": "https://loja.com/premium",
"description": "Curso completo (2026)",
"language": "pt-BR",
"enabled": true,
"salesQty": 42,
"type": "digital",
"category": "courses",
"externalReference": "SKU-EXT-1",
"warrantyDays": 30,
"images": ["https://example.com/img1.png"],
"imageAssetIds": null,
"createdAt": "2026-04-12T17:56:33.000Z",
"updatedAt": "2026-04-12T18:00:00.000Z",
"variants": [
{
"id": "var_01hqzvabc",
"productId": "prd_01hqzvabc",
"name": "Mensal",
"slug": "mensal",
"description": "Monthly billing",
"sku": "SKU-M",
"primary": true,
"enabled": true,
"pricing": { "unitPrice": 9900, "oldPrice": null, "costPerItem": null, "currency": "BRL", "schema": "unit", "type": "recurring", "billingType": "prepaid", "billingFrequency": "monthly", "billingFrequencyCount": 1 },
"images": null,
"metadata": null,
"attributes": null,
"externalReference": null,
"checkoutUrl": null,
"createdAt": "2026-04-12T17:56:33.000Z",
"updatedAt": "2026-04-12T17:56:33.000Z"
}
]
}Para alterar a precificação ou os dados das variantes, use os endpoints de Variantes — não o update do produto.
Excluir produto
DELETE /v1/products/{productId}
curl -X DELETE "https://api.selectwin.io/v1/products/prd_01hqzvabc" \
-H "SelectKey: sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ"{ "id": "prd_01hqzvabc", "resource": "product", "deleted": true }Erros
error.code | HTTP | Quando |
|---|---|---|
productNotFound | 404 | Produto não encontrado para esta conta |
invalidParameters | 400 | productId inválido ou corpo de atualização vazio |
How is this guide?