¡Hagamos que vivas con OTP ultrarrápidas!

Pasarás de «recién registrarte» a «enviar OTP como un profesional» en unos pocos pasos rápidos.

Verify Now API

Documentación de la API OTP SMS

Versión — 3.0
tick-icon

Paso 1: Registrarse e iniciar sesión

  1. Ir al registro de Message Central
  2. Crea tu cuenta gratuita
  3. Usa tus créditos gratuitos para probar y jugar con las OTP
📌 Consejo: Usa tus créditos gratuitos para enviar las OTP de prueba inmediatamente antes de lanzarlas.
tick-icon

Paso 2: Integración de API (¡desarrolladores, ensamblados!)

Hemos mantenido las cosas muy sencillas. Copia algunos fragmentos de código y lo probarás en poco tiempo.

¿Prefieres ver antes que programar? ¿Nuestro guía rápida de vídeo lo tiene todo cubierto.

Parámetro de API para Verify Now

Los siguientes parámetros deben enviarse al usar las API VerifyNow.

Parámetro de API
Tipo
Valor
Tipo de flujo
Cuerda
SMS/WHATSAPP/
RCS/SAUTH
tipo
Cuerda
PARTE SUPERIOR

URL base de API Rest

Todos los puntos finales de la API de la plataforma que aparecen a continuación deben tener como prefijo la siguiente URL:

https://cpaas.messagecentral.com

Generar token

Al usar la API de verificación por SMS de Verify Now para enviar códigos de verificación por SMS, la llamada inicial debe ser a la API de generación de tokens.

Esta API devuelve un token que debe incluirse en todas las llamadas posteriores. Se necesita un token de autenticación para validar al usuario y debe incluirse en la sección de encabezado de cada solicitud.

Campo
Tipo
¿Obligatorio?
Descripción
ID de cliente
Cuerda
Identificador de cliente (es necesario regístrate para obtener tu identificador de cliente)
campo
Cuerda
no
Código de país al que enviar OTP
correo electrónico
Cuerda
no
Correo electrónico
clave
Cuerda
Contraseña cifrada en base 64
alcance
Cuerda
no
Usa «NUEVO» por primera vez

Ruta URL de solicitud:

/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: */*'

NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud.

Respuesta JSON

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

Ejemplo 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 a un número de teléfono móvil, a continuación se muestran los parámetros de solicitud. El token de autenticación es necesario para enviar la OTP, que es generada por la API de tokens generada (que puedes encontrar más arriba en la sección Introducción).

Parámetro de API
Tipo
¿Obligatorio?
Token de autenticación
Cuerda

Ruta URL de solicitud:

Una respuesta correcta devolverá un código de estado 200.

/verification/v3/send

Parámetros de URL de solicitud:

Campo
Tipo
¿Obligatorio?
Descripción
ID de cliente
Cuerda
Código de país
Longitud máxima
Entero
no
Envía un número entre 4 y 8. El valor predeterminado es 4
Número de móvil
Cuerda
Número de teléfono móvil para texto único
Tipo de flujo
Cuerda
Enviamos OTP utilizando varios medios como SMS, WhatsApp, correo electrónico, etc. Por ahora, usa SMS o WhatsApp

cURL

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

NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud. Puedes cambiar el FlowType según el canal que elijas.

Respuesta 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}

Ejemplo 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

El método validateOTP es un punto final de la API REST para validar una contraseña de un solo uso (OTP) para los clientes.

Encabezado de solicitud
Tipo
¿Obligatorio?
Token de autenticación
Cuerda

Ruta URL de solicitud:

Una respuesta correcta devolverá un código de estado 200.

/verification/v3/validateOtp/
Campo
Tipo
¿Obligatorio?
Descripción
ID de verificación
Larga
ID de verificación de la respuesta de la API /send
código
Cuerda
parte superior
lánguido
Cuerda
no
Número de teléfono móvil para texto único
Tipo de flujo
Cuerda
  • Para soporte en varios idiomas
  • por defecto es inglés
  • Por ahora, solo admitimos inglés

cURL

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

NOTA: Para convertir un comando cURL en código con Postman, abre Postman, importa el comando cURL mediante el botón «Importar» y, a continuación, genera el código en tu idioma preferido haciendo clic en el botón «Código» situado a la derecha de la solicitud.

Respuesta JSON

Una respuesta correcta devolverá un código de estado 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}

Ejemplo 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 respuesta

Código
Mostrar texto
200
ÉXITO
400
SOLICITUD INCORRECTA
409
RECURSO_DUPLICADO
500
ERROR_SERVIDOR
501
ID_DE CLIENTE NO VÁLIDO
505
ID_DE VERIFICACIÓN NO VÁLIDO
506
LA SOLICITUD YA EXISTE
511
CÓDIGO_DE_PAÍS NO VÁLIDO
700
VERIFICACIÓN_FALLIDA
702
WRONG_OTP_PROVIDED
703
YA_VERIFICADO
705
VERIFICACIÓN_CADUCADA
800
LÍMIT_MÁXIMO_ALCANZADO

¿Necesitas ayuda?

¿Necesitas una mano? Nuestros expertos están disponibles las 24 horas del día, los 7 días de la semana para guiarlo en cualquier momento y en cualquier momento.

Correo electrónico de soporte: support@messagecentral.com

Preguntas frecuentes

1. ¿Cómo puedo implementar con código personalizado?

Puedes usar postman para reescribir las llamadas a la API en tu lenguaje de programación preferido. Tendrías que usar: -

  • Método POST para enviar SMS
  • Método GET para validar SMS OTP

2. ¿Por qué aparece el error «Método no permitido» o el código de error 405?

Debes asegurarte de que la URL del punto final de la API de token coincida con la definida en la documentación. Lo mismo se menciona a continuación: -

a. API de token mediante el método GET

b. Enviar API mediante el método POST

c. Validar la API mediante el método GET



3. ¿Cómo pruebo las API de verificación por SMS?

Puedes usar Postman para probar las API de verificación de SMS de Message Central.

4. ¿Por qué aparece la página «Error de etiqueta blanca»?

Si aparece la página de error de etiqueta blanca, debe comprobar si hay los siguientes errores: -

a. Estás utilizando un paquete de API incorrecto

b. No ha sustituido los marcadores de posición por los valores reales

c. La curva de la API es incorrecta

d. La ubicación de Curl no se ha cambiado a «producción» en lugar de «puesta en escena»

5. ¿Por qué aparece el código de error 401?

Esto puede deberse a que la API o el token son incorrectos. Asegúrese de haber seguido nuestra documentación de API para conocer los valores correctos de los tokens.

6. ¿Por qué aparece el código de error 400 o «Solicitud incorrecta» en Postman?

Hay varias razones para una «solicitud incorrecta» en Postman. Puedes comprobar los siguientes motivos probables: -

a. Compruebe si el AuthToken es correcto

b. Compruebe si falta algún parámetro en la API

c. El encabezado debe pasarse en este formato: application-x-www-form-urlencoded

7. ¿Cómo puedo generar AuthToken?

Para generar el AuthToken en Postman, debes: -

a. Busque una «clave» en la API GET

b. Tendrías que copiar esa clave y codificar la misma usando Base64 - https://www.base64encode.org/

c. Coloque la contraseña codificada en el marcador de posición «Clave»

d. Pulsa la API GET

Obtendrías un AuthToken.

8. ¿Dónde uso el AuthToken?

Deberás poner el authToken en el encabezado de la API SEND.

9. ¿Qué marcadores de posición debo cambiar en la API GET para generar el token?

Deberás cambiar el país, la identificación del cliente, el correo electrónico y la clave. El alcance siempre será igual a = «NUEVO»

Campo
Tipo
¿Obligatorio?
Descripción
ID de cliente
Cuerda
Identificador de cliente (es necesario regístrate para obtener tu identificador de cliente)
clave
Cuerda
Contraseña cifrada en base 64

10. ¿Qué marcadores de posición debo cambiar en la API SEND?

Deberás cambiar el código de país, la identificación del cliente, la longitud del límite y el número de teléfono móvil.

Campo
Tipo
¿Obligatorio?
Descripción
ID de cliente
Cuerda
Código de país
Tipo de flujo
Cuerda
Enviamos OTP utilizando varios medios como SMS, WhatsApp, correo electrónico, etc. Por ahora, usa SMS o WhatsApp

1. ¿Cómo integro la API OTP de VerifyNow con un código personalizado?

Se puede integrar fácilmente an SMS OTP API provider that offers direct operator routes, regional carrier peering, automated retry/fallback, and measurable delivery SLAs. Best-in-class providers also support DLT compliance, delivery receipts (DLR), low-latency routing, and SMS + WhatsApp fallback. Evaluate by measuring real-world delivery rates, average latency (ms), and error breakdowns across major Indian carriers (Jio, Airtel, Vi).

How fast should OTP delivery be for Indian apps, and what impacts latency?

Debes asegurarte de que la URL del punto final de la API de token coincida con la definida en la documentación. Lo mismo se menciona a continuación: -sub-2 seconds delivery for best UX (under 5s acceptable). Latency is affected by carrier routing, queueing during peak traffic, network congestion, SMS aggregator hops, and DLT/template delays. Use direct routes, parallel routing, and in-built SMS + WhatsApp fallback to minimise end-to-end OTP latency and boost completion rates.

How do I integrate an SMS OTP API into my app in India (Node.js, Python, PHP, Java)?

Puede probar todas las API de verificación OTP y SMS de VerifyNow usando OTP Verification SDKs. Example (pseudo):
Node.js (fetch):
await fetch('https://api.provider/send', {  
method:'POST',  
headers:{'Authorization':'Bearer KEY','Content-Type':'application/json'},  
body: JSON.stringify({to:'+91XXXXXXXXXX', template:'OTP {{code}}',
variables:{code:123456}}) });
Use HTTPS, HMAC/signing, retries, and webhooks for delivery receipts (DLR).

How do I prevent OTP resend abuse or brute-force attempts in my authentication flow?

Por lo general, esto significa que hay un problema con el paquete de solicitud o con la configuración del entorno. Entre los motivos más comunes se incluyen:

  • Valores incorrectos del cuerpo o del marcador de posición de la API
  • Estructura CURL incorrecta o encabezados faltantes
  • Utilizar el punto final de ensayo en lugar de la producción
  • Lock account or require secondary verification after N failed attempts. Log attempts and notify security teams.

5. ¿Por qué aparece el código de error 401 (no autorizado)?

Common causes: DLT/template rejection, carrier filtering (DND), poor routing, incorrect sender ID, number formatting issues, or temporary operator outages. Fixes: ensure DLT & template approvals, use correct E.164 phone format (+91), retry with alternate routes, enable SMS fallback, monitor DLRs, and use a provider with direct carrier relationships.

How do I test OTP APIs in sandbox mode without sending real SMS?

Use the provider’s sandbox or test keys to emulate sends/receipts. Sandbox features usually return simulated DLRs and verification responses. Locally, mock API responses for unit tests and use staging credentials for end-to-end QA. Always validate webhooks in staging (use tools like ngrok) and log all events to replay in tests.

How do I implement rate limiting and retry logic for OTP delivery?

Puedes generar tu

8. ¿Dónde debo usar el authToken en las API de VerifyNow?

El generado India requires numeric Sender IDs via DLT-approved routes for most transactional flows; alphanumeric is generally not allowed for OTPs. OTPs must follow telecom/DLT rules. Use a compliant provider that manages DLT registration and numeric Sender ID setup for you.

What is the recommended OTP expiry time and retry cycle for Indian users?

Al generar un AuthToken, actualiza los siguientes campos:3–5 minutes is standard for transactional OTPs (2FA). Retry cycle: allow 1–2 immediate resends with anti-abuse limits (e.g., max 3 sends per 10–15 minutes). Short expiries reduce fraud; sensible resend limits reduce support load and operator filtering.

What is the difference between Transactional vs Service Implicit OTP routes?

Transactional routes are for critical, expected messages (OTP, order updates) that follow stricter compliance and usually have higher delivery priority. Service Implicit (or other service routes) can vary by operator and often apply different template/consent rules. Check your provider’s routing docs — choose transactional routes for OTPs to maximise deliverability and compliance.

How do I migrate from another SMS provider to a new OTP API with zero downtime?

Plan a phased cutover:

  • Configure new provider and provision DLT/templates in parallel.
  • Mirror traffic (send test batches) and verify delivery metrics.
  • Implement dual-sending for a small percentage of live traffic (A/B), monitor results.
  • Gradually shift traffic while keeping old provider as fallback.
  • Update DNS/webhook endpoints, revoke old keys once stable. Monitor logs and delivery rates closely.

¿Estás listo para empezar?

Proteja sus cuentas de usuario y genere confianza con sus clientes mediante la verificación por SMS. Prueba Verify Now sin ninguna tarjeta de crédito.