Tratamento do status de SMS em vários segmentos

Mensagens SMS longas são automaticamente divididas em vários segmentos pelas redes das operadoras e, em seguida, remontadas no dispositivo do destinatário, de modo que o texto completo apareça como uma única mensagem. Este documento explica como a Messages API lida com os recibos de entrega (DLRs) para SMS com vários segmentos e como isso afeta os retornos de chamada de status.

As mensagens SMS com vários segmentos introduzem complexidade, pois cada segmento é entregue de forma independente pela rede da operadora. Na maioria dos casos, todos os segmentos chegam com sucesso em um curto intervalo de tempo, mas podem ocorrer falhas parciais.

Para fornecer relatórios de entrega, a Messages API agrega os comprovantes de entrega de todos os segmentos antes de enviar uma resposta de status final.

A lógica é a seguinte:

  • A API aguarda até 5 minutos após receber o aviso de entrega do primeiro segmento.
  • Durante esse período, o sistema coleta os comprovantes de entrega de todos os segmentos.
  • É enviada uma única chamada de retorno de status agregada, com um detalhamento do resultado de cada segmento.

Uma mensagem é marcada como rejected se ocorrer qualquer uma das seguintes situações:

  • Pelo menos um segmento foi rejeitado.
  • Nem todos os segmentos são confirmados como entregues dentro de 5 minutos após o primeiro aviso de entrega.

Callbacks de status agregados

Os callbacks de status para SMS com vários segmentos representam o resultado da mensagem como um todo, e não apenas do primeiro segmento recebido. Isso garante que o status informado reflita se a mensagem completa foi entregue com sucesso ao usuário final.

Os callbacks de status agregados oferecem:

  • Um único callback unificado para a mensagem.
  • Uma análise detalhada dos resultados de entrega por segmento.
  • Status de entrega e rejeição mais precisos para mensagens longas.

Exemplo de callback de status

{ 
   "message_uuid": "aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab", 
   "to": "447700900000", 
   "from": "447700900001", 
   "timestamp": "2025-02-03T12:14:25Z", 
   "status": "delivered", 
   "channel": "sms", 
   "destination": { 
      "network_code": "12345" 
   }, 
   "sms": { 
      "total_count": "2", 
      "segments": [ 
         { 
            "timestamp": "2025-02-03T12:14:25Z", 
            "status": "delivered"         
         }, 
         { 
            "timestamp": "2025-02-03T12:14:58Z", 
            "status": "delivered" 
         } 
      ] 
   } 
} 

Mais informações

Retornos de chamada para status de SMS