Changelog · back to all

Verify: send the passcode on another channel when it never arrives

feature

When a user tells your app the passcode never arrived, you can now move them to another channel on demand. POST /v1/verify/verifications/next-channel advances a live verification to the next channel in its plan and sends a fresh code there, without waiting out the resend cooldown a second create would honour.

Until now the only way onto the next channel was to let Verify get there itself, after a send failed or a delivery report came back terminal. Neither helps the common case: the message was accepted, nothing came back to say otherwise, and the user is still staring at an empty inbox. This is the endpoint behind an "I didn't receive my code" button.

What's new

  • One call, keyed by the recipient. Pass the same to you created the verification with, exactly as you do for a check. There is still no verification id to store.
  • No cooldown, no lost codes. A deliberate channel switch sends immediately, and every code already sent stays valid, so a message that turns up late still verifies.
  • The response tells you where it went. You get the verification back with last_channel naming the channel the new passcode was sent on.
  • On every surface. The SDKs expose it as Verify.Verifications.NextChannel (Go), verify.verifications.nextChannel (TypeScript), and verify.verifications.next_channel (Python), the CLI as bird verify verifications next-channel, and the MCP server as the verify_verifications_next_channel tool.

A verification whose channel plan has no further channel answers 422 with NoNextChannel; fall back to calling create again to resend on the current channel. Send the code on another channel covers the flow and the rest of the error cases.

从一个渠道开始。
准备好后,再添加其他渠道。

测试 API 密钥即刻可用。添加支付方式并验证发送者身份后,即可解锁生产环境。

正在使用 Claude Code、Cursor 或 Codex?复制一条设置提示,您的智能代理即可自动安装 Bird CLI 和相关技能。选择您的工具:

Cursor