Do zero à primeira mensagem, proteção do número, webhooks, cobrança e parceria.
O Comflow conecta números de WhatsApp comuns ou Business por QR Code e entrega uma API REST por instância. Você fala sempre com o gateway https://comflow.com.br/api/v1: ele autentica pelo token, aplica os limites do plano, protege o número quando você quiser e registra tudo no painel. Cada instância é um número; uma conta pode ter várias.
Use o botão Teste grátis no site: sem cartão, com 2 dias para testar. Ou contrate direto um plano: a conta e a primeira instância são criadas na hora e a instância é liberada com a confirmação do pagamento. Veio por um link de parceiro (?ref=codigo)? Os benefícios dele (dias grátis, desconto, Proteção do número inclusa) aparecem no cadastro e são aplicados automaticamente.
No painel, abra a instância. Na primeira conexão a página mostra o QR e renova sozinha: no celular vá em WhatsApp › Aparelhos conectados › Conectar aparelho e leia o código. A página detecta a conexão e mostra o número.
Na instância, o card Acesso à API mostra a URL base do gateway, o token (header apikey) e o nome da instância. Clique em qualquer um para copiar. O token identifica a instância, então o nome não vai no caminho das chamadas.
curl -X POST "https://comflow.com.br/api/v1/message/sendText" \
-H "apikey: SEU_TOKEN" -H "Content-Type: application/json" \
-d '{"number": "5511999999999", "text": "Olá! Mensagem enviada pelo Comflow."}'
Números sempre com DDI e DDD, só dígitos. A resposta traz key.id (id da mensagem no WhatsApp) e os headers X-Plan-Used e X-Plan-Limit com o consumo do mês. Mídia, áudio, documento, localização, enquetes, grupos e etiquetas seguem os mesmos caminhos da Evolution API, listados na Referência da API.
Informe a URL do seu sistema no card Webhook do cliente da instância. Você recebe um POST em JSON para cada evento: mensagem recebida, mensagem enviada, mudança de conexão e QR atualizado. Responda 200 rápido e processe depois. O gateway reenvia o evento original da engine, com o nome da instância em instance.
Ative no card Proteção do número da instância. Com ela, os envios pelo gateway seguem ritmo humano (intervalo aleatório entre mensagens, pausa a cada lote), respeitam uma janela de horário e um teto diário que cresce com a idade do número: novo, estabilizando, maduro. O que cabe nas regras sai na hora (200). O que passa entra em fila e a API responde 202 com id, scheduled_at e position; consulte em GET /messages/{id} ou cancele com DELETE. Mensagens urgentes (código, resposta que alguém espera) vão com "priority": "high" e saem na hora, dentro de uma cota por hora.
Horários que valem para todos: a janela de envio vai das 8h às 21h. Envio normal fora dela espera o início da próxima janela. Das 22h às 7h é o horário de silêncio: nada normal sai e a saúde do número penaliza quem envia nessa faixa. Prioridade alta sai a qualquer hora, com cota menor no silêncio (10 por hora).
Fila acumulada: se o que está esperando não cabe em um dia de janela, o painel avisa e o seu webhook recebe queue.backlog uma vez por dia. Nessa hora o certo é reduzir o volume ou dividir em mais números, não forçar o envio.
Na sua integração: trate 202 como sucesso e guarde o id. Só isso muda.
Cada instância tem uma nota de 0 a 100 no painel, calculada por quedas de conexão, rajadas por minuto, envios no horário de silêncio (22h–7h), proporção de respostas, crescimento brusco de volume e idade do número. O card mostra os sinais, o mapa de calor das últimas 24 h e o volume diário sugerido. Dicas: aqueça números novos, mantenha ritmo, envie em horário comercial, personalize (spintax) e prefira conversas a disparos.
Cada plano tem um limite mensal de envios (recebidas não contam). Você recebe avisos em 75%, 85% e 95% e, ao chegar a 100%, os envios pausam até o próximo ciclo ou até um upgrade em Meu plano. O gateway responde 429 plan_limit_reached nesse estado. Há também um limite de requisições por minuto (429 rate_limited, com retry_after).
Faturas mensais por instância no dia do vencimento, com pagamento por Pix, boleto ou cartão quando disponível; a liberação após o pagamento é automática. Serviços adicionais (como a Proteção do número, quando vendida à parte) entram na fatura seguinte à contratação. Cancelamento pelo painel: a instância segue ativa até o fim do período pago, sem nova fatura e sem reembolso.
Agências, softwares e integradores podem revender o Comflow. O parceiro recebe um link de indicação com dias grátis, desconto e adicional gratuito para os clientes dele, um painel com todas as instâncias sob o seu guarda-chuva e, se quiser, uma API de parceiro para criar contas direto do próprio sistema, com fatura consolidada mensal. Veja a seção "API de parceiro" na referência e peça sua parceria pelo site.
// PHP
$ch = curl_init("https://comflow.com.br/api/v1/message/sendText");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['apikey: SEU_TOKEN', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['number' => '5511999999999', 'text' => 'Olá'])]);
$res = json_decode(curl_exec($ch), true); $http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http === 202) { /* enfileirado pela proteção: guarde $res['id'] */ }
if ($http === 429) { /* limite: veja $res['message'] e $res['retry_after'] */ }
// Node.js
const r = await fetch("https://comflow.com.br/api/v1/message/sendText", { method: "POST",
headers: { apikey: "SEU_TOKEN", "Content-Type": "application/json" },
body: JSON.stringify({ number: "5511999999999", text: "Olá" }) });
const j = await r.json();
if (r.status === 202) console.log("na fila:", j.id, j.scheduled_at);Acesse seu painel de instâncias.
2 dias grátis, sem cartão.
Conte rapidamente sobre o seu negócio. Respondemos em horário comercial com as condições de parceria.