Bird 与 Prelude
Bird 与 Prelude 的 Verify 对比
Bird Verify 提供基于收件人的投递和验证码校验:创建验证码、推进可用通道计划并使用同一收件人校验答案。在迁移注册或登录流程之前,将该流程与 Prelude 的验证窗口和风险结果进行对比。
每天都被构建
世界级软件的团队所信赖。
哪种验证流程适合你的应用?
何时适合使用 Prelude
Prelude 的创建响应区分 success、retry、challenged、blocked 和 shadow_blocked。其信号用于欺诈决策;challenged 和 shadow_blocked 需要账户启用。在迁移验证码投递之前,保留或替换你的应用所依赖的风险决策。
Prelude 文档记录了 RCS、Viber、Zalo 和静默网络认证,以及 SMS、WhatsApp 和 Telegram;其请求方法也接受语音。Bird 的可选方案包含 SMS、WhatsApp、邮件和 Telegram。语音功能仍在逐步上线,目前不支持客户迁移。如果依赖 RCS、Viber、Zalo 或静默认证方式,需保留或重新设计。
Prelude 的请求选项包括模板、区域设置和已启用的发送方 ID。自定义验证码、显式通道列表、force_challenge 和 max_auto_fallbacks 需要账户启用。这些设置需要明确的迁移决策,而不是简单地重命名字段。
为什么选择 Bird Verify?
Bird 通过收件人标识验证,支持邮箱地址、手机号码或两者兼用。其国家计划决定可用通道;options.channels 可以裁减或重新排列该计划。
Bird 的校验响应返回 success、reason 和 attempts_remaining。在你的应用中存储 success: true;对已完结验证的后续校验返回 404,不会撤销该结果。
Bird 的托管 MCP 服务器和 CLI 示例可执行创建、校验和下一通道操作。代理可以使用应用已持有的同一收件人请求下一投递通道。
对比矩阵
两个 Verify API 如何比较?
对比收件人状态、恢复机制和风险决策。通道可用性和高级选项取决于目的地和账户启用状态。
| 功能 | Bird | Prelude | 谁更胜一筹? |
|---|---|---|---|
| 创建请求 | JSON 使用 bearer 密钥向 /v1/verify/verifications 发送请求,包含 to.email、to.phone_number 或两者。 | JSON create-or-retry 使用 bearer 密钥,包含 target.type 和 target.value。邮件验证需要联系 Prelude 说明使用场景。 | |
| 安全重试 | Idempotency-Key 重放请求。收件人重发复用当前验证,遵守其冷却时间并在之后发送新验证码。 | 在活跃验证窗口内重复请求会创建一次重试尝试。生命周期指南记录了最小重试间隔和尝试次数限制。 | |
| 验证失败时返回的信息 | success: false、reason 和 attempts_remaining。在验证完结之前持久化成功结果。 | 校验状态包括 success、failure 和 expired_or_not_found。绑定事务的验证码还可能返回 transaction_missing 或 transaction_mismatch。 | |
| 验证码可送达的渠道 | SMS、WhatsApp、邮件和 Telegram,仅限收件人所在国家/地区方案支持的渠道。语音仍在逐步上线中,尚不可用于客户流量。 | 消息通道包括 SMS、RCS、WhatsApp、Telegram、Viber 和 Zalo,以及静默认证;method: voice请求语音呼叫。可用性取决于账户和目的地。 | |
| 投递事件 | 工作区订阅区分验证事件和投递事件;Standard Webhooks 签名对载荷进行认证。 | options.callback_url按请求选择目标地址。生成签名密钥以在 X-Webhook-Signature 中启用 RSASSA-PSS SHA-256 签名。 | |
| 回退控制 | 投递失败会推进解析后的计划。Next-channel 按请求推进计划并发送新验证码;之前的验证码仍然有效。 | max_auto_fallbacks限制额外的自动尝试次数,需要账户启用。该值在创建时固定;重试请求会获得相同限制的全新配额。 | |
| 托管 MCP 服务器 | 经过认证的托管 MCP 运行创建、校验和下一通道操作;bird CLI 提供相同的操作。 | Prelude 的后端 SDK允许应用代码调用 Verify。其 Node SDK 提供 verification.create 和 verification.check。 | |
| 验证码长度 | options.code_length 选择验证码长度;否则使用工作区设置。 | options.code_size接受 4 到 8 位数字,否则使用仪表盘设置。 | |
| 风险结果 | 收件人发送上限、校验限制和国家配置。创建响应返回一个验证对象,不包含 Prelude 的 challenged 或 shadow_blocked 结果。 | 创建状态和风险数据支持基于被拦截流量进行分支。reason 描述拦截原因;当检测到特定风险信号时,risk_factors 出现在 blocked 或 shadow_blocked 决策中;这些字段并非每次成功发送的解释说明。 |
谁控制下一次投递尝试?
Bird 根据收件人和国家解析其通道计划。投递失败或显式的 next-channel 请求会推进该计划。每次显式调用最多前进一个通道并发送新验证码;之前的验证码在当前验证期间仍然有效。
Bird:使用 to 创建 → 解析后的通道计划 → 投递失败或 next-channel → 新验证码 → 使用相同的 to 校验。计划耗尽时返回 NoNextChannel。在提供再次发送之前记录成功结果。
Prelude:使用 target 和 signals 创建 → 风险结果 → 验证窗口 → 投递路由 → 自动或请求重试 → 验证码校验。其生命周期指南将在活跃窗口内对同一号码的再次创建视为重试,而非新验证。
Prelude 的回退限制计算额外的自动尝试次数。值为零时禁用自动提供商和通道重试。该值需要账户启用且在创建时固定;在重试时更改该值会被忽略,而请求的重试会获得固定限制的全新配额。
各响应中的 success 表示什么?
Bird 的校验端点在验证码被接受时返回 success: true。HTTP 200 也可能携带 success: false 和失败原因。保留成功的应用结果;已完结记录的 404 不是对认证的撤销。
Prelude 的 create status: success表示已创建新的验证窗口。其 check status: success是用于验证码接受的结果。不要根据 create 结果授予访问权限。两个调用均通过 type 和 value 标识目标。
Prelude 的 check 参考文档 还为 prelude:psd2 验证码定义了 transaction_missing 和 transaction_mismatch。迁移此类流程前,请保留该事务绑定或选择明确的替代方案。
哪些风险信号和 webhook 检查必须在迁移中保留?
Prelude 在其 create 参考文档. 中将 dispatch_id 定义为 “The identifier of the dispatch that came from the front-end SDK.”。使用该集成时,请提供 SDK 的实际 dispatch 值;应用程序生成的请求 UUID 不能替代它。
Prelude 的反欺诈指南 介绍了服务端提供的信号以及其前端 SDK 的额外设备信号。其 challenged 和 shadow_blocked 状态 需要启用账户权限。梳理应用中消费这些结果的所有分支。
Bird 的发送和验证上限约束 API 的使用。它们不能替代注册流程所依赖的风险判定。在验证码下发环节保留应用自身的反欺诈决策。
Prelude 使用 RSASSA-PSS 和 SHA-256 对 webhook 载荷签名,签名密钥在其控制台中生成。Bird 使用 Standard Webhooks。保留签名验证,但替换验证器和事件映射,不要复用 Prelude 的请求头逻辑。
验证和发送如何计费?
There's no plan, seat, or platform fee for Bird Verify. Each delivery is charged at that channel's rate for the destination. A resend, or a fallback that moves delivery to a second channel, is a new send and a new charge.
A verdict compares only published delivery rates with the same channel, destination, currency, billing unit and sender type. Per-success verification fees and per-send charges are Not comparable: your own sends and successful checks determine usage.
Pricing verdict: Not comparable
| 已发布项目 | Prelude | Bird 计费政策 |
|---|---|---|
| Pay As You Go Per verification | 0.032 € Per verification plus message costs. Monthly billing and 10,000 verifications selected. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| Startup Per month | 360 € Per month plus message costs. Monthly billing and 10,000 verifications selected. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| Enterprise Custom volume | Contact sales Contact sales for committed volume pricing. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| SMS (US) Per SMS Destination: US | €0.0043 EUR Message cost for the selected United States destination. Verification charges are separate. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| WhatsApp (US) Per message Destination: US | €0.0028 EUR Message cost for the selected United States destination. Verification charges are separate. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| RCS (US) Per message Destination: US | €0.00 EUR Message cost for the selected United States destination. Verification charges are separate. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 This method is outside Bird’s documented Verify channel plan. |
| Telegram (US) Per message Destination: US | €0.012 EUR Message cost for the selected United States destination. Verification charges are separate. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 |
| Viber (US) Per message Destination: US | €0.007 EUR Message cost for the selected United States destination. Verification charges are separate. as published | There's no plan, seat, or platform fee for Bird Verify. 通道发送单独计费。请查看以下实时通道费率。 This method is outside Bird’s documented Verify channel plan. |
Bird 已发布的 SMS 通道费率
Bird's SMS catalogue rates are shown by sender type, per message segment. Carrier fees and sender costs may apply separately. These channel rates are not a total verification quote. SMS pricing; carrier fees.
| 目的地 | 发送方类型 | 每个 SMS 分段 |
|---|---|---|
| US | long_code | EUR 0.003 |
| US | long_code | USD 0.0035 |
| US | toll_free | EUR 0.003 |
| US | toll_free | USD 0.0035 |
| US | short_code | EUR 0.006 |
| US | short_code | USD 0.007 |
Bird email pricing and Bird WhatsApp pricing publish the other delivery channels.
相同的验证
如何发起一次验证?
Prelude 的 create 资源 在 /v2/verification 接受 target 和 options.code_size。Bird 的 create 端点接受 to 和 options.code_length。仅在使用 Prelude 集成时才提供真实的前端 dispatch 标识符。
Prelude
const response = await fetch("https://api.prelude.dev/v2/verification", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PRELUDE_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
target: { type: "phone_number", value: "+15551234567" },
options: { code_size: 6 },
}),
});
const verification = await response.json();
console.log(verification.id, verification.status);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.verify.verifications
.create(
{
to: { phone_number: "+15551234567" },
options: { code_length: 6 },
},
)
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
迁移成本
切换前需要更改什么?
盘点应用使用的验证方式、风控决策、模板、发送方 ID 和事务绑定检查。Prelude 迁移指南列出了支持的字段映射。如果依赖语音、RCS、Viber、Zalo 或静默认证路径,需在迁移到 Bird 前明确替代方案。
将新的 create 请求路由到所选提供商,已发出验证码的待处理 check 保留在原提供商。映射回调事件,安装对应的签名验证器,并持久化成功的 check 结果。切换前测试超时重试、用户重发、渠道升级和过期验证。结合接收方可见的流程,审查 Bird 的发送方和消息策略。
选择前应检查什么?
Bird 是 SMS 和邮件的 Prelude 替代方案吗?
重试会启动一个新的 Prelude 验证吗?
每次重试时能调整 Prelude 的回退上限吗?
让验证成为产品的一部分。
与我们的团队讨论您的渠道、验证流程和预期流量。