Gerenciamento de Instâncias WhatsApp

Sobre o Gerenciamento de Instâncias

Sistema de gerenciamento multi-instância do WhatsApp que permite:

  • Criar e gerenciar múltiplas conexões do WhatsApp
  • Monitorar status em tempo real de cada instância
  • Conectar via QR Code de forma segura
  • Iniciar/pausar sessões conforme necessidade
  • Gerenciar recursos de forma independente

Fluxo de Uso Recomendado

  1. Criar uma nova instância
  2. Obter o QR Code para conexão
  3. Escanear o QR Code com o WhatsApp
  4. Verificar o status da conexão
  5. Iniciar o uso das funcionalidades

📊 Metadata Automático

Quando uma instância se conecta ao WhatsApp, o sistema coleta e armazena automaticamente informações úteis:

  • Nome do usuário: Nome cadastrado no WhatsApp
  • Número de telefone: Número conectado (DDI+DDD+número)
  • JID: Identificador único do WhatsApp
  • Plataforma: Tipo de dispositivo (web, mobile, etc)
  • Data de conexão: Timestamp da última conexão bem-sucedida
  • Conta Business: Indica se é uma conta comercial (true/false)
  • Nome do negócio: Descrição do perfil business
  • Categoria do negócio: Categoria do estabelecimento
  • Email do negócio: Email de contato
  • Website do negócio: Site da empresa
  • Endereço do negócio: Localização física

💡 Dica: Use o metadata para validar qual número está conectado e monitorar as conexões das suas instâncias.

Webhooks Disponíveis

Quando configurados, os seguintes eventos são notificados via webhook:

  • Status Change: Mudanças no status da instância
    {
      "event": "status_change",
      "instancia_id": 100,
      "instancia_nome": "Minha Instância",
      "status": {
        "anterior": "connected",
        "atual": "disconnected"
      },
      "timestamp": "2025-01-15T12:34:30-03:00"
    }
  • Mensagem Enviada/Recebida: Notificação de mensagens
    {
      "id": 123,
      "mensagem_id": "ABC123",
      "instancia_id": 100,
      "mensagem": "Conteúdo da mensagem",
      "origem": "5511999999999",
      "destino": "5511888888888",
      "enviado": true,
      "erro": null,
      "tipo_envio": "MENSAGEM_ENVIADA", // ou "MENSAGEM_RECEBIDA"
      "grupo": false,
      "lido": false,
      "created_at": "2025-01-15T12:34:30-03:00"
    }

Criar Nova Instância

1. Criar Nova Instância

POST /api/v1/whatsapp/instancia/criar

Cria uma nova instância do WhatsApp para uso

Parâmetros

Parâmetro Tipo Obrigatório Descrição
nome string Sim Nome para identificar a instância (máx. 255 caracteres)
webhook_url string Não URL para receber webhooks
webhook_status string Não URL para receber webhooks
webhook_grupo string Não URL para receber webhooks

Exemplo de Requisição

curl -X POST "https://apifacil.dev/api/v1/whatsapp/instancia/criar" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "nome": "Minha Instância"
     }'

Exemplo de Resposta (Sucesso)

{
    "error": false,
    "message": "Instância criada com sucesso",
    "data": {
        "instancia_id": "123",
        "nome": "Minha Instância",
        "status": "inactive",
        "token": "abc123def456"
    }
}

Observações

  • Limite de instâncias varia conforme o plano
  • O token gerado é único e necessário para operações futuras
  • A instância inicia com status "inactive"

Códigos de Resposta

Código Descrição
200 Instância criada com sucesso
403 Limite de instâncias atingido
422 Erro de validação nos dados

Listar Instâncias

2. Listar Instâncias

GET /api/v1/whatsapp/instancia/listar

Retorna todas as instâncias do usuário

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/instancia/listar" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": [
        {
            "id": "123",
            "nome": "Minha Instância",
            "public_token": "abc123def456",
            "status": "active",
            "whatsapp_status": "connected",
            "metadata": {
                "nome": "João da Silva",
                "numero": "5511999999999",
                "jid": "5511999999999@s.whatsapp.net",
                "plataforma": "web",
                "data_conexao": "2024-01-15T10:30:00.000Z",
                "is_business": true,
                "business_nome": "Minha Empresa Ltda",
                "business_categoria": "Tecnologia",
                "business_email": "contato@minhaempresa.com",
                "business_website": "https://minhaempresa.com",
                "business_endereco": "Rua das Flores, 123 - São Paulo/SP"
            },
            "created_at": "2024-01-01T10:00:00Z"
        },
        {
            "id": "124",
            "nome": "Instância 2",
            "public_token": "xyz789",
            "status": "inactive",
            "whatsapp_status": "disconnected",
            "metadata": null,
            "created_at": "2024-01-02T15:30:00Z"
        }
    ]
}

Status Possíveis

Status Descrição
active Instância ativa e pronta para uso
inactive Instância criada mas não iniciada
connected WhatsApp conectado e operacional
disconnected WhatsApp desconectado

Detalhes da Resposta

Campo Tipo Descrição
id string Identificador único da instância
nome string Nome da instância
public_token string Token público para operações
status string Status atual da instância
whatsapp_status string Status da conexão WhatsApp
metadata object|null Informações da conexão WhatsApp (nome, número, plataforma, data de conexão). Será null quando desconectado

Detalhes da Instância

2.1. Detalhes da Instância

GET /api/v1/whatsapp/instancia/{id}/detalhes

Retorna todos os detalhes completos de uma instância específica, incluindo configurações e aquecimento

Parâmetros de URL

Parâmetro Tipo Descrição
id string ID ou código da instância

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/instancia/123/detalhes" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": {
        "instancia": {
            "id": 123,
            "codigo": "550e8400-e29b-41d4-a716-446655440000",
            "nome": "Minha Instância",
            "public_token": "abc123def456",
            "status": "connected",
            "tipo_cobranca": "ASSINATURA",
            "metadata": {
                "nome": "João da Silva",
                "numero": "5511999999999",
                "jid": "5511999999999@s.whatsapp.net",
                "plataforma": "web",
                "data_conexao": "2024-01-15T10:30:00.000Z",
                "is_business": true,
                "business_nome": "Minha Empresa Ltda",
                "business_categoria": "Tecnologia",
                "business_email": "contato@minhaempresa.com",
                "business_website": "https://minhaempresa.com",
                "business_endereco": "Rua das Flores, 123 - São Paulo/SP"
            },
            "status_updated_at": "2024-01-15T10:30:00Z",
            "created_at": "2024-01-01T10:00:00Z",
            "updated_at": "2024-01-15T10:30:00Z"
        },
        "configuracao": {
            "webhook_url": "https://seusite.com/webhook/whatsapp",
            "webhook_status": "https://seusite.com/webhook/status",
            "webhook_grupo": "https://seusite.com/webhook/grupos",
            "webhook_ativo": true,
            "config_json": {
                "tipos_envio": ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"],
                "ativar_delay_envio_resposta": true,
                "ativar_notificacao_instancia": true,
                "ativar_atualizacoes_interacao": false
            },
            "created_at": "2024-01-01T10:00:00Z",
            "updated_at": "2024-01-15T09:00:00Z"
        },
        "aquecimento": {
            "ativo": true,
            "numeros": ["5511999999999", "5511888888888"],
            "mensagens": ["Olá!", "Tudo bem?", "Teste de aquecimento"],
            "enviar_fotos_privado": true,
            "enviar_fotos_grupo": false,
            "intervalo_minimo": 30,
            "intervalo_maximo": 120,
            "criar_grupos": false,
            "trocar_foto_perfil": true,
            "horario_inicio": "08:00",
            "horario_fim": "18:00",
            "config_json": null,
            "ultima_execucao": "2024-01-15T14:30:00Z",
            "created_at": "2024-01-01T10:00:00Z",
            "updated_at": "2024-01-15T14:30:00Z"
        }
    }
}

Observações

  • Acesso restrito apenas às instâncias do usuário autenticado
  • Retorna dados completos de whatsapp_instancias, whatsapp_configuracoes e whatsapp_aquecimento_configuracoes
  • Campos null são retornados quando não há configuração ou aquecimento configurado
  • O ID pode ser tanto o ID numérico quanto o código UUID da instância

Estrutura da Resposta

Instância (whatsapp_instancias)
Campo Tipo Descrição
id integer Identificador único da instância
codigo string Código UUID único da instância
nome string Nome da instância
public_token string Token público para operações
status string Status atual da instância
tipo_cobranca string Tipo de cobrança (AVULSO ou ASSINATURA)
metadata object|null Metadados da conexão WhatsApp (nome, número, etc)
status_updated_at string Última atualização do status
created_at string Data de criação
updated_at string Data da última atualização
📱 Sobre o Campo Metadata

O campo metadata contém informações detalhadas sobre a conexão WhatsApp, coletadas automaticamente quando o número é conectado. Estes dados são úteis para identificação e monitoramento.

Estrutura do Metadata:
Campo Tipo Descrição
nome string|null Nome do usuário do WhatsApp conectado
numero string|null Número de telefone conectado (formato: DDI+DDD+número)
jid string|null Identificador único do WhatsApp (JID)
plataforma string Plataforma de conexão (ex: web, mobile)
data_conexao string Data e hora da última conexão bem-sucedida (ISO 8601)

Nota: O metadata é atualizado automaticamente sempre que a instância se conecta ao WhatsApp. Quando a instância está desconectada, o campo pode ser null.

Configuração (whatsapp_configuracoes)
Campo Tipo Descrição
webhook_url string|null URL do webhook principal
webhook_status string|null URL do webhook de status
webhook_grupo string|null URL do webhook de grupos
webhook_ativo boolean Status de ativação dos webhooks
config_json object Configurações avançadas em JSON
created_at string Data de criação
updated_at string Data da última atualização
Aquecimento (whatsapp_aquecimento_configuracoes)
Campo Tipo Descrição
ativo boolean Status de ativação do aquecimento
numeros array Lista de números para aquecimento
mensagens array Lista de mensagens para aquecimento
enviar_fotos_privado boolean Enviar fotos em conversas privadas
enviar_fotos_grupo boolean Enviar fotos em grupos
intervalo_minimo integer Intervalo mínimo entre mensagens (minutos)
intervalo_maximo integer Intervalo máximo entre mensagens (minutos)
criar_grupos boolean Criar grupos durante aquecimento
trocar_foto_perfil boolean Trocar foto de perfil
horario_inicio string Horário de início (HH:MM)
horario_fim string Horário de fim (HH:MM)
config_json object|null Configurações adicionais em JSON
ultima_execucao string|null Data da última execução
created_at string Data de criação
updated_at string Data da última atualização

Códigos de Resposta

Código Descrição
200 Detalhes retornados com sucesso
404 Instância não encontrada ou não pertence ao usuário
500 Erro interno do servidor

Status da Instância

2.2. Verificar Status da Instância

GET /api/v1/whatsapp/instancia/{id}/status

Retorna o status detalhado de uma instância específica

Parâmetros de URL

Parâmetro Tipo Descrição
id string ID da instância

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/instancia/123/status" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": {
        "status_banco": "connected",
        "tem_qrcode": false
    }
}

Estados Possíveis

Estado Descrição Próximas Ações
connected WhatsApp conectado Pronto para uso
disconnected Desconectado Reconectar ou gerar novo QR

Obter QR Code

2.3. Obter QR Code

GET /api/v1/whatsapp/instancia/{id}/qrcode

Obtém o QR Code para conexão do WhatsApp

O QR Code é válido por 20 segundos. Após esse período, será necessário gerar um novo.

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/instancia/123/qrcode" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": {
        "qrcode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
        "sessao_ativa": false
    }
}

⚠️ Importantes Considerações

  • QR Code expira em 20 segundos
  • Máximo de 3 tentativas por minuto
  • Recomenda-se implementar retry com intervalo
  • Verificar status após scan bem-sucedido

Iniciar Sessão

2.4. Gerenciamento de Sessão

Iniciar Sessão

POST /api/v1/whatsapp/instancia/{id}/iniciar

Inicia uma instância específica do WhatsApp

Exemplo de Requisição

curl -X POST "https://apifacil.dev/api/v1/whatsapp/instancia/123/iniciar" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "message": "Sessão iniciada com sucesso"
}

Pausar Sessão

Pausar Sessão

POST /api/v1/whatsapp/instancia/{id}/pausar

Pausa temporariamente uma instância do WhatsApp

Exemplo de Requisição

curl -X POST "https://apifacil.dev/api/v1/whatsapp/instancia/123/pausar" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "message": "Sessão pausada com sucesso"
}

Desconectar Sessão

Desconectar Sessão

POST /api/v1/whatsapp/instancia/{id}/desconectar

Desconecta completamente uma instância do WhatsApp e limpa os dados da sessão

Esta operação é mais agressiva que pausar. Ela remove todos os dados da sessão e requer um novo QR Code para reconexão.

Exemplo de Requisição

curl -X POST "https://apifacil.dev/api/v1/whatsapp/instancia/123/desconectar" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "message": "Instância desconectada com sucesso"
}

Diferenças entre Pausar e Desconectar

Ação Pausar Desconectar
Dados da Sessão Mantidos Removidos
Reconexão Rápida Requer novo QR Code
Notificações Preservadas Removidas

Deletar Instância

2.5. Deletar Instância

DELETE /api/v1/whatsapp/instancia/{id}

Remove permanentemente uma instância do WhatsApp

Exemplo de Requisição

curl -X DELETE "https://apifacil.dev/api/v1/whatsapp/instancia/123" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "message": "Instância deletada com sucesso"
}

⚠️ Atenção

  • Ação irreversível
  • Remove todos os dados associados

Verificar Número do WhatsApp

Verificar Número

POST /api/v1/whatsapp/instancia/verificar-numero

Verifica se um número está registrado no WhatsApp

Este endpoint permite verificar se um número de telefone está registrado no WhatsApp antes de tentar enviar mensagens. Se não for informada uma instância, será utilizada a primeira instância do usuário.

Parâmetros

Parâmetro Tipo Obrigatório Descrição
telefone string Sim Número a ser verificado (formato: DDI + DDD + número)
instancia string Não ID da instância a ser utilizada. Se não informado, usa a primeira instância

Exemplo de Requisição

curl -X POST "https://apifacil.dev/api/v1/whatsapp/instancia/verificar-numero" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "telefone": "5511999999999",
       "instancia": "123"
     }'

Exemplo de Resposta

{
    "error": false,
    "data": {
        "exists": true,
        "number": "5511999999999"
    },
    "message": "Verificação realizada com sucesso"
}

Atualizar Configuração de Webhooks

Sobre a Atualização de Configuração

Permite atualizar as configurações de webhooks de uma instância específica do WhatsApp, incluindo URLs de webhook, status de ativação e configurações avançadas de comportamento.

  • Atualizar URL do webhook principal
  • Configurar URL específica para notificações de status
  • Configurar URL específica para mensagens de grupos
  • Ativar/desativar webhooks completamente
  • Configurar tipos de envio permitidos
  • Controlar delay de resposta automática
  • Gerenciar notificações de status da instância
  • Configurar notificações de atualizações de interação

Atualizar Configuração

PUT /api/v1/whatsapp/configuracao/{id}

Atualiza as configurações de webhook de uma instância específica

Parâmetros de URL

Parâmetro Tipo Descrição
id string ID da instância WhatsApp

Parâmetros do Corpo da Requisição

Parâmetro Tipo Obrigatório Descrição
webhook_url string Não URL para receber webhooks de mensagens e eventos gerais
webhook_status string Não URL específica para receber webhooks de mudança de status da instância
webhook_grupo string Não URL específica para receber webhooks de mensagens de grupos
webhook_ativo boolean Não Ativar/desativar completamente os webhooks
rejeitar_chamadas boolean Não 🔕 Ativar rejeição automática de chamadas recebidas nesta instância
tipos_envio array Não Array com os tipos de envio permitidos (Quando habilitado você está dizendo que não quer receber mensagem desse tipo de envio) (ex: ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"])
ativar_delay_envio_resposta boolean Não Ativar delay antes de enviar resposta automática
ativar_notificacao_instancia boolean Não Ativar notificações de mudança de status da instância
ativar_atualizacoes_interacao boolean Não Ativar notificações de atualizações de interação

Exemplo de Requisição

curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "webhook_url": "https://seusite.com/webhook/whatsapp",
       "webhook_status": "https://seusite.com/webhook/status",
       "webhook_grupo": "https://seusite.com/webhook/grupos",
       "webhook_ativo": true,
       "rejeitar_chamadas": true,
       "tipos_envio": ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"],
       "ativar_delay_envio_resposta": true,
       "ativar_notificacao_instancia": true,
       "ativar_atualizacoes_interacao": false
     }'

Exemplo de Resposta (Sucesso)

{
    "error": false,
    "message": "Configuração atualizada com sucesso",
    "data": {
        "id": 123,
        "instancia_id": 456,
        "user_id": 789,
        "webhook_url": "https://seusite.com/webhook/whatsapp",
        "webhook_status": "https://seusite.com/webhook/status",
        "webhook_grupo": "https://seusite.com/webhook/grupos",
        "webhook_ativo": true,
        "config_json": {
            "tipos_envio": ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"],
            "ativar_delay_envio_resposta": true,
            "ativar_notificacao_instancia": true,
            "ativar_atualizacoes_interacao": false
        },
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T14:45:00Z"
    }
}

Observações

  • Todos os parâmetros são opcionais - envie apenas os que deseja atualizar
  • As URLs de webhook devem ser acessíveis publicamente
  • Cada tipo de webhook pode ter sua própria URL para melhor organização
  • Certifique-se que sua aplicação consegue processar as requisições de webhook
  • Webhooks desativados não serão enviados, mas as configurações são mantidas
  • rejeitar_chamadas: 🔕 Quando ativado, todas as chamadas recebidas nesta instância serão automaticamente rejeitadas. Útil para manter o foco apenas em mensagens
  • tipos_envio: bloquear tipos de envio (ex: ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"])
  • ativar_delay_envio_resposta: Adiciona um pequeno delay antes de enviar respostas automáticas
  • ativar_notificacao_instancia: Envia notificações quando o status da instância muda
  • ativar_atualizacoes_interacao: Notifica sobre atualizações de interação com mensagens

🔄 Sistema de Retry de Webhooks

O sistema agora possui retry automático para webhooks falhados:

  • 3 tentativas automáticas em caso de falha
  • Delays progressivos: 1s, 3s e 5s entre tentativas
  • Logs detalhados: Cada tentativa é registrada para debug
  • Webhook marcado como erro apenas após 3 falhas consecutivas

💡 Dica: Certifique-se de que seu endpoint webhook seja confiável e responda rapidamente para evitar retries desnecessários.

Códigos de Resposta

Código Descrição
200 Configuração atualizada com sucesso
404 Instância não encontrada ou não pertence ao usuário
422 Erro de validação nos dados enviados
500 Erro interno do servidor

Exemplos de Uso

Sobre os Campos de Configuração Avançada

Os campos armazenados em config_json permitem controle avançado do comportamento da instância:

  • tipos_envio: Array que define quais tipos de notificações serão bloqueadas via webhook. Valores possíveis: "MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA", "ERRO_PROCESSAMENTO", "MENSAGEM_GRUPO_RECEBIDO", "AUDIO_RECEBIDO", "IMAGEM_RECEBIDA", "VIDEO_RECEBIDO", "DOCUMENTO_RECEBIDO"
  • ativar_delay_envio_resposta: Quando true, adiciona um pequeno delay (alguns segundos) antes de enviar respostas automáticas, simulando comportamento mais natural
  • ativar_notificacao_instancia: Quando true, envia webhooks sempre que o status da instância muda (conectado/desconectado)
  • ativar_atualizacoes_interacao: Quando true, notifica sobre atualizações de interação, como confirmações de leitura, etc.
Sobre as URLs de Webhook

Você pode configurar URLs específicas para diferentes tipos de evento:

  • webhook_url: Recebe mensagens gerais e outros eventos
  • webhook_status: Recebe apenas notificações de mudança de status da instância
  • webhook_grupo: Recebe apenas mensagens de grupos

Se não especificar uma URL específica, os eventos serão enviados para a webhook_url principal.

Atualizar apenas URL do Webhook
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "webhook_url": "https://novosite.com/webhook/whatsapp"
     }'
Desativar Webhooks
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "webhook_ativo": false
     }'
URLs Específicas por Tipo
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "webhook_url": "https://api.minhaloja.com/whatsapp/mensagens",
       "webhook_status": "https://api.minhaloja.com/whatsapp/status",
       "webhook_grupo": "https://api.minhaloja.com/whatsapp/grupos"
     }'
Configurar Apenas Campos Avançados
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "tipos_envio": ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA", "ERRO_PROCESSAMENTO"],
       "ativar_delay_envio_resposta": true,
       "ativar_notificacao_instancia": true,
       "ativar_atualizacoes_interacao": true
     }'
🔕 Ativar Rejeição Automática de Chamadas
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "rejeitar_chamadas": true
     }'

💡 Útil para evitar interrupções e manter o foco apenas em mensagens de texto

Configuração Completa
curl -X PUT "https://apifacil.dev/api/v1/whatsapp/configuracao/ABC123" \
     -H "Authorization: seu_token" \
     -H "Content-Type: application/json" \
     -d '{
       "webhook_url": "https://api.minhaloja.com/whatsapp/webhook",
       "webhook_status": "https://api.minhaloja.com/whatsapp/status",
       "webhook_grupo": "https://api.minhaloja.com/whatsapp/grupos",
       "webhook_ativo": true,
       "rejeitar_chamadas": true,
       "tipos_envio": ["MENSAGEM_ENVIADA", "MENSAGEM_RECEBIDA"],
       "ativar_delay_envio_resposta": true,
       "ativar_notificacao_instancia": true,
       "ativar_atualizacoes_interacao": false
     }'

Exemplos de Webhooks Recebidos

Após configurar, você receberá webhooks nestes formatos:

Webhook de Mensagem Recebida
{
  "event": "whatsapp_insert",
  "id": 999,
  "message_id": "ABC123DEF456",
  "instancia_id": 123,
  "mensagem": "Olá, tudo bem?",
  "origem": "5511999999999",
  "destino": "5511888888888",
  "enviado": false,
  "erro": false,
  "tipo_envio": "MENSAGEM_RECEBIDA",
  "grupo": false,
  "lido": false,
  "respondido": false,
  "status": "recebida",
  "origem_chamada": "API",
  "data": "2024-01-15T14:30:15.000000Z"
}
Webhook de Mudança de Status
{
  "event": "status_change",
  "instancia_id": "ABC123",
  "instancia_nome": "Minha Loja",
  "status": {
    "anterior": "disconnected",
    "atual": "connected"
  },
  "timestamp": "2024-01-15T14:45:30.000000Z"
}

Campos do Webhook de Mensagem

Campo Tipo Descrição
event string Tipo do evento (sempre "whatsapp_insert")
id number|null ID único da notificação no banco
message_id string ID único da mensagem WhatsApp
instancia_id number ID da instância WhatsApp
mensagem string Conteúdo ou caminho do arquivo
origem string Número do remetente
destino string Número do destinatário
enviado boolean Mensagem enviada com sucesso
erro boolean Erro no processamento
tipo_envio string Tipo da mensagem
grupo boolean Mensagem em grupo
lido boolean Mensagem marcada como lida
respondido boolean Mensagem teve resposta
status string Status atual da mensagem
origem_chamada string Origem da chamada (sempre "API")
created_at string Data/hora criação (ISO 8601)

Notificações WhatsApp

Listar Notificações

GET /api/v1/whatsapp/notificacoes

Lista todas as notificações do WhatsApp

Parâmetros de Query

Parâmetro Tipo Obrigatório Descrição
data_inicial string Não Data inicial para filtro (Y-m-d)
data_final string Não Data final para filtro (Y-m-d)
instancia_id integer Não ID da instância para filtrar
tipo_envio string Não Tipo de envio (ex: MENSAGEM_ENVIADA, MENSAGEM_RECEBIDA)
per_page integer Não Quantidade de registros por página (padrão: 15)

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/notificacoes?data_inicial=2024-01-01&data_final=2024-01-31" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 123,
                "mensagem_id": "ABC123",
                "instancia_id": 100,
                "mensagem": "Conteúdo da mensagem",
                "origem": "5511999999999",
                "destino": "5511888888888",
                "enviado": true,
                "erro": null,
                "tipo_envio": "MENSAGEM_ENVIADA",
                "grupo": false,
                "lido": false,
                "created_at": "2024-01-15T12:34:30Z",
                "updated_at": "2024-01-15T12:34:30Z"
            }
        ],
        "first_page_url": "http://api.exemplo.com/api/v1/whatsapp/notificacoes?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "http://api.exemplo.com/api/v1/whatsapp/notificacoes?page=1",
        "next_page_url": null,
        "path": "http://api.exemplo.com/api/v1/whatsapp/notificacoes",
        "per_page": 15,
        "prev_page_url": null,
        "to": 1,
        "total": 1
    }
}

Consultar Notificação

GET /api/v1/whatsapp/notificacoes/{id}

Retorna os detalhes de uma notificação específica

Exemplo de Requisição

curl -X GET "https://apifacil.dev/api/v1/whatsapp/notificacoes/123" \
     -H "Authorization: seu_token"

Exemplo de Resposta

{
    "error": false,
    "data": {
        "id": 123,
        "mensagem_id": "ABC123",
        "instancia_id": 100,
        "mensagem": "Conteúdo da mensagem",
        "origem": "5511999999999",
        "destino": "5511888888888",
        "enviado": true,
        "erro": null,
        "tipo_envio": "MENSAGEM_ENVIADA",
        "grupo": false,
        "lido": false,
        "created_at": "2024-01-15T12:34:30Z",
        "updated_at": "2024-01-15T12:34:30Z"
    }
}

Tipos de Envio Disponíveis

Tipo Descrição
MENSAGEM_ENVIADA Mensagem enviada com sucesso
MENSAGEM_RECEBIDA Mensagem recebida de um contato
ERRO_PROCESSAMENTO Erro durante o processamento da mensagem
MENSAGEM_GRUPO_RECEBIDO Mensagem recebida em um grupo
AUDIO_RECEBIDO Áudio recebido
IMAGEM_RECEBIDA Imagem recebida
VIDEO_RECEBIDO Vídeo recebido
DOCUMENTO_RECEBIDO Documento recebido

⚠️ Atenção: Configuração Necessária

Para utilizar a API de WhatsApp, é necessário:

  • Cadastrar uma instância de WhatsApp no painel
  • Configurar e conectar seu celular através do QR Code
  • Aguardar a sincronização completa
Importante:

O envio de mensagens só funcionará após a configuração completa de uma instância e a sincronização bem-sucedida com seu WhatsApp.

Enviar Mensagem WhatsApp

POST /api/v1/whatsapp/enviar-mensagem

Envia uma mensagem de texto via WhatsApp

Parâmetros

Parâmetro Tipo Descrição
telefone string Número do WhatsApp com DDD
mensagem string Texto da mensagem
instancia string ID da instância do WhatsApp (opcional)

Importante: Formato do Telefone

O número de telefone deve incluir o código do país. Exemplos:

  • Brasil: 5511999999999
  • EUA: 13025550123
  • Portugal: 351912345678

Códigos de País Suportados

Américas
  • Brasil (55) - 11 dígitos
  • EUA/Canadá (1) - 10 dígitos
  • México (52) - 10 dígitos
  • Argentina (54) - 10 dígitos
  • Chile (56) - 9 dígitos
Europa
  • Reino Unido (44) - 10 dígitos
  • Espanha (34) - 9 dígitos
  • Portugal (351) - 9 dígitos
  • França (33) - 9 dígitos
  • Alemanha (49) - 11 dígitos
  • Itália (39) - 10 dígitos
Ásia/Pacífico
  • Japão (81) - 10 dígitos
  • China (86) - 11 dígitos
  • Índia (91) - 10 dígitos
  • Austrália (61) - 9 dígitos

Exemplo de requisição

{
  "telefone": "5511999999999",  // Inclui código do país (55) + DDD (11) + número
  "mensagem": "Olá! Esta é uma mensagem de teste.",
  "instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/enviar-mensagem" \
     -H "Authorization: seu_token_aqui" \
     -H "Content-Type: application/json" \
     -d '{
       "telefone": "5511999999999",
       "mensagem": "Olá! Esta é uma mensagem de teste.",
       "instancia": "12345"
     }'

Exemplo de resposta

{
  "error": false,
  "data": {
    "queue": "mensagem_em_fila",
    "message": "Mensagem em fila para envio"
  }
}

⚠️ Atenção: Configuração Necessária

Para utilizar a API de WhatsApp, é necessário:

  • Cadastrar uma instância de WhatsApp no painel
  • Configurar e conectar seu celular através do QR Code
  • Aguardar a sincronização completa
Importante:

O envio de mensagens só funcionará após a configuração completa de uma instância e a sincronização bem-sucedida com seu WhatsApp.

Enviar Botão WhatsApp

POST /api/v1/whatsapp/enviar-botao

Envia uma mensagem com botões interativos via WhatsApp

Parâmetros

Parâmetro Tipo Obrigatório Descrição
telefone string Sim Número do WhatsApp com DDD
text string Sim Texto da mensagem
buttons array Sim Array de objetos representando os botões
footer string Não Texto do rodapé da mensagem
title string Não Título da mensagem
instancia string Não ID da instância do WhatsApp

Importante: Formato do Telefone

O número de telefone deve incluir o código do país. Exemplos:

  • Brasil: 5511999999999
  • EUA: 13025550123
  • Portugal: 351912345678

Estrutura dos Botões

O parâmetro buttons deve ser um array de objetos com a seguinte estrutura:

[
  {
    "id": "botao1",
    "text": "Texto do botão 1"
  },
  {
    "name": "cta_url",
    "buttonParamsJson": "{\"display_text\": \"Texto do botão\", \"url\": \"https://exemplo.com\"}"
  }
]

Tipos de botões suportados:

  • Botão simples: Use "id" e "text"
  • Botão de URL: Use "name": "cta_url" e "buttonParamsJson" com display_text e url

Limitações: Máximo de 3 botões por mensagem.

Exemplo de requisição

{
  "telefone": "5511999999999",
  "text": "Escolha uma opção:",
  "footer": "API Fácil - Sistema de WhatsApp Bot",
  "title": "🎉 Bem-vindo!",
  "buttons": [
    {
      "id": "status",
      "text": "📊 Ver Status"
    },
    {
      "name": "cta_url",
      "buttonParamsJson": "{\"display_text\": \"🌐 Acessar Dashboard\", \"url\": \"https://example.com\"}"
    }
  ],
  "instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/enviar-botao" \
     -H "Authorization: seu_token_aqui" \
     -H "Content-Type: application/json" \
     -d '{
       "telefone": "5511999999999",
       "text": "Escolha uma opção:",
       "footer": "API Fácil - Sistema de WhatsApp Bot",
       "title": "🎉 Bem-vindo!",
       "buttons": [
         {
           "id": "status",
           "text": "📊 Ver Status"
         },
         {
           "name": "cta_url",
           "buttonParamsJson": "{\"display_text\": \"🌐 Acessar Dashboard\", \"url\": \"https://example.com\"}"
         }
       ],
       "instancia": "12345"
     }'

Exemplo de resposta

{
  "error": false,
  "data": {
    "notificacao_id": 123,
    "message": "Botão adicionado na fila para processamento"
  }
}

Atenção!

O link fornecido no campo "url" deve estar presente no texto da mensagem para que o preview funcione corretamente.

Enviar Mensagem com Preview

POST /api/v1/whatsapp/enviar-preview

Envie mensagens com preview personalizado de links

Envie mensagens de texto com preview personalizado de links para seus contatos no WhatsApp.

Endpoint

POST /api/v1/whatsapp/enviar-preview
Parâmetro Tipo Descrição Obrigatório
telefone string Número do WhatsApp (com DDD) Sim
mensagem string Texto da mensagem Sim
url string URL para gerar o preview Sim
titulo string Título personalizado para o preview Não
descricao string Descrição personalizada para o preview Não
imagem_url string URL da imagem para o preview Não
instancia string ID da instância do WhatsApp Não
tipo_imagem string Tamanho do preview da imagem (small, medium ou large) Não

Exemplo de Requisição

{
    "telefone": "5511999999999",
    "mensagem": "Confira este link interessante! https://exemplo.com",
    "url": "https://exemplo.com",
    "titulo": "Título Personalizado",
    "descricao": "Descrição personalizada do link",
    "imagem_url": "https://exemplo.com/imagem.jpg",
    "tipo_imagem": "medium"
}

Exemplo de Requisição cURL

curl -X POST https://apifacil.dev/api/v1/whatsapp/enviar-preview \
-H 'Content-Type: application/json' \
-H 'Authorization: sua_chave_de_api' \
-d '{
    "telefone": "5511999999999",
    "mensagem": "Confira este link interessante! https://exemplo.com",
    "url": "https://exemplo.com",
    "titulo": "Título Personalizado",
    "descricao": "Descrição personalizada do link",
    "imagem_url": "https://exemplo.com/imagem.jpg",
    "tipo_imagem": "medium"
}'

Exemplo de Resposta

{
    "error": false,
    "data": {
        "queue": true,
        "message": "Mensagem em fila para envio"
    }
}

Dica: Se não forem fornecidos título, descrição ou imagem, o sistema tentará extraí-los automaticamente da URL fornecida.

Enviar Imagem WhatsApp

POST /api/v1/whatsapp/enviar-foto

Envia uma imagem via WhatsApp

Parâmetros

Parâmetro Tipo Descrição
telefone string Número do WhatsApp com DDD
link string URL da imagem
nome string Nome da imagem
instancia string ID da instância do WhatsApp (opcional)

Exemplo de requisição

{
  "telefone": "5551999999999",
  "link": "https://example.com/imagem.jpg",
  "nome": "imagem.jpg",
  "instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/enviar-foto" \
 -H "Authorization: seu_token_aqui" \
 -H "Content-Type: application/json" \
 -d '{
   "telefone": "5551999999999",
   "link": "https://example.com/imagem.jpg",
   "nome": "imagem.jpg",
   "instancia": "12345"
 }'

Enviar Foto em Base64

POST /api/v1/whatsapp/enviar-foto-64

Envie imagens codificadas em Base64 para seus contatos no WhatsApp

Este endpoint permite enviar fotos em formato Base64 diretamente para seus contatos no WhatsApp, sem a necessidade de hospedar a imagem em um servidor externo.

Endpoint

POST /api/v1/whatsapp/enviar-foto-64
Parâmetro Tipo Descrição Obrigatório
telefone string Número do WhatsApp (com DDD) Sim
foto_base64 string Imagem em formato Base64 Sim
nome string Nome ou legenda da foto Sim
instancia string ID da instância do WhatsApp Não

Exemplo de Requisição

{
    "telefone": "5511999999999",
    "foto_base64": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcG...",
    "nome": "Imagem de produto",
    "instancia": "abcd1234"
}

Exemplo de Requisição cURL

curl -X POST https://apifacil.dev/api/v1/whatsapp/enviar-foto-64 \
-H 'Content-Type: application/json' \
-H 'Authorization: sua_chave_de_api' \
-d '{
    "telefone": "5511999999999",
    "foto_base64": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcG...",
    "nome": "Imagem de produto",
    "instancia": "abcd1234"
}'

Exemplo de Resposta

{
    "error": false,
    "data": {
        "queue": true,
        "message": "Foto em fila para envio"
    }
}

Dica: A imagem deve estar codificada em Base64 sem o prefixo "data:image/jpeg;base64,". Os formatos mais compatíveis com WhatsApp são JPG e PNG.

Enviar Arquivo

Endpoint para enviar arquivos através do WhatsApp usando uma URL. Este método é ideal quando você tem arquivos hospedados em servidores externos ou CDNs.

POST /v1/whatsapp/enviar-arquivo

Parâmetros

Parâmetro Tipo Descrição
link string URL do arquivo a ser enviado
nome string Nome do arquivo que aparecerá no WhatsApp
telefone string Número do telefone no formato DDDNúmero
mensagem string Mensagem opcional que acompanha o arquivo
instancia string ID da instância (opcional)

Exemplo de Requisição

{
    "link": "https://example.com/documento.pdf",
    "nome": "documento.pdf",
    "telefone": "11999999999",
    "mensagem": "Segue o documento solicitado",
    "instancia": "123"
}

Exemplo cURL

curl --location 'https://apifacil.dev/api/v1/whatsapp/enviar-arquivo' \
--header 'Authorization: seu_token_aqui' \
--header 'Content-Type: application/json' \
--data '{
    "link": "https://example.com/documento.pdf",
    "nome": "documento.pdf",
    "telefone": "11999999999",
    "mensagem": "Segue o documento solicitado",
    "instancia": "123"
}'

Resposta de Sucesso

{
    "error": false,
    "data": {
        "queue": "msg_123456",
        "message": "Arquivo em fila para envio"
    }
}

O arquivo deve estar acessível publicamente através da URL fornecida. A API fará o download do arquivo para processamento antes do envio via WhatsApp.

Enviar Arquivo Base64

Endpoint para enviar arquivos codificados em base64 através do WhatsApp. Este método é útil quando você já tem o arquivo em formato base64 e não quer fazer upload para um servidor externo.

POST /v1/whatsapp/enviar-arquivo-64

Parâmetros

Parâmetro Tipo Descrição
arquivo_base64 string Arquivo codificado em base64 (sem o prefixo data:...)
tipo_arquivo string Extensão do arquivo (pdf, doc, xlsx, etc)
nome string Nome do arquivo que aparecerá no WhatsApp
telefone string Número do telefone no formato DDDNúmero
mensagem string Mensagem opcional que acompanha o arquivo
instancia string ID da instância (opcional)

Exemplo de Requisição

{
    "arquivo_base64": "JVBERi0xLjcKCjEgMCBvYmogICUgZW50...",
    "tipo_arquivo": "pdf",
    "nome": "documento.pdf",
    "telefone": "11999999999",
    "mensagem": "Segue o documento solicitado",
    "instancia": "123"
}

Exemplo cURL

curl --location 'https://apifacil.dev/api/v1/whatsapp/enviar-arquivo-64' \
--header 'Authorization: seu_token_aqui' \
--header 'Content-Type: application/json' \
--data '{
    "arquivo_base64": "JVBERi0xLjcKCjEgMCBvYmogICUgZW50...",
    "tipo_arquivo": "pdf",
    "nome": "documento.pdf",
    "telefone": "11999999999",
    "mensagem": "Segue o documento solicitado",
    "instancia": "123"
}'

Resposta de Sucesso

{
    "error": false,
    "data": {
        "queue": "msg_123456",
        "message": "Arquivo em fila para envio"
    }
}

Tipos de Arquivo Suportados

  • PDF (pdf)
  • XML (xml)
  • Word (doc, docx)
  • Excel (xls, xlsx)
  • Imagens (png, jpg, jpeg, gif)
  • CSV (csv)
  • Texto (txt)

O tipo do arquivo informado deve corresponder ao conteúdo real do arquivo base64. A API valida o MIME type do arquivo para garantir a segurança.

Enviar Áudio WhatsApp

POST /api/v1/whatsapp/enviar-audio

Envia uma mensagem de voz via WhatsApp

Parâmetros

Parâmetro Tipo Descrição
telefone string Número do WhatsApp com DDD
audio_url string URL do arquivo de áudio (MP3/MP4)
instancia string ID da instância do WhatsApp (opcional)

Dicas para Áudio

  • Formatos suportados: MP3, MP4, OGG, M4A, WEBM
  • Tamanho máximo: 16MB
  • Duração máxima recomendada: 2 minutos
  • URL deve ser pública e acessível
  • Para áudios gravados no WhatsApp, o formato OGG é recomendado

Exemplo de requisição

{
"telefone": "5511999999999",
"audio_url": "https://example.com/audio.mp3",
"instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/enviar-audio" \
 -H "Authorization: seu_token_aqui" \
 -H "Content-Type: application/json" \
 -d '{
   "telefone": "5511999999999",
   "audio_url": "https://example.com/audio.mp3",
   "instancia": "12345"
 }'

Enviar Áudio em Base64

POST /api/v1/whatsapp/enviar-audio-64

Envie arquivos de áudio codificados em Base64 para seus contatos no WhatsApp

Este endpoint permite enviar áudios em formato Base64 diretamente para seus contatos no WhatsApp, sem a necessidade de hospedar o arquivo em um servidor externo.

Endpoint

POST /api/v1/whatsapp/enviar-audio-64
Parâmetro Tipo Descrição Obrigatório
telefone string Número do WhatsApp (com DDD) Sim
audio_base64 string Arquivo de áudio em formato Base64 Sim
instancia string ID da instância do WhatsApp Não

Exemplo de Requisição

{
    "telefone": "5511999999999",
    "audio_base64": "UklGRiSAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YTAAAAA...",
    "instancia": "abcd1234"
}

Exemplo de Requisição cURL

curl -X POST https://apifacil.dev/api/v1/whatsapp/enviar-audio-64 \
-H 'Content-Type: application/json' \
-H 'Authorization: sua_chave_de_api' \
-d '{
    "telefone": "5511999999999",
    "audio_base64": "UklGRiSAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YTAAAAA...",
    "instancia": "abcd1234"
}'

Exemplo de Resposta

{
    "error": false,
    "data": {
        "queue": true,
        "message": "Áudio em fila para envio"
    }
}

Dica: O áudio deve estar codificado em Base64. Para áudios enviados via WhatsApp, recomenda-se o formato OGG, que tem melhor compatibilidade.

Enviar Vídeo WhatsApp

POST /api/v1/whatsapp/enviar-video

Envia um vídeo via WhatsApp

Parâmetros

Parâmetro Tipo Obrigatório Descrição
telefone string Sim Número do WhatsApp com DDD (ex: 5551999999999)
video_url string Sim URL do vídeo (deve ser uma URL válida)
nome string Sim Nome/título do vídeo
mensagem string Não Mensagem/legenda do vídeo
instancia string Não ID da instância do WhatsApp

Observações Importantes

  • A URL do vídeo deve ser válida e acessível publicamente
  • O campo "nome" é obrigatório e será usado como título do vídeo
  • A "mensagem" é opcional e será usada como legenda
  • Tempo limite para download: 30 segundos

Exemplo de requisição

{
  "telefone": "5551999999999",
  "video_url": "https://example.com/video.mp4",
  "nome": "Vídeo de demonstração",
  "mensagem": "Confira este vídeo incrível!",
  "instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/enviar-video" \
     -H "Authorization: seu_token_aqui" \
     -H "Content-Type: application/json" \
     -d '{
       "telefone": "5551999999999",
       "video_url": "https://example.com/video.mp4",
       "nome": "Vídeo de demonstração",
       "mensagem": "Confira este vídeo incrível!",
       "instancia": "12345"
     }'

Resposta de Sucesso

{
  "error": false,
  "message": "",
  "data": {
    "notificacao_id": 12345,
    "message": "Vídeo adicionado na fila para processamento"
  }
}

Resposta de Erro

{
  "error": true,
  "message": "Erro de validação",
  "data": {
    "errors": {
      "telefone": ["O telefone é obrigatório"],
      "video_url": ["A URL do vídeo é obrigatória", "A URL do vídeo deve ser válida"],
      "nome": ["O nome do vídeo é obrigatório"]
    }
  }
}

Códigos de Status HTTP

Código Status Descrição
200 OK Vídeo enviado com sucesso
400 Bad Request Dados inválidos ou malformados
401 Unauthorized Token de autenticação inválido
422 Unprocessable Entity Erro de validação dos dados
500 Internal Server Error Erro interno do servidor

Listar Grupos do WhatsApp

GET /whatsapp/grupos

Lista todos os grupos que a instância participa

Parâmetros

Parâmetro Tipo Descrição
instancia string ID da instância do WhatsApp (opcional)

Exemplo de requisição cURL

curl -X GET "https://apifacil.dev/api/v1/whatsapp/grupos?instancia=12345" \
 -H "Authorization: seu_token_aqui"

Exemplo de resposta

{
"error": false,
"data": [
    {
        "id": "123456789-group@g.us",
        "name": "Nome do Grupo",
        "participants": 50,
        "isAdmin": true
    }
]
}

Enviar Mensagem para Grupo do WhatsApp

POST /whatsapp/grupo/enviar-mensagem

Envia uma mensagem para um grupo específico

Parâmetros

Parâmetro Tipo Descrição
grupo_id string ID do grupo (obtido via listagem)
mensagem string Texto da mensagem
instancia string ID da instância do WhatsApp (opcional)

Exemplo de requisição

{
"grupo_id": "123456789-group@g.us",
"mensagem": "Olá grupo!",
"instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/grupo/enviar-mensagem" \
 -H "Authorization: seu_token_aqui" \
 -H "Content-Type: application/json" \
 -d '{
   "grupo_id": "123456789-group@g.us",
   "mensagem": "Olá grupo!",
   "instancia": "12345"
 }'

Enviar Arquivo para Grupo do WhatsApp

POST /whatsapp/grupo/enviar-arquivo

Envia um arquivo para um grupo específico

Parâmetros

Parâmetro Tipo Descrição
grupo_id string ID do grupo (obtido via listagem)
link string URL do arquivo
nome string Nome do arquivo
mensagem string Texto opcional para o arquivo
instancia string ID da instância do WhatsApp (opcional)

Exemplo de requisição

{
"grupo_id": "123456789-group@g.us",
"link": "https://example.com/documento.pdf",
"nome": "documento.pdf",
"mensagem": "Confira o documento.",
"instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/grupo/enviar-arquivo" \
 -H "Authorization: seu_token_aqui" \
 -H "Content-Type: application/json" \
 -d '{
   "grupo_id": "123456789-group@g.us",
   "link": "https://example.com/documento.pdf",
   "nome": "documento.pdf",
   "mensagem": "Confira o documento.",
   "instancia": "12345"
 }'

Enviar Mensagem com Preview para Grupo do WhatsApp

POST /whatsapp/grupo/enviar-preview

Envia uma mensagem com preview de link para um grupo específico

Parâmetros

Parâmetro Tipo Descrição
grupo_id string ID do grupo (obtido via listagem)
mensagem string Texto da mensagem
url string URL que será exibida no preview
titulo string Título do preview (opcional)
descricao string Descrição do preview (opcional)
imagem_url string URL da imagem do preview (opcional)
tipo_imagem string Tamanho da imagem (small, medium, large) - padrão: medium
instancia string ID da instância do WhatsApp (opcional)

Exemplo de requisição

{
"grupo_id": "123456789-group@g.us",
"mensagem": "Confira este link interessante!",
"url": "https://exemplo.com",
"titulo": "Título do Link",
"descricao": "Descrição do conteúdo",
"imagem_url": "https://exemplo.com/imagem.jpg",
"tipo_imagem": "medium",
"instancia": "12345"
}

Exemplo cURL

curl -X POST "https://apifacil.dev/api/v1/whatsapp/grupo/enviar-preview" \
 -H "Authorization: seu_token_aqui" \
 -H "Content-Type: application/json" \
 -d '{
   "grupo_id": "123456789-group@g.us",
   "mensagem": "Confira este link interessante!",
   "url": "https://exemplo.com",
   "titulo": "Título do Link",
   "descricao": "Descrição do conteúdo",
   "imagem_url": "https://exemplo.com/imagem.jpg",
   "tipo_imagem": "medium",
   "instancia": "12345"
 }'