Skip to main content

Iniciar Sessão

O comando Iniciar Sessão conecta o canal ao WhatsApp. Existem três métodos de autenticação: QR Code, Pair Code e Link de conexão. Em todos os casos, o usuário precisa confirmar a conexão no celular.

Método 1: QR Code

Gera um QR Code que deve ser escaneado pelo WhatsApp no celular do usuário.

Requisição

Campos

Webhook de resposta

O QR Code é entregue via webhook GENERATE_QR_CODE_RESPONSE:

Como exibir o QR Code

O campo qrCode contém a imagem PNG codificada em Base64. Para exibir em uma página web:
O QR Code expira em aproximadamente 60 segundos. Se não for escaneado a tempo, um novo QR Code será gerado automaticamente é enviado via webhook (com automatic: true). Atualize a imagem exibida sempre que receber um novo webhook. Após varias tentativas sem sucesso, um webhook SESSION_START_ERROR será enviado.

Método 2: Pair Code

Gera um código numérico de 8 dígitos que o usuário digita manualmente no WhatsApp.

Requisição

Campos

Webhook de resposta

O Pair Code é entregue via webhook PAIR_CODE_GENERATED_RESPONSE:
O usuário deve abrir o WhatsApp no celular, ir em Dispositivos conectados > Conectar dispositivo > Vincular por número de telefone e digitar o código.

Gera um link de conexão que pode ser aberto pelo próprio usuário para autorizar o dispositivo, sem que você precise renderizar um QR Code ou exibir um código na sua interface.

Requisição

Campos

Webhook de resposta

O link é entregue via webhook SESSION_START_LINK_GENERATED_RESPONSE:

Fluxo de autenticação

1

Enviar comando

Envie o comando SESSION_START_QR_CODE, SESSION_START_PAIR_CODE ou SESSION_START_LINK para o endpoint.
2

Receber resposta

Receba o webhook com o QR Code (imagem Base64), o Pair Code (código alfanumérico) ou o link de conexão (URL).
3

Autenticar no celular

O usuário escaneia o QR Code, digita o Pair Code ou abre o link de conexão no WhatsApp do celular.
4

Conexão confirmada

Após a autenticação, você receberá um webhook CONNECTED confirmando a conexão.

Webhooks de erro

Em caso de falha na autenticação, você receberá um dos seguintes webhooks:
Erro ao iniciar a sessão.
Erro específico do processo de pareamento (Pair Code).

Erros comuns

O usuário não escaneou o QR Code dentro do tempo limite. Após varias tentativas, um SESSION_START_ERROR será enviado. Envie o comando novamente para reiniciar o processo.
O número informado no comando SESSION_START_PAIR_CODE não está registrado no WhatsApp ou está em formato incorreto. Verifique se o número inclui o código do país (ex: 5511999887766).
Se o WhatsApp já está conectado a outro dispositivo com o mesmo número, a sessão anterior será encerrada automaticamente.

Eventos do ciclo de vida da conexão

Após iniciar a sessão, você receberá webhooks sobre o estado da conexão. Esses eventos sao essenciais para monitorar a saúde da sessão e reagir a desconexoes.

CONNECTED

Enviado quando o canal se conecta ao WhatsApp com sucesso.

DISCONNECTED

Enviado quando o canal se desconecta do WhatsApp.
Uma desconexão pode ocorrer por diversos motivos: comando de Desconectar, perda de conexão com a internet, ou o usuário desvinculou o dispositivo pelo WhatsApp.

SESSION_EXPIRED

Enviado quando a sessão do WhatsApp expira e não pode ser reconectada automaticamente. Uma nova autenticação (QR Code ou Pair Code) será necessária.
Após receber SESSION_EXPIRED, o canal não pode mais enviar ou receber mensagens. Você deve iniciar uma nova sessão enviando o comando SESSION_START_QR_CODE, SESSION_START_PAIR_CODE ou SESSION_START_LINK novamente.

INSTANCE_START

Enviado quando a instância do canal e iniciada no servidor.

INSTANCE_STOP

Enviado quando a instância do canal e parada no servidor.

INSTANCE_USER_CONNECT_TIMEOUT

Enviado quando a instância aguardou o usuário conectar (via QR Code ou Pair Code) mas o tempo limite foi atingido sem autenticação.
Após este evento, você pode enviar novamente o comando SESSION_START_QR_CODE, SESSION_START_PAIR_CODE ou SESSION_START_LINK para gerar uma nova autenticação.

HISTORY_SYNC_PROGRESS

Enviado periodicamente durante a sincronização do histórico de mensagens, indicando o progresso da operação. Só é emitido quando o SESSION_START_* foi enviado com enableHistoryOnConnect: true.
Para históricos grandes, este evento pode chegar dezenas de vezes. Use-o para atualizar uma barra de progresso na sua aplicação se quiser feedback visual.

HISTORY_SYNC_COMPLETED

Enviado quando a sincronização do histórico de mensagens termina (com sucesso ou não).
Compare totalProcessed com totalMessages para detectar sincronizações parciais. totalErrors > 0 indica que algumas mensagens não foram importadas.

OFFLINE_SYNC_COMPLETED

Enviado quando a sincronização de mensagens recebidas enquanto o dispositivo estava offline termina. Acontece logo após o CONNECTED, antes que novas mensagens em tempo real comecem a fluir.

APP_STATE_SYNC_COMPLETED

Enviado quando uma das coleções de estado do app (lista de conversas, contatos, configurações, etc.) termina de sincronizar. Pode ocorrer múltiplas vezes — uma por coleção.

DEVICE_SESSION_BACKUP

Enviado quando o MessageFy exporta um snapshot completo da sessão do dispositivo. É o par de backup da Importação de Sessão: o sessionData pode ser reimportado para restaurar a conexão sem novo pareamento.
O sessionData contém as credenciais brutas da sessão do WhatsApp, com acesso total à conta. Trate-o como segredo: trafegue somente sobre TLS, nunca registre em logs e evite persistir no cliente sem criptografia. Vazar esse blob equivale a entregar o acesso completo do dispositivo.

Diagrama do fluxo de conexão

O diagrama abaixo mostra o ciclo de vida completo de uma conexão, desde a autenticação ate possiveis desconexoes e reconexoes:

Exemplo completo (QR Code)

Para a maioria dos casos de uso com integração automatizada, o método Pair Code é mais prático, pois não exige renderizar uma imagem QR Code na sua interface. Basta exibir o código alfanumérico.
Implemente um mecanismo de monitoramento que reage ao SESSION_EXPIRED para notificar o operador que uma nova autenticação e necessária. Use o comando Status periodicamente como health check complementar.