API Reference
Integre o WhatsApp diretamente no seu sistema. Envie mensagens, consulte status e gerencie conexões via HTTP.
Visão geral
Um único endpoint. Dois provedores. A mesma interface.
A API suporta conexões dos tipos WAPI (WhatsApp Web não-oficial) e Meta Cloud API (API oficial do WhatsApp Business). O provedor é detectado automaticamente pela API Key — você não precisa especificar qual está usando.
403 Forbidden.
https://b24.falefacilchat.com.br/api.phpA API aceita tanto application/json quanto application/x-www-form-urlencoded. JSON é recomendado por ser mais legível e evitar problemas de encoding em caracteres especiais.
{
"success": true, // bool — resultado da operação
"ts": 1718000000, // int — timestamp Unix
"data": { ... } // object — payload (omitido em erros)
}
// Em erros:
{
"success": false,
"error": "Mensagem de erro descritiva",
"ts": 1718000000
}Autenticação
API Key por conexão, enviada em cada requisição.
Cada API Key está vinculada a uma conexão específica. A chave identifica o cliente, o provedor e o número de WhatsApp a ser usado.
| Método | Como enviar | Recomendado |
|---|---|---|
| X-Api-Key | Header HTTP | ✓ sim |
| Authorization | Header: Bearer {api_key} | alternativa |
| api_key | Query string (aparece em logs de servidor) | ✗ evitar |
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{"action":"status"}'Rate limit
120 requisições por minuto, por chave.
Headers retornados em cada resposta:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1718000060 # timestamp Unix
# Ao exceder:
HTTP/1.1 429 Too Many Requests
Retry-After: 23 # segundos até liberar429. Respeite o header Retry-After antes de tentar novamente.Erros
Códigos HTTP e mensagens padronizadas.
Status da conexão
Verifica se o WhatsApp está conectado.
Para WAPI, consulta o servidor em tempo real. Para Meta, verifica o status registrado na conexão.
curl "https://b24.falefacilchat.com.br/api.php?action=status" \
-H "X-Api-Key: sua-chave-aqui"{
"success": true,
"ts": 1718000000,
"data": {
"connection_id": 12,
"provider": "wapi",
"phone": "5511999990000",
"internal_id": "Comercial 01",
"status": "connected"
}
}Listar conexões
Retorna todas as conexões do cliente.
Lista todas as conexões do cliente vinculado à API Key, independente de qual número a chave pertence.
curl "https://b24.falefacilchat.com.br/api.php?action=list_connections" \
-H "X-Api-Key: sua-chave-aqui"{
"success": true,
"ts": 1718000000,
"data": {
"total": 2,
"connections": [
{ "id": 12, "phone": "5511999990000", "internal_id": "Comercial 01",
"provider": "wapi", "status": "active", "paid_until": "2025-12-31" },
{ "id": 15, "phone": "5511888880000", "internal_id": "Suporte",
"provider": "meta", "status": "active", "paid_until": "2025-06-30" }
]
}
}Enviar texto
Envia uma mensagem de texto para um número.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "send_text" |
| to | string | obrig. | Número destino com DDI, apenas dígitos. Ex: 5511999990000. Para grupos (WAPI), use o JID: 120363041234567890@g.us — ver seção Grupos. |
| message | string | obrig. | Texto a enviar. Máximo 4096 caracteres. Formatação WhatsApp suportada em WAPI (*negrito*, _itálico_). |
| sendtobitrix24 | bool | opcl. | Se true, registra a mensagem enviada na conversa do Bitrix24. Apenas WAPI. |
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "send_text",
"to": "5511999990000",
"message": "Olá! Seu pedido *#1234* foi confirmado. ✓",
"sendtobitrix24": true
}'{ "success": true, "ts": 1718000000, "data": { "message_id": "3EB0A12345ABCDEF", "to": "5511999990000" } }{"success":false,"error":"Connection is not active. Connect WhatsApp first.","ts":1718000000}Enviar mídia
Envia imagem, vídeo, áudio ou documento via URL.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "send_media" |
| to | string | obrig. | Número destino com DDI (apenas dígitos) ou JID de grupo WAPI (...@g.us) — ver Grupos |
| url | string | obrig. | URL pública do arquivo. Deve retornar HTTP 200. Limite: 20 MB. |
| type | string | obrig. | image | video | audio | document |
| caption | string | opcl. | Legenda. Suportada em image, video e document. Ignorada em audio. |
| sendtobitrix24 | bool | opcl. | Se true, registra no Bitrix24 como mensagem enviada. Apenas WAPI. |
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "send_media",
"to": "5511999990000",
"type": "image",
"url": "https://exemplo.com/produto.jpg",
"caption": "Confira nosso novo produto!"
}'curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "send_media",
"to": "5511999990000",
"type": "document",
"url": "https://exemplo.com/proposta.pdf",
"caption": "Segue a proposta em anexo.",
"sendtobitrix24": true
}'Para que o áudio seja entregue como mensagem de voz — com forma de onda animada e botão de play — o arquivo deve ser:
• Container: OGG (.ogg)
• Codec: Opus
• Canais: mono (1 canal)
Arquivos
.mp3 também são aceitos mas aparecem como áudio simples, sem forma de onda. Formatos como .wav e .m4a não são suportados.Para converter qualquer arquivo para o formato correto usando ffmpeg:
ffmpeg -i entrada.mp3 -ac 1 -c:a libopus -b:a 32k saida.ogg
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "send_media",
"to": "5511999990000",
"type": "audio",
"url": "https://exemplo.com/mensagem.ogg"
}'
# Nota: "caption" é ignorado para áudio{ "success": true, "ts": 1718000000, "data": { "message_id": "3EB0A12345ABCDEF", "to": "5511999990000", "type": "image" } }{"success":false,"error":"Could not download media from the provided URL.","ts":1718000000}{"success":false,"error":"Media file exceeds 20 MB limit.","ts":1718000000}Tipos de mídia
Suporte e comportamento por tipo e provedor.
| type | WAPI | Meta | Observações |
|---|---|---|---|
| image | ✓ URL direta | ✓ Upload + envio | jpg, jpeg, png, gif, webp |
| video | ✓ URL direta | ✓ Upload + envio | mp4, avi, mov |
| audio | ✓ Base64 + Ptt | ✓ Upload + envio | WAPI: requer OGG + Opus + mono para voz com forma de onda. ver nota acima |
| document | ✓ Base64 | ✓ Upload + envio | PDF, DOCX, XLSX e outros. Nome do arquivo extraído da URL. |
Provedores
Diferenças entre WAPI e Meta Cloud API.
sendtobitrix24 suportado.Limitações: Sessão não-oficial — pode exigir re-pareamento após atualizações do WhatsApp.
Formato de telefone
Como formatar o parâmetro to.
| País | Formato | Exemplo |
|---|---|---|
| Brasil | 55 + DDD + número | 5511999990000 |
| EUA / Canadá | 1 + área + número | 12125550100 |
| Portugal | 351 + número | 351912345678 |
+55 (11) 99999-0000 e 5511999990000 são tratados como equivalentes.
55 + DDD + 9 + 8 dígitos = 13 dígitos no total. Exemplo: 5511999990000 ✓ — 551199990000 ✗. A ausência do nono dígito resulta em falha de entrega silenciosa — a API processa a requisição normalmente, mas a mensagem nunca chega ao destinatário.
Enviar para grupos
Mensagens para grupos do WhatsApp — disponível apenas em WAPI.
send_text e send_media normalmente, apenas informe o JID do grupo no campo to no lugar do número. Todos os tipos de mídia funcionam (image, video, audio, document).
Um grupo do WhatsApp é identificado por um JID no seguinte padrão (15–20 dígitos seguidos do sufixo @g.us):
120363041234567890@g.us@g.us é adicionado automaticamente. Recomendamos sempre enviar o JID completo para evitar ambiguidades.
A forma mais prática é configurar um webhook. Quando qualquer mensagem for enviada no grupo, o payload conterá o JID no campo event.Info.Chat, com event.Info.IsGroup = true. Armazene esse JID vinculado ao nome do grupo no seu sistema para uso posterior em disparos.
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-wapi" \
-H "Content-Type: application/json" \
-d '{
"action": "send_text",
"to": "120363041234567890@g.us",
"message": "Bom dia, pessoal! ☀️"
}'curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-wapi" \
-H "Content-Type: application/json" \
-d '{
"action": "send_media",
"to": "120363041234567890@g.us",
"type": "image",
"url": "https://exemplo.com/comunicado.jpg",
"caption": "Novidades da semana!"
}'send_template não pode ser enviado para grupos — templates são exclusivos da Meta Cloud API, que não suporta grupos. Todas as regras de formato da seção Enviar mídia continuam valendo (inclusive OGG + Opus para áudios de voz com forma de onda).
sendtobitrix24 funciona normalmente em grupos — o chat do grupo é criado automaticamente no Bitrix24 e a mensagem enviada fica registrada na conversa correspondente.
Listar templates
Retorna os templates aprovados da conta Meta.
Retorna apenas os templates com status APPROVED. Exclusivo para conexões Meta Cloud API — retorna erro 400 em conexões WAPI.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "list_templates" |
curl "https://b24.falefacilchat.com.br/api.php?action=list_templates" \
-H "X-Api-Key: sua-chave-meta"{
"success": true,
"ts": 1718000000,
"data": {
"total": 2,
"templates": [
{
"name": "boas_vindas",
"language": "pt_BR",
"status": "APPROVED",
"category": "MARKETING",
"components": [
{ "type": "HEADER", "format": "TEXT", "text": "Olá, {{1}}!" },
{ "type": "BODY", "text": "Bem-vindo à nossa plataforma. Acesse: {{2}}" },
{ "type": "FOOTER", "text": "Responda PARAR para cancelar." }
]
}
]
}
}{"success":false,"error":"Action \"list_templates\" is only available for Meta (Cloud API) connections.","ts":1718000000}Enviar template
Envia um template aprovado pela Meta para um número.
Templates são a única forma de iniciar uma conversa ou responder fora da janela de 24h na Meta Cloud API. O template precisa estar aprovado no WhatsApp Business Manager e o nome deve ser exatamente como cadastrado.
sendtobitrix24 não está disponível para envio de templates. Use send_text ou send_media para registrar mensagens no Bitrix24.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "send_template" |
| to | string | obrig. | Número destino com DDI, apenas dígitos |
| template_name | string | obrig. | Nome exato do template no WhatsApp Business Manager (ex: boas_vindas) |
| template_lang | string | opcl. | Código de idioma do template. Padrão: pt_BR. Outros: en_US, es |
| components_json | string (JSON) | opcl. | Array JSON com os componentes de variáveis do template (corpo, botões). Ver exemplo abaixo. |
| header_media_url | string | opcl. | URL pública de mídia para o cabeçalho do template (image, video ou document) |
| header_media_type | string | opcl.* | Obrigatório se header_media_url for informado: image | video | document |
Para um template com corpo "Olá {{1}}, seu pedido {{2}} foi confirmado.":
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-meta" \
-H "Content-Type: application/json" \
-d '{
"action": "send_template",
"to": "5511999990000",
"template_name": "confirmacao_pedido",
"template_lang": "pt_BR",
"components_json": "[{\"type\":\"body\",\"parameters\":[{\"type\":\"text\",\"text\":\"João\"},{\"type\":\"text\",\"text\":\"#1234\"}]}]"
}'curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-meta" \
-H "Content-Type: application/json" \
-d '{
"action": "send_template",
"to": "5511999990000",
"template_name": "promocao_mensal",
"template_lang": "pt_BR",
"header_media_url": "https://exemplo.com/banner.jpg",
"header_media_type": "image",
"components_json": "[{\"type\":\"body\",\"parameters\":[{\"type\":\"text\",\"text\":\"50%\"}]}]"
}'{
"success": true,
"ts": 1718000000,
"data": {
"message_id": "wamid.HBgLNTU...",
"to": "5511999990000",
"template_name": "confirmacao_pedido",
"template_lang": "pt_BR"
}
}{"success":false,"error":"Action \"send_template\" is only available for Meta (Cloud API) connections.","ts":1718000000}{"success":false,"error":"Template name does not exist in the translation","ts":1718000000}Encerrar conversa
Finaliza o atendimento ativo no Bitrix24 para um número.
Encerra o atendimento ativo no Canal Aberto do Bitrix24 vinculado ao número informado, chamando
imopenlines.operator.finish.
O chat_id é resolvido automaticamente a partir do histórico de mensagens da conexão — é necessário que ao menos uma mensagem tenha sido trocada após a instalação para que o chat_id esteja disponível.
transfer_chat, o encerramento passa a ser responsabilidade do agente receptor no Bitrix24 ou de um fluxo interno de automação — a API não consegue mais encerrar o chat remotamente.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "close_chat" |
| to | string | obrig. | Número do cliente com DDI (apenas dígitos). Celulares brasileiros: sempre inclua o nono dígito (13 dígitos no total). |
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{"action":"close_chat","to":"5511999990000"}'{
"success": true,
"ts": 1718000000,
"data": {
"closed": true,
"to": "5511999990000",
"chat_id": 4821,
"session_id": 312
}
}{"success":false,"error":"No active Bitrix24 chat found for this phone number. The chat_id may not have been captured yet — ensure at least one message was exchanged after the update.","ts":1718000000}{"success":false,"error":"Access denied","ts":1718000000}Transferir conversa
Transfere o atendimento para outro usuário ou fila no Bitrix24.
Transfere o atendimento ativo no Canal Aberto do Bitrix24 para um agente específico ou para uma fila de distribuição, chamando
imopenlines.operator.transfer.
Após a transferência, o endpoint close_chat deixa de funcionar para este atendimento — o encerramento deve ser feito pelo agente receptor ou por automação interna do Bitrix24.
transfer_id é o ID numérico do usuário ou da fila no Bitrix24. Para localizar: usuários em Bitrix24 → Configurações → Usuários (coluna ID); filas em Bitrix24 → Contact Center → Canais Abertos → canal desejado → aba Fila.
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| action | string | obrig. | "transfer_chat" |
| to | string | obrig. | Número do cliente com DDI (apenas dígitos). Celulares brasileiros: sempre inclua o nono dígito (13 dígitos no total). |
| transfer_id | integer | obrig. | ID numérico do usuário ou da fila de destino no Bitrix24. Deve conter apenas dígitos. |
| transfer_type | string | opcl. | user para transferir a um agente específico; queue para uma fila de distribuição. Padrão: user. |
curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "transfer_chat",
"to": "5511999990000",
"transfer_id": "42",
"transfer_type": "user"
}'curl -X POST "https://b24.falefacilchat.com.br/api.php" \
-H "X-Api-Key: sua-chave-aqui" \
-H "Content-Type: application/json" \
-d '{
"action": "transfer_chat",
"to": "5511999990000",
"transfer_id": "7",
"transfer_type": "queue"
}'{
"success": true,
"ts": 1718000000,
"data": {
"transferred": true,
"to": "5511999990000",
"chat_id": 4821,
"transfer_type": "user",
"transfer_id": 42,
"session_id": 312
}
}{"success":false,"error":"No active Bitrix24 chat found for this phone number. The chat_id may not have been captured yet — ensure at least one message was exchanged after the update.","ts":1718000000}{"success":false,"error":"\"transfer_id\" must be a numeric Bitrix24 user ID or queue ID.","ts":1718000000}Webhooks
Receba eventos do WhatsApp em tempo real no seu sistema.
Webhooks permitem que o seu sistema seja notificado automaticamente sempre que uma mensagem for recebida no WhatsApp. Em vez de ficar consultando a API (polling), o seu endpoint recebe os dados assim que o evento acontece.
Configure o endpoint de destino diretamente no painel, dentro das configurações de cada conexão — aba Desenvolvedor. Basta informar a URL e salvar. O repasse começa imediatamente, sem necessidade de reiniciar a conexão.
O X-Webhook-Token é um token fixo por conexão, visível na aba Desenvolvedor. Use-o para validar que a requisição veio do sistema.
connection_id é sempre injetado pelo sistema no payload antes do repasse — independente do provedor. Use-o para identificar qual conexão originou o evento quando você tem múltiplas conexões apontando para o mesmo endpoint.
<?php
// Valida que a requisição veio do sistema
$token = $_SERVER['HTTP_X_WEBHOOK_TOKEN'] ?? '';
if ($token !== 'seu-webhook-token-aqui') {
http_response_code(403);
exit;
}
// Lê o payload
$payload = json_decode(file_get_contents('php://input'), true);
$connId = $payload['connection_id'];
// WAPI: mensagem no campo event.Message.conversation
// Meta: mensagem no campo message.text.body
// Responde 200 rapidamente para não bloquear o repasse
http_response_code(200);
echo 'ok';
// Seu processamento aqui...
Configure um nó Webhook no N8N como trigger. Cole a URL gerada no campo de endpoint da aba Desenvolvedor da conexão. A partir daí, cada mensagem recebida no WhatsApp dispara o workflow automaticamente — você pode responder usando um nó HTTP Request apontando para a send_text desta API, criando um fluxo completo de atendimento automatizado.
IsFromMe: true em WAPI). Filtre pelo campo IsFromMe ou equivalente Meta para evitar loops de resposta automática.
Nodes para n8n
Automatize workflows com WhatsApp usando nosso community node oficial.
O pacote n8n-nodes-falefacilchat traz todos os endpoints desta API como nodes nativos do n8n, além de um Trigger que recebe mensagens em tempo real via webhook. Funciona com ambos os provedores (WAPI e Meta Cloud API) e entrega um output normalizado — você escreve o workflow uma vez e ele funciona com qualquer conexão.
No n8n, acesse Settings → Community Nodes → Install a community node e informe o nome do pacote:
n8n-nodes-falefacilchat# Dentro da pasta do n8n
cd ~/.n8n
npm install n8n-nodes-falefacilchat
# Reinicie o n8n após a instalação| Node | Recurso | Operação |
|---|---|---|
| Fale Fácil Chat | Mensagem | Enviar texto para número ou grupo |
| Fale Fácil Chat | Mídia | Enviar imagem, vídeo, áudio ou documento |
| Fale Fácil Chat | Template | Listar e enviar templates aprovados (Meta) |
| Fale Fácil Chat | Conexão | Status e listagem de conexões do cliente |
| Fale Fácil Chat | Atendimento | Encerrar ou transferir o atendimento ativo no Bitrix24 — para usuário específico ou fila de distribuição |
| Fale Fácil Chat Trigger | Webhook | Recebe mensagens do WhatsApp em tempo real |
X-Webhook-Token, garantindo que só requisições legítimas disparem seu workflow.
O Trigger entrega um objeto com campos unificados entre WAPI e Meta, eliminando a necessidade de tratar cada provedor separadamente:
O campo raw preserva o payload original completo do provedor — use-o quando precisar de algum campo específico não incluído no objeto normalizado.
| Cenário | Fluxo no n8n |
|---|---|
| Resposta automática | Trigger → IF (texto contém "horário") → Enviar Texto |
| Relatório agendado em PDF | Schedule → Gerar PDF → Enviar Mídia (document) |
| Disparos em massa | Planilha → Loop → Enviar Template (Meta) |
| Chatbot com IA | Trigger → OpenAI/Claude → Enviar Texto |
| Transferência por palavra-chave | Trigger → IF (texto contém "falar com atendente") → Atendimento: Transferir (fila) |
| Encerramento automático | Trigger → IF (texto = "obrigado" ou "resolvido") → Atendimento: Encerrar |
chat_id interno do Bitrix24. Após uma transferência, o node Encerrar Atendimento deixa de funcionar para o mesmo número — o encerramento passa a ser responsabilidade do agente receptor ou de automação interna do Bitrix24.
isFromMe === false) para evitar loops infinitos — sem isso, o workflow responde às próprias respostas automáticas.
Collection Postman
Teste todos os endpoints em segundos, sem escrever uma linha de código.
Fale Fácil Chat — API v1.1
Collection completa com todos os endpoints, variáveis de ambiente pré-configuradas e exemplos de resposta salvos. Inclui WAPI, Meta Cloud API e templates.
.json em qualquer pasta.SUBSTITUA_....api_key e to. As respostas esperadas estão salvas em cada request como exemplos de referência.
Próximos recursos
Funcionalidades planejadas para as próximas versões da API.