Saltar para o conteúdo
Navegar na documentação

Referência API

OTP Service

Envio e validação de códigos

Já tens uma chave? Personaliza os exemplos temporariamente

Opcional. A chave ficará visível nos exemplos de código. Fica apenas na memória desta página: sem guardar nem enviar. Limpa-a antes de partilhar o ecrã ou capturas.

Os exemplos usam valores ilustrativos. Para enviar, cria uma conta e uma chave API e aguarda a aprovação do Sender ID.

$ Gerar Chave

OTP Service

API Service

Serviço gerido de autenticação por SMS. Rate limiting, expiração e validação incluídos.

POST/otp/send

Envia um código OTP de 6 dígitos por SMS. Autenticado via API Key. Debita 1 crédito.

Parâmetros

phonestringobrigatório

Número angolano no formato +244XXXXXXXXX

Rate limit: máximo 3 OTPs por hora por número. Código válido por 5 minutos.

curl -X POST https://api.kambasms.ao/otp/send \
  -H "Content-Type: application/json" \
  -H "X-API-Key: SUA_API_KEY" \
  -H "Idempotency-Key: otp-sessao-123" \
  -d '{
    "phone": "+244912345678"
  }'

Resposta 200

response.json200 OK
{
  "success": true,
  "otp_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "OTP enviado com sucesso.",
  "expires_in": 300
}
POST/otp/verify

Valida um código OTP com autenticação da conta que o enviou.

Parâmetros

phonestringobrigatório

Mesmo número usado no envio

codestringobrigatório

Código de 6 dígitos recebido por SMS

otp_iduuidopcional

Identificador do OTP devolvido por /otp/send para isolar a validação

Autenticação obrigatória: usa a mesma conta e ambiente de /otp/send, no teu backend. Limite: 20 verificações/15min por conta e 5/min por conta + número; validade de 5min. Até cinco tentativas incorretas por pedido. Inclui otp_id para selecionar o pedido; sem ele, é usado o pedido mais recente do número. Para login com prova consumível, usa Authenticator. SDKs que omitem autenticação devem ser atualizados ou substituídos por pedidos HTTP autenticados.

curl -X POST https://api.kambasms.ao/otp/verify \
  -H "X-API-Key: SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+244912345678",
    "code": "123456"
  }'

Sucesso 200

response.json200 OK
{
  "success": true,
  "message": "Código verificado com sucesso."
}

Erro 400

response.json400 Bad Request
{
  "error": "Código inválido ou expirado."
}