Voice OTP
Rolling outA code you can hear, for the users SMS misses.
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.
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.
- 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.
- 02
Reaches landlines.
Voice works on lines that never receive SMS, widening who you can verify without a separate integration.
- 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.
- 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.
- 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.
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?+
When should I use voice OTP?+
How does voice fit with SMS?+
Who do my users see the code from?+
The rest of the Verify platform
One API, one set of keys. Explore the other capabilities.
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.