Links

SMS API

Documentação técnica: API de SMS.

Termos importantes

Termos Importantes

Termo
Significado
Descrição
MT
Mobile Terminated
Mensagens enviadas por sua empresa destinadas ao usuário final.
MO
Mobile Originated
É o termo utilizado para mensagens que têm como destino a sua empresa. Ou seja, mensagens originadas pelo usuário (Dispositivo). E utilizado, por exemplo, em fluxos de perguntas e respostas via SMS, quando é necessária a confirmação do usuário.
Response
Resposta síncrona da Sinch
É uma resposta imediata a uma requisição feita em nossa API, onde informamos se a mensagem foi aceita ou não por nossa plataforma.
Callback
Sent status ou status de envio
É o primeiro status enviado que retornamos, no qual informamos se foi possível ou não entregar a mensagem. para o operador.
LA
Short Code
Número curto de 5 ou 6 dígitos, usado para enviar e receber mensagens SMS. São designados pelas operadoras para integradores certificados (Sinch), e possuem regras antifraude e antispam.
DR | DLR
Delivery Receipt
É o segundo status de remessa que retornamos, onde informamos se foi possível, ou não, efetuar a entrega do aparelho. As operadoras enviam essas informações para a Sinch e nós entregamos para o cliente.
O tempo de entrega é variável, por exemplo se o aparelho foi desligado no momento do envio e o usuário ligou 2 horas depois, esse status DLR será entregue ao cliente com 2 horas de atraso. Obs1: Esta confirmação de entrega no dispositivo existirá apenas para os casos em que a mensagem foi entregue com sucesso à operadora. Ou seja, o primeiro status (Callback) foi bem-sucedido.
Obs2: É muito importante destacar que infelizmente as operadoras OI e Sercomtel não possuem essa funcionalidade, ou seja, não retornam as informações de entrega para o aparelho. Envios feitos para números dessas operadoras terão apenas a informação de entrega na operadora (callback).

Fluxo de Mensagem

Fluxo simplificado: MT, Callback, DLR, MO

API HTTPS

Esta API permite que você automatize as requisições de envios de mensagens, únicas ou em lote, e a recuperação dos status de envio através de consultas. Ela utiliza o protocolo HTTP com TLS e aceita os métodos GET, com a passagem de parâmetros na query string, ou POST, com parâmetros em JSON.

Autenticação

Para efetuar envios e consultas em nossa API é necessária a autenticação por meio de usuário ou e-mail, em conjunto com um token.
Campo
Detalhes
Data Type
UserName
Seu usuário ou email
String
Authentication Token
Seu token de autenticação. Verifique aqui e leia as descrições de usuários abaixo.
String
TemplateID
Identificador de modelo de SMS. O texto da mensagem será recuperado e deve ser criado primeiro por meio do Portal do Messaging.
Long
TemplateName
Nome do modelo de SMS. Pode não ser exclusivo, resultando em erro se mais de um modelo for encontrado para o nível de acesso do usuário. O texto da mensagem será recuperado e deve ser criado primeiro por meio do Portal do Messaging
String

Detalhes de conexão

Campo
Detalhes
Hostname
api-messaging.wavy.global
API's
Envios individuais /v1/send-sms Envios em lote /v1/send-bulk-sms
Porta
443 (https)
Protocolo
HTTPS (encriptação TLS)
Autenticação
Portal
messaging.wavy.global

Codificação (encoding)

O Padrão de codificação utilizado é o UTF-8, todo conteúdo das mensagens deve seguir esse padrão.
É possível escapar os caracteres caso deseje ou codificar utilizando o formato HTTP.
Ao lado estão alguns exemplos de codificação:
“messageText”:“A combinação foi perfeita :)”
Ou você pode escapar os caracteres caso queira:
“messageText”:“A combina\u00e7\u00e3o foi perfeita :)"

Envio de mensagens (MT)

Envio por método GET - Individual

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"
}
]
Via método GET, é possível 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, é possível 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

Parâmetros da Requisição

* Campo obrigatório
Campo
Detalhes
Tipo
destination*
Telefone para qual será enviada a mensagem (incluindo 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 Sinch 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 contabilizado assim que a mensagem é recebida pela Sinch. 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! É possível realizar o agendamento apenas em um período 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 dinâmicos, 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
Para cada usuário existe um token de autenticação único. Para evitar problemas com exclusão de usuários, crie um usuário de sistema para suas integrações.

Envio por método POST - Individual ou em lote

curl --request POST \
--url https://api-messaging.wavy.global/v1/send-bulk-sms \
--header 'authenticationtoken: <Token de autenticação>' \
--header 'username:<Usuário Movile Messaging>' \
--header 'content-type: application/json' \
--data "{ "messages":[{ "destination":"5519999999999", "messageText":"First message" }, { "destination":"5519999999999" }, { "destination":"5519999999999" }], "defaultValues":{"messageText":"Default message" }}"
Existe um limite de 1000 mensagens por requisição
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"
}
Exemplo 5, com templateId/templateName (possível com qualquer um ou ambos) e os parâmetros:
{
"messages":[
{
"destination":"5519900001111",
"params": {
"param1": "other_value1",
"param2": "other_value2"
}
},
{
"destination":"5519900002222"
}
],
"defaultValues":{
"params": {
"param1": "value1",
"param2": "value2"
}
},
"templateId": 0,
"templateName": 'name'
}

HTTP Status Code Response

Códigos de status HTTP mais comuns:
Grupo
Descrição
2xx
Sucesso
4xx
Erro Cliente
5xx
Erro Servidor
Código
Descrição
200
Sucesso
400
Requisição errada
401
Sem autorização
403
Proibido
404
Não encontrado
429
Muitas Requisições Realizadas
500
Erro Interno do Servidor
503
Serviço indisponível
504
Gateway Timeout
O limite de máximo é de 700 requisições por segundo por IP.

Status de envio (Callback e DLR)

Existem duas maneiras de obter os status de envio das mensagens, são elas:
  • Webhook: Receber os status em um webservice de sua empresa (recomendado)
Assim que entregamos a mensagem na operadora, ou assim que a operadora nos informa se entregou a mensagem no aparelho, a informação é repassada instantaneamente para você.
  • API de consulta: Fazer requisições de consulta em nossa API sms-status.
Os status ficam disponíveis por 24 horas, e podem ser consultados pelo UUID que a Sinch retornou ao receber a mensagem de sua empresa, ou pelo ID que sua empresa recebeu ao entregar a mensagem para a Sinch. A desvantagem desta opção de Observe que nos exemplos acima, alguns campos “destination” não possuem um “messageText” atribudo 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 consultas ao invés de webhook, é que você fará requisições de consulta de um ID que pode ainda não ter sido entregue na operadora ou no aparelho, neste caso, uma série de requisições desnecessárias serão feitas. Por exemplo, se um usuário estava com o aparelho desligado quando você enviou uma mensagem para ele, e ligou 2 horas depois, você ficará consultando este ID inúmeras vezes por duas horas. E no caso da utilização de um webhook, esta informação seria enviada para você assim que fosse entregue no aparelho, sem requisições vazias.
As consultas de status possuem rate-limit de 1 requisição por segundo por endereço IP. Requisições além deste limite são respondidas com o código de status HTTP 429.

Status via webhook (entrega em seu webservice)

Para configurar o envio dos Callbacks e DRs (dúvida sobre os termos consulte a aba Termos Importantes) primeiramente é necessário logar no Sinch Messaging nas configurações da API, no formulário de configuração você poderá fornecer as URLs para onde serão enviado os status de envio (Callbacks) e os status de confirmação do aparelho (DRs)
Após a inclusão de seu webhook no portal acima, as configurações serão replicadas para nossa plataforma em até 10 minutos, e chamaremos sua URL quando as seguintes ações ocorrem:
Ação
Status de retorno enviado
Depois que uma mensagem for entregue ou não, na operadora
API de status de envio (callback)
Quando uma mensagem for entregue ou não, no aparelho do cliente
API de Delivery Report (DRs)
Exemplo JSON Status de Envio (callback - entrega na operadora)
POST https://example.com/callback/
Content-Type: application/json
{
"id":"f9c100ff-aed0-4456-898c-e57d754c439c",
"correlationId":"client-id",
"carrierId":1,
"carrierName":"VIVO",
"destination":"5511900009999",
"sentStatusCode":2,
"sentStatus":"SENT_SUCCESS",
"sentAt":1266660300000,
"sentDate":"2010-02-20T10:05:00Z",
"campaignId":"64",
"extraInfo":"",
}

Campos JSON resposta Callbacks (sent status)

Campo
Descrição
id
UUID gerado da mensagem
correlationId
Sua identificação desta mensagem
carrierId
Identificador da operadora
carrierName
Nome da operadora
destination
Número de telefone da mensagem enviada
sentStatusCode
Código de status gerado pela Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações
sentStatus
descrição do status de envio. Verifique em códigos de status para mais informações
sentAt
Hora do envio, formato utilizado é o Unix_time
sentDate
Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ
campaignId
Identificador de campanha caso exista
extraInfo
Qualquer informação extra adicionada pelo cliente no envio da mensagem

Campos JSON resposta Delivery Reports (DRs)

Campo
Descrição
id
UUID gerado da mensagem
correlationId
Sua identificação desta mensagem
carrierId
Identificador da operadora
carrierName
Nome da operadora
destination
Número de telefone da mensagem enviada
sentStatusCode
Código de status gerado pela Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações
sentStatus
descrição do status de envio. Verifique em códigos de status para mais informações
sentAt
Hora do envio, formato utilizado é o Unix_time
sentDate
Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ
deliveredStatusCode
Código de status gerado pela Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações
deliveredStatus
descrição do status de envio. Verifique em códigos de status para mais informações
deliveredAt
Hora do envio, formato utilizado é o Unix_time
deliveredDate
Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ
campaignId
Identificador de campanha caso exista
extraInfo
Qualquer informação extra adicionada pelo cliente no envio da mensagem

Consulta Status via requisição HTTP

Para consultar o status das últimas mensagens enviadas é necessário fazer uma requisição POST na URL abaixo enviando o(s) UUID(s) e/ou o(s) correlationId(s) obtidos na resposta do envio:
POST https://api-messaging.wavy.global/v1/sms/status/search
{ "ids": ["918F3591-9AD6-11E7-9C9B-E255B01A8B1A","234F3591-6AD6-11E7-9C9B-E255B01A8B1A"], "correlationIds": ["2468"] }
Também é possível obter apenas os status ainda não consultados:
GET https://api-messaging.wavy.global/v1/sms/status/list
Observe que este endpoint retorna apenas os status ainda não retornados por este endpoint.

Resposta

Campos JSON de resposta:
Campo
Detalhes
Tipo
id
UUID gerado na requisição para a mensagem
String
correlationId
Mesmo correlationId da requisição
String
carrierId
ID da operadora, para mais informações consulte código de erro
Long
carrierName
Nome da operadora
String
destination
Número de telefone da mensagem enviada
String
sentStatusCode
Sent status code. Check Sent Status Codes for more information
Long
sentStatus
Sent status. Check Sent Status Codes for more information
String
sentStatusAt
When the message was sent. It is an Epoch Date
Long
sentStatusDate
When the message was sent. Format yyyy-MM-dd’T'HH:mm:ssZ. Date format with time and time zone (ISO 8601)
String
deliveredStatusCode
Delivered status code. Check Delivered Status Codes for more information
Long
deliveredStatus
Delivered status. Check Delivered Status Codes for more information
String
deliveredAt
When the message was delivered. It is an Epoch Date
Long
deliveredDate
When the message was delivered. Format yyyy-MM-dd’T'HH:mm:ssZ. Date format with time and time zone (ISO 8601)
String
campaignId
Campaign Identifier
Long
extraInfo
Any extra info set by the user when the message was sent
String
Exemplo JSON Delivery Report (DR ou DLR - Entrega no aparelho do usuário)
{
"id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
"correlationId":"myId",
"carrierId":5,
"carrierName":"TIM",
"destination":"5519900001111",
"sentStatusCode":2,
"sentStatus":"SENT_SUCCESS",
"sentStatusAt":1420732929252,
"sentStatusDate":"2015-01-08T16:02:09Z",
"deliveredStatusCode":4,
"deliveredStatus":"DELIVERED_SUCCESS",
"deliveredAt":1420732954000,
"deliveredDate":"2015-01-08T16:02:34Z",
"campaignId":1234
}

Resposta do usuário (MO)

A API de MO permite a automação do processo de recuperação de respostas enviadas pelos clientes em resposta as mensagens que voce enviou a eles. Todas as requisições usam o método GET e as respostas são enviadas no formato JSON. IMPORTANTE! O recebimento de MOs esta habilitado por padrão apenas para os LAs 27182 e 28149, caso seja necessário receber as mensagens através de outros LAs será necessário entrar em contato com o suporte para avaliar.
É possível também a configuração para que as MOs sejam encaminhadas conforme chegaram para uma API do cliente, essa é a forma mais eficiente pois não é necessário realizar nenhuma chamada, so tratar os envios conforme chegaram. Para que esta configuração seja realizada é necessário abrir um ticket com nosso time de suporte técnico através do nosso suporte passando a url que receberá os MOs. Conseguimos enviar os MOs tanto via método GET (query string) como via método POST (JSON)
Exemplo JSON enviado para sua API (método POST)
{
"id": "25950050-7362-11e6-be62-001b7843e7d4",
"subAccount": "Marketing",
"campaignAlias": "Promo",
"carrierId": 1,
"carrierName": "VIVO",
"source": "5516981562820",
"shortCode": "28128",
"messageText": "Eu quero pizza",
"receivedAt": 1473088405588,
"receivedDate": "2016-09-05T12:13:25Z",
"mt": {
"id": "8be584fd-2554-439b-9ba9-aab507278992",
"correlationId": "1876",
"username": "iFoodCS",
"email": "[email protected]"
}
}
Cada requisição feita irá retornar os MOs dos últimos 24 horas, até um limite de 1.000 MOs. Para datas anteriores ou quantidades maiores favor entrar em contato com nosso time de suporte através do nosso Service Center.
O comportamento da query List MO será diferente para cada usuário autenticado devido ao nível de permissão de cada usuário.
Recomendamos o método de envio das MOs para API, toda MO enviada será automaticamente enviada para API pois desta forma as respostas podem ser tratadas imediatamente após o recebimento
Perfil
Permissão
Regular
cada requisição realizada na MO API só irá retornar os MOs correspondentes a subconta que o usuário pertence. Não é possível a um usuário regular recuperar MOs de outras subcontas.
Administrador
o comportamento padrão para o usuário administrador é recuperar todos os MOs de todas as subcontas. se um admin desejar recuperar os MOs de apenas uma das subcontas é necessário especificar a subconta no parametro subAccount com o id da subconta desejada.

Formato de resposta padrões de MO

Exemplo de JSON de resposta chamada API Sinch:
"total": 1,
"start": "2016-09-04T11:12:41Z",
"end": "2016-09-08T11:17:39.113Z",
"messages": [
{
"id": "25950050-7362-11e6-be62-001b7843e7d4",
"subAccount": "Marketing",
"campaignAlias": "Promo",
"carrierId": 1,
"carrierName": "VIVO",
"source": "5516981562820",
"shortCode": "28128",
"messageText": "Eu quero pizza",
"receivedAt": 1473088405588,
"receivedDate": "2016-09-05T12:13:25Z",
"mt": {
"id": "8be584fd-2554-439b-9ba9-aab507278992",
"correlationId": "1876",
"username": "CS",
"email": "[email protected]"
}
},
{
"id": "d3afc42a-1fd9-49ff-8b8b-34299c070ef3",
"subAccount": "Marketing",
"campaignAlias": "Promo",
"carrierId": 5,
"carrierName": "TIM",
"source": "5519987565020",
"shortCode": "28128",
"messageText": "Meu hamburguer está chegando?",
"receivedAt": 1473088405588,
"receivedDate": "2016-09-05T12:13:25Z",
"mt": {
"id": "302db832-3527-4e3c-b57b-6a481644d88b",
"correlationId": "1893",
"username": "CS",
"email": "[email protected]"
}
}
]
}
Tanto as requisições de listagem (list) e a função de busca (search) retornam um objeto JSON com os campos abaixo:
Campo
Detalhes
Tipo
total
O número total de MOs retornadas pela requisição
Integer
start
O limite minimo da query
String
end
O limite máximo da query
String
messages
Listagem dos objetos
List

Cada mensagem do campo messages possui a seguinte estrutura:

Campo
Detalhes
Tipo
id
Id da mensagem
String
subAccount
subconta responsável por enviar a mensagem que gerou a resposta
String
carrierId
Id da operadora
Integer
carrierName
Nome da operadora
String
source
Número de telefone que enviou a mensagem de resposta
String
shortCode
O shortcode da mensagem que originou a resposta e pelo qual a resposta foi enviada
String
messageText
Texto da mensagem de resposta
String
receivedAt
hora de recebimento
Long
receivedDate
Data e hora de recebimento em formato UTC
String
campaignAlias
Alias da campanha que originou a resposta
String
mt
MT original que gerou a resposta
MT

MTs tem a seguinte estrutura:

Campo
Detalhes
Tipo
id
Id da MT
String
correlationId
CorrelationID enviado na MT
String
username
Username do usuário responsavel por enviar a MT
String
email
Email do responsavel por enviar a MT
String

Requisição listar MO (list)

A Listagem irá retornar todos os MOs recebidos desde a última chamada de acordo com a resposta padrão descrita acima. Uma vez que esta chamada é realizada ela será consumida e não irá retornar as chamadas seguintes.
Como um usuário regular, para recuperar todas MOs de uma subconta use:
GET https://api-messaging.wavy.global/v1/sms/receive/list
Como usuário administrador, para recuperar TODAS as MOs de TODAS subcontas use:
GET https://api-messaging.wavy.global/v1/sms/receive/list
Como usuário administrador. para recuperar as MOs de uma subconta com a referencia “referencia_subconta”, use:
GET https://api-messaging.wavy.global/v1/sms/receive/list?subAccount=referencia_subconta
A requisição de busca (search request) irá retornar cada MO recebido num determinado periodo de tempo. Voce precisa definir os parametros start and end para especificar um periodo de tempo, deverá ser utilizado o formato ISO-8601. START por padrão é definido 5 dias antes da data atual e END por padrão é definido na data atual. Não é possivel recuperar MOs anteriores a 5 dias.
Como um usuário regular, para recuperar todas MOs de uma subconta use:
GET https://api-messaging.wavy.global/v1/sms/receive/search
Como usuário administrador, para recuperar TODAS as MOs de TODAS subcontas use:
GET https://api-messaging.wavy.global/v1/sms/receive/search
Como usuário administrador. para recuperar as MOs de uma subconta com a referencia “referencia_subconta”, use:
GET https://api-messaging.wavy.global/v1/sms/receive/search?subAccount=referencia_subconta
Busca com START e END definidos:
GET https://api-messaging.wavy.global/v1/sms/receive/search?start=2016-09-12T00:00:00&end=2016-09-15T00:00:00
Somente com START especificado (utilizando END padrão, data atual)
GET https://api-messaging.wavy.globalv1/sms/receive/search?start=2016-09-12T00:00:00
Somente com END especificado (utilizando START padrão, 5 dias antes da data atual)
GET https://api-messaging.wavy.global/v1/sms/receive/search?end=2016-09-15T00:00:00
Usado valores padrão para START e END e especificado subconta
GET https://api-messaging.wavy.global/v1/sms/receive/search?subAccount=iFoodMarketing

Códigos de Status de Envio

Existem dois níveis de status, que são enviados independentemente.
1 - Primeiro status (sent_status - Status de envio = Callback)
Status de entrega na operadora, este é o primeiro status que retornamos, e todas as operadoras possuem.
Código
Mensagem
Significado
2
SENT_SUCCESS
Entregue na operadora com sucesso (Este é o status que deve ser considerado para efeito de cobrança.)
101
EXPIRED
Expirado antes de ser entregue ao aparelho
102
CARRIER_COMMUNICATION_ERROR
Erro de comunicação com a operadora
103
REJECTED_BY_CARRIER
Operadora rejeitou a mensagem
201
NO_CREDIT