> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autorizou.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar Produto

> Cria a vitrine que agrupa as ofertas. Criar um produto é dar um nome; o preço vive nas ofertas.

O produto é a vitrine. Ele reúne as [ofertas](/api-reference/products/create-offer) e, sozinho, não cobra nada. Criar é simples: o mínimo é um nome.

## Parâmetros da Requisição

<ParamField body="name" type="string" required>
  Nome do produto. **Máximo:** 255 caracteres.
</ParamField>

<ParamField body="description" type="string">
  Descrição exibida no checkout. Padrão: o próprio nome.
</ParamField>

<ParamField body="soft_descriptor" type="string">
  O que aparece na fatura do cartão do comprador. **Máximo:** 13 caracteres. Padrão: derivado do nome.
</ParamField>

<ParamField body="image_url" type="string">
  URL de uma imagem do produto (exibida no checkout). Deve ser uma URL válida.
</ParamField>

<ParamField body="external_reference" type="string">
  Seu identificador do produto (para conciliar com o seu sistema). **Máximo:** 255 caracteres.
</ParamField>

<ParamField body="show_plan_selector" type="boolean" default="false">
  Quando `true`, o produto ganha um `selector_url` que mostra todas as ofertas recorrentes lado a lado para o cliente escolher.
</ParamField>

## Resposta

<ResponseField name="id" type="string">UUID do produto (use nas demais rotas).</ResponseField>
<ResponseField name="name" type="string">Nome do produto.</ResponseField>
<ResponseField name="description" type="string">Descrição.</ResponseField>
<ResponseField name="soft_descriptor" type="string">Descritor na fatura.</ResponseField>
<ResponseField name="image_url" type="string">URL da imagem (ou `null`).</ResponseField>
<ResponseField name="is_active" type="boolean">Se o produto está ativo.</ResponseField>
<ResponseField name="show_plan_selector" type="boolean">Se o seletor de ofertas está ligado.</ResponseField>
<ResponseField name="selector_url" type="string">URL do seletor de ofertas (`/s/p/{hash}`), quando `show_plan_selector` é `true`; senão `null`.</ResponseField>
<ResponseField name="external_reference" type="string">Seu identificador (ou `null`).</ResponseField>
<ResponseField name="offers" type="array">As ofertas do produto (vazio ao criar). Ver [Criar Oferta](/api-reference/products/create-offer).</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://pay.autorizou.dev/api/v1/products \
    -H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Clube Órbita",
      "soft_descriptor": "CLUBE ORBITA",
      "description": "Acesso mensal ao clube."
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "id": "51655469-5e1c-4356-bf9a-d593a7d61a0a",
    "name": "Clube Órbita",
    "description": "Acesso mensal ao clube.",
    "soft_descriptor": "CLUBE ORBITA",
    "image_url": null,
    "is_active": true,
    "show_plan_selector": false,
    "selector_url": null,
    "external_reference": null,
    "offers": [],
    "created_at": "2026-07-20T03:16:18.000000Z",
    "updated_at": "2026-07-20T03:16:18.000000Z"
  }
  ```
</ResponseExample>

## Rotas relacionadas

Todas escopadas ao seu merchant: um produto de outro lojista **não resolve** (devolve `404`).

| Método   | Rota                       | O que faz                                                    |
| -------- | -------------------------- | ------------------------------------------------------------ |
| `GET`    | `/v1/products`             | Lista os seus produtos (paginado), cada um com suas ofertas. |
| `GET`    | `/v1/products/{id}`        | Um produto e suas ofertas (com `checkout_url` de cada).      |
| `PUT`    | `/v1/products/{id}`        | Edita nome, descrição, imagem, `show_plan_selector` etc.     |
| `DELETE` | `/v1/products/{id}`        | Remove o produto.                                            |
| `GET`    | `/v1/products/{id}/offers` | Lista as ofertas do produto.                                 |
| `POST`   | `/v1/products/{id}/offers` | [Cria uma oferta](/api-reference/products/create-offer).     |
