
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 | Excessivos 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 celulares 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á saindo |
| 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 celular». 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 |
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 cupom) Ver planos |











