# Produto

URL: https://staging.pagpolar.com/docs/referencia/entidades/produto

> Produto à venda: dados de exibição, tipo, garantia e categoria. Um plano de assinatura também é um produto, com `type` `SUBSCRIPTION`.

Produto à venda: dados de exibição, tipo, garantia e categoria. Um plano de assinatura também é um produto, com `type` `SUBSCRIPTION`.

## Onde aparece

* [`GET /products`](/docs/referencia/produtos/list-products)
* [`POST /products`](/docs/referencia/produtos/create-product)
* [`GET /products/{id}`](/docs/referencia/produtos/get-product)
* [`PATCH /products/{id}`](/docs/referencia/produtos/update-product)
* [`GET /plans`](/docs/referencia/planos/list-plans)
* [`POST /plans`](/docs/referencia/planos/create-plan)
* [`GET /plans/{id}`](/docs/referencia/planos/get-plan)
* [`PATCH /plans/{id}`](/docs/referencia/planos/update-plan)

Também aparece dentro de [Assinatura](/docs/referencia/entidades/assinatura), no campo `product`.

## Campos

Campos anuláveis chegam com `null`. Campos com opções fixas listam todos os valores.

| Campo | Tipo | Obrigatório | Nulo | Descrição |
| --- | --- | --- | --- | --- |
| `id` | texto (uuid) | não | não | Exemplo: `c4d5e6f7-a8b9-4c0d-1e2f-3a4b5c6d7e8f`. |
| `name` | texto | não | não | Exemplo: `Curso de Marketing Digital`. |
| `description` | texto | não | sim | Exemplo: `Aprenda a vender online do zero`. |
| `author` | texto | não | sim | Exemplo: `João Silva`. |
| `promotional_text` | texto | não | sim | Exemplo: `Oferta por tempo limitado`. |
| `is_active` | booleano | não | não | Exemplo: `true`. |
| `image` | texto | não | sim | null quando o produto não tem imagem cadastrada. Exemplo: `https://api.pagpolar.com/files/abc123.png`. |
| `type` | enum | não | não | Tipo do produto. `PHYSICAL` pode aparecer em produtos criados no painel, mas produtos físicos ainda não são processados pela API: não há envio, frete nem rastreio. Valores: `PHYSICAL`, `DIGITAL`, `SUBSCRIPTION`, `PACKAGE`. Exemplo: `DIGITAL`. |
| `content_type` | enum | não | não | Valores: `DEFAULT`, `EVENT_ONLINE`, `EVENT_IN_PERSON`, `EBOOK`, `COURSE`. Exemplo: `COURSE`. |
| `warranty_time` | inteiro | não | não | Prazo de garantia em dias. Exemplo: `7`. |
| `category` | objeto | não | sim | null quando o produto não tem categoria. |
| `category.id` | texto (uuid) | não | não | — |
| `category.name` | texto | não | não | Exemplo: `Cursos`. |
| `created_at` | texto (date-time) | não | não | Exemplo: `2026-01-15T12:00:00.000Z`. |
| `updated_at` | texto (date-time) | não | não | Exemplo: `2026-02-01T09:30:00.000Z`. |
