Orchestration des canaux

En aperçu

Partez de nos valeurs par défaut. Ne modifiez que ce dont vous avez besoin.

Mise en place en :
Cursor

La disponibilité des canaux, les règles d'expéditeur et les réglementations diffèrent selon les pays, et les maîtriser représente des années de travail. Bird fournit cela sous forme de configuration de base par pays : quels canaux fonctionnent où, quels expéditeurs sont autorisés, et des paramètres de code par défaut cohérents. Vos réglages se superposent. Vous modifiez une chose pour un pays ; tout ce que vous ne touchez pas se propage à la couche inférieure. C'est du routage par pays en tant que ressource API de premier ordre, le contrôle que la plupart des API de vérification ne vous offrent pas.

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 } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();

Vous héritez des valeurs par défaut de Bird, puis vous construisez dessus.

Chaque vérification sur l<hub>API Bird Verify</hub> résout ses paramètres via une cascade. À la base se trouve une configuration par pays que Bird maintient grâce à des années dexploitation de l'e-mail et du SMS — ainsi, avant même toute configuration de votre part, une vérification est déjà routée de manière pertinente dans chaque pays. Votre configuration et vos surcharges par pays se superposent, et une option par requête peut ajuster un appel unique. Vous ne partez jamais d'une page blanche, et vous ne gérez que les décisions que vous souhaitez réellement prendre.

La cascade de valeurs.

Le niveau le plus élevé qui définit une valeur l'emporte ; tout ce que vous ne définissez pas se propage au niveau inférieur.

  1. 01

    Options par requête.

    Les champs de l'appel de création (longueur du code, préférence de canal, locale) l'emportent pour cette seule vérification. La surcharge la plus légère et la plus locale.

  2. 02

    Vos surcharges par pays.

    Modifiez l'ordre des canaux ou un expéditeur pour un pays. Une surcharge fusionne : elle modifie les champs que vous définissez, et le reste de ce pays hérite toujours de la couche inférieure.

  3. 03

    Vos valeurs par défaut de configuration.

    Votre plan et vos règles de code à l'échelle de l'application — l'ordre des canaux, la longueur du code, le TTL et les tentatives que vous souhaitez partout où vous n'avez pas défini de surcharge par pays.

  4. 04

    La base par pays de Bird.

    La couche de base : les propres valeurs par défaut par pays de Bird, issues de l'exploitation de l'e-mail et du SMS à grande échelle. Tout ce que vous ne définissez pas se propage ici, de sorte qu'une vérification aboutit toujours à un plan cohérent.

Surchargez un pays, héritez du reste.

Définissez votre plan une fois, puis ne touchez que les pays nécessitant un traitement différent. Ici, le Brésil commence par WhatsApp, puis SMS ; tous les autres pays continuent de se propager vers vos valeurs par défaut et la base de Bird.

orchestration.ts
200
// Your app-wide default plan.
await bird.verify.verifications.configurations.update("vfc_login", {
  channels: [
    { channel: "email", state: "enabled" },
    { channel: "sms", state: "enabled" },
  ],
}).safe();

// Override one country; the rest inherits.
await bird.verify.verifications.configurations.countries.upsert("vfc_login", "BR", {
  channels: [
    { channel: "whatsapp", state: "enabled" },
    { channel: "sms", state: "enabled" },
  ],
}).safe();

Ce qu'une vérification résout.

Un numéro brésilien avec cette configuration se résout via la cascade. La surcharge BR ordonne WhatsApp puis SMS, les deux sont disponibles, et la vérification renvoie le plan ordonné qu'elle utilisera, avec son identifiant typé vrf_.

resolved.ts
200
const { data } = await bird.verify.verifications.create({
  configuration_id: "vfc_login",
  to: { phone_number: "+5511998765432" }, // Brazil
}).safe();

// Resolved through the cascade + availability/kill-switch ceilings:
// {
//   id:           "vrf_01k2m9q8e7fh3v0b7m4d2a9xzt",
//   status:       "pending",
//   channels:     [{ channel: "whatsapp" }, { channel: "sms" }],
//   last_channel: "whatsapp"
// }

Deux plafonds se situent au-dessus de la cascade.

La cascade détermine les valeurs par défaut. Deux filtres déterminent ce qui est autorisé — ils plafonnent le plan résolu plutôt que de fournir des valeurs qui se propagent :

Disponibilité par pays. Vous ne pouvez activer que les canaux que Bird propose réellement dans un pays. En activer un que nous ne prenons pas en charge est une opération sans effet, pas un échec silencieux — la disponibilité est une intersection, jamais une surcharge.

Coupe-circuit global. Lorsqu'un fournisseur subit un incident, Bird peut retirer un canal partout à la fois. Votre configuration n'est pas modifiée ; le plan résolu bascule simplement vers le canal suivant, puis se rétablit lorsque le coupe-circuit est levé.

Du routage que vous configurez, pas un ticket que vous soumettez.

Résolu par vérification, renvoyé dans la réponse.

  1. 01

    Routes par pays, selon le numéro.

    Le pays est dérivé du numéro E.164 du destinataire — vous ne le transmettez pas. Définissez une route pour un pays et elle surcharge l'ordre et les expéditeurs pour celui-ci.

  2. 02

    Activez et désactivez des canaux.

    Chaque canal possède un état activé/désactivé, vous pouvez donc en désactiver un pour un pays sans perdre sa place dans le plan.

  3. 03

    Le plan résolu figure dans la réponse.

    Chaque vérification indique les canaux ordonnés auxquels elle a abouti, de sorte que la décision de la cascade n'est jamais un mystère.

  4. 04

    Le basculement automatique est en cours de déploiement.

    La progression pilotée par la livraison dans le plan (essayer le canal suivant lorsqu'un canal n'aboutit pas) est en cours de déploiement à mesure que le statut de livraison arrive. Le plan est d'ores et déjà résolu et renvoyé aujourd'hui.

FAQ sur l'orchestration des canaux

Qu'est-ce que la cascade de configuration ?+
C'est la façon dont les paramètres d'une vérification sont résolus : d'abord les options par requête, puis vos surcharges par pays, puis vos valeurs par défaut de configuration, puis la base par pays de Bird. Le niveau le plus élevé qui définit une valeur l'emporte, et tout ce que vous ne définissez pas est hérité du niveau inférieur — vous ne configurez donc que ce que vous souhaitez modifier.
Que m'apporte la base par pays de Bird ?+
Un point de départ pertinent dans chaque pays, sans aucune configuration : quels canaux valent la peine d'être essayés, quels expéditeurs sont autorisés, et des paramètres de code raisonnables, maintenus par Bird grâce à des années d'expérience en email et SMS. Vous construisez par-dessus plutôt que de tout redécouvrir.
Une surcharge par pays remplace-t-elle l'intégralité du plan ?+
Non — elle fusionne. Vous définissez les champs qui diffèrent pour ce pays et le reste hérite toujours de votre configuration et de la base de Bird. Une surcharge est donc une modification ciblée et légère, pas une re-spécification complète.
Puis-je activer un canal que Bird ne propose pas dans un pays ?+
Non. La disponibilité par pays est un plafond, pas une valeur par défaut : vous ne pouvez activer que ce que Bird prend en charge dans ce pays. Activer un canal indisponible est une opération sans effet plutôt qu'un échec silencieux, de sorte qu'un plan ne peut jamais promettre un canal incapable d'envoyer.
Comment le pays est-il déterminé ?+
À partir du numéro de téléphone E.164 du destinataire, au moment de la résolution. Vous ne transmettez pas de pays ; Bird le déduit et applique la route correspondante. L'email est indépendant du pays.
De qui mes utilisateurs voient-ils le code ?+
Authifly, la marque de vérification de Bird. C'est l'identité sur chaque code que vos utilisateurs reçoivent : l'email provient de otp@verify.authifly.com ou de votre propre domaine vérifié, et les SMS et WhatsApp portent la marque Authifly. authifly.com est une page publique qui rassure les destinataires sur le fait qu'Authifly envoie des codes à usage unique légitimes pour le compte d'une entreprise. Bird est la plateforme sur laquelle vous construisez ; Authifly est ce que le destinataire voit.

Le contrôle par pays qu'aucune autre API de vérification ne vous offre.

L'orchestration est une fonctionnalité de Bird Verify : les canaux, le code et les limites sont inclus, sur les deux mêmes endpoints.

Commencez avec un seul canal.
Ajoutez les autres quand vous êtes prêt.

Une clé API de test est disponible immédiatement. L'accès production se débloque dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Vous utilisez Claude Code, Cursor ou Codex ? Copiez un prompt de configuration et votre agent installe la CLI Bird et les compétences pour vous. Choisissez le vôtre :

Cursor