Bot do Telegram é um dos melhores lugares para vender produto digital: o usuário já está lá, não precisa abrir site, não precisa criar conta. O que costuma travar é o pagamento — se alguém precisa conferir comprovante na mão, o bot deixou de ser automático.
Este artigo descreve o fluxo que resolve isso, e os pontos onde ele quebra quando mal implementado.
O fluxo completo, em cinco passos
- O usuário escolhe o produto dentro do bot, por comando ou botão.
- Seu backend chama a API do gateway, criando uma cobrança com o valor e um identificador próprio do pedido.
- O bot mostra o Pix — código copia e cola e QR Code — na conversa.
- O cliente paga pelo app do banco.
- O gateway chama seu webhook, seu sistema confirma e o bot libera o acesso.
Do passo 2 ao 5, nenhuma ação humana. É isso que permite vender às três da manhã.
Por que webhook, e não ficar consultando
Existem duas formas de saber que o pagamento caiu. A ruim é polling: perguntar de tempos em tempos "já pagou?". Isso gasta requisição à toa, atrasa a entrega e escala mal — com cem cobranças abertas, são cem consultas repetidas.
A boa é o webhook: você informa uma URL sua, e o gateway avisa no instante em que o pagamento é confirmado. Uma chamada, no momento certo.
Na prática, o cliente paga e recebe o acesso em segundos — a diferença entre uma compra que parece profissional e uma que parece improviso.
Os quatro erros que quebram isso em produção
1. Confiar cegamente no que o webhook manda
O endpoint do seu webhook está na internet aberta. Qualquer um pode chamá-lo dizendo "o pedido 123 foi pago". Se você libera acesso só com base no corpo da requisição, acabou de criar uma porta para receber produto de graça.
Valide sempre: confira a assinatura quando o gateway assinar a chamada, e confirme o status consultando a API antes de liberar qualquer coisa. Trate o payload como aviso, não como prova.
2. Não tratar chamada repetida
Webhook pode chegar mais de uma vez para o mesmo pagamento — é comportamento normal, geralmente por retentativa. Se seu código não verifica se aquele pedido já foi processado, o cliente recebe o produto duas vezes, ou o saldo é creditado em dobro.
A proteção é simples: antes de processar, cheque se o pedido já está marcado como pago. Se estiver, responda com sucesso e não faça nada.
3. Demorar para responder
O gateway espera uma resposta rápida. Se seu webhook envia e-mail, gera arquivo e faz três consultas antes de responder, ele pode estourar o tempo limite — e o gateway vai tentar de novo, achando que falhou.
Responda primeiro, processe o resto depois. Marque o pedido como pago, devolva a resposta, e deixe o trabalho pesado para o segundo momento.
4. Usar identificador que se repete
Cada cobrança precisa de um identificador único do seu lado. Se dois pedidos diferentes compartilham a mesma referência, você não consegue saber qual foi pago. Combine algo do pedido com algo variável — nunca só o ID do usuário.
O que o bot deve mostrar enquanto espera
Detalhe pequeno que muda a taxa de conclusão: deixe claro que a confirmação é automática. Uma linha como "assim que o pagamento cair, o acesso é liberado aqui mesmo" evita que a pessoa feche o Telegram achando que precisa mandar comprovante.
Mostre também o valor e o tempo de validade da cobrança. Cobrança Pix expira, e o cliente precisa saber disso antes de sumir por duas horas.
Fazendo com a LunarPay
A API da LunarPay cria a cobrança e devolve o código Pix copia e cola e a imagem do QR Code, prontos para o bot enviar. Você informa a URL do seu webhook, e ela é chamada quando o pagamento é confirmado.
Também existe integração de bots de Telegram no próprio painel, para quem prefere não manter backend próprio — a cobrança e a liberação acontecem sem você escrever código.
Custo a partir de R$1 por venda e por saque, sem mensalidade. Dá para criar conta e testar o fluxo inteiro com uma cobrança de valor baixo antes de colocar no ar.
Seja o primeiro a comentar.