Envio de mensagens (MT)

Envio por método GET - Individual

Via método GET, é possivel realizar o envio de uma mensagem passando todos os parâmetros como query string.

URL para envios unitários com método GET

GET https://api-messaging.wavy.global/v1/send-sms?destination=..

Via método POST, é possivel realizar o envio de uma mensagem passando todos os parâmetros no body.

URL para envios unitários com método POST

POST https://api-messaging.wavy.global/v1/send-sms - Content-Type: application/json

Parametros da Requisição

* Campo obrigatório

CampoDetalhesTipo

destination*

Telefone para qual será enviada a mensagem (incluido código de país). Exemplo: 5511900000000

String

messageText*

Texto da mensagem que será enviada (max 1280 chars).

String

correlationId

Um ID único definido por você para batimento com os status de envio (callback e DLR). Este parâmetro é opcional, e você pode utilizar o ID gerado pela Wavy para este batimento (max 64 chars).

String

extraInfo

Qualquer informação extra que você deseja adicionar a mensagem (max 255 chars).

String

timeWindow

Mensagens serão enviadas apenas no horário especificado. Por exemplo, Se você configurar uma janela [11, 12, 18], as mensagens serão enviadas entre 11:00 e 11:59, 12:00 e 12:59 e 18:00 e 18:59, este parâmetro deve ser definido na raiz do objeto JSON

Integer[]

expiresAt

A mensagem não será enviada após esta data. O formato utilizado é o Unix time . Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

expiresInMinutes

A mensagem será expirada após o tempo informado neste campo. O tempo passa a ser ontabilizado assim que a mensagem é recebida pela Wavy.. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

expiresDate

A mensagem não será enviada após esta data. O campo aceita o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

String

scheduledAt

A mensagem não será enviada após esta data. IMPORTANTE! É possivel realizar o agendamento apenas em um periodo superior a 30 minutos, pois é processado por um fluxo diferenciado do envio sem agendamento. O formato utilizado é o Unix time. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

delayedInMinutes

Minutos depois que a requisição é feita que a mensagem será enviada. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

scheduledDate

A mensagem não será enviada antes desta data. O campo suporta o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

String

timeZone

Especifica o timezone que será utilizado diretamente nos campos: expiresDate, scheduledDate and timeWindow (que será modificado caso seja utilizado timezones dinamicos, como os com horário de verão). Se o timezone não estiver presente na requisição o sistema irá verificar o timezone do usuário - se presente - ou o timezone do país do usuário em último caso. Se nenhuma das opções estiverem presentes, o sistema irá utlizar o horário UTC

String

campaignAlias

Identificação de campanha criada previamente. Clique aqui para registar uma nova campanha, este parâmetro deve ser definido na raiz do objeto JSON

String

flashSMS

Flash SMS, use esta opção para enviar uma mensagem pop-up no telefone do usuário. Para enviar uma mensagem Flash passe o parametro true.

Boolean

flowId

Identificador do fluxo de Bot. O texto da mensagem virá do fluxo selecionado

String

subAccount

Referência da subconta. Ela só pode ser utilizada por usuários Administradores

String

params

Mapa de placeholders que serão substituídos no texto da mensagem. Se um ou mais parâmetros estiverem incorretos, a mensagem será marcada como inválida, mas o envio não será cancelado. É necessário enviar o flowId para utilizar os parâmetros

Map

curl -X POST \
  https://api-messaging.wavy.global/v1/send-sms \
  -H 'authenticationtoken: <authenticationtoken>' \
  -H 'username: <username>' \
  -H 'content-type: application/json' \
  -d '{"destination": "5511900000000" , "messageText": "linha\nquebrada"}'

Ao fazer o envio, você receberá um JSON informando o id que foi gerado para esta mensagem (Response ou Resposta síncrona da Wavy):

[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]

Envio por método POST - Individual ou em lote

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

Existe um limite de 1000 mensagens por requisição

Requisição HTTP Method POST

POST https://api-messaging.wavy.global/v1/send-bulk-sms Content-Type: application/json

O corpo da requisição precisa conter o objeto JSON com as informações conforme campos abaixo:

* Campo obrigatório

CampoDetalhesTipo

destination*

Telefone para qual será enviada a mensagem (incluido código de país). Exemplo: 5511900000000

String

messageText*

Texto da mensagem que será enviada (max 1280 chars).

String

correlationId

Um ID único definido por você para batimento com os status de envio (callback e DLR). Este parâmetro é opcional, e você pode utilizar o ID gerado pela Wavy para este batimento (max 64 chars).

String

extraInfo

Qualquer informação extra que você deseja adicionar a mensagem (max 255 chars).

String

timeWindow

Mensagens serão enviadas apenas no horário especificado. Por exemplo, Se você configurar uma janela [11, 12, 18], as mensagens serão enviadas entre 11:00 e 11:59, 12:00 e 12:59 e 18:00 e 18:59

Integer[]

expiresAt

A mensagem não será enviada após esta data. O formato utilizado é o Unix time . Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

expiresInMinutes

A mensagem será expirada após o tempo informado neste campo. O tempo passa a ser ontabilizado assim que a mensagem é recebida pela Wavy.. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

expiresDate

A mensagem não será enviada após esta data. O campo aceita o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

String

scheduledAt

A mensagem não será enviada após esta data. O formato utilizado é o Unix time. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

delayedInMinutes

Minutos depois que a requisição é feita que a mensagem será enviada. Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

Long

scheduledDate

A mensagem não será enviada antes desta data. O campo suporta o seguinte formato yyyy-MM-dd’T'HH:mm:ss. Obs: Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

String

timeZone

Especifica o timezone que será utilizado diretamente nos campos: expiresDate, scheduledDate and timeWindow (que será modificado caso seja utilizado timezones dinamicos, como os com horário de verão). Se o timezone não estiver presente na requisição o sistema irá verificar o timezone do usuário - se presente - ou o timezone do país do usuário em último caso. Se nenhuma das opções estiverem presentes, o sistema irá utlizar o horário UTC

String

campaignAlias

Identificação de campanha criada previamente. Clique aqui para registar uma nova campanha

String

flashSMS

Flash SMS, use esta opção para enviar uma mensagem pop-up no telefone do usuário. Para enviar uma mensagem Flash passe o parametro true.

Boolean

flowId

Identificador do fluxo de Bot. O texto da mensagem virá do fluxo selecionado

String

subAccount

Referência da subconta. Ela só pode ser utilizada por usuários Administradores

String

params

Mapa de placeholders que serão substituídos no texto da mensagem. Se um ou mais parâmetros estiverem incorretos, a mensagem será marcada como inválida, mas o envio não será cancelado. É necessário enviar o flowId para utilizar os parâmetros

Map

IMPORTANTE! Para cada subconta existe um usuário de sistema único.

curl --request POST \
  --url https://api-messaging.wavy.global/v1/send-bulk-sms \
  --header 'authenticationtoken: <Token de autenticação>' \
  --header 'username:<Usuário Wavy Messaging>' \
  --header 'content-type: application/json' \
  --data "{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}"

Ao fazer o envio, será retornado um objeto JSON com o UUID do lote e das mensagens individuais :

{
  "id": "ce528d70-013b-11e7-98f2-e27c463c8809",
  "messages": [
    {
      "id": "ce528d71-013b-11e7-98f2-e27c463c8809"
    },
    {
      "id": "ce528d72-013b-11e7-98f2-e27c463c8809"
    }
  ]
}

Permite o envio de mensagens em lote ou individuais passando os parametros em um objeto JSON

Existe um limite de 1000 mensagens por requisição

Requisição HTTP Method POST

Exemplo de JSON para envio em Lote:

Exemplo 1:

{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    },
    {
      "destination":"5519900003333"
    }
  ],
  "defaultValues":{
    "messageText":"Default message"
  }
}

Exemplo 2:

{
  "messages":[
    {
      "destination":"5519900001111",
      "messageText":"First message"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "timeZone":"America/Sao_Paulo",
  "scheduledDate": "2017-01-28T02:30:43",
  "timeWindow": [12, 15, 20],
  "defaultValues":{
    "messageText":"Default message"
  }
}

Exemplo 3:

{
  "messages":[
    {
      "destination":"5519900001111"
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "messageText":"Default message",
    "flashSMS":"true"
  }
}

Exemplo 4, com flowId e params:

{
  "messages":[
    {
      "destination":"5519900001111",
      "params": {
        "param1": "other_value1",
        "param2": "other_value2"
      }
    },
    {
      "destination":"5519900002222"
    }
  ],
  "defaultValues":{
    "params": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "flowId": "14f8142d-e731-4971-8220-5a76a12c413f"
}

Observe que nos exemplos acima, alguns campos “destination” não possuem um “messageText” atribuido direto a eles, nestes casos, o texto da mensagem será o “messageText” dentro de “defaultValues”. Essa função é útil quando é necessário o envio da mesma mensagem para vários números diferentes

Respostas de mensagens em lote

A resposta do envio em lote conterá um arquivo JSON com as informações necessárias para rastreio, será gerado um id para o lote todo e um id e correlationId individual para cada mensagem:

CampoDetalhesTipo

id

UUID gerado para este lote

String

messages

Este campo é um array com as respostas das mensanges individuais do lote, contém o id e o correlationId de cada mensagem enviada

SingleSMSResponse[]

Last updated