Links

Grupos

API de Grupos WhatsApp

Esta documentação prove as informações necessárias para a integração com a plataforma do Sinch Messaging para realizar o gerenciamento de grupos através da integração Sinch WhatsApp Integration. A API possui integração REST, utilizando o protocolo HTTP com TLS, suportando o método POST com os parâmetros enviados em formato JSON.

Autenticação

Para utilizar com sucesso a nossa API, é preciso apresentar um username válido, ou email, associado com um token de autenticação. É necessário adicionar os seguintes headers a requisição:
Campo
Detalhes
Data Type
userName
Nome ou email válido para autenticação no Sinch Messaging.
String
authenticationToken
Token de autenticação gerado por nossa plataforma. Encontre aqui ou consulte nosso suporte.
String

Detalhes de conexão

Campo
Descrição
Hostname
api-messaging.wavy.global
Porta
443 (https)
Protocolo
HTTPS (TLS encryption)
Autenticação
username + token
Encoding
UTF-8

Envio de Mensagens para Grupos

Ao enviar mensagens para grupos, a requisição é similar a de mensagens diretas. Apenas o objeto Destino precisa ser adaptado.
POST https://api-messaging.wavy.global/v1/whatsapp/send
Exemplo de envio a grupo
{
"destinations": [{
"destination": "5519900000000-1513616971",
"recipientType": "group"
}],
"message": {
"messageText": "Mensagem de teste"
}
}

MO de Grupos

MOs de grupos contém os mesmos campos de MOs regulares com a adição de waGroupId indicando a qual grupo a mensagem foi enviada, como mostrado no exemplo.
Tenha cuidado caso esteja respondendo automaticamente a mensagens diretas enviadas a sua conta WhatsApp. Caso o campo waGroupIdseja ignorado, o MO pode ser confundido com uma mensagem direta em vez de uma mensagem em grupo, e você responderá com uma mensagem direta. Dessa forma, você corre o risco de ser cobrado por um HSM toda vez que o usuário lhe enviar uma mensagem em grupo caso o campo waGroupId não seja tratado corretamente.
Exemplo de mensagem e grupo:
{
"total": 1,
"data": [
{
"source": "5419900000000",
"origin": "5419900000000",
"...",
"message": {
"type": "TEXT",
"messageText": "Olá",
"waGroupId": "5519900000000-1553784379"
},
"..."
}
]
}

Criação de Grupos

Crie um grupo provendo um assunto ou título para o grupo, o qual é o nome que aparecerá na lista de chats. Em resposta, você receberá um ID de grupo que usará para enviar mensagens para o grupo, gerenciar o grupo, etc.
Grupos Não Utilizados: Se você tem vários grupos não utilizados associados a sua conta, você pode encontrar um erro (devido a muitos grupos criados). Você pode simplesmente limpar os grupos que você não está mais usando saindo deles.

Requisição

Exemplo
{
"subject": "assunto-do-grupo"
}
POST https://api-messaging.wavy.global/v1/whatsapp/groups
O corpo da requisição deve conter um objeto JSON com os seguintes campos:
Campo
Obrigatório
Detalhes
Tipo
subject
Sim
Assunto ou título do grupo, limitado a 25 caracteres
String

Resposta

Exemplo de resposta
{
"groups": [{
"creation_time": 1513616971,
"id": "5519900000000-1513616971"
}]
}
A resposta à requisição para criar um grupo retorna um ID de grupo que voce usará para enviar mensagens para o grupo, gerenciar o grupo, etc. Se você precisa obter o ID de grupo em outro momento, veja a seção Consulta de Todos os Grupos.
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo
Detalhes
Tipo
creation_time
Hora de criação
Integer
id
Identificador de grupo para o grupo recém-criado. Deve ser usado para identificar unicamente grupos em requisições subsequentes, onde group_id é usado.
String

Consulta de Todos os Grupos

Recupere todos os grupos em que o cliente é um participante.

Requisição

GET https://api-messaging.wavy.global/v1/whatsapp/groups

Resposta

Exemplo de resposta
{
"groups": [{
"id": "5519900000000-1513616971"
}]
}
A resposta retorna os IDs de grupo de todos os grupos em que o cliente é um participante. Você pode obter mais informações sobre o grupo, como a lista de participantes e o assunto do grupo, usando a chamada descrita na seção Consulta a Informaçôes de Grupo.
Os seguintes campos são retornados em uma resposta bem-sucedida. Se nenhum grupo existir, um array JSON de grupos vazio é retornado.
Campo
Detalhes
Tipo
id
Lista dos grupos que o cliente participa
String

Consulta a Informações de Grupo

Use esta chamada para obter informações sobre o grupo, incluindo o ID dos participantes, e o assunto do grupo. Esta chamada não retornará o ícone do grupo. Para obter o ícone do grupo, veja a seção Consulta a Ícone de Grupo.

Requisição

GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id

Resposta

Exemplo de resposta
{
"groups": [{
"admins": [
"5519900000000"
],
"creation_time": 1513616971,
"creator": "5519900000000",
"id": "5519900000000-1513616971",
"participants": [
"5519900000000"
],
"subject": "assunto-do-grupo"
}]
}
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo
Detalhes
Tipo
admins
Administradores do grupo. Lista os IDs do criador do grupo e de quaisquer administradores adicionados como descrito na sessão de administradores de Grupo.
String[]
creation_time
Hora de criação do grupo
Int
creator
ID do criador do grupo
String
id
ID do grupo
String
participants
Participantes do grupo. É um array com todos os IDs dos participantes no grupo. Inicialmente, será apenas o criador do grupo. Convide usuários para o grupo criando um link de convite, como descrito na sessão Criação de Link de Convite de Grupo.
String[]
subject
Assunto do grupo
String

Atualização de Informações de Grupo

Atualizar a informação é definir um novo assunto do grupo.

Requisição

Exemplo
{
"subject": "novo-assunto-do-grupo"
}
PUT https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id
O corpo da requisição deve conter um objeto JSON com os seguintes campos:
Campo
Obrigatório
Detalhes
Tipo
subject
Sim
Atualize o assunto do grupo para este valor, limitado a 25 caracteres
String

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}. Caso o grupo não seja encontrado, a resposta será 404 Not Found.
Você não pode adicionar participantes diretamente ao grupo. Participantes podem apenas serem convidados para o grupo. Crie um link que participantes possam usar para se unir ao grupo.

Requisição

GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/invite

Resposta

Exemplo de resposta
{
"groups": [{
"link": "link-de-convite-de-grupo"
}]
}
Os seguintes campos são retornados em uma resposta bem-sucedida:
Campo
Detalhes
Tipo
link
O link para o convite do grupo
String
Quando você tiver o link para convidar participantes para o grupo, envie o link em uma mensagem de texto. Quando o usuário clicar na mensagem, ele será convidado para o grupo.

Requisição

DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/invite

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}.

Remoção de Membros de Grupo

Requisição

Exemplo
{
"waIds": [
"5519900000000",
"5519900000000"
]
}
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/participants
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo
Obrigatório
Detalhes
Tipo
waIds
Sim
Números dos participantes a serem removidos do grupo
String[]

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request.

Sair de Grupo

Sair de um grupo significa que você se removerá da lista de participantes do grupo. O Grupo continuará a existir com os participantes restantes.

Requisição

POST https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/leave

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request.

Definir Ícone de Grupo

Requisição

Exemplo
curl -X POST \
https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon \
-H 'authenticationToken: <authenticationtoken>'
-H 'username: <username>' \
-H 'Content-Type: image/jpeg' \
--data-binary @your-file-path
POST https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon Content-Type: image/jpeg or other appropriate type
binary-image-content
Para definir o ícone de um grupo, é necessário fazer upload de uma imagem a partir de seu conteúdo binário. O header Content-Type deve corresponder ao tipo MIME da imagem.

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}.

Consulta a Ícone de Grupo

Requisição

GET https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon

Resposta

Response example
{
"type": "URL",
"mimeType": "image/jpeg",
"fileName": "groupIcon.jpeg",
"extraData": {
"public": true,
"Content-Type": "image/jpeg",
"Content-Length": "2500"
},
"data": "https://chatclub-cdn.wavy.global/2019/03/25/ce425ffe-bc62-421f-9261-e6819a5eab43/groupIcon.jpeg"
}
Uma resposta bem sucedida retornará status 200 OK e um objeto JSON com os seguintes campos. Caso o grupo não tenha um ícone associado, a resposta será status 404 Not Found.
Campo
Detalhes
Tipo
type
Tipo do campo data
String
mimeType
Tipo MIME do arquivo
String
fileName
Nome do arquivo
String
extraData
Informações sobre o arquivo
String
data
Arquivo
String

Remoção de Ícone de Grupo

Requisição

DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/icon

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}. Caso o grupo não tenha um ícone associado, a resposta será 404 Not Found.

Adição de Administradores

Por padrão, o único administrador de um grupo é seu criador. Mais administradores podem ser adicionados desde que já sejam participantes do grupo. Para consultar participantes de um grupo, siga as instruções em Consulta a Informações de Grupo

Requisição

Example
{
"waIds": [
"5519900000000",
"5519900000000"
]
}
PATCH https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/admins
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo
Obrigatório
Detalhes
Tipo
waIds
Sim
Números dos participantes que se tornarão administradores
String[]

Resposta

Uma resposta bem-sucedida retornará status 200 OK e null ou {}. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request.

Remoção de Administradores

Administradores podem ser removidos de forma que se tornem participantes regulares do grupo. Para consultar administradores de um grupo, siga as instruções em Consulta a Informações de Grupo.

Requisição

Example
{
"waIds": [
"5519900000000"
]
}
DELETE https://api-messaging.wavy.global/v1/whatsapp/groups/your-group-id/admins
O body da requisição deve conter um objeto JSON com os seguintes campos:
Campo
Obrigatório
Detalhes
Tipo
waIds
Sim
Os números de telefone dos participantes que se tornarão administradores
String[]

Resposta

Uma resposta de sucesso retornará status 200 OK e null ou {}. Caso o número de telefone não seja encontrado, a resposta será 400 Bad Request.