# Atualizar Produto
`PUT /v1/products/:id`
**Área:** Produtos

**Scopes necessários:** `products/write`

Atualiza as informações de um produto, como nome, descrição ou preço.
Mesmos campos de POST (todos opcionais). Para atualizar preço existente, inclua `priceId` no item de `prices[]`.

### Path parameters

| Campo | Obrigatório | Descrição |
|---|---|---|
| `id` | **sim** | Id |

### Request body

```json
{
  "name": "Plano Premium Plus",
  "description": "Acesso completo à plataforma",
  "type": "RECURRING",
  "statementDescriptor": "VALIDAPAY PREMIUM",
  "isActive": true,
  "metadata": {},
  "prices": [
    {
      "priceId": "price_xxx",
      "amount": 109.9,
      "recurrenceType": "MONTHLY",
      "recurrenceInterval": 1,
      "trialDays": 7,
      "compareAtPrice": 129.9
    },
    {
      "title": "Trimestral",
      "amount": 279.0,
      "recurrenceType": "QUARTERLY",
      "recurrenceInterval": 1
    }
  ]
}
```

### Campos do body

**Opcionais**

| Campo | Descrição |
|---|---|
| `name` |  |
| `description` |  |
| `type` |  |
| `statementDescriptor` |  |
| `isActive` |  |
| `prices` | Para atualizar preço existente, inclua priceId no item |
| `prices.priceId` | ID do preço existente |
| `prices.amount` |  |
| `prices.recurrenceType` |  |
| `prices.recurrenceInterval` |  |
| `prices.trialDays` |  |
| `prices.compareAtPrice` |  |
| `prices.title` | Novo preço |

### Resposta 200 — 200

```json
{
  "productId": "prod_xxx",
  "name": "Plano Premium Plus",
  "newPrices": [
    {
      "priceId": "price_yyy"
    }
  ]
}
```

### Resposta 404 — 404

```json
{
    "error": {
        "message": "Produto não encontrado",
        "code": "PRODUCT_NOT_FOUND",
        "details": null,
        "timestamp": "2026-07-14T21:39:36.322Z"
    }
}
```

---
Página: https://docs.validapay.com.br/documentacao-validapay2/put-atualizar-produto
Contrato OpenAPI: https://docs.validapay.com.br/openapi.json