Vamos fazer você viver com OTPs ultrarrápidos!

Vamos levar você de “acabou de se inscrever” a “enviar OTPs como um profissional” em algumas etapas rápidas.

API Verificar agora

Documentação da API OTP SMS

Versão — 3.0
tick-icon

Etapa 1: Inscreva-se e faça login

  1. Vá para a inscrição na Central de Mensagens
  2. Crie sua conta gratuita
  3. Use seus créditos gratuitos para testar e brincar com OTPs
📌 Dica: use seus créditos gratuitos para enviar OTPs de teste imediatamente antes da transmissão ao vivo.
tick-icon

Etapa 2: Integração de API (desenvolvedores, montagem!)

Mantivemos as coisas super simples. Copie alguns trechos de código e você estará testando rapidamente.

Prefere assistir à codificação? Nosso guia de vídeo rápido tem tudo o que você precisa.

Parâmetro da API para verificar agora

Os parâmetros a seguir precisam ser enviados ao usar as APIs VerifyNow.

Parâmetro da API
Tipo
Valor
Tipo de fluxo
Corda
SMS/WHATSAPP/
RCS/SAUTH
tipo
Corda
TOPO

URLs de base da API Rest

Todos os endpoints da API da plataforma abaixo devem ser prefixados com o seguinte URL:

https://cpaas.messagecentral.com

Gerar token

Ao usar a API de verificação de SMS do Verify Now para enviar códigos de verificação por SMS, a chamada inicial deve ser para a API de geração de token.

Essa API retorna um token que deve ser incluído em todas as chamadas subsequentes. É necessário um token de autenticação para validar o usuário e deve ser incluído na seção de cabeçalho de cada solicitação.

Campo
Tipo
Obrigatório?
Descrição
ID do cliente
Corda
sim
Identificador do cliente (necessário inscrever-se para obter seu ID de cliente)
país
Corda
não
Código do país para o qual enviar OTP
e-mail
Corda
não
E-mail
chave
Corda
sim
Senha criptografada Base-64
objetivo
Corda
não
Use 'NOVO' pela primeira vez

Caminho do URL da solicitação:

/auth/v1/authentication/token

cURL

1curl --location 'https://cpaas.messagecentral.com/auth/v1/authentication/token? 
2customerId=%3CCustomerId%3E&key=%3CBase64%20Encrypted%20password%3E&scope=NEW&country=91
3&email=test%40messagecentral.com' \
4--header 'accept: */*'

OBSERVAÇÃO: Para converter um comando cURL em código usando o Postman, abra o Postman, importe o comando cURL por meio do botão “Importar” e gere o código no idioma de sua preferência clicando no botão “Código” no lado direito da solicitação.

Resposta JSON

1{
2  "status": Integer,
3  "token": "String"
4}

Exemplo de código

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com")
  .method("GET", body)
  .addHeader("accept", "*/*")
  .build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com',
  'headers': {
    'accept': '*/*'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'accept' => '*/*'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
import requests

url = "https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com"

payload = {}
headers = {
  'accept': '*/*'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
require "uri"
require "net/http"

url = URI("https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)
request["accept"] = "*/*"

response = https.request(request)
puts response.read_body

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://cpaas.messagecentral.com/auth/v1/authentication/token?customerId=<CustomerId>&key=<Base64 Encrypted password>&scope=NEW&country=91&email=test@messagecentral.com");
request.Headers.Add("accept", "*/*");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Enviar OTP

Para enviar OTP em um número de celular, abaixo estão os parâmetros da solicitação. O token de autenticação é necessário para enviar o OTP, que é gerado pela API do token gerado (que você pode encontrar acima na seção Introdução).

Parâmetro da API
Tipo
Obrigatório?
Token de autenticação
Corda
sim

Caminho do URL da solicitação:

Uma resposta bem-sucedida retornará um código de status 200.

/verification/v3/send

Parâmetros do URL da solicitação:

Campo
Tipo
Obrigatório?
Descrição
ID do cliente
Corda
sim
Código do país
Comprimento superior
Inteiro
não
Envie um número entre 4 e 8. O padrão é 4
Número de celular
Corda
sim
Número de celular para texto único
Tipo de fluxo
Corda
sim
Enviamos OTP usando vários meios, como SMS, WhatsApp, e-mail, etc. Por enquanto, use SMS ou WhatsApp

cURL

1curl --location --request POST 'https://cpaas.messagecentral.com/verification/v3/send? 
2countryCode=91&flowType=SMS&mobileNumber=9999999999' \
3--header 'authToken: 
4eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDIGNzQwNCI6ImIhdCI6MTcxMjExOTA0MCwiZXhwIjo'

OBSERVAÇÃO: Para converter um comando cURL em código usando o Postman, abra o Postman, importe o comando cURL por meio do botão “Importar” e gere o código no idioma de sua preferência clicando no botão “Código” no lado direito da solicitação. Você pode alterar o FlowType com base no canal de sua escolha.

Resposta JSON

1{
2  "responseCode": 200,
3  "message": "SUCCESS",
4  "data": {
5    "verificationId": "xxxx",
6    "mobileNumber": "xxxx",
7    "responseCode": "200",
8    "errorMessage": null,
9    "timeout": "60",
10    "smCLI": null,
11    "transactionId": "xxxx"
12  }
13}

Exemplo de código

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")
  .method("POST", body)
  .addHeader("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw")
  .build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999',
  'headers': {
    'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'authToken' => 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
import requests

url = "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999"

payload = {}
headers = {
  'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
require "uri"
require "net/http"

url = URI("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["authToken"] = "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw"

response = https.request(request)
puts response.read_body
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Validar OTP

O método validateOTP é um endpoint da API REST para validar uma senha de uso único (OTP) para clientes.

cabeçalho da solicitação
Tipo
Obrigatório?
Token de autenticação
Corda
sim

Caminho do URL da solicitação:

Uma resposta bem-sucedida retornará um código de status 200.

/verification/v3/validateOtp/
Campo
Tipo
Obrigatório?
Descrição
ID de verificação
Longo
sim
VerificationID da resposta da api/send
código
Corda
sim
topo
lângido
Corda
não
Número de celular para texto único
Tipo de fluxo
Corda
sim
  • Para suporte a vários idiomas
  • por padrão é inglês
  • Por enquanto, oferecemos suporte apenas em inglês

cURL

1curl --location 'https://cpaas.messagecentral.com/verification/v3/validateOtp? 
2&verificationId=2949&code=1476' \
3--header 'authToken: 
4eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDIGNzQwNCI6ImIhdCI6MTcxMjExOTA0MC'

OBSERVAÇÃO: Para converter um comando cURL em código usando o Postman, abra o Postman, importe o comando cURL por meio do botão “Importar” e gere o código no idioma de sua preferência clicando no botão “Código” no lado direito da solicitação.

Resposta JSON

Uma resposta bem-sucedida retornará um código de status 200.

1{
2  "responseCode": 200,
3  "message": "SUCCESS",
4  "data": {
5    "verficationId": "xxxx",
6    "mobileNumber": "xxxx",
7    "responseCode": "200",
8    "errorMessage": null,
9    "verificationStatus": "VERIFICATION_COMPLETED",
10    "authToken": null,
11    "transactionId": "xxxx"
12  }
13}

Exemplo de código

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476")
  .method("GET", body)
  .addHeader("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT")
  .build();
Response response = client.newCall(request).execute();
var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476',
  'headers': {
    'authToken': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'authToken' => 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://cpaas.messagecentral.com/verification/v3/validateOtp?&verificationId=2949&code=1476");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOT");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

require "uri"
require "net/http"

url = URI("https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["authToken"] = "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw"

response = https.request(request)
puts response.read_body
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://cpaas.messagecentral.com/verification/v3/send?countryCode=91&flowType=SMS&mobileNumber=9999999999");
request.Headers.Add("authToken", "eyJhbGciOiJIUzUxMiJ9.eyJzdWOiJDLTMzNDMyQTVGNDlGNzQwNCIsImlhdCI6MTcxMjExOTA0MCwiZXhw");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Códigos de resposta

Código
Exibir texto
200
SUCESSO
400
SOLICITAÇÃO_RUIM
409
RECURSO_DUPLICADO
500
ERRO_DO_SERVIDOR
501
ID_DO_CLIENTE INVÁLIDO
505
ID_DE_VERIFICAÇÃO INVÁLIDA
506
SOLICITAÇÃO_JÁ_EXISTE
511
CÓDIGO_DO_PAÍS INVÁLIDO
700
VERIFICAÇÃO_FALHOU
702
WRONG_OTP_PROVIDED
703
JÁ_VERIFICADO
705
VERIFICAÇÃO_EXPIRADA
800
LIMITE_MÁXIMO_ALCANÇADO

Precisa de ajuda?

Precisa de uma mão? Nossos especialistas estão disponíveis 24 horas por dia, 7 dias por semana, para orientá-lo em qualquer coisa, a qualquer momento.

E-mail de suporte: support@messagecentral.com

Perguntas frequentes

1. Como posso implementar com código personalizado?

Você pode usar o postman para reescrever chamadas de API na sua linguagem de programação preferida. Você precisaria usar: -

  • Método POST para envio de SMS
  • Método GET para validar SMS OTP

2. Por que estou recebendo o erro “Método não permitido” ou o código de erro 405?

Você precisaria garantir que o URL do endpoint da Token API corresponda ao definido na documentação. O mesmo foi mencionado abaixo: -

a. API de token usando o método GET

b. Enviar API usando o método POST

c. Validar a API usando o método GET



3. Como faço para testar as APIs de verificação de SMS?

Você pode usar o Postman para testar as APIs de verificação de SMS do Message Central.

4. Por que estou recebendo a página “Whitelabel Error”?

Se você estiver recebendo a página de erro Whitelabel, verifique os seguintes erros: -

a. Você está usando um pacote de API incorreto

b. Você não substituiu os espaços reservados pelos valores reais

c. A curvatura da API está incorreta

d. A localização do curl não foi alterada para 'produção' em vez de 'preparação'

5. Por que estou recebendo o código de erro 401?

Isso pode ser devido a uma API ou token incorretos. Certifique-se de ter seguido nossa documentação de API para obter os valores corretos do token.

6. Por que estou recebendo o código de erro 400 ou “Bad Request” no Postman?

Existem vários motivos para uma “solicitação incorreta” no Postman. Você pode verificar os seguintes motivos prováveis: -

a. Verifique se o AuthToken está correto

b. Verifique se algum parâmetro está faltando na API

c. O cabeçalho deve ser passado neste formato - application-x-www-form-urlencoded

7. Como faço para gerar o AuthToken?

Para gerar o AuthToken no Postman, você deve: -

a. Encontre uma 'chave' na API GET

b. Você precisaria copiar essa chave e codificar a mesma usando Base64 - https://www.base64encode.org/

c. Coloque a senha codificada no espaço reservado 'Chave'

d. Acesse a API GET

Você receberia um AuthToken.

8. Onde eu uso o AuthToken?

Você precisaria colocar o AuthToken no cabeçalho da API SEND.

9. Quais espaços reservados eu preciso alterar na API GET para gerar o token?

Você precisaria alterar o país, o ID do cliente, o e-mail e a chave. O escopo sempre permanecerá = “NOVO”

Campo
Tipo
Obrigatório?
Descrição
ID do cliente
Corda
sim
Identificador do cliente (necessário inscrever-se para obter seu ID de cliente)
chave
Corda
sim
Senha criptografada Base-64

10. Quais espaços reservados eu preciso alterar na API SEND?

Você precisaria alterar o código do país, o ID do cliente, o comprimento do lote e o número do celular.

Campo
Tipo
Obrigatório?
Descrição
ID do cliente
Corda
sim
Código do país
Tipo de fluxo
Corda
sim
Enviamos OTP usando vários meios, como SMS, WhatsApp, e-mail, etc. Por enquanto, use SMS ou WhatsApp

Qual é a melhor API OTP de SMS para a Índia com base na confiabilidade e latência da entrega?

Procure um provedor de API SMS OTP que oferece rotas diretas do operador, emparelhamento de operadoras regionais, repetição/recuperação automatizada e SLAs de entrega mensuráveis. Os melhores fornecedores da categoria também oferecem suporte à conformidade com DLT, recibos de entrega (DLR), roteamento de baixa latência e Recurso de SMS e WhatsApp. Avalie medindo as taxas de entrega reais, a latência média (ms) e as falhas de erro nas principais operadoras indianas (Jio, Airtel, Vi).

Quão rápida deve ser a entrega de OTP para aplicativos indianos e o que afeta a latência?

Objetivo de menos de 2 segundos entrega para melhor UX (aceitáveis menos de 5 segundos). A latência é afetada pelo roteamento da operadora, filas durante picos de tráfego, congestionamento da rede, saltos agregadores de SMS e atrasos de DLT/template. Use rotas diretas, roteamento paralelo e SMS embutido e substituto do WhatsApp para minimizar a latência OTP de ponta a ponta e aumentar as taxas de conclusão.

Como faço para integrar uma API SMS OTP em meu aplicativo na Índia (Node.js, Python, PHP, Java)?

Fluxo básico: gerar OTP seguro → API Send-OTP do provedor de chamadas → armazenar hash OTP + expiração → verificar a entrada do usuário em relação ao hash armazenado por meio da API Verify-OTP/Webhook. A maioria dos provedores oferece endpoints REST e SDKs de verificação OTP. Exemplo (pseudo):
Node.js (buscar):
aguarde a busca ('https://api.provider/send', {
método: 'POST',
cabeçalhos: {'Autorização': 'CHAVE DO PORTADOR', 'Tipo de conteúdo': 'application/json'},
corpo: JSON.stringify ({para: '+91XXXXXXXXXX', modelo: 'OTP {{code}} ',
variáveis: {código:123456}})});
Use HTTPS, HMAC/assinatura, novas tentativas e webhooks para recibos de entrega (DLR).

Como faço para evitar o abuso de reenvio de OTP ou tentativas de força bruta no meu fluxo de autenticação?

Implemente proteções do lado do servidor:

  • Limite as tentativas de reenvio por telefone por janela de tempo (por exemplo, 3 envios/10 minutos).
  • A verificação do limite de taxa tenta adicionar atrasos progressivos ou bloqueios temporários após falhas.
  • Usando o dispositivo StaginUse, impressão digital IP e CAPTCHAs para endpoint flows.g suspeitos em vez de produção
  • Bloqueie a conta ou exija uma verificação secundária após N tentativas fracassadas. Registre tentativas e notifique as equipes de segurança.

O que causa falhas na entrega de OTP na Índia e como os desenvolvedores as corrigem?

Causas comuns: rejeição de DLT/modelo, filtragem de operadora (DND), roteamento incorreto, ID de remetente incorreta, problemas de formatação de números ou interrupções temporárias do operador. Correções: garanta a aprovação do DLT e do modelo, use o formato de telefone E.164 correto (+91), tente novamente com rotas alternativas, ative o recurso de SMS, monitore DLRs e use um provedor com relacionamentos diretos com operadoras.

Como faço para testar APIs OTP no modo sandbox sem enviar SMS reais?

Use a sandbox ou as chaves de teste do provedor para emular envios/recibos. Os recursos do Sandbox geralmente retornam DLRs simulados e respostas de verificação. Localmente, simule as respostas da API para testes unitários e use credenciais de teste para controle de qualidade de ponta a ponta. Sempre valide os webhooks na preparação (use ferramentas como o ngrok) e registre todos os eventos para serem reproduzidos nos testes.

Como implemento a limitação de taxa e a lógica de repetição para entrega de OTP?

Limitação de taxa: imponha limites por telefone e por IP no gateway da API (por exemplo, 3 envios por 10 min). Lógica de repetição: implemente um recuo exponencial para erros transitórios e uma nova tentativa imediata por meio de uma rota alternativa para falhas leves. Sempre limite as novas tentativas (por exemplo, 3 tentativas) e acompanhe os resultados das novas tentativas para evitar spam ou bloqueios de operadoras.

Posso usar o ID de remetente alfanumérico para OTP na Índia?

Não — A Índia exige IDs de remetente numéricos por meio de rotas aprovadas pela DLT para a maioria dos fluxos transacionais; o alfanumérico geralmente não é permitido para OTPs. Os OTPs devem seguir as regras de telecomunicação/DLT. Use um provedor compatível que gerencie o registro DLT e a configuração numérica da ID do remetente para você.

Qual é o tempo de expiração e o ciclo de repetição do OTP recomendados para usuários indianos?

Expiração: 3—5 minutos é padrão para TOPs transacionais (2FA). Ciclo de repetição: permita de 1 a 2 reenvios imediatos com limites antiabuso (por exemplo, máximo de 3 envios por 10 a 15 minutos). Vencimentos curtos reduzem fraudes; limites sensatos de reenvio reduzem a carga de suporte e a filtragem do operador.

Qual é a diferença entre rotas OTP transacionais e rotas OTP implícitas de serviço?

Transacional as rotas são para mensagens críticas e esperadas (OTP, atualizações de pedidos) que seguem uma conformidade mais rigorosa e geralmente têm maior prioridade de entrega. Serviço implícito (ou outras rotas de serviço) podem variar de acordo com a operadora e geralmente aplicam diferentes regras de modelo/consentimento. Verifique os documentos de roteamento do seu provedor — escolha rotas transacionais para Topos para maximizar a capacidade de entrega e a conformidade.

Como faço para migrar de outro provedor de SMS para uma nova API OTP sem tempo de inatividade?

Planeje uma transição em fases:

  • Configure o novo provedor e provisione DLT/modelos em paralelo.
  • Espelhe o tráfego (envie lotes de teste) e verifique as métricas de entrega.
  • Implemente o envio duplo para uma pequena porcentagem do tráfego ao vivo (A/B) e monitore os resultados.
  • Mude gradualmente o tráfego, mantendo o provedor antigo como substituto.
  • Atualize os endpoints DNS/Webhook, revogue as chaves antigas quando estiverem estáveis. Monitore de perto os registros e as taxas de entrega.

Pronto para começar?

Proteja suas contas de usuário e crie confiança com seus clientes usando a verificação por SMS. Experimente o Verify Now sem nenhum cartão de crédito.