Bird Verify
L<highlight>API de vérification</highlight> sans rien à stocker.
Send a one-time code over email, SMS, or WhatsApp, then check it by recipient, with no verification id to keep between the two calls. The channel order, sender, and code rules already resolve per country automatically. Same auth and idempotency as every other Bird channel, because the same team built them all. Voice is rolling out next.
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;
Deux appels entre npm install et un utilisateur vérifié
Envoyez un code, puis vérifiez-le, dans le langage que vous utilisez déjà.
Create-or-retry envoie le code ; check le confirme par destinataire. Deux appels, et aucun identifiant de vérification à transmettre entre eux.
const verification = await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);Dix choses que vous ne construisez pas
quand la vérification est l'API.
Des primitives concrètes, nommées et configurables. Pas de discours vague.
- 01
Créer ou réessayer en un seul appel.
Renvoyez le même destinataire et nous reprenons la session active et renvoyons le code une fois le délai de récupération passé. Pas d'endpoint de renvoi séparé, pas de vérifications en double.
- 02
Vérification par destinataire. Rien à stocker.
Soumettez le destinataire et le code ; nous résolvons la session à partir de la paire configuration-destinataire. Aucun identifiant de vérification à persister entre l'envoi et la vérification.
- 03
E-mail, SMS et WhatsApp au lancement.
Le destinataire que vous transmettez détermine le canal : une adresse e-mail déclenche une vérification par e-mail, un numéro de téléphone par SMS ou WhatsApp. Changer de canal se résume à modifier un champ, pas à réaliser une nouvelle intégration. La voix arrive ensuite, et le basculement automatique entre canaux est en cours de déploiement.
- 04
Per-country channel order, already resolved.
Channel order, sender, and which channels are on differ by country. Bird's per-country base decides this, so a create call already resolves to the right plan everywhere.
- 05
Des codes que vous ne voyez jamais.
Généré à partir d'une source aléatoire cryptographique, stocké uniquement sous forme de HMAC, comparé en temps constant. Le code en clair ne touche jamais votre stack ni nos logs.
- 06
Code, TTL et tentatives configurables.
Six-digit default, 4–10 configurable per request; a 10-minute window; 5 attempts; a 60-second resend cooldown.
- 07
Chaque code reste valide jusqu'à la fin de la session.
Un message retardé et un code fraîchement renvoyé fonctionnent tous les deux, car nous n'invalidons pas le code précédent lorsqu'un nouveau est émis.
- 08
Un code erroné renvoie un 200, pas une exception.
Vérifiez les réponses avec un résultat booléen — ce code est-il validé, oui ou non — et une raison qui précise en cas d'échec : invalide, expiré, déjà vérifié ou nombre de tentatives épuisé. Vous branchez sur un champ, jamais sur une erreur levée.
- 09
Limites de débit intégrées.
Plafonds d'envoi par destinataire et limite de tentatives par vérification — chacun renvoyant un 429 avec Retry-After — pour que la force brute s'épuise avant vous.
- 10
Même contrat que le reste de Bird.
Authentification Bearer, clé d'idempotence, identifiants typés vrf_, une seule enveloppe d'erreur. Le handler que vous avez écrit pour l'e-mail fonctionne déjà pour la vérification.
Découvrez la plateforme Verify
Chaque fonctionnalité en détail. Une seule API, un seul jeu de clés.
SMS OTP.
Codes à usage unique par SMS, avec une portée mondiale et des limites de débit intégrées.
E-mail OTP.
Vérifiez par e-mail sur le réseau qui achemine déjà vos e-mails transactionnels.
WhatsApp OTP.
Envoyez des codes sur WhatsApp en tant que canal configurable dans le même plan.
OTP vocal.
En déploiement : un code vocal pour les lignes fixes, l'accessibilité et les utilisateurs difficiles à joindre.
Orchestration des canaux.
Per-country channel order, senders, and enable/disable, resolved automatically for every send.
Anti-abus et sécurité du code.
Codes hachés, plafonds par destinataire, verrouillage après tentatives et feuille de route anti-fraude.
Ne stockez rien entre l'envoi et la vérification.
La plupart des API de vérification vous renvoient un identifiant à persister, rechercher et soumettre avec le code. Bird résout la session à partir du destinataire : aucun état par vérification de votre côté.
La plupart des API de vérification
La création renvoie un identifiant que vous stockez, puis vous recherchez la vérification pour soumettre le code.
const { id } = await api.verifications.create({
to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });
Bird Verify
Vérifiez par destinataire. Rien à transmettre entre les deux appels.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
// no id to store; check by the same recipient
await bird.verify.verifications.check({
to: { phone_number: "+15551234567" }, code,
}).safe();
Routing already knows the country.
Channel order, senders, and which channels are on differ by country: WhatsApp-first in one market, SMS-only in another. Bird's per-country base decides this, so a create call already resolves to the right plan. See channel orchestration.
// Brazil already resolves WhatsApp, then SMS.
const { data, error } = await bird.verify.verifications.create({
to: { phone_number: "+5511998765432" },
}).safe();
if (error) throw error;
La vérification est aussi une décision produit : la même API alimente l<twofa>authentification à deux facteurs</twofa> et la <passwordless>connexion sans mot de passe</passwordless>. Vous validez dabord un numéro ? Associez-le à Lookup. L'authentification réseau silencieuse et les applications d'authentification TOTP sont sur la feuille de route.
Pourquoi nous développons Verify
Parce que le code qui permet à un utilisateur de se connecter ne devrait pas avoir besoin de sa propre table en base de données.
L'OTP est le canal où un code qui n'arrive pas est une inscription qui n'aboutit pas. Bird gère déjà l'e-mail et le SMS à grande échelle : Verify, c'est cette même capacité de livraison plus la génération du code, la session, le plan de canaux par pays et les limites de débit — derrière deux endpoints qui ne stockent rien de votre côté et répondent avec la même structure que tous les autres canaux Bird.
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;
Si vous avez intégré SMS, vous avez intégré Verify.
Même modèle d'authentification, même contrat d'idempotence, même enveloppe d'erreur. La différence : Verify génère le code, choisit le canal et applique les limites de débit, pour que vous n'ayez pas à le faire.
Verify
Un appel envoie le code ; un autre le vérifie par destinataire. Nous gérons le code, la session et les limites.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});SMS
L'envoi brut, pour quand vous voulez gérer vous-même la génération du code et la politique de réessai.
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your code is ${code}.`,
category: "authentication",
});Choisissez l'expéditeur que vos utilisateurs voient
Les codes sont envoyés sous Bird Verify par défaut, sans qu'aucune inscription ni configuration de modèle ne fasse obstacle. Passez un canal sur Authifly et vos utilisateurs voient une identité de vérification neutre au lieu d'un fournisseur de plateforme : l'e-mail OTP provient de otp@verify.authifly.com, et le SMS affiche l'expéditeur Authifly partout où le pays de destination autorise un expéditeur personnalisé. Bird exploite les deux identités, ce choix ne vous coûte donc rien à l'usage, et vous le faites par canal et par pays. Pour l'e-mail, vous pouvez aller plus loin et envoyer depuis un domaine que vous avez vous-même vérifié. Si un destinataire reçoit un code inattendu, authifly.com le rassure en indiquant qu'Authifly envoie des codes à usage unique légitimes pour le compte d'une entreprise. Authifly est exploité par Bird B.V.
Visiter authifly.comLa vérification sur la même plateforme que le reste de votre messagerie.
Commencez à développer dès aujourd'hui, ou contactez-nous pour discuter des canaux, des volumes et des tarifs dont vous avez besoin.