API de verificación de identidad

Verifica a tus usuarios por WhatsApp, SMS y correo con una sola API.

Envía y valida códigos de un solo uso en cualquier canal desde un mismo endpoint. Una integración, entrega confiable y cambio de canal automático cuando un mensaje no llega.

Seguridad y confianza
Una sola integración
API simple y escalable
Entregado en 1.2 s
POST /otp/send
# Envía el código de verificación curl https://api.verifymx.app/otp/send \ -H "apikey: sk_live_•••" \ -d '{ "phone_number": "5512345678", "country_code": "52", "company": "Acme", "whatsapp": true }'
Por WhatsApp
VerifyMX
Mensaje de negocio
Tu código de verificación es: 483920 Válido por 5 minutos. No lo compartas con nadie. 10:24
Tú eliges el canal principal

SMS o WhatsApp al enviar, con voz de rescate si no llega

Cada envío sale por SMS por defecto, o por WhatsApp si mandas whatsapp: true. Si el código no llega, el usuario lo rescata por voz. Uno de cada cuatro OTP llega tarde: el rescate es lo que recupera esa conversión.

SMS Por defecto

Entrega prioritaria en menos de 5 segundos con enrutamiento directo a operadoras. Llega a cualquier teléfono, sin app de por medio.

WhatsApp whatsapp: true

Envía el código por WhatsApp con tu nombre de negocio y mayor tasa de apertura. Si la línea no está disponible, cae solo a SMS de forma automática.

Voz Rescate

Una llamada que dicta el código en voz. El último recurso para quien no recibe mensajes de texto o los tiene bloqueados.

Al enviar: SMS o WhatsApp · Si no llega: rescate por voz cada ~45 s.
Integración en minutos

Enviar, rescatar y validar

Pide el código con /otp/send, rescata por voz con /otp/resend si no llega, y confírmalo con /otp/verify. Nosotros manejamos el estado, la expiración y el hasheo del código.

# SMS por defecto
curl https://api.verifymx.app/otp/send \
  -H "apikey: sk_live_tu_llave" \
  -H "Content-Type: application/json" \
  -d '{ "phone_number": "5512345678", "country_code": "52", "company": "Acme", "code_length": 6 }'

# Por WhatsApp: agrega "whatsapp": true (cae a SMS si la línea no está activa)
# → { "success": true, "code": "verification_01", "request_id": "550e..." }
import axios from "axios";

const api = axios.create({
  baseURL: "https://api.verifymx.app",
  headers: { apikey: "sk_live_tu_llave" }
});

// SMS por defecto; whatsapp: true para WhatsApp
await api.post("/otp/send", {
  phone_number: "5512345678",
  country_code: "52",
  company: "Acme",
  code_length: 6,
  whatsapp: true
});
import requests

api = "https://api.verifymx.app"
headers = { "apikey": "sk_live_tu_llave" }

# SMS por defecto; whatsapp=True para WhatsApp
requests.post(f"{api}/otp/send", headers=headers, json={
    "phone_number": "5512345678",
    "country_code": "52",
    "company": "Acme",
    "code_length": 6,
})
# Espera ~45 s antes de reintentar
curl https://api.verifymx.app/otp/resend \
  -H "apikey: sk_live_tu_llave" \
  -d '{ "phone_number": "5512345678", "country_code": "52", "voice": true }'

# Usa "whatsapp": true para rescatar por WhatsApp en vez de voz
// Espera ~45 s antes de reintentar
await api.post("/otp/resend", {
  phone_number: "5512345678",
  country_code: "52",
  voice: true   // o whatsapp: true
});
# Espera ~45 s antes de reintentar
requests.post(f"{api}/otp/resend", headers=headers, json={
    "phone_number": "5512345678",
    "country_code": "52",
    "voice": True,   # o "whatsapp": True
})
curl https://api.verifymx.app/otp/verify \
  -H "apikey: sk_live_tu_llave" \
  -d '{ "phone_number": "5512345678", "verification_code": "849201" }'

# → { "success": true, "code": "validation_01" }
const { data } = await api.post("/otp/verify", {
  phone_number: "5512345678",
  verification_code: "849201"
});

if (data.code === "validation_01") {
  // usuario verificado
}
r = requests.post(f"{api}/otp/verify", headers=headers, json={
    "phone_number": "5512345678",
    "verification_code": "849201",
})

if r.json()["code"] == "validation_01":
    pass  # usuario verificado
URL base de la API: https://api.verifymx.app ·  HTTPS obligatorio ·  autenticación con header apikey
Por qué VerifyMX

Construido para que verificar sea lo fácil

Seguridad y confianza

Códigos de un solo uso, expiración configurable y límites de reintento integrados de fábrica.

Múltiples canales, una integración

WhatsApp, SMS y correo detrás del mismo endpoint. Cambia de canal sin tocar tu código.

API simple, escalable y robusta

Dos llamadas para todo el flujo. Documentación clara y SDKs para arrancar el mismo día.

Entregas confiables

Enrutamiento directo y respaldo entre canales para que el código llegue cuando importa.

Empieza a verificar hoy

Solicita tus credenciales y envía tu primer código de prueba en minutos. Sin contratos de por medio para empezar.