用于验证码的短信 OTP API
从您的后端向 BroadNet REST API 发起一次 HTTPS 请求即可发送一次性验证码。验证码由您的应用生成和校验;我们通过运营商直连线路,使用已报备 Sender ID 送达,并将每个状态回传到您的 webhook。
curl -X POST https://api.broadnet.me/sms/sendSms \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "OmniDemo",
"destinationNumber": "971500000000",
"message": "482913 is your OmniDemo code. It expires in 5 minutes. Do not share it.",
"messageType": "TEXT",
"campaignName": "login-otp"
}'
# 200 OK
2603121407537573731使用短信 API 发送验证码。token、Sender ID 和号码均为占位符。
简短回答
更新于
使用 OmniChannels.ai 发送短信验证码时,由您的后端生成验证码,并携带 bearer token、Sender ID、号码和消息内容,调用 https://api.broadnet.me 上的 POST /sms/sendSms。API 返回消息 ID,送达状态通过 webhook 回传。支持 Unicode 与阿拉伯语,WhatsApp 或语音可作为回退渠道。
短信验证码 API 为开发者提供什么
每条验证码一次 REST 调用
使用 JSON 请求体和 bearer token 调用 POST /sms/sendSms。响应即消息 ID,可与该次验证尝试关联保存。
webhook 回传送达状态
以统一格式接收 SUBMITTED、SENT、DELIVERED、FAILED 和 REJECTED,便于判断何时提供重发或切换渠道。
Unicode 与阿拉伯语验证码
阿拉伯语或其他文字需将 messageType 设为 UNICODE。POST /sms/identify 可在发送前返回编码和分段数。
已报备的 Sender ID
在阿联酋、沙特等有要求的市场,使用为事务类流量报备的字母数字 Sender ID 发送。
发送前号码查询
POST /sms/lookup 通过网络核验号码(HLR 和 MNP),帮助您在付费发送验证码前剔除无效号码。
WhatsApp 与语音回退
短信未送达或验证码未被输入时,回退到 WhatsApp 身份验证模板或语音电话。
超高并发使用 SMPP
如果您已有 SMPP 客户端,可通过基于 TLS 的 SMPP 3.4 在同一线路上发送验证码,并在会话中接收回执。
SDK 与 MCP 服务器
可使用 TypeScript SDK @broadnet/cpaas-sdk、OpenAPI 3.1 规范,或面向 AI Agent 的 MCP 服务器。
您的代码负责什么,API 负责什么
职责清晰才能保证验证安全:验证码归您的系统,送达归平台。
| 项目 | 详情 |
|---|---|
| 生成验证码 | 您的后端生成随机验证码,连同有效期保存其哈希值,并按号码、设备和 IP 地址限制尝试次数。 |
| 发送短信 | 调用 POST /sms/sendSms,传入 senderId、destinationNumber(国家区号加号码,仅数字)、message 和 messageType。 |
| 追踪送达 | 保存返回的消息 ID,并将 webhook 状态与之匹配。在超时时间内没有收到 DELIVERED,即可触发回退。 |
| 校验验证码 | 您的后端将用户输入与已保存的哈希值比对。平台不会检查或保存您的验证状态。 |
| 回退 | 通过 WhatsApp 身份验证模板或语音电话重发,语音由我们团队协助开通。 |
| 价格 | 按目的地每条短信分段计费,采用 BroadNet 公布的标价,无开通费,无月度最低消费。请查看各国短信价格。 |
如何对接短信验证码 API
- 1
获取 token
申请访问权限;我们会为您的账户签发 bearer token,测试消息仅发送到您自己已验证的号码。
- 2
报备 Sender ID
选择一个事务类 Sender ID,并在上线前于有要求的国家完成报备。
- 3
撰写消息
验证码放在最前,写明品牌,注明有效期,并加上请勿透露的提示。内容控制在一个分段内。
- 4
发送并追踪
调用 POST /sms/sendSms,保存消息 ID,并以幂等方式处理 webhook 状态。
- 5
加入回退与限制
把 WhatsApp 或语音作为下一步,并在上线前对请求做频率限制,以阻止 SMS pumping(短信流量泵)。
短信验证码 API 适合哪些场景
适合以下情况
- 您在自己的应用中构建注册、登录或支付验证,并希望完全掌控验证码。
- 您需要向阿联酋、沙特及其他海湾和中东北非市场发送阿拉伯语和英语验证码。
- 您希望现在使用短信,将来再加入 WhatsApp、RCS 或语音回退,且只用一个 API。
- 您偏好 REST 和 webhook,并希望在发送量增长后可使用 SMPP。
开始前需要了解的事项
- 没有托管的校验接口:验证码由您的应用生成、保存和校验。
- 正式环境的访问权限由我们团队审核,不提供即时自助注册。
- 部分国家的 Sender ID 报备需要数天,请在上线日期之前启动。
- 验证码接口是 SMS pumping 欺诈的目标;国家白名单、频率限制和机器人校验需由您在应用中负责。
渠道回退,分步说明
通过平台或 API 只需发送一次。若某一步未能按时送达,下一个渠道会自动接手,所有状态都以同一种 Webhook 格式返回。
- 01
WhatsApp
带按钮的富媒体模板,支持已读回执,回复进入收件箱
- 02
RCS
在手机和运营商支持 RCS 时,展示品牌富媒体卡片
- 03
SMS
通过运营商直连线路触达每一部手机
- 04
语音
文本无法送达时,以语音播报验证码或消息
短信验证码 API 常见问题
如何用 API 发送短信验证码?
先在后端生成验证码,再调用 POST https://api.broadnet.me/sms/sendSms,带上 Authorization: Bearer 请求头,以及包含 senderId、destinationNumber、message 和 messageType 的 JSON 请求体。响应为消息 ID,送达状态会推送到您的 webhook。
API 会替我生成和校验验证码吗?
不会。验证码由您的应用生成,连同有效期保存哈希值,并校验用户输入。将验证留在自己的系统内,意味着验证逻辑、尝试次数限制和审计记录都由您掌控。
可以发送阿拉伯语的短信验证码吗?
可以。将 messageType 设为 UNICODE。阿拉伯语短信每条分段容纳 70 个字符,请保持简短。可先调用 POST /sms/identify 获取编码和分段数。
短信验证码的最佳格式是什么?
以验证码开头,写明品牌和有效期,并提醒用户切勿透露验证码,全部控制在一个分段内。使用事务类 Sender ID,且不夹带优惠,避免被网络当作营销短信过滤。
短信验证码没有送达怎么办?
根据消息 ID 监控 webhook 状态。如果没有看到 DELIVERED,或用户在超时时间内未输入验证码,可提供重发,或切换为 WhatsApp 或语音电话。不要对同一号码无限重试。
如何保护验证码接口免受 SMS pumping 攻击?
只允许您服务的国家,按号码、设备和 IP 地址设置频率限制,在公开表单上加入机器人校验,并对异常号段的请求激增发出告警。发送前的号码查询也有助于剔除无效号码。
一条短信验证码多少钱?
短信验证码按目的地费率每个分段计费。BroadNet 各国的参考标价见短信价格页面,例如发往阿联酋每个分段 0.0123 美元起。无开通费和月度最低消费,具体费率以您的报价为准。
有沙箱环境吗?
测试权限通过同一 API 向您自己已验证的号码发送,让您在上线前测试真实的送达和状态。没有单独的公开沙箱,也不提供即时自助注册。
相关指南
- 短信与验证码WhatsApp与短信验证码指南:安全、送达与防欺诈9 分钟阅读
- 短信与验证码短信泵送欺诈:AIT的运作方式与防范措施9 分钟阅读
- 集成消息API对接指南:REST、SMPP与Webhook9 分钟阅读
了解平台更多功能
获取短信验证码 API 权限
告诉我们您的目标国家、预计验证码发送量和 Sender ID。我们将签发用于向您自己号码测试的 token,并协助您报备 Sender ID。
请分享您的技术栈以及想要连接的内容,解决方案工程师会与您跟进。
