Bird Verify

In der Preview

Die Verifizierungs-API, bei der Sie nichts speichern müssen.

Einrichtung in:
Cursor

Senden Sie einen Einmalcode per E-Mail, SMS oder WhatsApp und prüfen Sie ihn anhand des Empfängers – ohne eine Verifizierungs-ID zwischen den beiden Aufrufen speichern zu müssen. Kanalreihenfolge, Absender und Code-Regeln werden pro Land konfiguriert, nicht neu gebaut. Dieselbe Authentifizierung und Idempotenz wie bei jedem anderen Bird-Kanal, denn dasselbe Team hat sie alle entwickelt. Voice wird als Nächstes ausgerollt.

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();

Zwei Aufrufe von der Installation bis zum verifizierten Nutzer

Senden Sie einen Code und prüfen Sie ihn – in der Sprache, die Sie bereits verwenden.

Create-or-Retry sendet den Code; Check bestätigt ihn anhand des Empfängers. Zwei Aufrufe, keine Verifizierungs-ID dazwischen.

1
2
3
4
5
6
7
8
9
10
11
12
import { BirdClient } from "@messagebird/sdk";

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

await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

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

Zehn Dinge, die Sie nicht bauen müssen wenn Verifizierung die API ist.

Konkrete Bausteine, benannt und konfigurierbar. Kein Handwedeln.

  1. 01

    Erstellen oder erneut versuchen – in einem Aufruf.

    Senden Sie denselben Empfänger erneut, und wir setzen die aktive Sitzung fort und senden nach Ablauf der Wartezeit erneut. Kein separater Resend-Endpunkt, keine doppelten Verifizierungen.

  2. 02

    Prüfung anhand des Empfängers. Nichts speichern.

    Übermitteln Sie den Empfänger und den Code; wir lösen die Sitzung anhand des Konfigurations-Empfänger-Paars auf. Es gibt keine Verifizierungs-ID, die zwischen Senden und Prüfen gespeichert werden muss.

  3. 03

    E-Mail, SMS und WhatsApp zum Start.

    Der übergebene Empfänger bestimmt den Kanal: Eine E-Mail-Adresse wird per E-Mail verifiziert, eine Telefonnummer per SMS oder WhatsApp. Ein Kanalwechsel ist eine Änderung in einem Feld – keine neue Integration. Voice wird als Nächstes ausgerollt, und automatisches Fallback zwischen Kanälen ist in Arbeit.

  4. 04

    Kanalreihenfolge pro Land – als Konfiguration.

    Legen Sie Kanalreihenfolge, Absender und aktive Kanäle pro Land als erstklassige Konfigurationsressource fest – statt per Support-Ticket.

  5. 05

    Codes, die Sie nie zu sehen bekommen.

    Generiert aus einer kryptografischen Zufallsquelle, nur als HMAC gespeichert, in konstanter Zeit verglichen. Der Klartext-Code berührt weder Ihren Stack noch unsere Logs.

  6. 06

    Konfigurierbarer Code, TTL, Versuche.

    Standardmäßig sechs Ziffern, konfigurierbar von 4–10; ein 10-Minuten-Fenster; 5 Versuche; eine 60-Sekunden-Abklingzeit für erneutes Senden – alles pro Konfiguration einstellbar. Die Code-Länge kann auch pro Anfrage überschrieben werden.

  7. 07

    Jeder Code bleibt gültig, bis die Sitzung endet.

    Eine verzögerte Nachricht und ein neu gesendeter Code verifizieren beide, weil wir den früheren Code nicht ungültig machen, wenn ein neuer gesendet wird.

  8. 08

    Ein falscher Code ist ein 200, keine Exception.

    Antworten werden mit einem booleschen Ergebnis geprüft – wurde dieser Code verifiziert, ja oder nein – sowie einem Grund, der im Fehlerfall Details liefert: ungültig, abgelaufen, bereits verifiziert oder keine Versuche mehr übrig. Sie verzweigen anhand eines Feldes, nie anhand eines geworfenen Fehlers.

  9. 09

    Rate Limits und Kontingente sind integriert.

    Sendelimits pro Empfänger, ein Ratelimit pro Verifizierung und ein tägliches Kontingent pro Workspace – jeweils ein 429 mit Retry-After – sodass Brute-Force-Angriffe scheitern, bevor Sie es tun.

  10. 10

    Derselbe Vertrag wie beim Rest von Bird.

    Bearer-Auth, ein Idempotency-Key, typisierte vrf_-IDs, ein einheitliches Fehlerformat. Der Handler, den Sie für E-Mail geschrieben haben, passt bereits für die Verifizierung.

Speichern Sie nichts zwischen Senden und Prüfen.

Die meisten Verification-APIs geben Ihnen eine ID, die Sie speichern, nachschlagen und gegen die Sie den Code prüfen. Bird löst die Sitzung über den Empfänger auf – es gibt also keinen Verifizierungsstatus auf Ihrer Seite.

Die meisten Verification-APIs

Create gibt eine ID zurück, die Sie speichern, dann schlagen Sie die Verifizierung nach, um den Code dagegen zu prüfen.

id-keyed.ts
const { id } = await api.verifications.create({
  to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });

Bird Verify

Prüfen Sie per Empfänger. Es gibt nichts, was zwischen den beiden Aufrufen verknüpft werden muss.

by-target.ts
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();

Länderspezifisches Routing ist Konfiguration.

Legen Sie die Kanalreihenfolge, den Absender und die aktiven Kanäle pro Land fest – WhatsApp-first in einem Markt, SMS-only in einem anderen. Es ist eine erstklassige Konfigurationsressource, die in den Plan jeder Verifizierung aufgelöst wird. Siehe Kanal-Orchestrierung.

per-country.ts
200
await bird.verify.verifications.configurations.countries.upsert(
  "vfc_login",
  "BR",
  { channels: [
    { channel: "whatsapp", state: "enabled" },
    { channel: "sms", state: "enabled" },
  ] },
).safe();

Verifizierung ist auch eine Produktentscheidung: Dieselbe API unterstützt Zwei-Faktor-Authentifizierung und passwortlosen Login. Sie möchten erst eine Nummer validieren? Kombinieren Sie es mit Lookup. Stille Netzwerkauthentifizierung und TOTP-Authenticator-Apps sind auf der Roadmap.

Warum wir Verify entwickeln

Weil der Code, der einen Nutzer einlässt, keine eigene Datenbanktabelle brauchen sollte.

OTP ist der Kanal, bei dem ein nicht zugestellter Code eine nicht abgeschlossene Registrierung bedeutet. Bird betreibt bereits E-Mail und SMS im großen Maßstab – Verify ist diese Zustellung plus Code-Generierung, Sitzung, länderspezifischer Kanalplan und Rate Limits, hinter zwei Endpunkten, die nichts auf Ihrer Seite speichern und im selben Format wie jeder andere Bird-Kanal antworten.

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();

Wenn Sie SMS integriert haben, haben Sie Verify integriert.

Dasselbe Auth-Modell, derselbe Idempotency-Vertrag, dasselbe Fehlerformat. Der Unterschied: Verify generiert den Code, wählt den Kanal und steuert die Rate Limits – damit Sie es nicht tun müssen.

Verify

Ein Aufruf sendet den Code, ein weiterer prüft ihn anhand des Empfängers. Wir verwalten den Code, die Sitzung und die Limits.

verify.ts
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
});

SMS

Der direkte Versand – für alle, die Code-Generierung und Retry-Logik selbst in der Hand behalten möchten.

notify.ts
await bird.sms.send({
  from: "Bird",
  to:   "+15551234567",
  text: `Your code is ${code}.`,
});

Verify API FAQ

Wie füge ich die Verifizierung zu meiner App hinzu?+
Zwei Aufrufe: eine Verifizierung für einen Empfänger erstellen, dann den eingegebenen Code prüfen. Die Prüfung erfolgt über den Empfänger – es muss also keine Verifizierungs-ID zwischen den beiden Schritten gespeichert werden. Die Konfigurations-ID (eine Konstante) und die Adresse genügen.
Über welche Kanäle kann ich verifizieren?+
E-Mail, SMS und WhatsApp sind heute verfügbar. Voice wird als zusätzlicher Kanal ausgerollt. Kanalreihenfolge, Absender und aktive Kanäle sind pro Land konfigurierbar – ohne Codeänderung.
Muss ich eine Verifizierungs-ID speichern?+
Nein. Erneutes Senden ist derselbe Create-Aufruf (Create-or-Retry), und die Prüfung erfolgt anhand der Empfängeradresse – eine Verifizierung erfordert also keinen sitzungsbezogenen Zustand auf Ihrer Seite. Eine ID wird zurückgegeben, falls Sie den Status später abfragen möchten, ist aber optional.
Was passiert, wenn jemand den falschen Code eingibt?+
Die Prüfung gibt 200 mit einem Ergebnis zurück – invalid, solange noch Versuche übrig sind, dann failed, wenn sie aufgebraucht sind, oder expired, wenn das Zeitfenster abgelaufen ist. Ein falscher Code ist ein normales Ergebnis, auf das Sie verzweigen – kein HTTP-Fehler.
Wie werden die Codes generiert und gespeichert?+
Codes werden mit einer kryptografischen Zufallsquelle generiert und ausschließlich als HMAC-SHA256-Hash gespeichert, der in konstanter Zeit verglichen wird. Der Klartext-Code wird niemals zurückgegeben und niemals in Ihren Stack oder unsere Logs geschrieben. Länge (4–10 Ziffern), TTL und Versuchslimits sind konfigurierbar.
Was kostet es?+
Verify befindet sich in der Preview und steht noch nicht auf der öffentlichen Preisliste. Kontaktieren Sie uns – wir erläutern Ihnen die Preise für Ihre Kanäle und Ihr Volumen.
Von wem sehen meine Nutzer den Code?+
Authifly, die Verifizierungsmarke von Bird. Sie ist die Identität auf jedem Code, den Ihre Nutzer erhalten: E-Mails kommen von otp@verify.authifly.com oder Ihrer eigenen verifizierten Domain, SMS und WhatsApp tragen das Authifly-Branding. authifly.com ist eine öffentliche Seite, die Empfängern bestätigt, dass Authifly legitime Einmalcodes im Auftrag eines Unternehmens versendet. Bird ist die Plattform, auf der Sie entwickeln; Authifly ist das, was der Empfänger sieht.

Der Absender, den Ihre Nutzer sehen: Authifly

Ihre Endnutzer erhalten ihre Codes von Authifly, der Verifizierungsmarke von Bird. Über die geteilten Absender kommt die OTP-E-Mail von otp@verify.authifly.com, und die SMS nennt Authifly in der Nachricht – so treffen Codes unter einer einheitlichen Identität ein, die Sie nicht selbst betreiben müssen. Erhält ein Empfänger einen unerwarteten Code, versichert authifly.com, dass Authifly legitime Einmalcodes im Auftrag eines Unternehmens versendet. Authifly wird von Bird B.V. betrieben.

authifly.com besuchen

Verifizierung auf derselben Plattform wie Ihr gesamtes Messaging.

Verify ist in der Vorschau. Starten Sie noch heute mit der Entwicklung oder sprechen Sie mit uns über die Kanäle, das Volumen und die Preise, die Sie benötigen.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor