Documentação Sinch
  • Menu
  • Introdução
    • Tutoriais
    • Melhores práticas e dicas de Segurança – Security LATAM
  • Onboarding
    • Business Manager
    • Abertura de chamado
    • WhatsApp Business Processo de ativação
    • Green Check | OBA
    • Migração de número
    • Primeiros passos
  • Idiomas
    • Documentation in English
    • Documentación en Español
  • Documentação Técnica - SMS
    • Documentação Técnica - SMS
      • Possíveis integrações
      • Termos importantes
      • Fluxo de mensagem e API
      • Envio de mensagens (MT)
      • HTTP Status Code Response
      • Status de envio (Callback e DLR)
      • Resposta do usuário (MO)
      • Códigos de Status de Envio
      • API SMPP
      • Detalhes de conexão
      • Status de envio (Callback e DLR)
      • Proxy TLS - Linux
      • Proxy TLS - Windows
      • API SFTP
      • Envio de SMS via SFTP
      • API de validação de número
      • Acentos e caracteres especiais
      • Textos grandes (concatenação)
      • API Carrier Lookup
      • Solicitação HTTP POST
  • SMS
    • Introdução ao Messaging - SMS
      • Tutoriais SMS
      • Glossário
      • Primeiro acesso a plataforma
      • Tela inicial da plataforma
      • Meu perfil | Idioma
      • Como montar sua base de clientes para envio
      • Erros mapeados
      • Arquivos salvos
      • Campanhas
      • Acentos e caracteres especiais
      • Envio rápido de SMS
      • Template SMS
      • Contatos
      • Grupos
      • Como enviar uma mensagem
      • Envio e cancelamento de mensagens
      • Acompanhar o envio
      • Relatório Consolidado
      • Relatório Detalhado
      • Status dos Relatórios
      • Correlation ID
      • Configuração de limite de Caracteres
      • MM2: Novo Relatório: Chat (MT + MO)
    • Relatório SMS > RCS
    • BOT SMS
  • RCS
    • RCS (Nativo)
  • Documentação Técnica - WhatsApp
    • Documentação Técnica - WhatsApp
      • Termos importantes
      • Fluxo de mensagem e pré-requisitos
      • Autenticação de usuário
      • Envio de Mensagens
      • Envio de mensagens de texto
      • Envio de Template
      • Enviar mensagens interativas
      • Resposta de código de status HTTP comum
      • Retorno de chama de atualização de status
      • MO (mensagens enviadas pelo usuário final para a conta do Whatsapp)
      • Fazendo chamadas para a API da Sinch Messaging
      • API SFTP WhatsApp
      • Enviando mensagens através de SFTP
      • Sessões abertas via API
      • Webhooks
      • WhatsApp Lists via API
      • Desativação do WhatsApp
      • Conversa WhatsApp
      • Mensagens (MO)
      • Click to WhatsApp – Sinch API
  • WhatsApp
    • Instruções e boas práticas
      • Políticas de Atendimento Humano
    • Introdução ao Messaging - WhatsApp
      • Tutoriais WhatsApp
      • Glossário
      • Primeiro acesso a plataforma
      • Tela inicial da plataforma
      • Meu perfil | Idioma
      • Edição de conta
      • Informações importantes para o primeiro envio
      • Template WA - O que é?
      • Cadastro de Template
      • Classificação de qualidade
      • Editando um template
      • Pausa no modelo
      • Excluindo um Template WA
      • Template pronto?
      • Como montar sua base de clientes para envio
      • Erros mapeados
      • Realizando um envio WhatsApp
      • Vinculando seu disparo a uma campanha
      • Agendando um envio
      • Envio e resumo
      • Mensagens enviadas
      • Introdução aos Relatórios
      • Relatório Consolidado
      • Relatório Detalhado
      • Relatório de Opt-out
      • Relatórios de Conversas Consolidado
      • Relatórios de Conversas Detalhado
      • Relatórios salvos
      • Entenda os novos modelos de conversas
      • Grupos
      • Contatos
      • Dashboard WhatsApp
    • Embedded Sign Up
      • Ativando sua conta
      • Confirmando a ativação da Conta
      • Acompanhando o Status da Ativação
      • Possíveis erros durante o fluxo
      • Onboarding
    • Tech Providers
      • Tech Providers - como funciona?
  • API de Campanhas
    • API de Campanhas
      • Autenticação
      • Listar campanhas
      • Solicitação de uma campanha específica
      • Buscar uma campanha
      • Criar campanha
      • Alterar campanha
      • Excluir campanha
  • Permissões
    • Subcontas e Usuários
      • Níveis de permissão
      • Gerenciando Customers | Subcontas
    • Verificação em duas etapas
    • Restrição de IP's
    • Usuários do sistema
  • Chatlayer
    • Chatlayer
  • Sinch Engage - Agentes
    • Sinch Engage
      • Glossário
      • Visão inicial | Dados de perfil
      • Conversas
      • Realizando um atendimento
      • Transferindo um atendimento
      • Detalhes do cliente
      • Histórico da conversa
      • Detalhes da conversa
      • Modelos de respostas
      • Todas as conversas
      • Finalizar um atendimento
  • Sinch ENGAGE - CAMPANHAS
    • Campanhas
    • Audiência
    • Todos os clientes | Upload de usuários
    • Realizando um disparo - WhatsApp
  • Sinch Engage - Dashboards
    • Sinch Engage Dashboards
    • Descrição dos Dashboards
  • Sinch Engage - Chatbot
    • Sinch Engage - Chatbot
    • Primeiros passos para criar seu chatbot
    • Construindo um bot do zero
  • Sinch Engage - Administradores
    • Sinch Engage Administradores
    • Configuração de Conversas
      • Configurações Gerais
      • Modelos de respostas
      • Tags
      • Notas
      • Roteamento automático
      • Mensagens automáticas
    • Configurações da conta
      • Projeto - Detalhes do projeto | Imagem de perfil
        • Projeto | Canais
        • Projetos | Ferramentas de promoção
        • Projeto | API
      • Conta | Detalhes da Conta
        • Conta | Equipe
        • Conta | Competências
        • Contas | Modelos de mensagem do WhatsApp
  • Contact PRO - Agentes
    • Contact PRO
      • Tutoriais Contact PRO - Agentes
      • Glossário
      • Referências
      • Como acessar a plataforma
      • Tela de configurações
      • Status | Perfil de presença
      • Tela de atendimentos
      • Como fazer um atendimento
      • Selecionando chamados de forma manual
      • Histórico de atendimentos
      • Alterando sua senha
  • contact pro - supervisores
    • Painel do Supervisor
      • Tutoriais Contact PRO - Supervisores
      • Glossário
      • Acessando a plataforma | Configurações pessoais
      • Dashboards
      • Descrições de Dashboards
      • Agentes
      • Status dos Agentes
      • Conversas
  • Suporte
    • Status
    • Glossário - Componentes Status Page
    • Suporte
Powered by GitBook
On this page
  • URL para envios unitários com método POST
  • Envio por método POST - Individual ou em lote
  • Requisição HTTP Method POST
  • Respostas de mensagens em lote

Was this helpful?

  1. Documentação Técnica - SMS
  2. Documentação Técnica - SMS

Envio de mensagens (MT)

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

Campo
Detalhes
Tipo

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

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

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

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"}'
require 'uri'
require 'net/http'

url = URI("https://api-messaging.wavy.global/v1/send-sms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["username"] = '<username>'
request["authenticationtoken"] = '<authenticationtoken>'
request["content-type"] = 'application/json'
request.body = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}"

response = http.request(request)
puts response.read_body
import requests

url = "https://api-messaging.wavy.global/v1/send-sms"

payload = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}"
headers = {
    'username': "<username>",
    'authenticationtoken': "<authenticationtoken>",
    'content-type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
> sudo apt-get/yum install php5-curl

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-messaging.wavy.global/v1/send-sms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}",
  CURLOPT_HTTPHEADER => array(
    "authenticationtoken: <authenticationtoken>",
    "username: <username>",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{\"destination\": \"5511900000000\" ,  \"messageText\": \"linha\\nquebrada\"}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

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"
  }
]
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]
[
  {
  "id":"9cb87d36-79af-11e5-89f3-1b0591cdf807",
  "correlationId":"myId"
  }
]

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

Campo
Detalhes
Tipo

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

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

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

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

Envio por método POST - Individual ou em lote

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-bulk-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }," +
                " { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }]," +
                " \"defaultValues\":{\"messageText\":\"Default message\" }}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

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

Campo
Detalhes
Tipo

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

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

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

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" }}"
require 'uri'
require 'net/http'

url = URI("https://api-messaging.wavy.global/v1/send-bulk-sms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["username"] = '<username>'
request["authenticationtoken"] = '<authenticationtoken>'
request["content-type"] = 'application/json'
request.body = '{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}'

response = http.request(request)
puts response.read_body
import requests

url = "https://api-messaging.wavy.global/v1/send-bulk-sms"

payload = '{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}'
headers = {
    'username': "<username>",
    'authenticationtoken': "<authenticationtoken>",
    'content-type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
Mod: curl

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-messaging.wavy.global/v1/send-bulk-sms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }, { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }], \"defaultValues\":{\"messageText\":\"Default message\" }}",
  CURLOPT_HTTPHEADER => array(
    "authenticationtoken: <authenticationtoken>",
    "content-type: application/json",
    "username: <username>"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SendSms {

    public static void main(String[] args) {
        String url = "https://api-messaging.wavy.global/v1/send-bulk-sms";

        String userName = "<username>";
        String authenticationToken = "<authenticationtoken>";

        String body = "{ \"messages\":[{ \"destination\":\"5519999999999\", \"messageText\":\"First message\" }," +
                " { \"destination\":\"5519999999999\" }, { \"destination\":\"5519999999999\" }]," +
                " \"defaultValues\":{\"messageText\":\"Default message\" }}";

        String response = doPost(url, body, userName, authenticationToken);
        System.out.println(response);
    }

    public static String doPost(String strUrl, String request, String userName, String authenticationToken) {
        HttpURLConnection conn = null;
        OutputStreamWriter wr = null;
        BufferedReader br = null;
        try {
            URL url = new URL(strUrl);

            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            conn.setConnectTimeout(30000);
            conn.setReadTimeout(30000);

            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("UserName", userName);
            conn.setRequestProperty("AuthenticationToken", authenticationToken);

            // write the request
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(request);
            wr.close();

            // read the response
            br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            StringBuilder resp = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                resp.append(line).append("\n");
            }
            return resp.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (wr != null) {
                    wr.close();
                }
                if (br != null) {
                    br.close();
                }
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

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"
}
 {
  "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"
}
{
  "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"
}
{
  "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"
}

{
  "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:

Campo
Detalhes
Tipo

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

PreviousFluxo de mensagem e APINextHTTP Status Code Response

Last updated 1 year ago

Was this helpful?

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

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 . Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

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

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

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 . Os campos expiresAt, expiresInMinutes e expiresDate são mutuamente exclusivos (use somente um deles)

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

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

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

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

Unix time
Unix time
Clique aqui
Unix time
Unix time
Clique aqui
Unix time
Unix time
Clique aqui