Voice OTP

Rolling out

A code you can hear, for the users SMS misses.

Set up in:
Cursor

Voice verification places a call and reads the one-time code aloud — for landlines, for users who can't receive SMS, and as the fallback when a text doesn't arrive. It's rolling out as an orderable channel in the same per-country plan, addressed by the same phone number and confirmed by the same check.

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

The channel that reaches users when text can't.

Voice is a phone-family channel on the Bird Verify API: the recipient is the same phone number, and voice becomes an orderable entry in the per-country plan — typically the fallback after SMS. Landline-only users, accessibility needs, and markets where SMS underdelivers are exactly where a spoken code earns its place.

What voice verification adds.

Rolling out as a channel in the existing plan.

  1. 01

    Spoken, synthesized code.

    The code is read aloud on a call, so a user who can't read a text, or doesn't have one, can still verify.

  2. 02

    Reaches landlines.

    Voice works on lines that never receive SMS, widening who you can verify without a separate integration.

  3. 03

    A natural SMS fallback.

    Order voice after SMS in the channel plan so that, as delivery-driven advancement rolls out, the session moves on to a call when the text doesn't land.

  4. 04

    Same recipient, same calls.

    Address the same phone number and call the same create and check endpoints. Voice is the channel, not a different API.

  5. 05

    The same code guarantees.

    Server-generated, hashed codes; configurable length and TTL; check by recipient, with every guarantee the other channels carry.

Voice is an entry in the plan.

Order voice after SMS in the configuration and the create call is unchanged. As delivery-driven advancement rolls out, the session uses voice when the channel ahead of it doesn't complete.

voice-otp.ts
rolling out
await bird.verify.verifications.create({
  configuration_id: "vfc_login",
  to: { phone_number: "+15551234567" },
}).safe();

// resolved channels: [{ channel: "sms" }, { channel: "voice" }]

How the fallback works.

Order SMS first and voice second, and a single verification works the plan in order. SMS is attempted; if it doesn't arrive, the session moves to a voice call that reads the code aloud, and every code in the session stays valid so the user can use whichever reaches them. Automatic, delivery-driven advancement is rolling out with delivery status.

Voice OTP FAQ

Is voice verification available today?+
It's rolling out. Email, SMS, and WhatsApp verification are available now; voice lands as an additional orderable channel in the same per-country plan, with no change to the create or check calls.
When should I use voice OTP?+
Voice reaches landlines and users who can't receive SMS, and it's a strong fallback when a text doesn't arrive. It's also the more accessible option for users who can't read a code on screen.
How does voice fit with SMS?+
Both are phone-family channels addressed by the same number. Order them in the channel plan (commonly SMS first, voice as fallback), and a single verification can move from one to the other while every code in the session stays valid.
Who do my users see the code from?+
Authifly, Bird's verification brand. It's the identity on every code your users receive: email arrives from otp@verify.authifly.com or your own verified domain, and SMS and WhatsApp are Authifly-branded. authifly.com is a public page that reassures recipients Authifly sends legitimate one-time codes on a business's behalf. Bird is the platform you build on; Authifly is what the recipient sees.

Reach every user, on the channel that gets through.

Voice joins email, SMS, and WhatsApp as a channel in the same per-country plan — a spoken fallback on the same two endpoints.

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor