Envio de Mensagens

As chamadas para a API Sinch Messaging devem ser realizadas para a URL https://api-messaging.wavy.global/v1/whatsapp/send no formato POST independentemente do tipo de mensagem, no entanto, 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, independente do tipo de mensagem:

POST

/v1/whatsapp/send HTTP/1.1

Host:

api-messaging.wavy.global

UserName:

user_name

AuthenticationToken:

aaaaaa-bbbbbbbbbbbbbXXXXX12

Content-Type:

application/json

A requisição precisa conter um objeto JSON no corpo com os seguintes campos:

CampoObrigatórioDetalhesTipo

destinations

Sim

Lista de Destinos

Destino[]

message

Sim

Mensagem de Texto que será enviada a todos os destinos

Mensagem

flowId

Não

Identificador de Fluxo do Bot

String

defaultExtraInfo

Não

Dados adicionais que identifiquem o envio, serão vinculados a todos os destinatários que receberão a mensagem

String

campaignAlias

Não

ID da campanha, é linkado com todas as mensagens enviadas

String

Destino:

CampoObrigatórioDetalhesTipo

correlationId

Não

Id definido por voce que será retornado na configuração da mensagem (callback). Isto é útil em casos quando é necessário rastear os envios das mensagens, pois é possivel definir ids diferentes para diferentes mensagens.

String

destination

Sim

Número de telefone (código do país — 55 para Brasil — e DDD devem estar presentes) que receberá a mensagem. Exemplos:5519900001111, +5519900001111, +55(19) 900001111.

String

Mensagem:

CampoObrigatórioDetalhesTipo

messageText

Sim

Campo usado quando for necessário enviar uma mensagem personalizada em resposta a uma mensagem recebida.

text

image

Sim

Campo utilizado quando for necessário o envio de uma imagem.

Image

audio

Sim

Campo utilizado quando for necessário o envio de uma áudio.

Audio

document

Sim

Campo utilizado quando for necessário o envio de uma documento.

Document

location

Sim

Campo utilizado quando for necessário o envio de uma localização.

Location

contacts

Sim

Campo utilizado quando for necessário o envio de contato(s).

Contact[]

previewFirstUrl

Não

Controla a exibição no app da primeira URL enviada ao usuário

Boolean

Apenas um dos seguintes tipos de envio deve ser especificado, sendo ‘messageText’, ‘image’, ‘audio’, ‘document’, ‘location’, ‘template’ ou ‘contacts’.

Uma mensagem personalizada deve ser enviada somente quando a sessão de conversa estiver aberta, ou seja, quando o envio for uma resposta para uma mensagem enviada pelo usuário. Se a sessão não estiver aberta ou o usuário não enviar uma mensagem, um Template deverá ser utilizado no envio.

Os tipos de envio abaixo só serão entregues com sucesso dentro da janela de atendimento (24h)

Texto

CampoObrigatórioDetalhesTipo

messageText

Sim

Texto que será enviado ao usuário

Exemplo de requisição com texto

{
            "destinations": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "messageText": "mensagem de teste"
            }
        }

Imagem

CampoObrigatórioDetalhesType

tipo

Sim

Tipo/extensão da imagem que será enviada na mensagem. Opções disponiveis: JPG, JPEG, PNG.

String

caption

Não

Texto que será apresentado ao usuário embaixo da imagem

String

url

Sim

URL que hospeda o arquivo a ser enviado.

String

data

Sim

conteúdo encodado em Base64

String

Exemplo de requisição com Imagem (URL)

   {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "image": {
                    "type": "JPG",
                    "url": "http://...jpg",
                    "caption": "image description"
                }
            }
        }

Exemplo de requisição com Imagem (Base 64)

{
           "destination": [{
               "correlationId": "MyCorrelationId",
               "destination": "5519900001111"
           }],
           "message": {
               "image": {
                   "type": "JPG",
                   "data": "ZmlsZQ=="
               }
           }
       }

Audio

CampoObrigatórioDetalhesTipo

type

Sim

Tipo/extensão do audio que será enviado na mensagem. Opções disponiveis: AAC, MP4, AMR, MP3, OGG.

String

url

Sim

URL que hospeda o arquivo a ser enviado.

String

data

Sim

conteúdo encodado em Base64

String

Exemplo de requisição com Áudio (URL)

{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }

Exemplo de requisição com Áudio (Base 64)

{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "audio": {
                    "type": "MP3",
                    "url": "http://...mp3"
                }
            }
        }

Documento

CampoObrigatórioDetalhesTipo

type

Sim

Tipo/extensão do documento que será enviado na mensagem. Opções disponiveis: PDF.

String

caption

Não

Texto que será apresentado ao usuário embaixo do documento

String

url

Sim

URL que hospeda o arquivo a ser enviado.

String

data

Sim

Conteúdo encodado em Base64

String

filename

Sim

Nome do arquivo

String

Exemplo de requisição com Documento (URL)

 {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "url": "http://...pdf",
                    "caption": "pdf description"
                }
            }
        }

Exemplo de requisição com Documento (Base 64)

{
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "document": {
                    "type": "PDF",
                    "data": "ZmlsZQ=="
                }
            }
        }

Para envio de Imagens, Audios e Documentos apenas uma das seguintes opções deve ser especificado, sendo ‘url’ caso voce deseje enviar um arquivo e ‘data’ caso voce queira utilizar encoding base64.

Contact

CampoObrigatórioDetalhesTipo

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

Sim

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[]

Exemplo de requisição com Contatos

{  
           "destinations":[  
              {  
                 "correlationId":"MyCorrelationId",
                 "destination":"5519900001111"
              }
           ],
           "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"
                       }
                    ]
                 }
              ]
           }
        }

Address

CampoObrigatórioDetalhesTipo

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

Exemplo de requisição com Localização

  {
            "destination": [{
                "correlationId": "MyCorrelationId",
                "destination": "5519900001111"
            }],
            "message": {
                "location": {
                    "geoPoint": "-22.894180,-47.047960",
                    "name": "Wavy",
                    "address": "Av. Cel. Silva Telles"
                }
            }
        }

Email

CampoObrigatórioDetalhesTipo

email

Não

Endereço de e-mail.

String

type

Não

Valores Padrões: HOME, WORK.

String

Name

CampoObrigatórioDetalhesTipo

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

Sim

Nome completo como normalmente aparece.

String

Org

CampoObrigatórioDetalhesTipo

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:

CampoObrigatórioDetalhesTipo

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:

CampoObrigatórioDetalhesTipo

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 considerados os valores padrões que podem ser vistos, no entanto, você pode definir nesse campo qualquer valor descritivo que desejar.

Last updated