Documentação da API
Referencia completa dos endpoints da API WhatsApp do Fala Comigo. Todos os endpoints requerem autenticacao via header token. Use o token da sua instancia obtido no dashboard.
Autenticacao
Todas as requisicoes devem incluir o header token com o token da sua instancia.
Voce obtem o token no dashboard ao criar ou acessar uma instancia. O token e unico por instancia e deve ser mantido em segredo.
GET /session/status HTTP/1.1
Host: api.falacomigo.io
token: fc_inst_a1b2c3d4e5f6g7h8i9j0...
Content-Type: application/jsonNunca exponha seu token em codigo frontend ou repositorios publicos. Se o token for comprometido, gere um novo no dashboard.
Envelope de resposta
Por padrao, toda resposta e embrulhada em um envelope padrao com success, data e meta. O objeto documentado em cada endpoint fica em data.data. Adicione ?format=legacy a qualquer requisicao para receber a resposta sem o envelope externo.
{
"success": true,
"data": {
"code": 200,
"success": true,
"data": { /* o objeto documentado em cada endpoint */ }
},
"meta": { "timestamp": "2026-07-04T12:00:00Z", "request_id": "..." }
}Sessao
Gerenciar a conexao da sua instancia com o WhatsApp.
/session/connectConectar ao WhatsApp e iniciar a sessao. Subscribe define os eventos que serao enviados ao webhook (ignora nomes invalidos). Com Immediate=false a API aguarda ate 10s para confirmar a conexao antes de responder. Apos conectar sem sessao autenticada, use /session/qr para obter o QR code.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Subscribe": ["Message", "ReadReceipt", "ChatPresence"],
"Immediate": false
}{
"webhook": "https://seu-servidor.com/webhook",
"jid": "5511999999999@s.whatsapp.net",
"events": "Message,ReadReceipt,ChatPresence",
"details": "Connected!"
}/session/disconnectDesconectar a sessao ativa do WhatsApp. A sessao pode ser reconectada depois sem precisar escanear o QR code novamente.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Details": "Disconnected"
}/session/logoutFazer logout completo da sessao. Remove a autenticacao salva. Sera necessario escanear o QR code novamente na proxima conexao.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Details": "Logged out"
}/session/statusRetorna o status completo da sessao: estado de conexao/login, JID, nome, webhook, eventos inscritos e configuracoes de proxy, S3 e HMAC.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Minha Empresa",
"connected": true,
"loggedIn": true,
"token": "fc_inst_a1b2c3d4...",
"jid": "5511999999999@s.whatsapp.net",
"webhook": "https://seu-servidor.com/webhook",
"events": "Message,ReadReceipt",
"qrcode": "",
"history": "0",
"proxy_config": { "enabled": false, "proxy_url": "" },
"s3_config": { "enabled": false, "bucket": "", "region": "" },
"hmac_configured": false
}/session/qrRetorna o QR code atual (data URL de imagem PNG em base64). Use apos /session/connect enquanto a sessao ainda nao foi autenticada e nao esta logada.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"QRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."
}/session/pairphoneGera um codigo de pareamento para conectar sem QR code. O usuario digita o codigo no WhatsApp do celular em Dispositivos Conectados > Conectar com Numero.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999"
}{
"LinkingCode": "ABCD-EFGH"
}/session/proxyConfigurar (ou remover) um proxy para a sessao. So pode ser alterado com a sessao desconectada. Sao aceitos apenas proxies http e socks5. Use enable=false para remover.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"proxy_url": "socks5://usuario:senha@host:1080",
"enable": true
}{
"Details": "Proxy configured successfully",
"ProxyURL": "socks5://usuario:senha@host:1080"
}/session/historyDefinir quantas mensagens por conversa sao armazenadas para consulta via GET /chat/history. Use 0 para desativar o armazenamento de historico.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"history": 100
}{
"Details": "History configured successfully",
"History": 100
}/session/history?count=50&chat_jid=...&oldest_msg_id=...&oldest_msg_timestamp=...Solicita ao WhatsApp a sincronizacao de mensagens antigas (history sync). As mensagens chegam de forma assincrona pelo evento HistorySync no webhook. Todos os query params sao opcionais.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"details": "History sync request Sent",
"timestamp": 1711324265,
"count": 50,
"chat_jid": "5511999999999@s.whatsapp.net",
"oldest_msg_id": "",
"oldest_msg_from_me": false,
"oldest_msg_timestamp": 0
}Enviar Mensagens
Endpoints para enviar diferentes tipos de mensagem. A maioria retorna { Details, Id, Timestamp } com o ID e o horario (epoch) da mensagem enviada. O campo Id no corpo e opcional: se vazio, a API gera um automaticamente. ContextInfo (opcional) permite responder mensagens e mencionar usuarios.
/chat/send/textEnviar mensagem de texto. Com LinkPreview=true, a API busca a previa (Open Graph) do primeiro link do texto. QuotedText e um atalho para citar um texto sem informar o ContextInfo completo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Body": "Ola! Como posso ajudar?",
"LinkPreview": true,
"Id": "",
"ContextInfo": {
"StanzaId": "",
"Participant": "",
"MentionedJID": []
}
}{
"Details": "Sent",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Timestamp": 1711324265
}/chat/send/imageEnviar imagem com legenda opcional. O campo Image aceita uma URL publica (http/https) ou um data URL base64 (data:image/...). A miniatura JPEG e gerada automaticamente.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Image": "https://exemplo.com/foto.jpg",
"Caption": "Confira esta imagem",
"MimeType": "",
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0B7D1E4A3C2F5D8B1",
"Timestamp": 1711324290
}/chat/send/audioEnviar audio. O campo Audio deve ser um data URL base64 (data:audio/...); URL publica NAO e aceita aqui. Use ptt=true para nota de voz (bolinha verde) - nesse caso a API transcodifica para opus e calcula duracao/waveform automaticamente se omitidos.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Audio": "data:audio/ogg;base64,T2dnUwACAAAA...",
"ptt": true,
"mimetype": "audio/ogg; codecs=opus",
"Seconds": 15,
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0C9E3A7B4D1F2E6C3",
"Timestamp": 1711324310
}/chat/send/videoEnviar video com legenda opcional. O campo Video aceita URL publica (http/https) ou data URL base64. JPEGThumbnail (base64) e opcional.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Video": "https://exemplo.com/video.mp4",
"Caption": "Assista este video",
"MimeType": "",
"JPEGThumbnail": "",
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0D2F4B8C5E3A1D7E2",
"Timestamp": 1711324335
}/chat/send/documentEnviar documento (PDF, DOCX, XLSX, etc). O campo Document deve ser um data URL base64 iniciando com data:application/octet-stream;base64,. FileName (obrigatorio) define o nome exibido no WhatsApp.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Document": "data:application/octet-stream;base64,JVBERi0xLjQK...",
"FileName": "contrato-2026.pdf",
"Caption": "",
"MimeType": "",
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0E5A1C9D6F4B2E8A3",
"Timestamp": 1711324360
}/chat/send/stickerEnviar sticker (figurinha). O campo Sticker deve ser um data URL base64 (data:...). WebP e enviado direto; PNG, JPEG, GIF e video sao convertidos para WebP automaticamente. Campos de pack (PackId/PackName/PackPublisher/Emojis) sao opcionais.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Sticker": "data:image/webp;base64,UklGRlYAAABXRUJQ...",
"MimeType": "",
"PngThumbnail": "",
"PackId": "com.exemplo.stickers",
"PackName": "Meus Stickers",
"PackPublisher": "Fala Comigo",
"Emojis": ["😀", "👍"],
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0F8B2D1E7A5C3F9B4",
"Timestamp": 1711324385
}/chat/send/locationEnviar localizacao com coordenadas GPS e nome opcional do local.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Latitude": -23.5505,
"Longitude": -46.6333,
"Name": "Av Paulista, 1000 - Sao Paulo",
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0A1C3E5D8B2F4A6C5",
"Timestamp": 1711324410
}/chat/send/contactEnviar cartao de contato no formato vCard. Name e o nome exibido e Vcard deve conter o vCard completo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Name": "Joao Silva",
"Vcard": "BEGIN:VCARD\nVERSION:3.0\nFN:Joao Silva\nTEL;type=CELL:+5511888888888\nEND:VCARD",
"Id": "",
"ContextInfo": {}
}{
"Details": "Sent",
"Id": "3EB0B4D6F2A9C1E3B7D8",
"Timestamp": 1711324435
}/chat/send/pollEnviar enquete (poll). Informe o destino em group (numero ou JID), o titulo em header e no minimo 2 options. Os participantes podem votar nas opcoes.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"group": "120363012345678901@g.us",
"header": "Qual horario prefere para a reuniao?",
"options": ["09:00", "14:00", "18:00"],
"Id": ""
}{
"Details": "Poll sent successfully",
"Id": "3EB0F7B8C9D2E4A5F3B7"
}/chat/send/editEditar uma mensagem ja enviada. Id (obrigatorio) e o ID da mensagem original e Body e o novo texto.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Body": "Texto corrigido da mensagem"
}{
"Details": "Sent",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Timestamp": 1711324560
}Chat
Acoes sobre conversas e mensagens existentes.
/chat/markreadMarcar mensagens como lidas (tique azul). Id e uma lista de IDs de mensagem. ChatPhone e o numero da conversa; SenderPhone e opcional (util em grupos). Alternativamente pode-se enviar Chat/Sender como JID.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Id": ["3EB0A8C2F6B2D4A1C3E5"],
"ChatPhone": "5511999999999",
"SenderPhone": ""
}{
"Details": "Message(s) marked as read"
}/chat/reactEnviar reacao (emoji) a uma mensagem. Body e o emoji (use "remove" para retirar a reacao). Id e o ID da mensagem alvo; prefixe com "me:" para reagir a uma mensagem enviada por voce. Participant e opcional (autor original em grupos).
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Body": "👍",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Participant": ""
}{
"Details": "Sent",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Timestamp": 1711324600
}/chat/deleteDeletar (apagar para todos) uma mensagem enviada por voce.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Id": "3EB0A8C2F6B2D4A1C3E5"
}{
"Details": "Deleted",
"Id": "3EB0A8C2F6B2D4A1C3E5",
"Timestamp": 1711324620
}/chat/presenceEnviar indicador de presenca em uma conversa. State pode ser composing (digitando) ou paused. Para o indicador de gravacao de audio, use State=composing com Media=audio.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"State": "composing",
"Media": ""
}{
"Details": "Chat presence set successfuly"
}/chat/archiveArquivar ou desarquivar uma conversa. Jid e o JID da conversa e Archive=true arquiva, false desarquiva.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Jid": "5511999999999@s.whatsapp.net",
"Archive": true
}{
"success": true,
"message": "Chat archived"
}/chat/history?chat_jid=5511999999999@s.whatsapp.net&limit=50Obter o historico de mensagens armazenado de uma conversa (requer historico habilitado via POST /session/history). chat_jid e obrigatorio; limit e opcional (padrao 50). Use chat_jid=index para listar as conversas com historico.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
[
{
"id": 1,
"user_id": "a1b2c3d4-...",
"chat_jid": "5511999999999@s.whatsapp.net",
"sender_jid": "5511999999999@s.whatsapp.net",
"message_id": "3EB0A8C2F6B2D4A1C3E5",
"timestamp": "2026-03-24T23:51:05-03:00",
"message_type": "text",
"text_content": "Ola, tudo bem?",
"media_link": "",
"quoted_message_id": ""
}
]Download de Midia
Baixar arquivos de midia recebidos em mensagens. Estes endpoints NAO usam Phone/Id: informe os metadados de midia entregues pelo webhook (Url, DirectPath, MediaKey, Mimetype, FileEncSHA256, FileSHA256, FileLength) - normalmente os mesmos campos do objeto imageMessage/videoMessage/etc. do payload. A resposta retorna Mimetype e Data como data URL base64.
/chat/downloadimageBaixar imagem de uma mensagem recebida. Retorna a midia como data URL base64.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Url": "https://mmg.whatsapp.net/v/...",
"DirectPath": "/v/t62.7118-24/...",
"MediaKey": "base64_da_media_key",
"Mimetype": "image/jpeg",
"FileEncSHA256": "base64_do_hash",
"FileSHA256": "base64_do_hash",
"FileLength": 45230
}{
"Mimetype": "image/jpeg",
"Data": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD..."
}/chat/downloadvideoBaixar video de uma mensagem recebida. Mesmos campos de metadados do downloadimage.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Url": "https://mmg.whatsapp.net/v/...",
"DirectPath": "/v/t62.7161-24/...",
"MediaKey": "base64_da_media_key",
"Mimetype": "video/mp4",
"FileEncSHA256": "base64_do_hash",
"FileSHA256": "base64_do_hash",
"FileLength": 1048576
}{
"Mimetype": "video/mp4",
"Data": "data:video/mp4;base64,AAAAIGZ0eXBpc29t..."
}/chat/downloadaudioBaixar audio de uma mensagem recebida. Mesmos campos de metadados do downloadimage.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Url": "https://mmg.whatsapp.net/v/...",
"DirectPath": "/v/t62.7117-24/...",
"MediaKey": "base64_da_media_key",
"Mimetype": "audio/ogg; codecs=opus",
"FileEncSHA256": "base64_do_hash",
"FileSHA256": "base64_do_hash",
"FileLength": 8123
}{
"Mimetype": "audio/ogg; codecs=opus",
"Data": "data:audio/ogg; codecs=opus;base64,T2dnUwACAAAA..."
}/chat/downloaddocumentBaixar documento de uma mensagem recebida. Mesmos campos de metadados do downloadimage.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Url": "https://mmg.whatsapp.net/v/...",
"DirectPath": "/v/t62.7119-24/...",
"MediaKey": "base64_da_media_key",
"Mimetype": "application/pdf",
"FileEncSHA256": "base64_do_hash",
"FileSHA256": "base64_do_hash",
"FileLength": 204800
}{
"Mimetype": "application/pdf",
"Data": "data:application/pdf;base64,JVBERi0xLjQKJcfs..."
}/chat/downloadstickerBaixar sticker de uma mensagem recebida. Mesmos campos de metadados do downloadimage.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Url": "https://mmg.whatsapp.net/v/...",
"DirectPath": "/v/t62.15575-24/...",
"MediaKey": "base64_da_media_key",
"Mimetype": "image/webp",
"FileEncSHA256": "base64_do_hash",
"FileSHA256": "base64_do_hash",
"FileLength": 15360
}{
"Mimetype": "image/webp",
"Data": "data:image/webp;base64,UklGRlYAAABXRUJQ..."
}Usuarios
Obter informacoes sobre contatos e usuarios do WhatsApp.
/user/infoObter informacoes detalhadas de um ou mais usuarios (status, foto, dispositivos, etc). Phone e uma lista de numeros. A resposta e um objeto Users indexado por JID.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": ["5511999999999", "5511888888888"]
}{
"Users": {
"5511999999999@s.whatsapp.net": {
"Status": "Disponivel",
"PictureID": "1234567890",
"Devices": ["5511999999999.0:0@s.whatsapp.net"],
"VerifiedName": null
}
}
}/user/checkVerificar se numeros possuem conta no WhatsApp. Phone e uma lista de numeros. Util para validar numeros antes de enviar mensagens.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": ["5511999999999", "5511777777777"]
}{
"Users": [
{
"Query": "5511999999999",
"IsInWhatsapp": true,
"JID": "5511999999999@s.whatsapp.net",
"VerifiedName": ""
},
{
"Query": "5511777777777",
"IsInWhatsapp": false,
"JID": "5511777777777@s.whatsapp.net",
"VerifiedName": ""
}
]
}/user/avatarObter a foto de perfil de um usuario. Preview=true retorna a versao em baixa resolucao; false retorna a foto em alta resolucao.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Phone": "5511999999999",
"Preview": false
}{
"URL": "https://pps.whatsapp.net/v/t61.24694-24/...",
"ID": "1234567890",
"Type": "image",
"DirectPath": "/v/t61.24694-24/..."
}/user/contactsListar todos os contatos conhecidos pela instancia. Retorna um objeto indexado por JID com os dados de cada contato.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"5511999999999@s.whatsapp.net": {
"Found": true,
"FirstName": "Joao",
"FullName": "Joao Silva",
"PushName": "Joao",
"BusinessName": ""
}
}/user/presenceDefinir sua presenca global no WhatsApp. type deve ser available ou unavailable.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"type": "available"
}{
"Details": "Presence set successfuly"
}/user/lid/{jid}Obter o LID (identificador interno do WhatsApp) associado a um numero de telefone. O JID vai na propria URL.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"jid": "5511999999999@s.whatsapp.net",
"lid": "123456789012345@lid"
}Grupos
Gerenciar grupos do WhatsApp: criar, listar, configurar e gerenciar participantes.
/group/createCriar um novo grupo. name e o nome (assunto) e participants a lista de numeros.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"name": "Equipe Comercial",
"participants": ["5511999999999", "5511888888888"]
}{
"JID": "120363012345678901@g.us",
"Name": "Equipe Comercial",
"OwnerJID": "5511999999999@s.whatsapp.net",
"Participants": [
{ "JID": "5511999999999@s.whatsapp.net", "IsAdmin": true, "IsSuperAdmin": true }
]
}/group/listListar todos os grupos em que a instancia participa (dados completos de cada grupo).
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Groups": [
{
"JID": "120363012345678901@g.us",
"Name": "Equipe Comercial",
"Topic": "Canal de vendas",
"ParticipantCount": 5,
"Participants": []
}
]
}/group/info?groupJID=120363012345678901@g.usObter informacoes detalhadas de um grupo especifico.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"JID": "120363012345678901@g.us",
"Name": "Equipe Comercial",
"Topic": "Canal de vendas",
"OwnerJID": "5511999999999@s.whatsapp.net",
"Participants": [
{ "JID": "5511999999999@s.whatsapp.net", "IsAdmin": true, "IsSuperAdmin": true },
{ "JID": "5511888888888@s.whatsapp.net", "IsAdmin": false, "IsSuperAdmin": false }
]
}/group/invitelink?groupJID=120363012345678901@g.us&reset=falseObter o link de convite do grupo. Use reset=true para invalidar o link anterior e gerar um novo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"InviteLink": "https://chat.whatsapp.com/AbCdEfGhIjKlMnOpQrStUv"
}/group/inviteinfoObter informacoes de um grupo a partir do link/codigo de convite (sem entrar). Code aceita o link completo ou apenas o codigo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Code": "https://chat.whatsapp.com/AbCdEfGhIjKlMnOpQrStUv"
}{
"JID": "120363012345678901@g.us",
"Name": "Equipe Comercial",
"Topic": "Canal de vendas",
"ParticipantCount": 5
}/group/joinEntrar em um grupo usando o link/codigo de convite. Code aceita o link completo ou apenas o codigo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Code": "https://chat.whatsapp.com/AbCdEfGhIjKlMnOpQrStUv"
}{
"Details": "Group joined successfully"
}/group/leaveSair de um grupo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us"
}{
"Details": "Group left successfully"
}/group/nameAlterar o nome (assunto) de um grupo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us",
"Name": "Equipe Comercial 2026"
}{
"Details": "Group Name set successfully"
}/group/topicAlterar a descricao (topico) de um grupo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us",
"Topic": "Canal oficial da equipe de vendas"
}{
"Details": "Group Topic set successfully"
}/group/photoAlterar a foto de um grupo. Image deve ser um data URL base64 e a imagem precisa estar em formato JPEG (o WhatsApp so aceita JPEG para foto de grupo).
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us",
"Image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
}{
"Details": "Group Photo set successfully",
"PictureID": "9876543210"
}/group/photo/removeRemover a foto atual do grupo.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"groupjid": "120363012345678901@g.us"
}{
"Details": "Group Photo removed successfully"
}/group/announceAtivar ou desativar o modo de anuncio. Quando ativado (Announce=true), somente admins podem enviar mensagens.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us",
"Announce": true
}{
"Details": "Group Announce set successfully"
}/group/lockedBloquear ou desbloquear a edicao de informacoes do grupo. Quando bloqueado (locked=true), somente admins podem editar nome, foto e descricao.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"groupjid": "120363012345678901@g.us",
"locked": true
}{
"Details": "Group Locked setting updated successfully"
}/group/ephemeralConfigurar mensagens temporarias (que desaparecem) do grupo. duration aceita 24h, 7d, 90d ou off.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"groupjid": "120363012345678901@g.us",
"duration": "7d"
}{
"Details": "Disappearing timer set successfully"
}/group/updateparticipantsAdicionar, remover, promover ou rebaixar participantes. Phone e a lista de numeros e Action pode ser add, remove, promote ou demote.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"GroupJID": "120363012345678901@g.us",
"Phone": ["5511777777777", "5511666666666"],
"Action": "add"
}{
"Details": "Group Participants updated successfully"
}Webhook Config
Configurar o webhook da sua instancia para receber eventos em tempo real. events aceita apenas os nomes listados na secao Eventos Disponiveis (nomes invalidos sao ignorados).
/webhookDefinir a URL e os eventos do webhook. A URL deve comecar com http:// ou https://.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"webhookurl": "https://seu-servidor.com/webhook",
"events": ["Message", "ReadReceipt", "ChatPresence", "HistorySync"]
}{
"webhook": "https://seu-servidor.com/webhook"
}/webhookVer a configuracao atual do webhook (URL e eventos inscritos).
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"webhook": "https://seu-servidor.com/webhook",
"subscribe": ["Message", "ReadReceipt", "ChatPresence", "HistorySync"]
}/webhookAtualizar parcialmente a configuracao do webhook. Envie webhook e/ou events para altera-los. Use active=false para desativar (limpa URL e eventos) sem apagar o registro.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"webhook": "https://seu-servidor.com/novo-webhook",
"events": ["Message"],
"active": true
}{
"webhook": "https://seu-servidor.com/novo-webhook",
"events": ["Message"],
"active": true
}/webhookRemover a configuracao de webhook. Voce deixara de receber eventos.
Header: token: {instance_token}
Mostrar exemplosOcultar exemplos
{
"Details": "Webhook and events deleted successfully"
}Webhook Payload
Quando um evento ocorre, a API envia um POST para a URL do seu webhook com o payload abaixo. Seu servidor deve retornar status 200 para confirmar o recebimento.
Estrutura do Payload
Todos os eventos seguem a mesma estrutura base. O campo type identifica o tipo de evento e event contem os dados.
| Campo | Tipo | Descricao |
|---|---|---|
type | string | Tipo do evento (Message, ReadReceipt, etc) |
event | object | Dados do evento (Info + Message) |
event.Info | object | Metadados: Chat, ID, Sender, Timestamp, Type, etc |
event.Message | object | Conteudo da mensagem (conversation, imageMessage, etc) |
instanceName | string | Nome da instancia que gerou o evento |
userID | string | UUID da instancia |
Exemplo: Mensagem de Texto
{
"event": {
"Info": {
"Chat": "5521999999999@s.whatsapp.net",
"ID": "3A2C03BB065D687AF9F8",
"IsFromMe": false,
"IsGroup": false,
"PushName": "Joao Silva",
"Sender": "5521999999999@lid",
"SenderAlt": "5521999999999@s.whatsapp.net",
"Timestamp": "2026-03-24T23:51:05-03:00",
"Type": "text"
},
"Message": {
"conversation": "Ola, tudo bem?"
}
},
"instanceName": "minha-instancia",
"type": "Message",
"userID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Exemplo: Mensagem com Imagem
{
"event": {
"Info": {
"Chat": "5521999999999@s.whatsapp.net",
"ID": "3A5B07CC189E2D4AF1C3",
"IsFromMe": false,
"IsGroup": false,
"PushName": "Maria Santos",
"Sender": "5521999999999@lid",
"SenderAlt": "5521999999999@s.whatsapp.net",
"Timestamp": "2026-03-24T23:55:12-03:00",
"Type": "image",
"MediaType": "image"
},
"Message": {
"imageMessage": {
"url": "https://mmg.whatsapp.net/v/...",
"directPath": "/v/t62.7118-24/...",
"mimetype": "image/jpeg",
"caption": "Olha essa foto!",
"fileSha256": "...",
"fileEncSha256": "...",
"mediaKey": "...",
"fileLength": 45230,
"height": 1080,
"width": 1920,
"jpegThumbnail": "/9j/4AAQ..."
}
}
},
"instanceName": "minha-instancia",
"type": "Message",
"userID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Exemplo: Mensagem em Grupo
{
"event": {
"Info": {
"Chat": "120363012345678901@g.us",
"ID": "3A7D09EE291F4B6AC5E7",
"IsFromMe": false,
"IsGroup": true,
"PushName": "Carlos Souza",
"Sender": "5511777777777@lid",
"SenderAlt": "5511777777777@s.whatsapp.net",
"Timestamp": "2026-03-25T10:30:00-03:00",
"Type": "text"
},
"Message": {
"conversation": "Bom dia pessoal!"
}
},
"instanceName": "minha-instancia",
"type": "Message",
"userID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Eventos Disponiveis
Lista completa de eventos que podem ser configurados no webhook. Use o array events no POST /webhook para se inscrever nos eventos desejados.
| Evento | Descricao |
|---|---|
Message | Nova mensagem recebida (texto, midia, etc) |
UndecryptableMessage | Mensagem recebida que nao pode ser descriptografada |
Receipt | Confirmacao de entrega/leitura de mensagem |
MediaRetry | Tentativa de reenvio de midia |
ReadReceipt | Confirmacao de leitura (tique azul) |
GroupInfo | Alteracao nas informacoes de um grupo (nome, topico, participantes, etc) |
JoinedGroup | A instancia entrou em um novo grupo |
Picture | Foto de perfil (de usuario ou grupo) alterada |
BlocklistChange | Alteracao na lista de bloqueados |
Blocklist | Estado atual da lista de bloqueados |
Connected | Sessao conectada ao WhatsApp |
Disconnected | Sessao desconectada |
ConnectFailure | Falha ao conectar |
KeepAliveRestored | Keep-alive restaurado |
KeepAliveTimeout | Timeout do keep-alive |
QRTimeout | Tempo do QR code expirou |
LoggedOut | Logout realizado (sessao encerrada pelo WhatsApp ou pelo usuario) |
ClientOutdated | Versao do cliente desatualizada |
TemporaryBan | Banimento temporario da conta |
StreamError | Erro no stream de conexao |
StreamReplaced | Stream de conexao substituido (conectado em outro lugar) |
PairSuccess | Pareamento bem-sucedido |
PairError | Falha no pareamento |
QR | Novo QR code disponivel para escaneamento |
QRScannedWithoutMultidevice | QR escaneado sem multidispositivo habilitado |
PrivacySettings | Alteracao nas configuracoes de privacidade |
PushNameSetting | Alteracao do nome de exibicao (push name) |
UserAbout | Alteracao do status/recado de um usuario |
AppState | Atualizacao de estado do app (app state) |
AppStateSyncComplete | Sincronizacao de app state concluida |
HistorySync | Sincronizacao de historico de mensagens |
OfflineSyncCompleted | Sincronizacao offline concluida |
OfflineSyncPreview | Previa da sincronizacao offline |
CallOffer | Oferta de chamada recebida |
CallAccept | Chamada aceita |
CallTerminate | Chamada encerrada |
CallOfferNotice | Aviso de oferta de chamada |
CallRelayLatency | Latencia de relay da chamada |
Presence | Presenca global de um contato (online/offline) |
ChatPresence | Indicador de presenca em conversa (digitando, gravando) |
IdentityChange | Alteracao de identidade (chave de seguranca) de um contato |
CATRefreshError | Erro ao atualizar o token CAT |
NewsletterJoin | Entrada em canal (newsletter) |
NewsletterLeave | Saida de canal (newsletter) |
NewsletterMuteChange | Alteracao de mudo em canal |
NewsletterLiveUpdate | Atualizacao em tempo real de canal |
NewsletterMessage | Nova mensagem em canal (inclua 'NewsletterMessage' nos events para receber) |
FBMessage | Mensagem originada do Facebook/Messenger |
All | Inscreve-se em todos os eventos disponiveis |
Formato de Numero
Todos os campos de telefone devem seguir o formato internacional sem o sinal de +.
Numeros individuais
Codigo do pais + DDD + numero, sem espacos, tracos ou parenteses.
| Formato | Exemplo | Descricao |
|---|---|---|
5511999999999 | Brasil, SP, celular | 55 (BR) + 11 (SP) + 999999999 |
5521999999999 | Brasil, RJ, celular | 55 (BR) + 21 (RJ) + 999999999 |
14155552671 | EUA | 1 (US) + 415 + 5552671 |
Grupos e Canais
Grupos usam JID terminando em @g.us e canais (newsletters) terminando em @newsletter.
"Group": "120363012345678901@g.us"
"JID": "120363012345678901@newsletter"Voce obtem os JIDs via GET /group/list, GET /newsletter/list ou GET /jid/list.
Nao use o sinal de + no inicio do numero. Nao inclua espacos, tracos ou parenteses. O formato incorreto causara erro na API.
ContextInfo (Respostas e Mencoes)
O campo ContextInfo e usado para responder a mensagens especificas e mencionar usuarios. E opcional em todos os endpoints de envio.
Campos
| Campo | Tipo | Descricao |
|---|---|---|
StanzaId | string | ID da mensagem que esta sendo respondida (quote). Exige Participant. |
Participant | string | JID do autor da mensagem original. Obrigatorio junto com StanzaId. |
MentionedJID | string[] | Lista de JIDs dos usuarios mencionados na mensagem |
Exemplo: Responder a uma mensagem
Para responder (quote) uma mensagem, inclua o ContextInfo com StanzaId e Participant.
{
"Phone": "5511999999999",
"Body": "Respondendo a sua mensagem!",
"ContextInfo": {
"StanzaId": "3EB0A8C2F6B2D4A1C3E5",
"Participant": "5521999999999@s.whatsapp.net"
}
}Exemplo: Mencionar usuarios
Para mencionar usuarios, inclua o MentionedJID. Use @numero no texto para exibir a mencao.
{
"Phone": "120363012345678901@g.us",
"Body": "Ola @5521999999999 e @5511888888888, vamos alinhar?",
"ContextInfo": {
"MentionedJID": [
"5521999999999@s.whatsapp.net",
"5511888888888@s.whatsapp.net"
]
}
}Estrutura completa do ContextInfo
{
"StanzaId": "3EB0A8C2F6B2D4A1C3E5",
"Participant": "5521999999999@s.whatsapp.net",
"MentionedJID": [
"5521999999999@s.whatsapp.net",
"5511888888888@s.whatsapp.net"
]
}