WhatsApp

Disparar Mensagem

Envia mensagens através da API Oficial do WhatsApp Cloud para um número destinatário.

POST/whatsapp/send-message
curl --request POST \
  --url 'https://crm.wavups.com/api/v1/whatsapp/send-message' \
  --header 'Token: SEU_TOKEN_DE_API' \
  --header 'Content-Type: application/json' \
  --data '{
    "accountIntegrationId": "cmint1234567890",
    "to": "5511999999999",
    "type": "text",
    "text": {
      "body": "Olá! Tudo bem?"
    }
  }'
{
  "message": "WhatsApp Cloud API message send task queued successfully."
}

Visão Geral

Este endpoint permite disparar mensagens no WhatsApp Oficial (WhatsApp Cloud API) de forma assíncrona. O disparo é processado e enfileirado na infraestrutura de alta performance da WavUps.

[!IMPORTANT] O parâmetro accountIntegrationId é obrigatório. Obtenha o ID correspondente à sua integração de WhatsApp através do endpoint Listar Integrações ou utilize a propriedade accountIntegration retornada no endpoint Listar Setores.


Requisição

POST https://crm.wavups.com/api/v1/whatsapp/send-message

Tokenstringobrigatório

Seu token de autenticação.

Body

accountIntegrationIdstringobrigatório

ID da integração de WhatsApp na sua conta (consulte Listar Integrações ou a propriedade accountIntegration em Listar Setores).

tostringobrigatório

Número de telefone do destinatário com DDI e DDD, sem o símbolo + (ex: 5511999999999).

typestringobrigatório

Tipo de mensagem a ser enviada. Valores suportados: text, image, audio, video, document, template, sticker, location, contacts, reaction, interactive.

ID do Lead a ser associado à conversa caso a conversa ainda não exista no sistema.

senderIdstring

Membro da conta que está enviando a mensagem (opcional): User.id ou id do vínculo, ambos de Listar Membros da Conta. Se não for um membro desta conta, a API responde 404 e a mensagem não é enviada. Se omitido, a mensagem é registrada como enviada por IA/Automação.


Tipos de Mensagem e Payloads

1. Texto (text)

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "text",
  "text": {
    "body": "Olá! Como posso ajudar você hoje?",
    "preview_url": true
  }
}

2. Imagem (image)

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "image",
  "image": {
    "link": "https://meusite.com/imagem.png",
    "caption": "Confira nossa nova tabela de preços!"
  }
}

3. Áudio (audio)

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "audio",
  "audio": {
    "link": "https://meusite.com/audio.mp3"
  }
}

4. Vídeo (video)

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "video",
  "video": {
    "link": "https://meusite.com/apresentacao.mp4",
    "caption": "Apresentação da solução"
  }
}

5. Documento / PDF (document)

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "document",
  "document": {
    "link": "https://meusite.com/proposta.pdf",
    "filename": "Proposta_Comercial.pdf",
    "caption": "Segue em anexo a sua proposta."
  }
}

6. Template (template)

O código do idioma retornado em Listar Templates (campo language, ex: "pt_BR") deve ser informado dentro do objeto language: { "code": "pt_BR" }.

json
{
  "accountIntegrationId": "cmint1234567890",
  "to": "5511999999999",
  "type": "template",
  "template": {
    "name": "confirmacao_pedido",
    "language": {
      "code": "pt_BR"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "João Silva" },
          { "type": "text", "text": "#98765" }
        ]
      }
    ]
  }
}

Exemplos de Envio

Autorização

Tokenstring · headerobrigatório

Token de autenticacao gerado na plataforma WavUps CRM.

Corpo da requisição

application/json · object
accountIntegrationIdstringobrigatório

ID da integração WhatsApp.

tostringobrigatório

Telefone destinatário internacional sem + (ex: 5511999999999).

typeenum<string>obrigatório

Valores aceitos: text, image, audio, video, document, template, sticker, location, contacts, reaction, interactive

ID do lead opcional caso a conversa ainda não exista.

senderIdstring | null

Membro da conta enviando a mensagem: User.id ou id do vínculo (GET /account-user). Fora da conta: 404 e nada é enviado.

textobject
imageobject
audioobject
videoobject
documentobject
templateobject

Respostas

200application/json · object

Mensagem enfileirada com sucesso.

messagestring
Exemplo: "WhatsApp Cloud API message send task queued successfully."
400

Payload inválido.

404

Integração não encontrada.

500