Skip to main content
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.

Campos do objeto

string
Identificador público estável. Use o valor retornado pela API nas consultas e relacionamentos; não derive IDs de nomes.
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.
string | null
URL pública da capa do produto; null quando ausente. Somente leitura: a capa é enviada e definida no painel.
string
Data e hora da criação, em ISO 8601 com fuso horário. Somente leitura.
string | null
Descrição do produto; null quando não informada. Envie null para limpar.
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.
string
Nome do produto. Obrigatório e não vazio na criação.
string
Tipo do objeto retornado. O valor é fixo para este recurso.Sempre product.
array
IDs dos preços vinculados, ordenados por criação e ID. Consulte cada preço em /v1/prices/{id}. Somente leitura.
string
Estado do produto: draft (rascunho), published (publicado) ou archived (arquivado).Valores: draft, published, archived.
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, 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. Pedidos 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

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.