GETTING STARTED - MENU
Créditos e Limites
Personalização
Componentes Status Page
Inbox

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. 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. 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. 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.

header

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)

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)

{
"Id": "5efc3581-b8e8-11e7-9895-a6aabe61edb5",
"destination": [{
"id": "5efc3581-b8e8-11e7-9895-a6aabe61edb5",
"correlationId": "MyCorrelationId",
"destination": "5519900001111."
}]
}

Se a requisição for executada com sucesso, a lista de destinos com os uuids gerados será retornado:

Autenticação error response (401)

{
"errorCode": 401,
"errorMessage": "Autenticação Error: No user was found with this combination of username and Autenticação token."
}

Se ocorrer um problema com a autenticação, a seguinte mensagem será retornada:

Atualização de status Callback

Exemplo

{
"total": 1,
"data": [
{
"id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
"correlationId": "...",
"destination": "5519900000000",
"origin": "5519900000000",
"campaignId": 100,
"campaignAlias": "...",
"flowId": "...",
"extraInfo": "...",
"sent": true,
"sentStatusCode": 1,
"sentStatus": "sent status",
"sentDate": "2017-12-18T17:09:31.891Z",
"sentAt": 1513616971891,
"delivered": true,
"deliveredStatusCode": 1,
"deliveredStatus": "delivered status",
"deliveredDate": "2017-12-18T17:09:31.891Z",
"deliveredAt": 1513616971891,
"read": true,
"readDate": "2017-12-18T17:09:31.891Z",
"readAt": 1513616971891,
"updatedDate": "2017-12-18T17:09:31.891Z",
"updatedAt": 1513616971891
}
],
"clientInfo": {
"customerId": 42,
"subAccountId": 1291,
"userId": 1
}
}

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

readAt

Tempo em que a mensagem foi lida, usando Unix_time format

String

updatedDate

Data em que o status da mensagem foi atualizado. Formato: yyyy-MM-dd’T'HH:mm:ssZ

String

updatedAt

Data em que o status da mensagem foi atualizado, usando Unix_time format

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.

INVALID_SESSION

210

Sessão não está aberta e nenhum HSM de fallback está configurado.

DESTINATION_BLOCKED_BY_OPTIN

211

DESTINATION_BLOCKED_BY_WHITELIST

212

INTERNAL_ERROR

311

Não é possível verificar contatos da API do WhatsApp.

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

Exemplo de mensagem de texto:

{
"total": 1,
"data": [
{
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
"source": "5519900000000",
"origin": "5519900000000",
"userProfile": {
"name": "nome do usuário"
},
"campaignId": 100,
"correlationId": "...",
"campaignAlias": "...",
"flowId": "....",
"extraInfo": "...",
"message": {
"type": "TEXT",
"messageText": "Olá, essa é uma mensagem do usuário."
},
"receivedAt": 1513616971473,
"receivedDate": "2017-12-18T17:09:31.473Z"
}
]
}

Exemplo de Extra Info:

{
"segmentation_list":[
{
"id":26,
"customerId":42,
"subAccountId":0,
"name":"Movile WhatsApp Segmentation List",
"active":true
},
{
"id":27,
"customerId":43,
"subAccountId":0,
"name":"Movile WhatsApp Segmentation List 2",
"active":true
}
]
}

Exemplo de mensagem de mídia

{
"total": 1,
"data": [
{
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
"source": "5519900000000",
"origin": "5519900000000",
"userProfile": {
"name": "nome do usuário"
},
"campaignId": 100,
"correlationId": "...",
"campaignAlias": "...",
"flowId": "....",
"extraInfo": "...",
"message": {
"type": "IMAGE",
"mediaUrl": "https://...",
"mimeType": "image/jpg",
"caption": "..."
},
"receivedAt": 1513616971473,
"receivedDate": "2017-12-18T17:09:31.473Z"
}
]
}

Exemplo de mensagem de localização:

{
"total": 1,
"data": [
{
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
"source": "5519900000000",
"origin": "5519900000000",
"userProfile": {
"name": "nome do usuário"
},
"campaignId": 100,
"correlationId": "...",
"campaignAlias": "...",
"flowId": "....",
"extraInfo": "...",
"message": {
"location": {
"geoPoint": "-22.894180,-47.047960",
"name": "Wavy",
"address": "Av. Cel. Silva Telles"
}
},
"receivedAt": 1513616971473,
"receivedDate": "2017-12-18T17:09:31.473Z"
}
]
}

Exemplo de mensagem de contato:

{
"total": 1,
"data": [
{
"id": "ce425ffe-bc62-421f-9261-e6819a5eab43",
"source": "5519900000000",
"origin": "5519900000000",
"userProfile": {
"name": "nome do usuário"
},
"campaignId": 100,
"correlationId": "...",
"campaignAlias": "...",
"flowId": "....",
"extraInfo": "...",
"message": {
"contacts":[
{
"addresses":[
{
"city":"Menlo Park",
"country":"United States",
"country_code":"us",
"state":"CA",
"street":"1 Hacker Way",
"type":"HOME",
"zip":"94025"
},
{
"city":"Menlo Park",
"country":"United States",
"country_code":"us",
"state":"CA",
"street":"200 Jefferson Dr",
"type":"WORK",
"zip":"94025"
}
],
"birthday":"2012-08-18",
"emails":[
{
"email":"test@fb.com",
"type":"WORK"
},
{
"email":"test@whatsapp.com",
"type":"WORK"
}
],
"name":{
"first_name":"John",
"formatted_name":"John Smith",
"last_name":"Smith"
},
"org":{
"company":"WhatsApp",
"department":"Design",
"title":"Manager"
},
"phones":[
{
"phone":"+1 (940) 555-1234",
"type":"HOME"
},
{
"phone":"+1 (650) 555-1234",
"type":"WORK",
"wa_id":"16505551234"
}
],
"urls":[
{
"url":"https://www.fb.com",
"type":"WORK"
}
]
}
]
},
"receivedAt": 1513616971473,
"receivedDate": "2017-12-18T17:09:31.473Z"
}
]
}

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:

{
"success": true,
"status": 200,
"data": "https://chatclub-cdn.wavy.global/2019/02/12/f2b8effb-d0bc-4327-86c2-48fedcb01b1b/list-42-4330544192402746957.csv"
}

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:

{
"file_url": "https://chatclub-cdn.wavy.global/2019/02/13/633e33fc-3a3f-4ca5-a8b0-4b747fb67137/5bd46e2b-5990-4681-9b29-98ab6598960e"
}