# Editar plano

URL: https://staging.pagpolar.com/docs/referencia/planos/update-plan

> Edita campos básicos de um plano já criado. Só `name`, `description` e `is_active`
podem ser alterados por aqui — envie apenas os campos que deseja atualizar (edição parcial).

O corpo não pode vir vazio: pelo menos um dos três campos precisa ser enviado.

`PATCH /plans/{id}`

## Autenticação

- Token Bearer no header `Authorization` (esquema `BearerAuth`). Token de acesso devolvido por POST /auth/token. Envie como "Authorization: Bearer <token>". Vale 24 horas.

## Parâmetros de caminho

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `id` | texto (uuid) | sim | Exemplo: `a8b9c0d1-e2f3-4a4b-5c6d-7e8f9a0b1c2d`. |

## Corpo da requisição

Content-type: `application/json`.

| Campo | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `name` | texto | não | Exemplo: `Assinatura Premium`. |
| `description` | texto | não | Exemplo: `Acesso completo à plataforma, renovação mensal`. Pode ser nulo. |
| `is_active` | booleano | não | Exemplo: `true`. |

### Exemplo do corpo

Editar nome e descrição:

```json
{
  "name": "Assinatura Premium",
  "description": "Acesso completo à plataforma, renovação mensal"
}
```

Desativar plano:

```json
{
  "is_active": false
}
```

## Respostas

### 200 — Plano atualizado

| Campo | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `data` | [Produto](/docs/referencia/entidades/produto) | não | — |

#### Exemplo

default:

```json
{
  "data": {
    "id": "a8b9c0d1-e2f3-4a4b-5c6d-7e8f9a0b1c2d",
    "name": "Assinatura Premium",
    "description": "Acesso completo à plataforma, renovação mensal",
    "author": null,
    "promotional_text": null,
    "is_active": true,
    "image": null,
    "type": "SUBSCRIPTION",
    "content_type": "DEFAULT",
    "warranty_time": 7,
    "category": null,
    "created_at": "2026-01-15T12:00:00.000Z",
    "updated_at": "2026-01-15T12:00:00.000Z"
  }
}
```

## Erros

| Status | Descrição |
| --- | --- |
| `400` | Dados inválidos ou corpo vazio |
| `401` | Token ausente, inválido ou expirado, ou credencial revogada ou expirada. Chame POST /auth/token para obter um token novo. |
| `403` | IP não autorizado |
| `404` | Plano não encontrado |
| `429` | Limite de requisições excedido |

Lista completa de códigos e como tratá-los: [Erros](/docs/guias/fundamentos/erros).
