Discador & API — Para Desenvolvedores

Chamadas WhatsApp direto no seu produto

Discador embarcável via iframe, API REST /v1 e webhooks assinados HMAC SHA-256. Adicione chamadas de WhatsApp ao seu produto em minutos — sem manter servidores de voz.

Como funciona

Da chave de API ao discador no ar em minutos.

  1. 1Crie sua chave de API em Configurações → API no painel Hasos
  2. 2Use POST /v1/instances para provisionar um número e POST /v1/tokens para emitir um token de discador
  3. 3Cole o iframe no seu app com o token — seus usuários fazem e recebem chamadas sem sair do produto
  4. 4Configure um endpoint de webhook para receber eventos em tempo real com assinatura HMAC

Exemplos de integração

Tudo o que você precisa está na documentação completa.

Provisionar instância via API

bash
curl -X POST https://api.hasos.com.br/v1/instances \
  -H "x-api-key: hs_live_sua_chave" \
  -H "Content-Type: application/json" \
  -d '{"phone":"5511999999999"}'

Embedar o discador via iframe

html
<iframe
  src="https://app.hasos.com.br/discador?token=SEU_TOKEN"
  allow="microphone"
  style="width:420px;height:640px;border:0;border-radius:8px"
></iframe>

Validar assinatura do webhook (Node.js)

javascript
// Valide a assinatura antes de processar
const sig = req.headers["x-webhook-signature"];
const expected = crypto
  .createHmac("sha256", process.env.WEBHOOK_SECRET)
  .update(JSON.stringify(req.body))
  .digest("hex");

if (sig !== expected) return res.status(401).end();

const { event, callId, recordUrl } = req.body;
// event: "ringing" | "answered" | "ended" | "record"

Discador embarcável via iframe

Um iframe autenticado por token por dispositivo. Seus usuários fazem e recebem chamadas de WhatsApp direto do seu app — com permissão de microfone, sem instalar nada.

  • Token por dispositivo (não expõe chave de API)
  • Permissão de microfone via allow="microphone"
  • 420×640 px padrão — responsivo

API REST /v1

Endpoints autenticados por x-api-key para provisionar números, emitir tokens, iniciar chamadas e consultar histórico — tudo que o painel faz, disponível no seu backend.

  • POST /v1/instances — provisionar número
  • POST /v1/tokens — emitir token de discador
  • POST /v1/calls — iniciar chamada
  • GET /v1/recordings — listar gravações

Webhooks HMAC SHA-256

Eventos de chamada entregues ao seu servidor com assinaturax-webhook-signaturepara validação. Log de entregas disponível no painel.

  • ringing — chamada tocando
  • answered — chamada atendida
  • ended — chamada encerrada
  • record — gravação disponível (com link)

Perguntas frequentes

Como autentico nas chamadas da API?
Use o header x-api-key com sua chave gerada no painel Hasos. Para o iframe, emita um token por dispositivo via API — o token autentica o discador sem expor sua chave de API.
O iframe precisa de permissão de microfone?
Sim. O atributo allow="microphone" é obrigatório para que o iframe acesse o microfone do usuário. Navegadores modernos pedem confirmação ao usuário na primeira vez.
Como valido a assinatura dos webhooks?
Calcule HMAC SHA-256 do corpo do request com seu segredo de webhook e compare com o header x-webhook-signature. Rejeite requests com assinatura inválida.
Posso iniciar chamadas diretamente pela API, sem o discador?
Sim. Use o endpoint POST /v1/calls com o número de destino e o ID da instância. A chamada é iniciada pelo número conectado e os eventos chegam por webhook.

Pronto para integrar chamadas WhatsApp?

Crie sua chave de API, provisione um número e faça a primeira chamada via API hoje.