FlashConnect Documentação Falar no WhatsApp
Acesso fechado · só convidados

API oficial do WhatsApp com CRM e IA, num só lugar.

Conecte o número que você já usa, atenda pelo celular ou pelo painel e deixe o Claude e outras IAs cuidarem do atendimento, com a segurança de quem é parceiro oficial da Meta.

Oficial

Tech Provider da Meta. Sem QR code improvisado, sem risco de banimento.

Coexistência

Continue usando o app do celular. Sem janela de 24h e sem pagar mensagem enviada pelo celular.

IA-first

API, webhooks e MCP prontos para a IA operar e configurar tudo.

Visão geral

O que é a FlashConnect

Um provedor de API oficial do WhatsApp (Cloud API da Meta) e, quando você quiser, um CRM completo de atendimento. Você escolhe o quanto usar.

Só a conexão

Para quem já tem sistema próprio, CRM, n8n ou uma IA: conecte o número e consuma tudo por API, webhooks e MCP.

Conexão + CRM completo

Para empresas que querem operar tudo aqui: caixa de entrada compartilhada, contatos, agenda, tarefas, automações, equipe e agentes de IA.

Tudo o que o painel faz também está disponível por API e MCP. O painel é só mais um cliente da mesma API, então nada fica preso à tela.

Recursos

O que a plataforma entrega

Conversas

Caixa de entrada com IA e humano na mesma conversa, transferência por equipe, etiquetas, SLA e mídia (imagem, áudio, vídeo, figurinha, documento).

CRM

Ficha do contato, tags, notas, opt-out, produtos e catálogo, base de conhecimento.

Operação

Agenda com horários livres, quadro de tarefas, automações, templates e envios programados.

Agentes de IA

Vários agentes especialistas, com persona, regras, horário de funcionamento e quando passar para humano.

Equipe

Papéis por usuário, distribuição por rodízio ou menor carga e histórico de ações.

Integração

API REST, 15 eventos de webhook e servidor MCP para Claude, ChatGPT, n8n e outras IAs.

Planos

Pague por número conectado

Todos os planos começam com período de teste. Troque de plano quando quiser: os módulos mudam na hora e o valor novo vale a partir da próxima cobrança.

Conexão

  • R$ 99,001º número
  • R$ 59,90cada, do 2º ao 4º número
  • R$ 39,90cada, do 5º número em diante

Valores por mês.

API oficial, MCP de IA, templates e mídia.

Operação recomendado

  • R$ 99,00por número

Valor por mês, sem faixa.

Tudo do Conexão + CRM completo, agenda, tarefas, automações, agentes de IA, equipe e dashboard. Tokens de IA por conta do cliente (chave própria).

Escale

Sob consulta

Operação completa e personalizada: nós cuidamos de tudo.

As mensagens são cobradas pela Meta conforme a tabela oficial dela, direto no cartão que você cadastra na Meta, separado da assinatura. Os tokens de IA (Anthropic, OpenAI…) também são pagos direto ao provedor da IA.

Ligação oficial com a Meta

Coexistência: o melhor dos dois mundos

Seu número fica ao mesmo tempo no app WhatsApp Business do celular e na API oficial. Você ganha automação e CRM sem abrir mão do jeito que já atende.

1

Continue no celular

Responda pelo app como sempre fez. A conversa aparece no painel e a IA enxerga o que foi dito.

2

Zero custo do celular

Mensagens enviadas pelo app do celular não são cobradas por mensagem.

3

Sem janela de 24h

Pelo celular você abre conversa quando quiser, sem esperar o cliente falar primeiro e sem template.

Padrão × Coexistência

PadrãoCoexistência
App no celularDeixa de funcionar nesse númeroContinua funcionando
Mensagens do celular—Sem cobrança, sem janela de 24h
Mensagens pela APIJanela de 24h; fora dela só templateJanela de 24h; fora dela só template
ManutençãoNenhumaAbrir o app a cada 13 dias (avisamos antes)
Limitações—Grupos, mensagens temporárias e visualização única não passam pela API

Janela de 24h: regra da Meta para mensagens pela API. Depois que o cliente fala com você, há 24 horas para responder livremente; fora disso, só com template aprovado pela Meta. A FlashConnect avisa antes de tentar (erro JANELA_EXPIRADA) e você cria e acompanha os templates pelo painel ou pela IA.

Passo a passo

Como conectar o número

  1. Pré-requisitoNúmero do WhatsApp Business com pelo menos 7 dias de uso no app. É uma exigência da Meta para a coexistência.
  2. Cadastro incorporado (Embedded Signup)Você faz login com o Facebook, escolhe a empresa e o número e aprova com o QR code no celular. Tudo dentro do fluxo oficial da Meta, sem passar senha para ninguém.
  3. SincronizaçãoContatos e histórico de conversas são importados. O histórico entra no painel sem disparar automações nem respostas da IA.
  4. ProntoMensagens do cliente chegam por webhook; as enviadas pelo celular chegam como eco (message.echo), marcadas como vindas do celular.

Na prática

Como fica o seu dia a dia

Sem termo técnico: o que muda para quem atende e para quem vende.

Cliente chama às 22h

A IA responde na hora, tira dúvidas com base nos seus produtos e na sua base de conhecimento e, se precisar, avisa a equipe.

Cliente quer falar com gente

A IA passa a conversa para o setor certo. O atendente vê todo o histórico e responde pelo painel ou pelo próprio celular.

Cliente quer marcar horário

A IA mostra só os horários livres da sua agenda, marca e cria o lembrete automático.

Cliente some

A conversa vira tarefa de follow-up no quadro, com prazo e responsável.

Para quem é

Clínicas e consultórios

Agenda, confirmação de consulta e lembretes.

Lojas e serviços

Catálogo, orçamento e pós-venda.

Equipes comerciais

Funil, tags e distribuição de leads entre vendedores.

Do cadastro ao primeiro atendimento

  1. Crie a contaCadastro rápido, com período de teste.
  2. Conecte o número em coexistênciaLogin com Facebook e QR code. Seu celular continua funcionando.
  3. Configure o agentePelo painel ou pedindo ao Claude. Cadastre produtos e conhecimento.
  4. AtendaIA, equipe e celular na mesma conversa.

Segurança

Seus dados protegidos em cada camada

Cada cliente enxerga só o que é seu, e cada acesso deixa rastro.

Isolamento por cliente

Todo dado pertence a um cliente e o banco impede leitura cruzada (RLS). Recurso de outro cliente responde "não encontrado".

Credenciais da Meta blindadas

Tokens ficam numa tabela sem nenhum acesso pelo navegador ou pela API. Só o servidor acessa.

API keys seguras

O segredo aparece uma única vez; guardamos só o hash (SHA-256). Chaves têm escopos mínimos e podem ser revogadas na hora.

Papéis e auditoria

Permissões por papel aplicadas no banco e registro de ações sensíveis. A conta de operador da FlashConnect não acessa o conteúdo das suas conversas.

Webhook da Meta verificado

Assinatura HMAC conferida antes de ler qualquer dado, resposta imediata e proteção contra mensagem duplicada.

Webhooks de saída assinados

HMAC-SHA256 com carimbo de tempo (tolerância de 5 min), comparação em tempo constante, retentativas e chave de idempotência.

Proteção contra SSRF

Endereços internos (localhost, redes privadas, metadados de nuvem) são bloqueados como destino de webhook.

Mídia e segredos

Arquivos ficam em storage próprio e são entregues por link assinado de 1 hora. Segredos de infraestrutura ficam em cofre (Vault).

Infraestrutura no Brasil

Banco e funções em São Paulo, com criptografia em repouso e em trânsito (HTTPS).

Pagamento

Dados do cartão são tratados direto pelo gateway de pagamento e nunca passam pelos nossos servidores.

Mantemos política para solicitações de autoridades e tratamos os dados conforme a LGPD, com o cliente como controlador dos dados dos seus contatos.

Para o time técnico

API REST

Tudo em JSON, autenticado por API key com escopos. Crie a chave no painel em Integrações → Nova chave.

Base:   https://qqyphyubrxyouaqicdbo.supabase.co/functions/v1
Header: Authorization: Bearer ck_live_…
  • O segredo da chave aparece uma única vez. Guardamos só o hash; não há como recuperá-lo depois.
  • Chave revogada responde 401 CHAVE_REVOGADA; chave sem o escopo do endpoint, 403 ESCOPO_INSUFICIENTE.

Endpoints

EndpointO que fazEscopo
POST /whatsapp-sendEnvia texto, template, imagem, documento, áudio e mensagem interativamessages:send
GET /messages-listHistórico da conversa, paginadomessages:read
POST /conversation-updateModo IA/humano, estado, etiquetas, atribuição, agente e equipeconversations:write
GET /agent-configPersona, regras, produtos, conhecimento e equipes do agenteagent:read
GET · POST · PATCH /agendaHorários livres, criar, remarcar e cancelar agendamentosagenda:read / agenda:write
GET · POST · PATCH /tarefasCartões do quadro de tarefastasks:write
POST /contato-updateNome, e-mail, tags, notas e opt-out do contatocontacts:write
POST /media-upload · /media-downloadEnvia mídia e baixa a recebida (áudio para transcrever, imagem para analisar)messages:send / messages:read
POST /api-key-createCria chaves (só usuário logado, dono ou admin)login

Regras que ajudam

  • Fora da janela de 24h, pela API só passa template; o resto retorna JANELA_EXPIRADA antes de chamar a Meta.
  • Erros vêm como { "erro", "codigo" }; falhas da Meta são traduzidas (limite de qualidade, número sem WhatsApp, token inválido…).
  • Agendamento só aceita horários que a própria API listou como livres; conflito retorna HORARIO_INDISPONIVEL.
  • Contato com opt-out não recebe template (OPT_OUT).

Exemplo: enviar uma mensagem

curl -X POST $BASE/whatsapp-send \
  -H "Authorization: Bearer $KEY" \
  -H "content-type: application/json" \
  -d '{"phone_number_id":"123456789012345","para":"5511999990000","texto":"Olá! Posso ajudar?"}'

Para o time técnico

Webhooks: a plataforma avisa a sua IA

Cadastre uma URL https no painel, escolha os eventos e guarde o secret. Todo evento chega assinado.

Eventos

EventoQuando
message.receivedCliente enviou mensagem
message.echoDono respondeu pelo app do celular (coexistência)
message.statusEnviada, entregue, lida ou falhou
conversation.handoffConversa passou de IA para humano (ou voltou)
conversation.resolvedConversa encerrada
template.status · connection.statusTemplate aprovado/reprovado · conexão caiu ou voltou
appointment.created / updated / cancelledMudanças na agenda, de qualquer origem
task.created · task.completedTarefa criada · concluída
automation.triggered · pingAutomação com ação de webhook · teste pelo painel

Formato da entrega

POST <sua-url>
Content-Type: application/json
X-Castilho-Event: message.received
X-Castilho-Delivery: 7c1e…-uuid-da-entrega
X-Castilho-Signature: t=1758374400,v1=8f3a…hex

{
  "id": "7c1e…",
  "evento": "message.received",
  "tenant_id": "<uuid>",
  "criado_em": "2026-09-20T12:00:00.000Z",
  "dados": { … }
}

O id é igual ao X-Castilho-Delivery. Use-o como chave de idempotência: numa nova tentativa, a mesma entrega chega com o mesmo id.

Entrega confiável

  • Responda 2xx em até 10 s. Qualquer outra coisa (erro, timeout, DNS) conta como falha.
  • Novas tentativas em 1 min, 5 min, 15 min e 1 h. Depois de 5 tentativas, a entrega aparece no painel (Integrações → Entregas) com botão de reenviar.
  • message.received e message.echo saem na hora, poucos segundos depois da Meta entregar. Os demais eventos saem no ciclo de 1 minuto.
  • A ordem entre entregas não é garantida; dentro de uma conversa, ordene por dados.message.timestamp.

Como verificar a assinatura

v1 = HMAC-SHA256(secret, "<t>.<corpo cru>"), em hex minúsculo. Rejeite se o carimbo tiver mais de 300 s e compare em tempo constante. Use o corpo cru: reserializar o JSON muda os bytes e invalida a assinatura.

Vetor de teste: secret whsec_teste, t = 1700000000, corpo {"id":"d1","evento":"ping"} → v1 = 144ed65255014b00c5de7faf72d1a7d29015b86b7e78bc32f0dd21bd5ad2da8f.

Node (Express)

import crypto from "node:crypto";
import express from "express";

const SECRET = process.env.WEBHOOK_SECRET;
const app = express();

app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
  const header = req.get("x-castilho-signature") ?? "";
  const partes = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const t = Number(partes.t);
  if (!Number.isFinite(t) || Math.abs(Date.now() / 1000 - t) > 300) return res.sendStatus(401);

  const esperado = crypto.createHmac("sha256", SECRET).update(`${t}.${req.body}`).digest("hex");
  const recebido = Buffer.from(partes.v1 ?? "", "hex");
  if (recebido.length !== 32 || !crypto.timingSafeEqual(Buffer.from(esperado, "hex"), recebido)) {
    return res.sendStatus(401);
  }

  const evento = JSON.parse(req.body);
  res.sendStatus(200);          // responda antes de processar
  processar(evento).catch(console.error);
});

Python (FastAPI)

import hmac, hashlib, json, time, os
from fastapi import FastAPI, Request, Response

SECRET = os.environ["WEBHOOK_SECRET"].encode()
app = FastAPI()

@app.post("/webhook")
async def webhook(req: Request):
    corpo = await req.body()                       # bytes crus
    header = req.headers.get("x-castilho-signature", "")
    partes = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
    try:
        t = int(partes["t"])
    except (KeyError, ValueError):
        return Response(status_code=401)
    if abs(time.time() - t) > 300:
        return Response(status_code=401)

    esperado = hmac.new(SECRET, f"{t}.".encode() + corpo, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(esperado, partes.get("v1", "")):
        return Response(status_code=401)

    evento = json.loads(corpo)
    # enfileire e responda 200 rápido
    return {"ok": True}

Fluxo típico de uma IA

  1. Recebe message.receivedCom a conversa em modo IA.
  2. Busca o contextoGET /agent-config (persona, produtos, regras) e GET /messages-list (histórico).
  3. RespondePOST /whatsapp-send, e agenda ou cria tarefa se for o caso.
  4. Precisa de gente?POST /conversation-update com modo: "humano" e a equipe certa.

Integração com IAs

Claude e outras IAs gerenciam tudo por MCP

O servidor MCP da FlashConnect usa a mesma API key e os mesmos escopos. Conecte no Claude, ChatGPT ou n8n e peça em linguagem natural: a IA opera o atendimento e também configura a plataforma.

Operar

listar_conversas, ler_conversa, enviar_mensagem, atualizar_conversa, buscar_contatos, atualizar_contato, listar_numeros, status_setup

Agenda e tarefas

listar_agendas, horarios_livres, listar_agendamentos, marcar_agendamento, alterar_agendamento, listar_tarefas, criar_tarefa, alterar_tarefa

Configurar agentes

ver_agente, listar_agentes, salvar_agente

Catálogo e conhecimento

listar_catalogo, salvar_produto, remover_produto, salvar_conhecimento, remover_conhecimento

Templates

listar_templates, criar_template

Webhooks

listar_webhooks, criar_webhook, alterar_webhook, remover_webhook

O que dá para pedir

"Mostre as conversas em modo IA e responda a da Ana confirmando a consulta de amanhã."

"Crie um agente de vendas com tom informal e cadastre estes 10 produtos."

"Marque um horário na agenda para sexta e crie uma tarefa de follow-up."

"Crie um template de lembrete de consulta e um webhook para o meu n8n."

Como conectar

  1. Abra o painel em Conectar IAEscolha o destino (Claude, ChatGPT, outras IAs ou sistema próprio). Cada um mostra só as instruções daquele destino.
  2. Gere a chave com os escopos certosSó leitura para consultar; envio e escrita para operar.
  3. Peça para a IA rodar status_setupEla lê o que já está pronto e guia o próximo passo. O que exige navegador (conectar o número, cartão) vira um link que a IA entrega.

Segurança do MCP: cada ferramenta exige um escopo. Chave só de leitura não envia mensagem nem altera nada: recebe ESCOPO_INSUFICIENTE. Tudo é isolado por cliente e as ações ficam registradas.

Para o time técnico

Códigos de erro

Toda resposta de erro tem erro (mensagem legível) e codigo (estável, para o seu código tratar).

HTTPCódigoSignificado
401NAO_AUTENTICADOSem cabeçalho Authorization
401CHAVE_INVALIDA / CHAVE_REVOGADAAPI key não existe ou foi revogada
403ESCOPO_INSUFICIENTEA chave não tem o escopo do endpoint
404CONVERSA_NAO_ENCONTRADA, CONTATO_NAO_ENCONTRADO…Recurso não existe ou é de outro cliente
409JANELA_EXPIRADAFora das 24h: use template
409HORARIO_INDISPONIVELHorário ocupado ou fora dos livres: consulte de novo
409OPT_OUTO contato pediu para não receber
409SEM_CREDENCIALConexão sem token: reconectar o WhatsApp
502NUMERO_NAO_WHATSAPPO destino não tem WhatsApp; não tente de novo
502LIMITE_QUALIDADEMeta limitou o número por qualidade; pause envios ativos
502RATE_LIMITMuitas chamadas: tente de novo com espera
502TEMPLATE_INVALIDORevise nome, idioma e parâmetros do template
502TOKEN_INVALIDOO cliente precisa reconectar o WhatsApp

Nos erros 502 da Meta, o campo codigo_meta traz o código original da Meta.

Ajuda

Perguntas frequentes

Preciso trocar de número?
Não. Você conecta o número que já usa no WhatsApp Business, e ele continua funcionando no celular (coexistência).
Corro risco de banimento?
A conexão é pela API oficial da Meta, pelo fluxo de cadastro oficial, sem QR code de WhatsApp Web nem automação não autorizada. O que a Meta acompanha é a qualidade: se muita gente bloquear ou denunciar as suas mensagens, ela pode limitar o número. Por isso o opt-out é respeitado automaticamente.
Quem paga as mensagens?
A Meta cobra direto no cartão que você cadastra na conta da Meta, pela tabela oficial dela. A FlashConnect não intermedeia esse valor. Mensagens enviadas pelo app do celular, em coexistência, não são cobradas por mensagem.
O que é a janela de 24h?
Pela API, depois que o cliente manda mensagem, você tem 24 horas para responder livremente. Fora disso, só com template aprovado pela Meta. Pelo celular, em coexistência, essa regra não se aplica.
Por que abrir o app a cada 13 dias?
É uma regra da coexistência: o app do WhatsApp Business precisa ser aberto no celular periodicamente para o número continuar ligado aos dois lados. A FlashConnect avisa antes do prazo.
Grupos funcionam?
Não. A API oficial não acessa grupos, mensagens temporárias nem de visualização única. Elas continuam funcionando normalmente no celular.
Já tenho um sistema, CRM ou n8n. Preciso usar o painel?
Não. No plano Conexão você usa só a ligação com a Meta e consome tudo por API, webhooks e MCP no seu próprio sistema.
Quem paga a IA?
Você usa a sua própria chave de IA (Anthropic, OpenAI…), e o consumo de tokens é cobrado direto pelo provedor da IA.
Onde ficam os meus dados?
No Brasil (São Paulo), criptografados em repouso e em trânsito, isolados por cliente. Você é o controlador dos dados dos seus contatos, conforme a LGPD.

Fale com a gente

Quer entrar no acesso fechado, tirar uma dúvida técnica, conhecer o plano Escale ou ver uma demonstração? Chame o nosso time.

Falar no WhatsApp · +55 19 98960-7650