Skip to main content

Usando o WhatsApp Oficial

O Canal WhatsApp Oficial conecta sua aplicação à WhatsApp Business Platform da Meta. Ele difere do canal não oficial (whatsapp-web) por usar a infraestrutura oficial com WABA (WhatsApp Business Account), templates aprovados pela Meta, cobrança por conversa e as garantias oficiais da plataforma. Diferente do canal não oficial, o canal oficial não é um container: é um registro lógico dentro da MessageFy que aponta para um número de telefone registrado em uma WABA na Meta. A relação continua sendo um canal = um número — múltiplos números exigem múltiplos canais.

Arquitetura provisionada automaticamente

O Router e o http-receiver são criados uma única vez por Account e reaproveitados para os demais números que você conectar.

Pré-requisitos

Todas as chamadas usam o header X-API-KEY (veja Autenticação). O fluxo assume que você já tem uma Account criada (Contas) — o accountId é usado em praticamente todos os passos.

Passo 1 — Criar o Responsável Financeiro

O canal oficial é pré-pago e exige um Responsável Financeiro com isDefault: true na Account antes da criação do canal. Sem ele, a criação falha com METAGURU_FINANCIAL_MANAGER_REQUIRED.
O Responsável Financeiro é usado para as cobranças da MessageFy (não da Meta): é contra ele que as faturas de crédito da carteira são emitidas.

Passo 2 — Criar o canal de Webhook (http-sender)

É nesse canal que a MessageFy entrega tudo: mensagens recebidas, eventos de status, respostas de comandos e notificações de template. Ele precisa existir antes do canal oficial (será o feedbackChannelId).
Guarde o channelId retornado.

Passo 3 — Criar o canal oficial

Erros comuns nesta etapa: Nos bastidores: a MessageFy valida o responsável financeiro, cria o Router e o http-receiver da Account (se ainda não existirem), registra o business na Meta e guarda as credenciais. Quando o Router fica pronto, o canal muda de Created para Running. Acompanhe pelo GET /api/v1/Admin/Channel/{channelId}:
Só prossiga quando o status for Running (ou aguarde o evento INSTANCE_START no webhook).
Todos os comandos usam POST /api/v1/message/SendCommand, sempre com o envelope Package (channelId do canal oficial + content):
A resposta síncrona é só o enfileiramento ({ "packageId": "..." }); o link chega no webhook:
Entregue o connectionLink ao dono do número. Ele abre o fluxo de Embedded Signup da Meta: (1) login com a conta Facebook/Meta Business; (2) seleção ou criação da WABA; (3) informação e verificação do número; (4) aceite das permissões.
O link expira em 60 minutos. Se expirar, envie o comando novamente para gerar outro.
Quando o onboarding termina, o webhook recebe o CONNECTED:
A partir daí o canal já recebe mensagens. O comando STATUS funciona como no canal não oficial.

Passo 5 — Créditos (Carteira)

O envio é pré-pago: a MessageFy cobra por conversa e o consumo sai da carteira da conta. Sem saldo, os envios falham. Uma carteira é criada automaticamente para cada conta — liste-a com WALLET/LIST, consulte saldo com BALANCE, e gere o link de pagamento com ADD_FUND.

Passo 6 — Templates

No canal oficial, conversas só podem ser iniciadas com um template aprovado pela Meta. Fora da janela de 24 horas (contada da última mensagem do cliente), mensagens livres são recusadas. Crie e liste templates pelos comandos TEMPLATES; envie mensagens a partir de um template aprovado com o tipo TEMPLATE:
Dentro da janela de 24h, texto livre e mídia funcionam normalmente (TEXT, IMAGE, etc.).
No canal oficial o to aceita number (só dígitos, com DDI) ou jid — diferente do canal whatsapp-web, que usa exclusivamente jid.

Passo 7 — Receber mensagens e acompanhar envios

Tudo chega na URL do http-sender, no envelope Package padrão (veja Recebendo Eventos). Eventos de status do envio: Exemplo de falha (o detalhe do erro vem em providerMetadata):
Correlacione pelo correlationId (definido por você) ou pelo originPackageId (o packageId retornado no 200 OK do envio).

Recursos não suportados no canal oficial

Enviar estes comandos retorna success: false com mensagem explicativa (ou é ignorado):

Erros comuns

Checklist de implantação

  • Account criada e API Key gerada
  • Responsável financeiro criado com isDefault: true
  • Canal http-sender apontando para sua URL e respondendo 2xx
  • Canal whatsapp-api criado e com status Running
  • Link de conexão gerado e número conectado (CONNECTED recebido)
  • Carteira com saldo
  • Ao menos um template com status APPROVED
  • Webhook tratando TEXT, MESSAGE_SENT, MESSAGE_DELIVERED, MESSAGE_READ, SEND_MESSAGE_RESPONSE e TEMPLATE_STATUS