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

# Produtos

> Objeto product: campos, relacionamentos e eventos.

Um `product` define o que sua conta oferece. Ele reúne a descrição, a capa, o estado de publicação, o tipo de benefício e os IDs dos preços disponíveis. No painel, esses preços aparecem como ofertas. Criar o produto exige um preço inicial; as duas criações são concluídas juntas.

## Objeto completo

Formato retornado pelas consultas e pelos itens das listagens. Os campos de retorno não são todos editáveis; confira as regras de escrita abaixo.

```json theme={null}
{
  "id": "pro_1234567890abcdef",
  "benefit": null,
  "cover_url": null,
  "created_at": "2030-01-01T00:00:00.000Z",
  "description": null,
  "metadata": {},
  "name": "Curso de exemplo",
  "object": "product",
  "prices": [
    "prc_1234567890abcdef"
  ],
  "status": "draft",
  "updated_at": "2030-01-01T00:00:00.000Z"
}
```

## Campos do objeto

**id** `string`

Identificador público estável. Use o valor retornado pela API nas consultas e relacionamentos; não derive IDs de nomes.

**benefit** `string | null`

Tipo de conteúdo entregue: files (arquivos), courses (cursos) ou links (links). Pode ser null. Definir o tipo não vincula conteúdos ao produto.

Valores: `files`, `courses`, `links`, `null`.

**cover\_url** `string | null`

URL pública da capa do produto; null quando ausente. Somente leitura: a capa é enviada e definida no painel.

**created\_at** `string`

Data e hora da criação, em ISO 8601 com fuso horário. Somente leitura.

**description** `string | null`

Descrição do produto; null quando não informada. Envie null para limpar.

**metadata** `object`

Objeto JSON livre para referências da integração, limitado a 16 KB. Ao enviar, substitui todo o metadata anterior; use `{}` para limpar. Não aceita null.

**name** `string`

Nome do produto. Obrigatório e não vazio na criação.

**object** `string`

Tipo do objeto retornado. O valor é fixo para este recurso.

Sempre `product`.

**prices** `array`

IDs dos preços vinculados, ordenados por criação e ID. Consulte cada preço em `/v1/prices/{id}`. Somente leitura.

**status** `string`

Estado do produto: draft (rascunho), published (publicado) ou archived (arquivado).

Valores: `draft`, `published`, `archived`.

**updated\_at** `string`

Data e hora da última alteração, em ISO 8601 com fuso horário. Somente leitura.

## Criação e alterações

Na criação, envie `name` e `initial_price`. O preço inicial segue as mesmas regras de [Preços](https://docs.hubfy.io/api-reference/prices/object.md), sem o campo `product`. A atualização aceita `name`, `description`, `status`, `benefit` e `metadata`. A capa é definida no painel; `cover_url` é somente leitura.

Se o produto estiver vinculado a pedido, checkout ou conteúdo, a exclusão o arquiva e retorna o produto com `status: "archived"`. Sem esses vínculos, retorna a confirmação de exclusão. Configurar `benefit` não cadastra cursos nem vínculos de entrega pela API.

Campos omitidos em uma atualização são preservados. `metadata` substitui o objeto inteiro quando enviado. Campos desconhecidos são rejeitados.

## Relacionamentos

`prices[]` contém IDs de [Preços](https://docs.hubfy.io/api-reference/prices/object.md). [Pedidos](https://docs.hubfy.io/api-reference/orders/object.md) apontam para o produto pelo campo `product`. O catálogo público não inclui objetos de cursos, módulos, aulas ou checkouts; esses recursos são administrados no painel.

## Eventos

* [`product.created`](https://docs.hubfy.io/api-reference/webhooks/product.created)
* [`product.updated`](https://docs.hubfy.io/api-reference/webhooks/product.updated)
* [`product.deleted`](https://docs.hubfy.io/api-reference/webhooks/product.deleted)

Criar ou remover um preço também pode alterar `prices[]` do produto e gerar `product.updated`. Arquivar gera `product.updated`, sem exclusão.

Eventos descrevem mudanças efetivas no objeto público. Repetir uma operação sem alterar o objeto não garante um evento. Confira [entrega e assinatura](https://docs.hubfy.io/api-reference/webhooks/delivery.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.