Sign inGet Started

Verifica a tu primer cliente

Bird Verify confirma que alguien controla una dirección de correo electrónico o un número de teléfono. Tú pides a Bird que envíe un código de verificación de un solo uso. La persona lo introduce en tu aplicación, y tú preguntas a Bird si coincidió. Bird genera y entrega el código, y aplica la expiración y los límites de intentos. Tu aplicación nunca recibe ni almacena el código generado.
Este quickstart verifica tu propia dirección de correo electrónico, lo que no requiere configuración. Bird envía los códigos por correo electrónico a través de su remitente compartido Bird Verify, así que no necesitas dominio ni saldo. Después de añadir fondos a SMS, verificar un número de teléfono usa las mismas dos llamadas.

1. Crea una clave API

En el dashboard, ve a Developers > Claves API y crea una clave. Las claves están asociadas a una región y tienen el formato bk_us1_... o bk_eu1_...; la región en el prefijo te indica qué host API llamar: https://us1.platform.bird.com o https://eu1.platform.bird.com.
La página de claves API en el dashboard de Bird, con las claves listadas con su prefijo enmascarado, alcances y última vez de uso
La clave completa se muestra una sola vez, en el momento de creación. Cópiala en un lugar seguro y luego expórtala para los ejemplos de envío:
Ejemplo de código
export BIRD_API_KEY="bk_us1_..."

2. Envía un código

Crea una verificación para la dirección que quieres confirmar. El único campo obligatorio es to. Usa tu propia dirección de correo electrónico para que puedas leer el código. Instala el Bird SDK para tu lenguaje siguiendo su quickstart de SDK.
En las pestañas de SDK, reemplaza la clave API de ejemplo y user@example.com antes de ejecutar el código. CLI usa tu inicio de sesión, y la pestaña cURL usa BIRD_API_KEY.
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const verification = await bird.verify.verifications.create({
  to: { email: "user@example.com" },
});

console.log(verification.id, verification.status);
Si tu clave empieza con bk_eu1_, llama a https://eu1.platform.bird.com en su lugar.
Bird acepta la solicitud y comienza a enviar el código:
Ejemplo de código
{
  "id": "vrf_01ky7q1fdze3695yvyz7z9nm3a",
  "status": "pending",
  "reason": null,
  "to": { "email": "user@example.com" },
  "channels": [{ "channel": "email" }],
  "last_channel": "email",
  "expires_at": "2026-07-23T14:55:58Z",
  "verified_at": null,
  "created_at": "2026-07-23T14:45:58Z",
  "updated_at": "2026-07-23T14:45:58Z"
}
No necesitas guardar un ID de verificación: la comprobación en el paso 3 se identifica por el mismo destinatario. El correo llega desde Bird Verify <otp@verify.bird.com> con el asunto "Your verification code" y un código de seis dígitos; el propio mensaje indica cuándo expira. La longitud del código, la duración, el límite de intentos y el tiempo de espera para reenvío son configuraciones del espacio de trabajo, y configuración de verificación lista los valores predeterminados y los rangos.

3. Comprueba el código

Toma el código de tu bandeja de entrada y envíalo, identificado por el mismo destinatario:
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const result = await bird.verify.verifications.check({
  to: { email: "user@example.com" },
  code: "123456",
});

console.log(result.success);
Un código correcto devuelve success: true, y la verificación incluida cambia a verified:
Ejemplo de código
{
  "success": true,
  "reason": null,
  "attempts_remaining": null,
  "verification": {
    "id": "vrf_01ky7q1fdze3695yvyz7z9nm3a",
    "status": "verified",
    "reason": null,
    "to": { "email": "user@example.com" },
    "channels": [{ "channel": "email" }],
    "last_channel": "email",
    "expires_at": "2026-07-23T14:55:58Z",
    "verified_at": "2026-07-23T14:46:47Z",
    "created_at": "2026-07-23T14:45:58Z",
    "updated_at": "2026-07-23T14:46:47Z"
  }
}
Antes de añadir este flujo a un registro, ten en cuenta estos resultados:
  • Una comprobación fallida devuelve HTTP 200. La respuesta contiene success: false, un reason (incorrect_code, expired o attempts_exhausted), y un contador attempts_remaining mientras queden intentos. Gestiona este resultado en tu aplicación. La verificación falla permanentemente cuando agota sus intentos de comprobación.
  • Una verificación se resuelve una sola vez. Después de alcanzar verified (o fallar o expirar), comprobarla de nuevo devuelve un 404. Trata la primera respuesta definitiva como la respuesta. Si el usuario necesita un nuevo código, llama al endpoint de creación otra vez con el mismo destinatario: la verificación en curso se reutiliza y se envía un código nuevo una vez que haya pasado el tiempo de espera para reenvío.
Cada verificación que creas aparece en la página Verifications con su estado, destinatario, canal y tiempos. El código generado no aparece.
La página de Verifications con verificaciones listadas con columnas de estado, ID de verificación, destinatario, canal, costo y fecha de creación

Verifica un número de teléfono en su lugar

Para verificar por SMS, pon un número de teléfono en to en formato E.164 en lugar de una dirección de correo electrónico:
const verification = await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);
La comprobación es idéntica: reemplaza email con el mismo phone_number. El envío telefónico consume el saldo SMS de tu espacio de trabajo, y el país de destino determina la ruta. Bird intenta WhatsApp primero en la mayoría de países y SMS primero en algunos. Configuración por país muestra y configura los canales disponibles y su orden para cada destino. Remitentes y marca muestra lo que llega en cada canal.

Contacta al usuario por ambos canales

No tienes que elegir un solo canal. Incluye tanto un email como un phone_number en to, y Bird genera un plan de entrega a partir de tu configuración por país, que muestra los canales disponibles y su orden para cada destino. Bird sigue ese plan hasta que un envío sea aceptado. Si la entrega falla por completo después, Bird envía un código nuevo por el siguiente canal. Comprueba el código con el mismo objeto to usado para crear la verificación. El usuario introduce el código que le haya llegado.

Próximos pasos