Créditos e Limites
GETTING STARTED - MENU
Componentes Status Page
WhatsApp API
Documentação técnica: WhatsApp API

WhatsApp API

Esta documentação fornece informações sobre como sua aplicação poderá enviar as mensagens de Whatsapp via API utilizando a plataforma Wavy Messaging.
Você também encontrará aqui informações sobre Webhooks que são retornos de chamada de HTTP definidos pelo usuário, que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, a API da Wavy coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) a URL escolhida pelo cliente atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem.
A API da Wavy Messaging permite o envio de mensagens únicas ou em lote.
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.

Pré Requisitos

  1. 1.
    Para utilizar a API da Wavy Messaging, primeiro você deve ter uma conta ativa na plataforma Wavy messaging. Consulte a documentação sobre Conta e Configurações para obter mais informações sobre como fazer esse procedimento.
  2. 2.
    Você também deverá ter usuário e token válidos associados a essa conta. Saiba como criar seu usuário no nosso guia Adicionar usuários.
  3. 3.
    Com as credenciais acima, você ja poderá começar a utilizar a API da Wavy Messaging.

Detalhes da conexão

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

Fazendo chamadas para a API da Wavy Messaging

Para fazer suas primeiras chamadas, recomendamos o uso do aplicativo “Postman” com requisições no formato JSON ao invés de já iniciar escrevendo códigos em outras linguagens.
Nota: Para enviar mensagens de teste, você precisa ter um modelo de mensagem aprovado na sua conta do WhatsApp Business. Consulte nossa documentação sobre Criação de modelo de mensagem WhatsApp para criar seus primeiros modelos.
Caso você ainda não tenha nenhum modelo de mensagem aprovado você ainda pode enviar mensagens teste, desde que o destinatário faça uma interação com o número de origem. Dessa forma, uma janela de atendimento ao cliente será ativada. Ela permite que você envie qualquer tipo de mensagem em uma janela de 24 horas. Se a mensagem chegar, significará que sua requisição à API da Wavy Messaging foi bem-sucedida. Caso contrário, verifique seu Webhook em busca de notificações que possam indicar algum problema.
Mensagens:
As chamadas para a API da Wavy Messaging são enviadas para https://api-messaging.wavy.global/v1/whatsapp/send no formato POST independentemente do tipo de mensagem, mas o conteúdo do corpo da mensagem JSON varia para cada tipo de mensagem.
Os campos de autenticação no header também seguirão o mesmo formato em independentemente do tipo de mensagem:
POST /v1/whatsapp/send HTTP/1.1 Host: api-messaging.movile.com UserName: user_name AuthenticationToken: aaaaaa-bbbbbbbbbbbbbXXXXX12 Content-Type: application/json

Envio Template

Destinations

Nome
Obrigatório
Descrição
destinations
Sim
Detalhes sobre os identificadores do envio e destino
message
Sim
Detalhes sobre o objeto MESSAGE que será enviado

Destination

Nome
Obrigatório
Descrição
correlationId
Não
Id definido pelo cliente que será retornado no status da mensagem (callback). Você pode usar esse id para rastrear envios de mensagens de maneira personalizada.
destination
Sim
Número de telefone que receberá a mensagem (código do país (55 para Brasil) e DDD são obrigatórios). Exemplos: 5519900001111, +5519900001111, +55(19) 900001111.

Message

Nome
Obrigatório
Descrição
ttl
Não
Tempo de vida em dias. Define o número máximo de dias em que a mensagem deve ser entregue. Válido de 1 a 30. Valor padrão 7 se não definido.
template
Sim
Detalhes sobre o objeto TEMPLATE que será enviado

Template

Nome
Obrigatório
Descrição
namespace
Sim
ID do namespace que será usado. NOTA: Os parâmetros namespace e element_name devem corresponder ao Business Manager que o número de origem está associado, ou a mensagem terá falha no envio.
elementName
Sim
Nome do modelo cadastrado e aprovado.
header
Sim, quando o Template possuir parametro no header
Objetos do cabeçalho com seus parâmetros
languageCode
Sim
Nome do modelo cadastrado e aprovado.
Nome
Obrigatório
Descrição
title
Opcional
O título deve ter até 60 caracteres
element
Sim
Opções:
text (padrão),
image,
audio,
document,
hsm,
video.

Element

Nome
Obrigatório
Descrição
url
Sim
URL da mídia. Use somente com URLs HTTP/HTTPS.
type
Sim
Tipo da mídia (JPEG, MP3, PDF, etc)
caption
Sim
Nome da mídia

Webhooks

Webhooks (ou callbacks) são retornos de chamada de HTTP definidos pelo usuário, que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, a API da Wavy coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) a URL escolhida pelo cliente atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem.
Quando o cliente enviar uma mensagem a você, API da Wavy Messaging enviará uma notificação de solicitação HTTP POST à URL do Webhook com os detalhes.
É importante que seu Webhook retorne uma resposta HTTPS 200 OK às notificações (em até 200 ms ou de maneira assíncrona). Caso contrário, a API da Wavy Messaging considerará essa notificação com falha e tentará novamente após um atraso.
Importante: A URL onde você irá receber os Webhooks precisa ser configurado por nosso time de suporte.

Formato geral de um Webhook

Nome
Conteúdo do objeto
messages
Notificações de mensagens de entrada
statuses
Atualizações de status das mensagens

Status

Status
Descrição
Equivalente ao WhatsApp para dispositivos móveis
SENT_SUCCESS
Mensagem recebida pelo servidor do WhatsApp
Uma marca de seleção
DELIVERED_SUCCESS
Mensagem entregue para o destinatário
Duas marcas de seleção
READ_SUCCESS
Mensagem lida pelo destinatário
Duas marcas de seleção azuis

Erros

HTTP Code
Description
2xx
Success
200
Success (OK)
201
Successfully created (For POST requests)
302
Found
4xx
Client Errors
400
Request was invalid
401
Unauthorized
403
Forbidden
404
Not found
405
Method not allowed
412
Precondition failed
420
Message is rate limited
429
Too many requests
5xx
Server Errors
500
Internal server error
504
Timeout

Outros status

Código de envio
Código de entrega
Status
Significado
102
CARRIER COMMUNICATION ERROR
Erro ao fazer upload de mídia para o WhatsApp
103
REJECTED_BY_CARRIER
Ocorreu erro de banco de dados
2
101
EXPIRED
Mensagem expirada
2
104
NOT_DELIVERED
Possíveis Causas:
Limite atingido - muitos envios de mensagens tentados,
ou falha ao enviar mensagem porque o número de telefone de destino é parte de um experimento,
ou a estrutura do template não existe,
ou falhou ao enviar mensagem porque o número de destino está fora da janela de atendimento de 24h para receber mensagens de forma livre.
ou houve erro de upload de mídia (erro desconhecido),
ou falha ao enviar mensagem porque sua conta é inelegível no Facebook Business Manager,
ou houve falha temporária de upload. Tente novamente mais tarde.
202
INVALID_DESTINATION_NUMBER
Contato de WhatsApp inválido
204
DESTINATION_BLOCKED_BY_OPTOUT
Destino bloqueado por Opt-Out
206
INVALID_MESSAGE_LENGTH
Mensagem muito longa
207
INVALID_MESSAGE_TEXT
Valor de parâmetro não é válido
209
INVALID_CONTENT
Tipo de mensagem UNKNOWN inválido
210
INVALID_SESSION
Sessão ou janela de atendimento não está aberta e nenhum Template de fallback está configurado
311
INTERNAL_ERROR
Não é possível verificar contatos da API do WhatsApp

Mensagens (MO)

Quando o cliente enviar uma mensagem a você, API da Wavy Messaging enviará uma notificação de solicitação HTTP POST à URL do Webhook com os detalhes.
É importante que seu Webhook retorne uma resposta HTTPS 200 OK às notificações (em até 200 ms ou de maneira assíncrona). Caso contrário, a API da Wavy Messaging considerará essa notificação com falha e tentará novamente após um atraso.
Importante: A URL onde você irá receber os Webhooks precisa ser configurado por nosso time de suporte.

HTTP Status Code Response Comuns

Request response com sucesso (200)

1
{
2
"Id": "5efc3581-b8e8-11e7-9895-a6aabe61edb5",
3
"destination": [{
4
"id": "5efc3581-b8e8-11e7-9895-a6aabe61edb5",
5
"correlationId": "MyCorrelationId",
6
"destination": "5519900001111."
7
}]
8
}
Copied!
Se a requisição for executada com sucesso, a lista de destinos com os uuids gerados será retornado:

Autenticação error response (401)

1
{
2
"errorCode": 401,
3
"errorMessage": "Autenticação Error: No user was found with this combination of username and Autenticação token."
4
}
Copied!
Se ocorrer um problema com a autenticação, a seguinte mensagem será retornada:

Atualização de status Callback

Exemplo
1
{
2
"total": 1,
3
"data": [
4
{
5
"id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
6
"correlationId": "...",
7
"destination": "5519900000000",
8
"origin": "5519900000000",
9
"campaignId": 100,
10
"campaignAlias": "...",
11
"flowId": "...",
12
"extraInfo": "...",
13
"sent": true,
14
"sentStatusCode": 1,
15
"sentStatus": "sent status",
16
"sentDate": "2017-12-18T17:09:31.891Z",
17
"sentAt": 1513616971891,
18
"delivered": true,
19
"deliveredStatusCode": 1,
20
"deliveredStatus": "delivered status",
21
"deliveredDate": "2017-12-18T17:09:31.891Z",
22
"deliveredAt": 1513616971891,
23
"read": true,
24
"readDate": "2017-12-18T17:09:31.891Z",
25
"readAt": 1513616971891,
26
"updatedDate": "2017-12-18T17:09:31.891Z",
27
"updatedAt": 1513616971891
28
}
29
],
30
"clientInfo": {
31
"customerId": 42,
32
"subAccountId": 1291,
33
"userId": 1
34
}
35
}
Copied!
Toda atualização do status de mensagens enviadas (confirmação de entrega ao usuário final, leitura da mensagem, etc), um callback/webhook é enviado. Callbacks são enviados em lote.
Importante: O endpoint em que o webhook utilizará para enviar os status precisa ser configurado por nosso time de suporte e operações.
O formato do retorno seguirá a seguinte descrição:
Campo
Detalhes
Tipo
total
Número de callbacks na ligação.
String
data
Lista de Callbacks.
Data[]
clientInfo
Informações do cliente.
ClientInfo

Dados:

Campo
Detalhes
Tipo
id
Último id da mensagem.
String
correlationId
Um ID unico definido por voce para comparar com o status da mensagem (Callback and DLR). Este parametro é opcional, e voce pode usar o ID gerado pelo Wavy Messaging para fazer a comparação.
String
destination
Número de telefone que a mensagem foi enviada (incluindo código de pais). Exemplo: 5511900000000.
String
origin
Número de telefone que identifica a Conta de WhatsApp (incluindo código de pais). Exemplo: 5511900000000.
String
campaignId
campaignID definido anteriormente.
String
campaignAlias
Campaign alias definido anteriormente.
String
extraInfo
Informação extra enviada com a mensagem original.
String
sent
Indica se a mensagem foi enviada.
Boolean
sentStatusCode
Code de Status gerado pelo Wavy Messaging para a mensagem indicando o status de envio.
Number
sentStatus
Descrição do status de envio.
Boolean
sentDate
Data em que a mensagem foi enviada. formato: yyyy-MM-dd’T'HH:mm:ssZ.
String
sentAt
Tempo em que a mensagem foi enviada, usando Unix_time format
Number
delivered
Indica se a mensagem foi entregue no destino.
Boolean
deliveredStatusCode
Código de Status gerado pelo Wavy Messaging indicando se a mensagem foi entregue.
Number
deliveredStatus
Descrição do status de entrega.
String
deliveredDate
Data em que a mensagem foi entregue. formato:: yyyy-MM-dd’T'HH:mm:ssZ
String
deliveredAt
Tempo em que a mensagem foi entregue, usando Unix_time format
Number
read
Indica se a mensagem foi lida pelo destinatário.
Boolean
readDate
Data em que a mensagem foi lida. formato: yyyy-MM-dd’T'HH:mm:ssZ
String

ClientInfo

Campo
Detalhes
Tipo
customerId
Identificação do cliente.
Number
subAccountId
Identificação da subconta.
Number
userId
Identificação do usuário.
Number

Status

Status que podem ser enviados no callback:
Status
Código de envio
Código de entrega
Significado
CARRIER_COMMUNICATION_ERROR
102
Erro ao fazer upload de mídia para o WhatsApp.
REJECTED_BY_CARRIER
103
Ocorreu erro de banco de dados.
SENT_SUCCESS
2
EXPIRED
2
101
Mensagem expirada.
Falhou ao enviar mensagem porque ela é muito antiga.
NOT_DELIVERED
2
104
Limite atingido - muitos envios de mensagens tentados.
Falhou ao enviar mensagem porque o número de telefone deste usuário é parte de um experimento.
Estrutura indisponível: Cliente não é capaz de mostrar HSM.
Falhou ao enviar mensagem porque você está fora da janela de suporte para mensagens de forma livre para este usuário. Por favor use uma notificação HSM válida ou reconsidere.
Erro de upload de mídia (erro desconhecido).
Falha ao enviar mensagem porque sua conta é inelegível.Por favor verifique sua conta WhatsApp Business.
Falha temporária de upload. Tente novamente mais tarde.
DELIVERED_SUCCESS
2
4
READ_SUCCESS
2
5
INVALID_DESTINATION_NUMBER
202
Contato de WhatsApp inválido.
DESTINATION_BLOCKED_BY_OPTOUT
204
Destino bloqueado por OptOut.
INVALID_MESSAGE_LENGTH
206
Mensagem muito longa.
INVALID_MESSAGE_TEXT
207
Valor de parâmetro não é válido.
INVALID_CONTENT
209
Tipo de mensagem UNKNOWN inválido.

MO (mensagens enviadas pelo usuário final para a conta do Whatsapp)

Exemplo de mensagem de texto:
1
{
2
"total": 1,
3
"data": [
4
{
5
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
6
"source": "5519900000000",
7
"origin": "5519900000000",
8
"userProfile": {
9
"name": "nome do usuário"
10
},
11
"campaignId": 100,
12
"correlationId": "...",
13
"campaignAlias": "...",
14
"flowId": "....",
15
"extraInfo": "...",
16
"message": {
17
"type": "TEXT",
18
"messageText": "Olá, essa é uma mensagem do usuário."
19
},
20
"receivedAt": 1513616971473,
21
"receivedDate": "2017-12-18T17:09:31.473Z"
22
}
23
]
24
}
Copied!
Exemplo de Extra Info:
1
{
2
"segmentation_list":[
3
{
4
"id":26,
5
"customerId":42,
6
"subAccountId":0,
7
"name":"Movile WhatsApp Segmentation List",
8
"active":true
9
},
10
{
11
"id":27,
12
"customerId":43,
13
"subAccountId":0,
14
"name":"Movile WhatsApp Segmentation List 2",
15
"active":true
16
}
17
]
18
}
Copied!
Exemplo de mensagem de mídia
1
{
2
"total": 1,
3
"data": [
4
{
5
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
6
"source": "5519900000000",
7
"origin": "5519900000000",
8
"userProfile": {
9
"name": "nome do usuário"
10
},
11
"campaignId": 100,
12
"correlationId": "...",
13
"campaignAlias": "...",
14
"flowId": "....",
15
"extraInfo": "...",
16
"message": {
17
"type": "IMAGE",
18
"mediaUrl": "https://...",
19
"mimeType": "image/jpg",
20
"caption": "..."
21
},
22
"receivedAt": 1513616971473,
23
"receivedDate": "2017-12-18T17:09:31.473Z"
24
}
25
]
26
}
Copied!
Exemplo de mensagem de localização:
1
{
2
"total": 1,
3
"data": [
4
{
5
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
6
"source": "5519900000000",
7
"origin": "5519900000000",
8
"userProfile": {
9
"name": "nome do usuário"
10
},
11
"campaignId": 100,
12
"correlationId": "...",
13
"campaignAlias": "...",
14
"flowId": "....",
15
"extraInfo": "...",
16
"message": {
17
"location": {
18
"geoPoint": "-22.894180,-47.047960",
19
"name": "Wavy",
20
"address": "Av. Cel. Silva Telles"
21
}
22
},
23
"receivedAt": 1513616971473,
24
"receivedDate": "2017-12-18T17:09:31.473Z"
25
}
26
]
27
}
Copied!
Exemplo de mensagem de contato:
1
{
2
"total": 1,
3
"data": [
4
{
5
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
6
"source": "5519900000000",
7
"origin": "5519900000000",
8
"userProfile": {
9
"name": "nome do usuário"
10
},
11
"campaignId": 100,
12
"correlationId": "...",
13
"campaignAlias": "...",
14
"flowId": "....",
15
"extraInfo": "...",
16
"message": {
17
"contacts":[
18
{
19
"addresses":[
20
{
21
"city":"Menlo Park",
22
"country":"United States",
23
"country_code":"us",
24
"state":"CA",
25
"street":"1 Hacker Way",
26
"type":"HOME",
27
"zip":"94025"
28
},
29
{
30
"city":"Menlo Park",
31
"country":"United States",
32
"country_code":"us",
33
"state":"CA",
34
"street":"200 Jefferson Dr",
35
"type":"WORK",
36
"zip":"94025"
37
}
38
],
39
"birthday":"2012-08-18",
40
"emails":[
41
{
42
"email":"[email protected]",
43
"type":"WORK"
44
},
45
{
46
"email":"[email protected]",
47
"type":"WORK"
48
}
49
],
50
"name":{
51
"first_name":"John",
52
"formatted_name":"John Smith",
53
"last_name":"Smith"
54
},
55
"org":{
56
"company":"WhatsApp",
57
"department":"Design",
58
"title":"Manager"
59
},
60
"phones":[
61
{
62
"phone":"+1 (940) 555-1234",
63
"type":"HOME"
64
},
65
{
66
"phone":"+1 (650) 555-1234",
67
"type":"WORK",
68
"wa_id":"16505551234"
69
}
70
],
71
"urls":[
72
{
73
"url":"https://www.fb.com",
74
"type":"WORK"
75
}
76
]
77
}
78
]
79
},
80
"receivedAt": 1513616971473,
81
"receivedDate": "2017-12-18T17:09:31.473Z"
82
}
83
]
84
}
Copied!
Cada resposta do usuário final (MO ou Mobile Originated) um callback/webhook é enviado. Essas MOs são enviadas em lote.
Importante: O endpoint em que o webhook utilizará para enviar os status precisa ser configurado por nosso time de suporte e operações.
O formato do retorno seguirá a seguinte descrição:
Campo
Detalhes
Tipo
total
Números de callbacks para a ligação.
String
data
Lista de mensagens Mobile Originated (MO).
Data[]
Campo
Detalhes
Tipo
id
Última identificação da mensagem
String
source
Número de telefone do remetente
String
origin
Número de telefone que identifica a Conta de WhatsApp (incluindo código de pais). Exemplo: 5511900000000.
String
userProfile
Perfil do usuário que enviou a mensagem
UserProfile
correlationId
Um ID único definido por voce para comparar com o status da mensagem (Callback and DLR). Este parâmetro é opcional, e voce pode usar o ID gerado pelo Wavy Messaging para fazer a comparação.
String
campaignId
campaignID definido anteriormente.
String
campaignAlias
Campaign alias definido anteriormente.
String
mensagem
Mensagem MO.
mensagem
receivedAt
Data em que a mensagem foi recebida. Format: yyyy-MM-dd’T'HH:mm:ssZ
String
receivedDate
Data em que a mensagem foi recebida, usando Unix_time format
String
extraInfo
Informação extra relacionada com a mensagem. Formato: Json
String

Controle de Fluxo de MO- Listas de Segmentação

A mensagem terá uma lista de listas de segmentação no campo de extraInfo. Nossos parceiros a utilizam para direcionar as mensagens para certos fluxos. O nome da chave é segmentation_lists e ela contém uma lista de SegmentationList.
Campo
Detalhes
Tipo
id
Identificador da lista de segmentação
Integer
customerId
Identificador do cliente
Integer
subAccountId
Identificador da subconta
Integer
name
Nome da lista de segmentação
String
active
Status da lista de segmentação
Boolean

Mensagem:

Campo
Detalhes
Tipo
type
Tipo de mensagem enviada para o usuário final: TEXT - IMAGE - AUDIO - DOCUMENT
String
messageText
A mensagem de texto (MO) enviada pelo usuário final.
String
waGroupId
Grupo ao qual a mensagem foi enviada.
String
mediaUrl
Url para download da mídia enviada pelo usuário final.
String
mimeType
Mime type do arquivo enviado pelo usuário final.
String
caption
Media label enviada pelo usuário final.
String
location
Localidade enviada pelo usuário final.
Location
contacts
Contatos enviados pelo usuário final.
Contact[]

UserProfile:

Campo
Obrigatório
Detalhes
Tipo
name
Não
Nome de perfil do usuário
String

Location:

Campo
Detalhes
Tipo
name
Nome do local.
String
address
Endereço do local.
String
geoPoint
Geopoint enviado pelo usuário final. Formato: “latitude,longitude”
String

Contact:

Campo
Obrigatório
Detalhes
Tipo
addresses
Não
Endereço(s) completo(s) do contato.
Address[]
birthday
Não
Data de aniversário com formato YYYY-MM-DD.
String
emails
Não
Endereço(s) de e-mail de contato.
Email[]
name
Não
Nome completo do contato.
Name
org
Não
Informações da organização do contato.
Org
phones
Não
Número(s) de telefone do contato.
Phone[]
urls
Não
URL(s) do contato.
Url[]

Address:

Campo
Obrigatório
Detalhes
Tipo
street
Não
Nome e número da rua.
String
city
Não
Nome da cidade.
String
state
Não
Sigla do Estado.
String
zip
Não
CEP.
String
country
Não
Nome completo do país.
String
country_code
Não
Abreviação de país (Duas letras).
String
type
Não
Valores Padrões: HOME, WORK.
String

Email:

Campo
Obrigatório
Detalhes
Tipo
email
Não
Endereço de e-mail.
String
type
Não
Valores Padrões: HOME, WORK.
String

Name:

Campo
Obrigatório
Detalhes
Tipo
first_name
Não
Primeiro nome.
String
last_name
Não
Último nome.
String
middle_name
Não
Nome do meio.
String
name_suffix
Não
Sufixo do nome.
String
name_prefix
Não
Prefixo do nome.
String
formatted_name
Não
Nome completo como normalmente aparece.
String

Org:

Campo
Obrigatório
Detalhes
Tipo
company
Não
Nome da organização do contato.
String
department
Não
Nome do departamento do contato.
String
title
Não
Título corporativo do contato.
String

Phone:

Campo
Obrigatório
Detalhes
Tipo
phone
Não
Número de telefone formatado.
String
type
Não
Valores padrões: CELL, MAIN, IPHONE, HOME, WORK.
String
wa_id
Não
Identficador WhatsApp.
String

Url:

Campo
Obrigatório
Detalhes
Tipo
phone
Não
URL do contato.
String
type
Não
Valores padrões: HOME, WORK.
String
Para os objetos que contêm um campo de tipo, os valores listados são simplesmente considerados os valores padrão que podem ser vistos, no entanto, você pode definir o campo para qualquer valor descritivo que você escolher.

API SFTP WhatsApp

Detalhes de conexão

Hostname
ftp-messaging.wavy.global
Porta
2222
Protocolo
SFTP (transferência sobre ssh, provendo criptografia entre cliente-servidor)
Autenticação
username + senha (fornecido pelo suporte)
É necessária a liberação de seus IPs no firewalls da Movile Se for necessário liberação de firewall para saída sentido a porta 2222, você deve liberar o DNS, ou os IPs 200.219.220.54, 200.189.169.53 e 45.236.179.22

Envio de mensagem via SFTP

Para realizar o disparo de mensagens via FTP é necessário gerar um arquivo com a formatação seguindo o exemplo abaixo: Mensagem HSM:
2018-10-16;10:00;20:00;HSM;chatclub_welcome;pt_BR;DETERMINISTIC;nome|empresa telefone;nome;empresa 551999999999;Nome1;Wavy 551999999999;Nome2;Movile
1ª Linha
Data de envio (para casos de agendamento)
Hora inicial de envio (para casos de agendamento)
Hora final de envio (para casos de agendamento)
Tipo de mensagem deve ser: HSM
Nome (elementName) do HSM
Idioma (languageLocale) do HSM
Determinístico ou Fallback do idioma do HSM (languagePolicy)
nome dos parâmetros do HSM

Observações para primeira linha:

1 - Os nomes dos parâmetros devem coincidir com os nomes das colunas
2 - As informações que não forem ser utilizadas podem ser deixadas em branco, porém devem manter o ponto e vírgula como separação. Exemplo de um caso que não utilizamos agendamento (os campos iniciais ficam entre ponto e vírgula e sem informação dentro): ; ; ; HSM;chatclub_welcome;pt_BR;DETERMINISTIC;nome|empresa
3 - Por default (padrão) a languagePolicy será Determinístico.
4 - Os nomes dos parâmetros do HSM devem ser separados por “ | ” e não por “ ; ”
2ª Linha
Nome das colunas
3ª e demais linhas:
Destinatário e valores dos parâmetros do HSM

Consulta de listas via API

Requisição

Usando GET, você pode fazer uma solicitação enviando todos os parâmetros na query string (string de consulta)
http://api-messaging.wavy.global/v1/list/{listType}?customerId={customerId}&subAccountId={subAccountId}
Tipo de Lista
Valor passado no {listType}
Whatsapp OPT-OUT List
OPTOUT
Whatsapp OPT-IN List
OPTIN
Whatsapp Blacklist
BLACKLIST
Whatsapp Whitelist (para MT)
WHITELIST
O parâmetro customerId é obrigatório, enquanto o subAccountId é opcional.
Atenção: as chaves’{‘ and ’}‘ também devem ser substituídas. Por exemplo, “{listType}” se torna “OPTIN”.
Ainda é necessário passar os seguintes headers:
Header
Valor
Content-Type
application/json
authenticationToken
Token do Messaging1
userName
Nome de usuário do Messaging1

Resposta

Em caso de sucesso, se existirem dados associados ao customerId e ao subAccountId, a requisição retornará um JSON com 3 atributos:
Atributo
Valor
success
true
status
200
data
Link para baixar um arquivo do tipo csv contendo os campos “source” e “createdAt” de todos os destinations encontrados
A coluna “createdAt” está no fuso horário America/Sao_Paulo, UTC-3 ou UTC-2 no Horário de Verão
Caso não exista dados associados, só será retornado um JSON semelhante, porém sem o campo data, o que significa que não houve problemas com a requisição, mas não haviam dados relativos aos parâmetros passados.
Exemplo de resposta:
1
{
2
"success": true,
3
"status": 200,
4
"data": "https://chatclub-cdn.wavy.global/2019/02/12/f2b8effb-d0bc-4327-86c2-48fedcb01b1b/list-42-4330544192402746957.csv"
5
}
Copied!

Consulta sessões abertas via API

Requisição

Para consultar as sessões abertas através de nossa API, é preciso fazer uma requisição do tipo GET para o endereço:
GET http://api-messaging.wavy.global/v1/session?customerId={customerId}&subAccountId={subAccountId}
O parâmetro customerId é obrigatório, enquanto o subAccountId é opcional.
Atenção: As chaves ’{‘ and ’}‘ também devem ser substituídas. Por exemplo, “={customerId}” se torna “=42”.
Ainda é necessário passar os seguintes headers:
Header
Valor
Content-Type
application/json
authenticationToken
Token
userName
Nome de usuário
O usuário e o token podem ser obtidos através da nossa plataforma: https://messaging.wavy.global

Resposta

Em caso de sucesso, se existirem sessões abertas para o customerId e o subAccountId especificados, a requisição retornará um JSON com o atributo:
Atributo
Valor
file_url
Link para baixar um arquivo do tipo csv contendo os campos “source” e “session_created_at” de todos os destinations encontrados
Caso não existam dados associados ao customerId e o subAccountId, o arquivo retornado estará vazio, apenas com o cabeçalho.
Exemplo de resposta:
1
{
2
"file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
3
}
Copied!