Overview
Uma mensagem que permanece "na fila" — nunca chegando a DELIVRD ou UNDELIV — geralmente significa que foi aceita pelo gateway, mas ainda não foi entregue pela operadora de destino: normalmente porque está agendada para mais tarde, limitada pelo seu limite de TPS, aguardando o término do período de validade num aparelho desligado ou fora de área de cobertura, ou retida numa rota congestionada. Verifique o schtime, o seu limite de throughput e o DLR — uma mensagem só sai da fila quando a operadora devolve um recibo final.
Está agendado para mais tarde.
Se você definir o schtime (com GMT), o gateway reterá a mensagem propositalmente até esse momento, mantendo-a em fila até que o horário agendado chegue. Verifique o schtime/GMT que você enviou — um deslocamento GMT incorreto ou uma data futura é o motivo mais simples para um lote "não ser enviado". Omita o schtime para enviar imediatamente; a API REST devolve um ScheduleId quando um envio é agendado.
- schtime (yyyyMMddhhmm) + gmt mantém a mensagem até esse horário.
- Um deslocamento GMT incorreto pode atrasar o envio em horas.
- Omita "schtime" para enviar agora.
- Um lote agendado devolve um ScheduleId, não uma entrega imediata.
A aceleração é limitada pelo seu limite de TPS (Sensor de Posição do Acelerador).
Um grande lote de dados é processado na capacidade máxima da sua conta (mensagens por segundo), portanto, as mensagens posteriores permanecem na fila enquanto as anteriores são enviadas — isso é um processamento normal, não uma falha. Se o volume contínuo for importante, solicite uma taxa de transferência por segundo (TPS) maior. Envios muito grandes são melhor enviados como ficheiro de destinatários para o endpoint de envio em massa /sms/sendbulk do que como uma única solicitação enorme.
- Grandes quantidades de água são drenadas pela tampa do TPS — as peças subsequentes aguardam.
- Esse ritmo é o esperado, não um erro.
- Solicitar maior capacidade de processamento para volume contínuo.
- Use /sms/sendbulk para listas muito grandes.
O aparelho está inacessível durante o período de validade.
Se o telefone do destinatário estiver desligado ou fora da área de cobertura, o SMSC da operadora armazena a mensagem e tenta reenviá-la até que o aparelho volte a ficar online ou o período de validade expire. Durante esse período, a mensagem fica legitimamente em fila de espera. Quando a validade expira sem que a mensagem seja entregue, o DLR passa a indicar "UNDELIV/expired" (não entregue/expirada) — portanto, uma mensagem em fila de espera por um longo período geralmente se resolve sozinha assim que o aparelho volta a ficar online.
- O recurso SMSC de armazenamento e encaminhamento tenta novamente um aparelho inacessível.
- A mensagem permanece na fila até ser entregue ou até expirar o seu prazo de validade.
- Ao expirar, o DLR fica com o status UNDERIV/expirado.
- Geralmente o problema se resolve quando o telefone volta a ter sinal.
Verifique os créditos, a rota e o status real.
Se nada mudar, confirme o saldo — um envio pode falhar com HTTP 18 (créditos insuficientes) — e se o ID do remetente e a rota estão aprovados para o destino. Não infira o estado a partir da ausência de um webhook: consulte diretamente o status de cada mensagem (pela API HTTP legada: /websmpp/websmsstatus com o ID de resposta).
- Sem nenhuma movimentação? Verifique os seus créditos — HTTP18 significa saldo insuficiente.
- Confirme se o ID do remetente e a rota estão aprovados para o país.
- Leia o status real consultando-o diretamente (API HTTP legada: /websmpp/websmsstatus).
- Não faça suposições com base na ausência de um webhook — verifique o status.