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çã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) |
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 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 |
multipartCount | Total de partes que teve o disparo |
partId | O UUID da parte da mensagem enviada a operadora |
part | O número da parte enviada a operadora |
Exemplo JSON Status de Envio (callback - entrega na operadora)
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 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:
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 | 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)
Last updated