Bird vs Twilio
Bird vs Twilio pour Verify
Bird Verify repose sur le routage des canaux et la vérification du code à partir du destinataire : envoyez un code, avancez dans le plan de livraison et vérifiez la réponse avec la même adresse e-mail ou le même numéro de téléphone.
Utilisé chaque jour par des équipes qui
créent des logiciels de classe mondiale.
Quel flux de vérification convient à votre application ?
Quand Twilio Verify convient
La ressource de vérification de Twilio accepte l'appel vocal et l'authentification silencieuse par réseau en plus de SMS, WhatsApp et l'e-mail. Conservez un canal vocal ou SNA fiable avec un fournisseur qui le prend en charge ; le plan de canaux résolu de Bird prend en charge SMS, WhatsApp, l'e-mail et Telegram.
Twilio Services regroupe la configuration de vérification, y compris la longueur du code et le nom convivial. La requête de création accepte aussi un template, une locale et un code personnalisé. Inventoriez ces choix avant de passer aux paramètres d'espace de travail et aux messages intégrés de Bird.
Le SMS riskCheck de Twilio active ou contourne les protections anti-fraude actives par tentative, y compris Fraud Guard et Geo Permissions. Préservez les décisions de risque de l'application lors de la migration au lieu de traiter les limites de renvoi et de vérification de Bird comme un contrôle équivalent.
Pourquoi choisir Bird Verify ?
Bird résout la livraison à partir du destinataire et du pays. Une requête peut réduire ou réordonner le plan disponible avec options.channels, et un échec de livraison peut le faire avancer automatiquement. Le même destinataire identifie la vérification et la requête de canal suivant.
Le résultat de vérification de Bird expose success, reason et attempts_remaining. Utilisez success: true pour enregistrer l'état vérifié de l'application ; un HTTP 200 peut aussi contenir un résultat de code incorrect.
Le serveur MCP hébergé de Bird et le CLI utilisent le même flux Verify : create, check et next-channel. Un agent peut demander un autre canal de livraison en utilisant le destinataire déjà détenu par l'application.
La matrice
Comment les API Verify se comparent-elles ?
Comparez les contrôles de requête et de cycle de vie utilisés par votre application. La disponibilité des canaux dépend du pays du destinataire et des capacités activées sur le compte.
| Fonctionnalité | Bird | Twilio Verify | Qui gagne ? |
|---|---|---|---|
| Requête de création | JSON avec une clé bearer vers /v1/verify/verifications ; to contient une adresse e-mail, un numéro de téléphone ou les deux. | Création form-encoded sous un Service SID, avec un destinataire et un canal. | |
| Tentatives sécurisées | Idempotency-Key rejoue une requête. Les renvois au destinataire réutilisent la vérification active, respectent un délai de refroidissement et émettent un nouveau code après celui-ci. | Twilio conserve le même token pendant sa période de validité jusqu'à la réussite de la vérification, y compris lorsqu'une autre requête arrive. | |
| Ce qu'un échec de vérification vous indique | success: false, une raison telle que incorrect_code et attempts_remaining. Stockez success: true ; une vérification finalisée renvoie 404 lors d'une nouvelle vérification. | Verification Check renvoie status, notamment pending, approved et max_attempts_reached. Les vérifications approved, expired et à tentatives maximales sont supprimées ; une vérification ultérieure renvoie 404. | |
| Canaux par lesquels un code peut être envoyé | SMS, WhatsApp, e-mail et Telegram, limités au plan de pays résolu du destinataire. | SMS, e-mail, WhatsApp et appel; la même ressource propose aussi sna et auto pour les flux d'authentification silencieuse. | |
| Configuration par requête | options.code_length, options.channels et options.language ; l'expéditeur et les paramètres par défaut proviennent de la configuration de l'espace de travail. | Sélection du Service plus options de requête pour un template, une locale, un code personnalisé et un nom convivial. | |
| Serveur MCP hébergé | Le MCP hébergé et authentifié exécute create, check et next-channel ; le CLI bird expose les mêmes opérations. | Le MCP de documentation hébergé par Twilio recherche et récupère la documentation sans exécuter d'appels API. Le proof of concept MCP de Twilio Labs charge des services API sélectionnés ; le CLI Twilio effectue des requêtes API. | |
| Événements de livraison | Événements de session et de tentative sur les webhooks de l'espace de travail, signés avec Standard Webhooks. La livraison et l'utilisation réussie du code sont des événements distincts. | Verify Events est en phase Pilot avec inscription en libre-service. Il diffuse le statut de vérification et de message pour SMS, WhatsApp, RCS et Voice vers un webhook ou Amazon Kinesis. | |
| Repli de canal | Un échec de livraison fait avancer le plan résolu. L'opération next-channel permet à l'application de le faire avancer et envoie un nouveau code ; les codes précédents restent valides. | Automatic SMS Fallback tente SNA puis bascule sur SMS. Twilio le qualifie de Pilot et exige de contacter les ventes pour y accéder. |
Qui fait avancer le fallback, et quel code reste valide ?
Bird fait avancer le plan résolu du destinataire lorsqu'une livraison échoue. Votre application peut aussi appeler next-channel quand l'utilisateur signale qu'aucun code n'est arrivé. Chaque appel avance d'un canal au maximum et envoie un nouveau code de vérification ; tous les codes de vérification précédents pour cette vérification restent valides.
Bird : create avec to → plan résolu → échec de livraison ou next-channel → nouveau code de vérification → check avec le même to. Un plan épuisé renvoie NoNextChannel. Préservez un succès complété avant de proposer un nouvel envoi.
Twilio : create avec Service SID et channel: auto → tentative SNA → fallback SMS si nécessaire → Verification Check. Le guide automatic-channel décrit ce flux spécifique SNA-vers-SMS et qualifie l'accès de Pilot. Le token de Twilio reste le même pendant toute sa période de validité jusqu'à la réussite.
Que doit stocker votre application après une vérification ?
Stockez le résultat d'authentification réussi. Bird identifie une vérification par l'ensemble exact to : si la création a utilisé à la fois un téléphone et un e-mail, répétez les deux. Une réponse avec success: false et reason: incorrect_code est une vérification échouée même avec HTTP 200. Un 404 E13000 ultérieur ne peut pas annuler un success: true précédent.
Twilio accepte aussi un destinataire pour la vérification, ou un Verification SID, sous le Service SID. Utilisez status: approved comme résultat de réussite. Son booléen valid est une propriété héritée ; la référence oriente les intégrations vers status.
Quels contrôles anti-abus inclure dans la migration ?
Les garde-fous anti-abus de Bird incluent un délai de refroidissement pour le renvoi, un plafond d'envoi par destinataire et des limites de débit de vérification. Demander le canal suivant contourne le délai de refroidissement et le plafond d'envoi horaire, mais le plan de canaux fini limite la progression. Conservez vos propres contrôles de risque au niveau du compte et de la session autour de ces opérations.
Le SMS riskCheck de Twilio peut activer ou contourner Fraud Guard et Geo Permissions pour une tentative. Mappez ces paramètres et leurs décisions opérationnelles explicitement ; une limite de réessai de livraison n'établit pas une détection de fraude équivalente.
Comment la vérification et la livraison sont-elles facturées ?
There's no plan, seat, or platform fee for Bird Verify. Each delivery is charged at that channel's rate for the destination. A resend, or a fallback that moves delivery to a second channel, is a new send and a new charge.
A verdict compares only published delivery rates with the same channel, destination, currency, billing unit and sender type. Per-success verification fees and per-send charges are Not comparable: your own sends and successful checks determine usage.
Pricing verdict: Not comparable
| Élément publié | Twilio Verify | Politique de facturation de Bird |
|---|---|---|
| Base pricing Per successful verification | $0.05 USD Per successful verification plus standard channel fees. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. |
| SMS (US) Per SMS Destination: US | $0.0083 USD Per SMS (US). The successful-verification fee is charged separately. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. |
| WhatsApp (US) Per authentication template message Destination: US | $0.0034 USD Per authentication template message (US). The successful-verification fee is charged separately. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. |
| Voice Per successful verification | $0.05 USD Per successful verification. Voice channel pricing applies separately. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. This method is outside Bird’s documented Verify channel plan. |
| Email Per successful verification | $0.05 USD Per successful verification. Email channel pricing applies separately. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. |
| Silent Network Auth Per successful verification | $0.05 USD Per successful verification plus per-country channel fee. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. This method is outside Bird’s documented Verify channel plan. |
| Push Per approved or denied request | Push channel fee is included in the verification fee. It’s charged when a request is approved or denied. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. This method is outside Bird’s documented Verify channel plan. |
| TOTP Per approved request | TOTP channel fee is included in the verification fee. It’s charged when a request is approved. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. This method is outside Bird’s documented Verify channel plan. |
| Volume pricing Custom volume | Contact sales Contact sales for volume-based discounts. as published | There's no plan, seat, or platform fee for Bird Verify. Les envois par canal sont facturés séparément. Consultez les tarifs en vigueur par canal ci-dessous. |
Bird a publié les tarifs du canal SMS
Bird's SMS catalogue rates are shown by sender type, per message segment. Carrier fees and sender costs may apply separately. These channel rates are not a total verification quote. SMS pricing; carrier fees.
| Destination | Type d'expéditeur | Par segment SMS |
|---|---|---|
| US | long_code | EUR 0.003 |
| US | long_code | USD 0.0035 |
| US | toll_free | EUR 0.003 |
| US | toll_free | USD 0.0035 |
| US | short_code | EUR 0.006 |
| US | short_code | USD 0.007 |
Bird email pricing and Bird WhatsApp pricing publish the other delivery channels.
La même vérification
Comment démarrer une vérification ?
Le SDK Node de Twilio SDK crée une vérification sous un Service. L'endpoint de création de Bird prend directement le destinataire. Réutilisez la clé d'idempotence de l'application pour les réessais de la même requête Bird.
Twilio Verify
import twilio from "twilio";
const client = twilio(process.env.TWILIO_ACCOUNT_SID!, process.env.TWILIO_AUTH_TOKEN!);
try {
const verification = await client.verify.v2
.services(process.env.TWILIO_VERIFY_SERVICE_SID!)
.verifications.create({
to: "+15551234567",
channel: "sms",
});
console.log(verification.sid, verification.status);
} catch (err) {
console.error(err);
}
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.verify.verifications
.create(
{
to: { phone_number: "+15551234567" },
options: { code_length: 6, channels: ["sms"] },
},
)
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
Coût de migration
Que faut-il modifier avant la bascule ?
Inventoriez les canaux, modèles, règles de risque et chemins de repli de chaque Service. Identifiez les destinataires pris en charge et la configuration à l'aide du guide de migration Twilio. Conservez ou repensez tout chemin d'appel, SNA ou message personnalisé dont vous dépendez et que le contrat Bird ne propose pas.
Basculez d'abord les nouvelles créations, puis dirigez chaque vérification vers le fournisseur qui a émis son code jusqu'à l'expiration des vérifications en cours. Conservez le résultat applicatif réussi et testez le renvoi, le changement de canal, l'expiration du code et le comportement en cas de tentatives épuisées. Le guide des expéditeurs de Bird indique les identités et les messages que les utilisateurs reçoivent.
Que vérifier avant de choisir ?
Bird est-il une alternative à Twilio Verify pour SMS et l'e-mail ?
Une deuxième requête Twilio génère-t-elle un code différent ?
Puis-je migrer tous les modèles et paramètres régionaux Twilio ?
Un 404 signifie-t-il que l'utilisateur a échoué la vérification ?
Mettez-le en pratique.
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.
Prochaines étapes
Le guide de migration est celui par lequel commencer : il mappe l'API champ par champ.
Intégrez la vérification à votre produit.
Échangez avec notre équipe sur vos canaux, votre flux de vérification et le trafic prévu.