# 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": {},
  "emitirNf": false,
  "nfConfigId": "nfc_1788364755079_psuecwgdc",
  "tipoNf": "B2C",
  "fiscal": {
    "descricaoServico": "Assinatura de plataforma",
    "codigoTributacaoNacionalIss": "010101",
    "codigoTributarioMunicipio": "0101",
    "tributacaoIss": 1,
    "tipoRetencaoIss": 1,
    "aliquota": 2.5,
    "ncm": "00000000",
    "cfop": "5102",
    "icms": 0,
    "pis": 0,
    "cofins": 0
  },
  "productUrlPurchased": "https://meusite.com/area-do-aluno",
  "sendEmail": ["comprador@email.com"],
  "sendWhatsApp": ["+5511999998888"],
  "sendWebhook": ["https://meusite.com/webhook"],
  "contactCompanyName": "Minha Empresa LTDA",
  "contactEmail": "suporte@minhaempresa.com",
  "contactPhone": "+5511999998888",
  "contactPhoneIsWhatsapp": true,
  "contactWhatsappMessage": "Ola, preciso de ajuda com meu pedido",
  "messageRuler": [
    {
      "templateName": "LEMBRETE_VENCIMENTO_PROXIMO",
      "offsetDays": -3,
      "sendAtTime": "11:00"
    }
  ],
  "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

**Obrigatórios:** `messageRuler.templateName`, `messageRuler.offsetDays`

| Campo | Descrição |
|---|---|
| `messageRuler.templateName` | Modelo da mensagem enviada |
| `messageRuler.offsetDays` | Dias em relação ao vencimento: negativo antes, positivo depois, até 10 dias antes |

**Opcionais**

| Campo | Descrição |
|---|---|
| `name` |  |
| `description` |  |
| `type` | RECURRING cobra todo ciclo, ONE_TIME cobra uma vez (default RECURRING) (valores: RECURRING, ONE_TIME) |
| `statementDescriptor` |  |
| `isActive` |  |
| `metadata` | Objeto livre, aceita as chaves e valores que você quiser |
| `emitirNf` | Emite nota fiscal a cada cobrança deste produto (default false) |
| `nfConfigId` | Configuração fiscal usada na emissão; exige endereço do comprador |
| `tipoNf` | Público da nota: consumidor final ou empresa (valores: B2C, B2B) |
| `fiscal` | Dados fiscais do produto, usados na nota |
| `fiscal.descricaoServico` | Descrição do serviço impressa na nota |
| `fiscal.codigoTributacaoNacionalIss` | Código nacional de tributação do ISS |
| `fiscal.codigoTributarioMunicipio` | Código de serviço da prefeitura |
| `fiscal.tributacaoIss` | Regime de tributação do ISS |
| `fiscal.tipoRetencaoIss` | Tipo de retenção do ISS |
| `fiscal.aliquota` | Alíquota aplicada em porcentagem |
| `fiscal.ncm` | Código NCM, para produto físico |
| `fiscal.cfop` | Código fiscal da operação, para produto físico |
| `fiscal.icms` | Percentual de ICMS |
| `fiscal.pis` | Percentual de PIS |
| `fiscal.cofins` | Percentual de COFINS |
| `productUrlPurchased` | Link entregue ao comprador após o pagamento |
| `sendEmail` | E-mails avisados a cada venda deste produto |
| `sendWhatsApp` | Números avisados a cada venda deste produto |
| `sendWebhook` | URLs chamadas a cada venda deste produto |
| `contactCompanyName` | Nome exibido ao comprador no checkout e na nota |
| `contactEmail` | E-mail de suporte exibido ao comprador |
| `contactPhone` | Telefone de suporte exibido ao comprador |
| `contactPhoneIsWhatsapp` | Mostra o telefone de suporte como WhatsApp |
| `contactWhatsappMessage` | Mensagem que o comprador envia ao clicar no WhatsApp |
| `messageRuler` | Régua de lembretes por WhatsApp antes e depois do vencimento |
| `messageRuler.sendAtTime` | Horário do envio em HH:MM (24h), entre 11:00 e 23:59 |
| `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/referencia/put-atualizar-produto
Contrato OpenAPI: https://docs.validapay.com.br/openapi.json