SMS OTP

Envía un código por SMS. Verifícalo por destinatario.

Configúralo en:
Cursor

La verificación por SMS envía un código de un solo uso a un número de teléfono y confirma que la persona que lo introduce es quien controla esa línea. Bird genera el código, lo envía, aplica límites por destinatario y lo verifica por destinatario, así que no hay ningún id que almacenar ni ningún endpoint de reenvío que conectar.

verify.ts
200 · pending
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY!,
});

// Send the code, then check it by recipient.
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data, error } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();
if (error) throw error;

SMS OTP es una llamada para enviar y otra para verificar.

SMS es un canal de la familia telefónica en la API Bird Verify: publique una verificación con un número de teléfono y enviamos el código a través de un remitente compartido gestionado por Bird, Bird Verify por defecto o Authifly si lo prefiere; verifíquelo con ese mismo número. Volver a publicar la creación es el reenvío (create-or-retry), y cada código en la sesión sigue siendo válido hasta que se verifica, expira o se agotan los intentos.

Lo que obtienes en una verificación por SMS.

Incluido en cada envío.

  1. 01

    Dirigido por número de teléfono.

    Pasa un único número de teléfono E.164. Lo normalizamos y lo enviamos por SMS con el remitente asignado a su país.

  2. 02

    Códigos generados en el servidor y hasheados.

    Un código de 6 dígitos por defecto (configurable de 4 a 10), generado con una fuente aleatoria criptográfica y almacenado solo como HMAC. Nunca ves el texto plano.

  3. 03

    El reenvío es la misma llamada.

    Vuelva a enviar la solicitud de creación para reenviar una vez que pase el período de espera de 60 segundos: misma sesión, nuevo código, ambos siguen siendo válidos. Sin endpoint de reenvío separado.

  4. 04

    Límites por destinatario incluidos.

    Un límite de envío por destinatario controla el volumen de envío y el gasto descontrolado, con un 429 y Retry-After.

  5. 05

    Alcance que se amplía por país.

    SMS se envía hoy a través de un remitente compartido gestionado por Bird, Bird Verify o Authifly, mostrando un ID de remitente con marca donde el país lo permite y un código corto o número local donde se requiere, con remitentes dedicados y registrados que amplían el alcance a medida que se incorporan.

Todo el flujo, dos llamadas.

Create-or-retry envía el código al número de teléfono; check lo confirma por ese número. No hay ningún id que vincular entre ambos: el destinatario es la clave.

sms-otp.ts
200
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data, error } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();
if (error) throw error;

// data.success is true or false; data.reason elaborates ("incorrect_code", "expired", "attempts_exhausted")

La API de verificación sin nada que almacenar.

SMS es un canal de Bird Verify: email y WhatsApp se incluyen con él, y voice se está implementando, todo en los mismos dos endpoints.

Empieza con un canal.
Añade los demás cuando estés listo.

Una clave API de prueba es tuya de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

¿Usas Claude Code, Cursor o Codex? Copia un prompt de configuración y tu agente instalará el Bird CLI y las habilidades por ti. Elige el tuyo:

Cursor