Enviar Mensagem
Endpoints para envio de mensagens do WhatsApp com diferentes tipos de conteúdo.
Campos Opcionais Comuns
Todos os endpoints de envio de mensagem suportam os seguintes campos opcionais:
-
delay(integer): Atraso em milissegundos antes do envio- Durante o atraso aparecerá "Digitando..." ou "Gravando áudio..." dependendo do tipo
- Exemplo:
5000(5 segundos)
-
readchat(boolean): Marcar chat como lido após envio- Remove o contador de mensagens não lidas do chat
- Exemplo:
true
-
readmessages(boolean): Marcar últimas mensagens recebidas como lidas- Marca as últimas 10 mensagens recebidas (não enviadas por você) como lidas
- Útil para confirmar leitura de mensagens pendentes antes de responder
- Diferente do
readchatque apenas remove contador de não lidas - Exemplo:
true
-
replyid(string): ID da mensagem para responder- Cria uma resposta vinculada à mensagem original
- Suporte varia por tipo de mensagem
-
viewOnce(boolean): Recomendado quando quiser mídia de visualização única- Use em
/send/mediacomtypecompatível (image,video,videoplay,ptv,audio,myaudio,ptt) - Nos demais endpoints de envio, o campo é aceito, mas é ignorado silenciosamente
- Exemplo:
"3A12345678901234567890123456789012"
- Use em
-
mentions(string): Números para mencionar (apenas para envio em grupos)- Números específicos:
"5511999999999,5511888888888" - Compatibilidade para mencionar todos:
"all" - Menção nativa a todos: inclua
@allou@todosdiretamente no texto da mensagem @todosé normalizado para@allantes do envio
- Números específicos:
-
forward(boolean): Marca a mensagem como encaminhada no WhatsApp- Adiciona o indicador "Encaminhada" na mensagem
- Exemplo:
true
-
track_source(string): Origem do rastreamento da mensagem- Identifica o sistema ou fonte que está enviando a mensagem
- Útil para integrações (ex: "chatwoot", "crm", "chatbot")
- Exemplo:
"chatwoot"
-
track_id(string): ID para rastreamento da mensagem- Identificador livre para acompanhar a mensagem em sistemas externos
- Permite correlacionar mensagens entre diferentes plataformas
- Nota: O sistema aceita valores duplicados - não há validação de unicidade
- Use o mesmo ID em várias mensagens se fizer sentido para sua integração
- Exemplo:
"msg_123456789"
-
async(boolean): Envia pela fila interna sem bloquear a requisição- Resposta 200 indica que a mensagem entrou na fila; o envio real pode falhar depois
- Em caso de falha, pesquise em
/message/findcomstatus=failed
Diagnóstico de limites do WhatsApp
Em alguns casos, o WhatsApp pode recusar novas conversas por regras próprias de volume, qualidade ou limitação temporária.
Quando isso acontecer, a resposta de erro pode incluir:
error_source: "whatsapp_server"provider: "whatsapp"provider_code: 463error_keymessagemessage_ptbrprovider_messageprovider_message_ptbrdiagnostics_endpointdetails.new_chat_message_cappingdetails.reachout_timelock
Para consultar o estado atual desses limites para a conta atualmente conectada, use:
GET /instance/wa_messages_limits
Envio para Grupos
number(string): Para enviar mensagem para grupo, use o ID do grupo que termina com@g.us- Exemplo:
"120363012345678901@g.us" - Como obter o ID do grupo:
- Use o
chatiddo webhook recebido quando alguém envia mensagem no grupo - Use o endpoint
GET /group/listpara listar todos os grupos e seus IDs
- Use o
- Exemplo:
Placeholders Disponíveis
Campos textuais das operações de envio que documentam esse recurso aceitam os placeholders abaixo:
Campos de Nome
-
{{name}}: Nome consolidado do chat, usando a primeira opção disponível:- Nome do lead (
lead_name) - Nome completo do lead (
lead_fullName) - Nome do contato no WhatsApp (
wa_contactName) - Nome do perfil do WhatsApp (
wa_name)
- Nome do lead (
-
{{first_name}}: Primeira palavra válida do nome consolidado (mínimo 2 caracteres)
Campos do WhatsApp
{{wa_name}}: Nome do perfil do WhatsApp{{wa_contactName}}: Nome do contato como salvo no WhatsApp
Campos do Lead
{{lead_name}}: Nome do lead{{lead_fullName}}: Nome completo do lead{{lead_personalid}}: ID pessoal (CPF, CNPJ, etc){{lead_email}}: Email do lead{{lead_status}}: Status atual do lead{{lead_notes}}: Anotações do lead{{lead_assignedAttendant_id}}: ID do atendente designado
Campos Personalizados
Os 20 campos personalizados são acessíveis somente por {{lead_field01}} até {{lead_field20}}.
/instance/updateFieldsMap configura o rótulo de cada campo, mas não cria um novo nome de placeholder.
Por exemplo, mesmo que lead_field01 receba o rótulo empresa, use {{lead_field01}}, não {{empresa}}.
Exemplo de Uso
Olá {{first_name}}! Empresa: {{lead_field01}}.
Seu email {{lead_email}} está correto?
💡 Dica: Use /chat/find para buscar dados do chat e ver os campos disponíveis antes de enviar mensagens com placeholders.