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

# Receber sua primeira venda

> Crie um produto, configure um webhook e veja o evento de venda chegar na sua aplicação.

Este guia liga as pontas entre [criar um checkout](/comece-aqui/criar-checkout) e o [guia de webhooks](/conceitos/webhooks): ao final, você terá um produto vendável e sua aplicação vai saber, em tempo real, quando alguém comprar.

<Note>
  Para cobrar **pela API** (`POST /public_api/payments/`) com Pix, Pix Automático ou Boleto, o produtor precisa de uma conta **Cakto Banking** aberta e ativa — é nela que esses métodos liquidam. Sem ela a chamada volta `400`. Cartão (`credit_card`, `threeDs`) não exige. Detalhes em [Pré-requisitos](/api-reference/payments/create-pix#pré-requisitos).
</Note>

<Steps>
  <Step title="Crie o produto">
    Criar o produto já cria a oferta padrão, o checkout e o link de pagamento — não existe um endpoint separado de "criar checkout". Veja o passo a passo em [Criar um checkout](/comece-aqui/criar-checkout).

    Guarde o `id` do produto retornado: você vai precisar dele no próximo passo.
  </Step>

  <Step title="Cadastre um webhook para o produto">
    Sua chave de API precisa do escopo `write webhooks`. Crie o webhook informando `products` (o Id do produto do passo anterior) e o evento `purchase_approved`:

    ```bash curl icon=terminal theme={null}
    curl -X POST https://api.cakto.com.br/public_api/webhook/ \
      -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Notificação de venda",
        "url": "https://sua-aplicacao.com/webhooks/cakto",
        "products": ["ID_DO_PRODUTO"],
        "events": ["purchase_approved"]
      }'
    ```

    <Note>
      `products` é obrigatório: o webhook só recebe eventos dos produtos informados. Detalhes em [Criar Webhook](/api-reference/webhooks/create).
    </Note>

    A resposta traz o `id` do webhook e um `secret` — guarde o `secret`, é com ele que você valida a origem de cada entrega. Veja como em [Guia de Webhooks](/conceitos/webhooks#validando-a-origem).
  </Step>

  <Step title="Teste antes de esperar por uma venda real">
    Envie um evento de teste para o mesmo webhook e confirme que sua aplicação recebe e responde corretamente:

    ```bash curl icon=terminal theme={null}
    curl -X POST "https://api.cakto.com.br/public_api/webhook/event_test/ID_DO_WEBHOOK/?event=purchase_approved" \
      -H "Authorization: Bearer SEU_ACCESS_TOKEN"
    ```

    Detalhes em [Testar Webhook](/api-reference/webhooks/test-webhook).
  </Step>

  <Step title="Compartilhe o link de pagamento">
    Pegue o link do checkout (formato `https://pay.cakto.com.br/{id_da_oferta}`, obtido no passo 3 de [Criar um checkout](/comece-aqui/criar-checkout)) e compartilhe com um comprador.

    Quando o pagamento for aprovado, a Cakto envia `purchase_approved` para a URL cadastrada — automaticamente, sem chamada adicional da sua parte.
  </Step>

  <Step title="Confirme a entrega">
    Se sua aplicação não receber o evento, consulte o que a Cakto tentou entregar:

    ```bash curl icon=terminal theme={null}
    curl "https://api.cakto.com.br/public_api/webhook/event_history/?app_id=ID_DO_WEBHOOK" \
      -H "Authorization: Bearer SEU_ACCESS_TOKEN"
    ```

    Detalhes em [Histórico de Eventos](/api-reference/webhooks/event-history). Se uma entrega falhou e você já corrigiu o problema na sua aplicação, reenvie com [Reenviar Evento](/api-reference/webhooks/resend-event).
  </Step>
</Steps>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Guia de Webhooks" icon="bell" href="/conceitos/webhooks">
    Catálogo de eventos, retentativas e validação de origem
  </Card>

  <Card title="Vender vários itens" icon="cart-plus" href="/api-reference/order-bumps/create">
    Adicione order bumps ao mesmo checkout
  </Card>

  <Card title="Pedidos" icon="receipt" href="/api-reference/orders/list">
    Consulte os detalhes do pedido por trás de cada venda
  </Card>

  <Card title="Erros" icon="triangle-exclamation" href="/conceitos/erros">
    O que fazer quando algo não sai como esperado
  </Card>
</CardGroup>
