Evolution API

Servidor WhatsApp multi-instância — pronto para consumir

Autenticação

Todas as requisições exigem o header apikey.

Header: apikey: B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F

API Key global — válida para todas as instâncias.

Quick Start

1. Crie uma instância

curl -X POST https://notificacoes.solucoesatevoce.com.br/instance/create \
  -H "apikey: B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F" \
  -H "Content-Type: application/json" \
  -d '{"instanceName":"meu-whatsapp","qrcode":true}'

2. Exiba o QR Code (vem no campo qrcode.base64) e escaneie com WhatsApp

3. Verifique o status

curl https://notificacoes.solucoesatevoce.com.br/instance/connectionState/meu-whatsapp \
  -H "apikey: B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F"

state: "open" = conectado. "connecting" = aguardando QR.

4. Envie sua primeira mensagem

curl -X POST https://notificacoes.solucoesatevoce.com.br/message/sendText/meu-whatsapp \
  -H "apikey: B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F" \
  -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","text":"Olá, Evolution!"}'

Endpoints

{instance} = nome da sua instância (ex: meu-whatsapp)

Instância

POST/instance/create
Cria instância
GET/instance/fetchInstances
Lista todas
POST/instance/connect/{instance}
Conecta / gera QR
GET/instance/connectionState/{instance}
Status da conexão
DELETE/instance/logout/{instance}
Desconecta
DELETE/instance/delete/{instance}
Remove instância

Mensagens

POST/message/sendText/{instance}Texto
{"number":"5511999999999","text":"Olá","delay":1200}
POST/message/sendMedia/{instance}Imagem / Áudio / Vídeo / Documento

Imagem:

{"number":"5511999999999","mediatype":"image","media":"https://...","caption":"..."}

Áudio:

{"number":"5511999999999","mediatype":"audio","media":"https://...","audioType":"ptt"}

Vídeo:

{"number":"5511999999999","mediatype":"video","media":"https://...","caption":"..."}

Documento:

{"number":"5511999999999","mediatype":"document","media":"https://...","fileName":"Relatorio.pdf"}
POST/message/sendLocation/{instance}Localização
{"number":"5511999999999","latitude":-23.5505,"longitude":-46.6333,"name":"São Paulo"}
POST/message/sendButtons/{instance}Botões interativos
{"number":"5511999999999","title":"Confirma?","description":"Escolha","footer":"S8","buttons":[{"buttonText":{"displayText":"Sim"},"buttonId":"1"},{"buttonText":{"displayText":"Não"},"buttonId":"2"}]}
POST/message/sendList/{instance}Lista de opções
{"number":"5511999999999","title":"Cardápio","description":"Escolha","footer":"S8","buttonText":"Ver","sections":[{"title":"Pizzas","rows":[{"title":"Mussarela","description":"R$45","rowId":"p1"}]}]}

Chat

GET/chat/findChats/{instance}
Lista conversas
POST/chat/findMessages/{instance}Busca mensagens
{"where":{"key":{"remoteJid":"[email protected]"}},"page":1,"pageSize":50}
POST/chat/whatsappNumbers/{instance}Verifica se números têm WhatsApp
{"numbers":["5511999999999","5511888888888"]}
POST/chat/fetchProfilePictureUrl/{instance}Foto de perfil
{"number":"5511999999999"}

Grupos

POST/group/create/{instance}Cria grupo
{"subject":"Meu Grupo","participants":["5511999999999","5511888888888"],"description":"..."}
GET/group/fetchAllGroups/{instance}
Lista grupos

Webhooks

Configure um webhook por instância para receber eventos (mensagens recebidas, status, etc).

curl -X POST https://notificacoes.solucoesatevoce.com.br/settings/set/meu-whatsapp \
  -H "apikey: B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F" \
  -H "Content-Type: application/json" \
  -d '{
    "webhooks": [{
      "url": "https://seu-sistema.com/webhook",
      "events": ["MESSAGES_UPSERT","SEND_MESSAGE","CONNECTION_UPDATE","QRCODE_UPDATED"]
    }]
  }'

Eventos disponíveis: MESSAGES_UPSERT, MESSAGES_UPDATE, MESSAGES_DELETE, SEND_MESSAGE, CONNECTION_UPDATE, QRCODE_UPDATED, CONTACTS_SET, PRESENCE_UPDATE, CHATS_SET, GROUPS_UPSERT, LABELS_EDIT, CALL

Exemplos de código

const EVO = 'https://notificacoes.solucoesatevoce.com.br'
const API_KEY = 'B6D711FCDE4B4C5E8A7F3D2C1E0B9A6F'

// Criar instância
const { data } = await axios.post(`${EVO}/instance/create`, {
  instanceName: 'meu-app', qrcode: true
}, { headers: { apikey: API_KEY } })
console.log('QR Code:', data.qrcode.base64)

// Enviar mensagem
await axios.post(`${EVO}/message/sendText/meu-app`, {
  number: '5511999999999', text: 'Olá!'
}, { headers: { apikey: API_KEY } })