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

# Criar um produto

> Guia completo para criar cursos, ebooks, assinaturas e outros tipos de produto na Ticto usando a API v2. Inclui payload, resposta e próximos passos.

A API v2 da Ticto permite que você crie e gerencie produtos de forma programática, integrando sua plataforma diretamente ao seu fluxo de desenvolvimento ou ferramentas de automação. Com um único endpoint, você registra cursos, ebooks, mentorias e muito mais, sem precisar acessar o painel para cada cadastro.

## Tipos de produto

Antes de criar um produto, escolha o tipo que melhor descreve o que você está vendendo. O campo `type` define como a Ticto trata o produto internamente, incluindo quais métodos de pagamento e configurações são aplicados automaticamente.

| Tipo | Descrição |
| - | - |
| `course` | Curso online com área de membros |
| `ebook` | Livro digital ou material para download |
| `consultancy` | Consultoria |
| `mentoring` | Mentoria |
| `artificial_intelligence` | Produto de inteligência artificial |
| `other` | Outro produto digital |

<Note>
  A v2 cobre apenas produtos **digitais**. Físico e evento (que exigem frete/lote) ficam no painel. Cobrança **recorrente** não é um tipo de produto. Ela é definida na oferta, com `charge_type: recurring`.
</Note>

## Criando um produto digital

<Steps>
  <Step title="Prepare o payload">
    Monte o corpo da requisição com o nome e o tipo do produto. Para produtos digitais, apenas esses campos básicos são necessários. A Ticto preenche automaticamente os métodos de pagamento e outras configurações padrão.

    ```json theme={null}
    {
      "name": "Curso Completo de Marketing Digital",
      "type": "course",
      "description": "Do zero ao avançado em estratégias de marketing digital para negócios online."
    }
    ```
  </Step>

  <Step title="Envie a requisição">
    Faça um `POST` para `/api/v2/products`, incluindo o header de autenticação e um `Idempotency-Key` único para garantir que a requisição não seja processada mais de uma vez.

    ```bash theme={null}
    curl --request POST \
      --url https://api.ticto.cloud/api/v2/products \
      --header "Authorization: Bearer ticto_live_..." \
      --header "Content-Type: application/json" \
      --header "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
      --data '{
        "name": "Curso Completo de Marketing Digital",
        "type": "course",
        "description": "Do zero ao avançado em estratégias de marketing digital para negócios online."
      }'
    ```
  </Step>

  <Step title="Verifique a resposta">
    Uma resposta `201 Created` confirma que o produto foi registrado. Anote o campo `hash`, você vai precisar dele para criar ofertas vinculadas a este produto.

    ```json theme={null}
    {
      "object": "product",
      "id": "PABC123",
      "reference_id": 1042,
      "name": "Curso Completo de Marketing Digital",
      "type": "course",
      "status": "approved",
      "is_active": true,
      "created_at": "2025-01-15T14:30:00Z"
    }
    ```
  </Step>

  <Step title="Pronto para vender">
    O produto nasce **aprovado e ativo**, pronto para vender. Se você quiser criar o produto já indisponível (por exemplo, para configurar as ofertas antes de divulgar), envie `is_active: false` na criação e ative depois pelo painel.
  </Step>
</Steps>

## Campos do produto

<ParamField body="name" type="string" required>
  Nome do produto exibido no painel e no checkout. Deve ser claro e descritivo para seus clientes.
</ParamField>

<ParamField body="type" type="string" required>
  Tipo do produto. Valores aceitos: `course`, `ebook`, `consultancy`, `mentoring`, `artificial_intelligence`, `other`. Define as configurações padrão aplicadas automaticamente pela Ticto.
</ParamField>

<ParamField body="description" type="string">
  Descrição detalhada do produto. Aparece na página de checkout e na área de membros. Opcional, mas recomendado para melhorar a conversão.
</ParamField>

<ParamField body="is_active" type="boolean" default="true">
  Define se o produto nasce ativo (disponível) ou inativo. Opcional; padrão `true`. É o único campo de estado que você controla pela API, funciona como um interruptor de disponibilidade. Envie `false` para criar o produto oculto e ativá-lo depois pelo painel.
</ParamField>

<Note>
  O campo `status` é gerido pela plataforma e é **somente leitura**: não pode ser enviado nem alterado pela API. Enviar `status` no corpo retorna erro `422`. Para tornar um produto indisponível, use `is_active`.
</Note>

## Próximos passos

Com o produto criado e o `hash` em mãos, o próximo passo é configurar uma oferta, que define o preço e as condições de pagamento que seus clientes verão no checkout.

<CardGroup cols={2}>
  <Card title="Criar Oferta Única" icon="tag" href="/guides/create-offer">
    Defina um preço de pagamento único para o seu produto e obtenha o link de checkout.
  </Card>

  <Card title="Criar Oferta Recorrente" icon="arrows-rotate" href="/guides/recurring-offers">
    Configure planos de assinatura com intervalo, trial e ciclos para o seu produto.
  </Card>
</CardGroup>


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