SMS de Verificação
Códigos OTP por SMS: a nossa API gera o código, envia-o ao seu cliente e confere-o por si.
- Início »
- SMS para Empresas »
- SMS de Verificação
Esta demonstração mostra o que o seu cliente vê e o que a nossa API responde a cada passo. Aqui nada é enviado: é só para ver o fluxo.
Enviámos um código por SMS para 84 *** 4567.
Carregue em «Enviar código» para começar.
Para testar a sério sem gastar créditos, use uma chave de Sandbox: a resposta traz o código.
O seu sistema não precisa de gerar nem de guardar códigos. Um pedido envia o código, outro confere o que o cliente escreveu.
Ao criar conta, ao entrar ou ao pagar, o seu sistema faz POST /v1/sms/otp com o número.
A API cria um código aleatório e envia-o de imediato por SMS, à frente da fila. Guarda só o hash.
O cliente lê o SMS e escreve o código no seu site ou na sua aplicação.
O seu sistema faz POST /v1/sms/otp/{id}/verify e recebe valid, o estado e as tentativas que restam.
# 1. POST /v1/sms/otp
201 Created
{ "data": { "id": "otp_3f9a1c...", "status": "pending",
"to": "25884****567", "attempts_left": 5,
"expires_at": "2026-11-20T09:35:00+02:00" } }
# 2. POST /v1/sms/otp/otp_3f9a1c.../verify
200 OK
{ "data": { "status": "verified", "valid": true,
"attempts_left": 4 } }
Escolha o tamanho do código, quanto tempo vale e quantas tentativas o cliente tem. Se não escolher, usamos 6 algarismos, 5 minutos e 5 tentativas.
Tudo o que uma verificação por SMS precisa, já pronto: do código aleatório à conferência, com protecção contra quem tenta adivinhar ou abusar.
Dois pedidos bastam. Todos os campos, menos o número, são opcionais.
number: o telemóvel do cliente, de Moçambique e Angola, com ou sem indicativo.length: de 4 a 8 algarismos. Por omissão, 6.expires_in: os minutos em que o código vale, de 1 a 60. Por omissão, 5.max_attempts: as tentativas, de 1 a 10. Por omissão, 5.text: o seu texto, com {code} uma vez e, se quiser, {minutes}.sender: um Sender ID aprovado. Sem ele, sai o NETMSG, grátis.Para desistir de um código, use POST /v1/sms/otp/{id}/cancel. Para ver o estado, GET /v1/sms/otp/{id}.
curl https://api.interweb.co.mz/v1/sms/otp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: signup-7f3a9c" \
-d '{"number": "+258841234567", "length": 6,
"expires_in": 5, "max_attempts": 5,
"text": "Your code is {code}. Valid for {minutes} min."}'curl https://api.interweb.co.mz/v1/sms/otp/OTP_ID/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"code": "482913"}'<?php
function api_call(string $path, array $body): array {
$ch = curl_init('https://api.interweb.co.mz' . $path);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($body),
]);
return json_decode(curl_exec($ch), true)['data'];
}
// 1. Send the code
$otp = api_call('/v1/sms/otp', ['number' => '+258841234567']);
$_SESSION['otp_id'] = $otp['id'];
// 2. Check the code the user typed
$check = api_call('/v1/sms/otp/' . $_SESSION['otp_id'] . '/verify',
['code' => $_POST['code']]);
if ($check['valid']) {
// phone number confirmed
}
Sempre que precisar de ter a certeza de que o número é mesmo do cliente. Todos estes exemplos cabem num só SMS, mesmo com acentos.

Confirme pagamentos, levantamentos e transferências antes de os aprovar. Um código por operação, com validade curta.

Confirme o número de quem cria conta e proteja a entrada com um segundo passo, sem aplicações extra.

Confirme reservas, check-ins e a entrega de encomendas a quem as pediu.
Com estes cuidados, o código chega depressa, cabe num só SMS e é difícil de usar por quem não deve.
O SMS não recebe respostas: o cliente escreve o código no seu site ou na sua aplicação, e nunca responde à mensagem.
Cada código gasta os créditos do seu SMS, normalmente um, e a conferência não gasta nada. O preço desce com a quantidade de créditos que compra de uma vez.
| Verificações por SMS | Preço por código | Total |
|---|---|---|
| 1.000 | 1,50 MT | 1.500,00 MT |
| 5.000 | 1,35 MT | 6.750,00 MT |
| 10.000 | 1,275 MT | 12.750,00 MT |
| 50.000 | 1,05 MT | 52.500,00 MT |
| 100.000 | 0,90 MT | 90.000,00 MT |
| 250.000 | 0,825 MT | 206.250,00 MT |
Com 1 SMS por código. Mínimo de 1.000 créditos por compra.
Artigos para escolher, configurar e tirar o máximo deste serviço
O SMS tem uma vantagem que nenhum outro canal tem por aqui: chega a toda a gente, sem depender de internet, de aplicação instalada ou de telemóvel moderno. E…
Ler o artigo
A resposta curta: o Sender ID é um remetente com o nome da sua marca. Quem recebe o SMS vê esse nome, por exemplo PADARIA SOL, em vez de…
Ler o artigo
A resposta curta: no Meu Interweb, abra a página SMS, vá a Remetentes e carregue em «Pedir um remetente com o meu nome». Escolha o nome (até 5 num…
Ler o artigo
As perguntas mais frequentes sobre os códigos OTP por SMS
É um código de uso único (One-Time Password) enviado por SMS para confirmar que o número é mesmo do cliente. Usa-se ao criar conta, ao entrar, ao pagar ou ao mudar dados importantes.
O SMS do código gasta créditos como qualquer outro SMS: um crédito por parte, desde 0,825 MT. O texto por omissão cabe num só SMS. A conferência do código não gasta créditos.
Cada tentativa errada conta, e a resposta diz quantas restam. Ao chegar ao limite, que escolhe de 1 a 10 (5 por omissão), o código falha e é preciso pedir outro.
Sim. Com uma chave de Sandbox, nenhum SMS sai e nada se paga, e a resposta do envio traz o próprio código, para testar a conferência no seu sistema.
Não. A nossa API gera o código, envia-o por SMS e confere-o. O seu sistema só guarda o id que recebe no envio e manda-nos o código que o cliente escreveu.
Por omissão, 5 minutos. Pode escolher de 1 a 60 minutos no campo expires_in. Depois desse tempo, a conferência responde que o código expirou.
Cada conta pode pedir, no máximo, 5 códigos por número e por hora. Um código novo para o mesmo número anula o anterior. O código é guardado só como hash e a conferência é feita em tempo constante.
Sim. Indique o seu Sender ID no campo sender. Custa 4.500,00 MT por nome e por país, e a análise leva até 48 horas úteis. Sem ele, o código sai com o NETMSG, grátis.
Obtenha a Hospedagem Rápida e Segura da Interweb com um Domínio GRÁTIS!