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 3 dias, 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 consulta 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.

IMPORTANTE! 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çãoStatus 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)

Campos JSON resposta Callbacks (sent status)

CampoDescriçã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 pelo 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

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 Delivery Reports (DRs)

CampoDescriçã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 pelo 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 obter uma lista dos status ainda não consultados, você pode fazer uma solicitação GET para o URL abaixo:

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:

CampoDetalhesTipo

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

Código de status enviado. Verifique os códigos de status enviados para obter mais informações

Long

sentStatus

Código de status enviado. Verifique os códigos de status enviados para obter mais informações

String

sentStatusAt

Quando a mensagem foi enviada. É uma data de época

Long

sentStatusDate

Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)

String

deliveredStatusCode

Código de status entregue. Verifique os códigos de status entregues para obter mais informações

Long

deliveredStatus

Código de status entregue. Verifique os códigos de status entregues para obter mais informações

String

deliveredAt

Quando a mensagem foi enviada. É uma data de época

Long

deliveredDate

Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)

String

campaignId

Identificador de campanha

Long

extraInfo

Qualquer informação extra definida pelo usuário quando a mensagem foi enviada

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
}

Last updated