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, enviename 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 alterarprices[] 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.