WhatsApp API Reference
Documentacao interativa gerada a partir da spec OpenAPI 3.1. Clique em qualquer endpoint para ver parametros, exemplos de request e response. Copie com um clique.
O usuario abre o WhatsApp do celular, vai em Configuracoes › Aparelhos conectados › Conectar aparelho e escaneia o QR Code exibido pela API. A cada chamada de /iniciar um novo QR Code e gerado (validade ~60s, renova automaticamente).
POST /instancia/criar
POST /{id}/iniciar
GET /{id}/qrcode
GET /{id}/status
Exemplo completo em JavaScript
O parceiro envia o numero de telefone do cliente. A API limpa credenciais antigas, inicia a sessao e solicita o codigo ao WhatsApp. O cliente digita o codigo manualmente no celular: Configuracoes › Aparelhos conectados › Conectar com codigo de telefone. O codigo expira em 120 segundos.
POST /{id}/solicitar-pareamento
body: {"telefone":"5511999999999"}
close-session tipo=2
start-session
request-pairing-code
"W4NQJMRD" (8 chars)
Config › Aparelhos › Conectar com codigo
Formato do telefone
O telefone deve conter DDI + DDD + numero, apenas digitos, 10 a 15 caracteres. Regex validado: ^\d{10,15}$.
Exemplo completo em JavaScript (com polling)
Troubleshooting
• Pairing Code: integracoes server-to-server, onboarding remoto (sem camera), apps mobile que mandam o codigo via push.
• QR Code: onboarding presencial, web apps com camera, fluxo manual.
O parceiro instala a extensao WhatsApp Session Extractor (Chrome/Firefox) no navegador onde a sessao WhatsApp Web ja esta logada. A extensao extrai as credenciais criptograficas (identityKey, account, registrationId, noiseCandidates, signedPreKey) em formato JSON. Esse JSON e enviado para a API, que repassa ao microservico Baileys — a instancia conecta automaticamente, sem precisar de QR Code ou codigo.
WhatsApp Session Extractor
web.whatsapp.com
Baixa arquivo .json
POST /{id}/importar-sessao
validarShapeSessaoImportada()
nao precisa /iniciar
Estrutura do JSON (campos validados)
A API valida que o JSON tem os campos minimos que o Baileys precisa. Se faltar qualquer um, retorna 422 com mensagem explicando que o arquivo foi gerado pela extensao errada.
Exemplo completo em JavaScript
Exemplo em PHP (Laravel)
Troubleshooting
QR Code vs Pairing Code vs Importar Sessao
Configure via PUT /whatsapp/configuracao/{id} (apenas planos pagos). O microservico envia POST para sua URL com Content-Type: application/json e User-Agent: API Facil/1.0, timeout 10s.
URLs de webhook (roteamento)
Evento 1: whatsapp_insert (mensagem enviada/recebida)
Disparado para todo evento de mensagem — enviada pelo voce, recebida do contato, ou erro de envio. Roteado para webhook_url (privado) ou webhook_grupo (grupo).
Valores de tipo_envio (whatsapp_insert)
Evento 2: whatsapp_update (interacao)
Disparado quando uma mensagem e marcada como lida, respondida ou reproduzida. Sempre vai para webhook_url. Para desativar, set ativar_atualizacoes_interacao=false no config_json.
Sistema de retry (whatsapp_insert)
Apenas whatsapp_insert tem retry automatico. whatsapp_update nao tem (so 1 tentativa).
O cron do microservico roda a cada minuto e processa ate 50 retries por rodada. Historico de tentativas fica em webhook_payloads e webhook_responses na notificacao. Para reenviar manualmente: POST /whatsapp/notificacao/reprocessar-webhook com body {"id": 12345}.