loader
Logo-light
Log In

Documentação da API IntegraWhats

🔐 Autenticação

Todas as requisições à API devem ser autenticadas. Para obter seu token, acesse seu painel na IntegraWhats no menu API > Token.

O token deve ser enviado no header Authorization e o header Client-Service também é obrigatório.

Headers Obrigatórios

Client-Service: frontend-client
Authorization: Bearer {SEU_TOKEN_AQUI}
                        

Mensagens

Enviar Mensagem de Texto

POST /api/messages/text

Envia uma mensagem de texto simples para um número de telefone válido.

Parâmetros do Corpo (JSON)
ParâmetroTipoObrigatórioDescrição
phonestringSimNúmero do destinatário (ex: 5516999999999).
messagestringSimConteúdo da mensagem.
Exemplo de Resposta (Sucesso 200)
{ "status": 200, "message": "Mensagem enviada para a fila.", "messageId": "xyz-123-abc-456" }

Enviar Mídia (Imagem)

POST /api/messages/media

Envia uma imagem (JPG, PNG) para um número de telefone. A imagem deve ser acessível via URL pública.

Parâmetros do Corpo (JSON)
ParâmetroTipoObrigatórioDescrição
phonestringSimNúmero do destinatário.
mediaUrlstringSimURL pública da imagem a ser enviada.
captionstringNãoLegenda opcional para a imagem.

Enviar Mensagem com Botões

POST /api/messages/buttons

Envia uma mensagem de texto acompanhada de até 3 botões de resposta rápida.

Parâmetros do Corpo (JSON)
ParâmetroTipoObrigatórioDescrição
phonestringSimNúmero do destinatário.
messagestringSimTexto principal da mensagem.
buttonsarraySimUm array de objetos de botão, cada um com uma chave text.

Verificar Status da Mensagem

GET /api/status/{messageId}

Consulta o status de uma mensagem específica enviada anteriormente.

Exemplo de Resposta (Sucesso 200)
{ "messageId": "xyz-123-abc-456", "status": "read", "timestamp": "2025-09-22T14:30:00Z" }

Gerenciamento de Contatos

Criar um Novo Contato

POST /api/contacts

Adiciona um novo contato à sua lista.

Parâmetros do Corpo (JSON)
ParâmetroTipoObrigatórioDescrição
namestringSimNome do contato.
phonestringSimNúmero do contato (ex: 5516999999999).
Exemplo de Resposta (Sucesso 201)
{ "id": "ct_12345", "name": "João da Silva", "phone": "5516999999999", "createdAt": "2025-09-22T11:30:00Z" }

Listar Contatos

GET /api/contacts

Retorna uma lista paginada dos seus contatos.

Parâmetros de Query
ParâmetroTipoPadrãoDescrição
pageinteger1Número da página.
limitinteger20Quantidade de contatos por página.

Gerenciar um Contato Específico

GET PUT DELETE /api/contacts/{contactId}

Use o ID do contato (contactId) para obter, atualizar ou excluir.

  • GET: Retorna os detalhes do contato.
  • PUT: Atualiza os dados do contato (envie `name` e/ou `phone`).
  • DELETE: Remove o contato. Retorna status 204 No Content.

Gerenciamento de Campanhas

Criar e Enviar uma Campanha

POST /api/campaigns

Cria uma nova campanha de envio de mensagens.

Parâmetros do Corpo (JSON)
ParâmetroTipoObrigatórioDescrição
namestringSimNome da campanha.
messagestringSimConteúdo da mensagem.
contactIdsarray[string]SimArray com os IDs dos contatos.
scheduledAtstringNãoAgendar envio (formato ISO 8601: YYYY-MM-DDTHH:MM:SSZ).

Listar Campanhas

GET /api/campaigns

Retorna uma lista paginada de todas as suas campanhas.

Gerenciar uma Campanha Específica

GET DELETE /api/campaigns/{campaignId}

Use o ID da campanha (campaignId) para obter detalhes ou cancelar.

  • GET: Retorna os detalhes e o status da campanha.
  • DELETE: Cancela uma campanha agendada.
Exemplo de Resposta GET (Sucesso 200)
{ "id": "camp_abcde", "name": "Promoção", "status": "completed", "stats": { "total": 150, "sent": 148, "failed": 2 } }

Outros

Buscar Dados da Conta

GET /api/business

Retorna informações sobre a conta associada ao token.

Exemplo de Resposta (Sucesso 200)
{ "token": "f6b7...", "expires_token": "2035-04-19 22:30:18", "plan_id": "2" }

↩️ Webhooks

Webhooks são a forma como a IntegraWhats envia informações para o seu sistema em tempo real, como ao receber uma nova mensagem.

Para configurar, forneça uma URL no painel da IntegraWhats. Faremos uma requisição POST para sua URL com os dados do evento.

Exemplo de Payload de Nova Mensagem
{ "event": "message.received", "from": "5516988887777", "message": { "type": "text", "content": "Olá, gostaria de mais informações." } }