Erros e estados das mensagens na API de SMS: o que significa cada um e o que fazer

WhatsApp e APIs·· 35 visualizações· 4 min de leitura

A resposta curta: o código HTTP diz o tipo de problema. Num 422, details.reason diz o que falhou e details.field em que campo. Uma mensagem aceite (201) ainda pode falhar depois: o estado passa a failed, com error: delivery_failed, e os créditos voltam ao saldo.

Os códigos HTTP

Código O que quer dizer O que fazer
201 A mensagem foi aceite Guarde o id e acompanhe o estado
401 Falta a chave ou a chave não é válida Confirme o cabeçalho Authorization: Bearer ..., se a chave está completa e se ainda está dentro da validade que lhe deu
403 insufficient_scope A chave não tem a permissão Use uma chave com sms:write para enviar, ou sms:read para consultar
404 O que pediu não existe Confirme o endereço e o id
409 A mesma Idempotency-Key chegou com outro corpo Use uma chave nova para cada pedido novo
422 validation_failed O pedido não passou na validação Leia details.reason e details.field (tabela a seguir)
429 Demasiados pedidos: o limite é de 300 por minuto, por conta Espere um pouco e repita; vigie X-RateLimit-Remaining
503 disabled O serviço está indisponível Tente mais tarde

As razões do 422 no SMS

details.reason O que aconteceu O que fazer
invalid_number O número não é válido Confira os algarismos: são 9, a começar por 8 (Moçambique) ou por 9 (Angola), como 841234567; ou escreva o número com o indicativo
text_required O texto está vazio Envie o campo text preenchido
text_too_long O texto passa de 1.600 caracteres Encurte a mensagem
word_not_allowed A mensagem tem uma palavra não permitida Reescreva o texto sem ela
sender_not_approved O remetente não está aprovado na sua conta Use um remetente aprovado (veja GET /v1/sms/senders) ou retire o sender para sair pelo NETMSG
number_opted_out O número está na lista da sua conta que não recebe SMS Não envie para esse número; a lista está em GET /v1/sms/opt-outs
country_not_available O número é de um país onde não enviamos Envie só para telemóveis de Moçambique e Angola
daily_limit_reached Chegou ao limite diário de envios da conta Veja daily_limit e sent_today em GET /v1/sms/balance e reparta os envios
insufficient_credits Não há créditos que cheguem Compre créditos na página SMS do My MozOut

Pode ainda receber sms_reseller_required: a conta SMS não está activa. Active o serviço na página SMS do My MozOut e repita o pedido.

Os estados de uma mensagem

Estado No histórico O que quer dizer
queued Na fila À espera de sair
sending A enviar Está a sair
sent Enviado Saiu para a operadora
failed Falhou Não saiu; os créditos foram devolvidos
cancelled Cancelado O envio foi cancelado
simulated Simulado Só na Sandbox: validado, não enviado nem cobrado
sent não quer dizer «lido» nem «confirmado no telemóvel». Quer dizer que a mensagem saiu para a operadora. E uma mensagem em failed já foi tentada mais 2 vezes, de 10 em 10 minutos: antes de a mandar outra vez, confirme o número.

Repetir sem enviar duas vezes

Se o pedido ficar sem resposta (uma falha de rede, um tempo esgotado), não sabe se o SMS foi aceite. Repita-o com a mesma Idempotency-Key e o mesmo corpo: se o primeiro tinha passado, recebe a mesma resposta e não sai um segundo SMS. Num 429, espere antes de repetir. Num 422, não adianta repetir: corrija primeiro o que details.reason indica.

Precisa de ajuda com um pedido concreto? Abra um pedido de suporte no My MozOut e indique o X-Correlation-ID da resposta: é assim que o encontramos depressa. Para começar do zero, veja enviar SMS pela API.

Quer rever as operações e os limites da API de SMS? Está tudo na página da API.

Ver a página da API

VEJA TAMBÉM

Enviar SMS pela API: chave, permissões, Sandbox e o primeiro pedido

Códigos de verificação por SMS pela nossa API: guia prático para o seu site ou aplicação

Histórico e agendamento de SMS: estados, filtros e o que acontece quando uma mensagem falha

Quantos créditos gasta um SMS: 160, 153, 70 e 67 caracteres explicados

O que é o Sender ID: SMS que chegam com o nome da sua empresa em vez de um número

Síncrono ou assíncrono: porque a confirmação de um pagamento ou de um SMS chega depois

PRODUTO RECOMENDADO

Hospedagem de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.