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

WhatsApp e APIs·· 82 visualizações· 5 min de leitura

A resposta curta: o seu site ou aplicação gera o código, guarda-o e confirma-o; a nossa API envia o SMS. Basta um pedido POST /v1/sms/messages com o número e o texto. Teste primeiro na Sandbox, onde nada é enviado nem cobrado, e passe para Produção com uma chave que só tenha a permissão de enviar SMS.

Quem faz o quê

Tarefa Quem faz
Gerar um código aleatório O seu sistema
Guardar o código (com hash, nunca em texto simples) O seu sistema
Dar ao código uma validade curta e limitar as tentativas O seu sistema
Enviar o SMS para o telemóvel A nossa API
Confirmar o código que a pessoa escreve O seu sistema

Os cuidados de segurança, com pormenor, estão em enviar códigos de uso único com segurança. Aqui fica a parte prática: a chave, o pedido, o texto e o que fazer quando alguma coisa corre mal.

Antes do primeiro código

1 Active o SMS e compre créditos na página SMS do My MozOut. Um código curto ocupa normalmente uma parte, ou seja, 1 crédito.
2 Crie uma chave Sandbox (começa por sandbox_) na página API do My MozOut, com a permissão sms:write. Pedimos a sua senha e um código de 6 dígitos enviado por e-mail, e a chave só aparece uma vez: guarde-a no servidor, nunca no código de uma página ou de uma aplicação móvel.
3 Quando tudo funcionar, crie uma chave de Produção (prod_...) com a mesma permissão, um limite de gastos e, se o seu servidor tem IP fixo, a lista de IPs autorizados.

O pedido que envia o código

curl https://api.mozout.com/v1/sms/messages \
-H "Authorization: Bearer sandbox_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7d4f2b1e-9c3a-4e8f-b6d2-1a5c3e9f0b7d" \
-d '{"number": "+258841234567", "text": "O seu código de verificação é 482913."}'

Na Sandbox, a resposta vem com "status": "simulated" e o cabeçalho X-API-Simulated: true: o texto foi validado, mas não saiu nem foi cobrado. Em Produção, o mesmo pedido envia o SMS e desconta os créditos do saldo de SMS. A resposta traz o id da mensagem, as partes e os créditos gastos; guarde o id para consultar o estado com GET /v1/sms/messages/{id}.

O texto: curto, numa só parte

Um código cabe à vontade num SMS de uma parte. Mas basta um acento como ó ou ã para a mensagem inteira passar a Unicode, e aí uma parte leva só 70 caracteres. A frase do exemplo tem acentos e cabe na mesma, porque é curta. A conta completa está em quantos créditos gasta um SMS.

Escreva sempre três coisas: quem envia (o nome da sua empresa), o código e um aviso para não o partilhar. Por exemplo: EMPRESA: o seu código é 482913. Não o partilhe com ninguém..

Com um Sender ID, o SMS chega com o nome da sua empresa e a pessoa reconhece logo de onde vem o código. Passe-o no campo sender, com um nome já aprovado (veja GET /v1/sms/senders). Sem sender, o envio sai pelo remetente grátis NETMSG.

Duplo clique, reenvios e limites

1 Use o cabeçalho Idempotency-Key. Gere um UUID por cada código e repita-o se tiver de refazer o pedido (falha de rede, duplo clique em «Enviar código»). A mesma chave com o mesmo corpo devolve a mesma resposta, sem outro SMS; com um corpo diferente, dá 409.
2 Controle o botão «Reenviar» no seu sistema. Deixe passar algum tempo antes de permitir reenviar e limite quantos reenvios cada número pode pedir: cada reenvio é um SMS novo e gasta créditos.
3 Vigie o saldo e os limites. A API aceita 300 pedidos por minuto, por conta, e há um limite diário de envios por conta. GET /v1/sms/balance devolve o saldo em créditos, daily_limit e sent_today.
Uma mensagem que falha é tentada mais 2 vezes, de 10 em 10 minutos. Com uma validade curta, o código pode já ter expirado quando sair. Por isso, o «Reenviar» deve gerar sempre um código novo. Se o pedido for recusado (por exemplo, com invalid_number: «Confira os algarismos, como em 841234567»), mostre à pessoa uma mensagem simples e veja o que fazer em erros e estados da API de SMS.

Quer enviar códigos de verificação a partir do seu site ou aplicação? Veja o que a API faz e crie a sua chave.

Ver a página da API

VEJA TAMBÉM

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

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

Enviar códigos de uso único (OTP) por SMS com segurança: validade, tentativas e registos

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

App de autenticação, SMS ou chave de segurança: que verificação em dois passos usar

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

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

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