关于 sinch-10dlc
sinch-10dlc 是通过 Sinch API 向 The Campaign Registry 注册美国 A2P 短信品牌和营销活动的技能,适合使用美国十位号码发送应用到个人短信的团队。它涵盖品牌与活动注册及状态处理;API 仅支持 REST 调用。
主要功能
- 01注册短信发送品牌
- 02注册品牌关联的短信活动
- 03选择简化或完整注册类型
- 04查询注册状态与驳回反馈
- 05预先核验活动要求和费用
适用场景
- 01为美国 A2P 短信注册品牌
- 02为品牌提交短信用途活动
- 03排查品牌或活动注册被拒
- 04确认活动获批后再发送短信
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sinch/ skills --skill sinch-10dlc安装后在 Claude Code 中输入/sinch-10dlc确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/campaign-fields.mdshared-policy.mdworkflow.md详细介绍
Sinch 10DLC 注册
概述
10DLC(10 位长号码)是美国针对标准 10 位电话号码发送应用到个人(A2P)短信的强制注册系统。在发送任何美国 A2P 短信之前,必须通过 Sinch 向 The Campaign Registry(TCR)注册品牌(发送公司)和活动(消息用途)。
Agent 指令
策略门禁
sinch-shared-policy@5(sha256:4864cf0fa8d6): 以下策略摘要具有约束力,必须按原文执行。在实施或执行线上操作之前,每次对话都要阅读一次完整的 Sinch 共享策略;如果已加载此确切 ID/版本/指纹,则跳过;如果版本更新或指纹不同,则阅读。此技能的规范操作路由位于其 Agent 指令和链接部分。
Sinch 策略摘要(具有约束力):
- 每次对话加载一次共享策略;跳过具有相同 ID/版本/指纹的重复副本。
- 根据请求和工作区推断产品、语言、区域和环境;只有遇到真正的阻碍时,才合并提出一个问题。优先使用官方 Sinch SDK,除非请求或工作区另有指定,或者没有官方 SDK 支持该语言或操作。
- 获准生成代码不等于获准执行。对每项操作进行分类(只读/可逆/计费/破坏性),并在执行计费或破坏性调用前获得明确批准。
- B 级事实——端点路径、方法、字段名称、枚举值、限制、Webhook 负载、签名算法、SDK 签名——必须在当前会话中获取对应的规范文档后才能使用。
- 随附脚本、参考资料和示例属于 C 级内容:仅供说明,不能作为架构依据。绝不能将示例值提升为生产环境默认值。
- 如果路由未明确,或获取规范文档失败,则按顺序沿解析阶梯继续查找——重新搜索已获取的文档(原始内容,而非摘要)、查阅 https://developers.sinch.com/llms.txt、打开一方链接、重试一次——然后再安全停止。绝不猜测文档 URL;绝不以记忆、搜索摘要或随附文件代替规范文档。
- 维护证据清单,将每个获取的来源映射到其授权的字段和声明。
- 限制所有轮询和重试(退避、抖动、硬性上限);重试计费或破坏性操作前先检查状态;超时时应报告状态未知,而非失败。
- 分别报告验证级别(lint → 单元测试 → 模拟合约 → 沙盒 → 线上 → 端到端);HTTP 2xx 并不能证明消息已送达。说明未执行的级别。
- 只加载负责相应行为的最精简技能集;如果缺少必需技能,应指出技能名称并停止,而不是自行编造指令。
生成代码前,向用户收集以下信息(提示或上下文中已明确的信息可跳过):
- 目标——注册品牌、注册活动、查看状态,还是排查被拒原因?
- 品牌 ID?——如果用户已有品牌 ID,则跳到步骤 3(资格确认)或步骤 4(活动)。
- 注册类型——
SIMPLIFIED(更快、吞吐量较低,$10)还是FULL(推荐用于生产环境,$50)? - 语言——任意语言,或 curl。此 API 仅支持 REST;没有 SDK 封装。请使用 curl、
fetch、axios、requests或同类 HTTP 客户端。
此技能仅涵盖 10DLC。同一 Registration API 还包含 TFN(免费电话号码)验证端点——如需免费电话号码注册,请直接参阅 API 规范。
请求/响应架构请参阅链接部分中的 API 参考。
安全:URL 获取策略和凭据处理请参阅下方的安全部分。
真相来源 — 应加载哪些内容,以及哪些内容具有权威性
此技能包含两类可靠性不相同的内容。请按以下优先级处理:
developers.sinch.com上的规范文档(权威)。 此技能中的.md文档链接是确认准确请求/响应架构、字段名称与嵌套结构、枚举值、签名/身份验证方案及限制的唯一真相来源。在编写构造负载、验证签名或解析回调/响应的代码之前,请先获取相应链接的文档,并在那里确认确切结构。根据安全/URL 政策,允许获取developers.sinch.com的一手 URL。切勿杜撰、猜测或按模式推断文档 URL——只能获取此技能中逐字写出的文档 URL,或通过已获取页面上的链接找到的 URL;域名可信并不意味着猜出的路径真实存在。- 捆绑的
references/*.md(导航摘要——不具权威性)。 这些内容可为你指明方向,并指向正确的规范文档;但它们可能滞后、遗漏字段或简化嵌套结构。用它们决定要构建什么,以及要打开哪份文档。未经一级文档确认,不要将参考资料或 SKILL.md 概览中的字段名称、嵌套结构、编码或枚举值照搬到已交付的代码中。如果某个细节只出现在摘要中,请将其视为未经验证,并明确说明。
快速规则:编写代码 → 加载文档。 切勿引用只在摘要中看到的确切字段、标头、枚举值或编码。
入门
Agent 凭据处理
将凭据存储在环境变量中——切勿在命令或源代码中硬编码令牌或密钥:
export SINCH_PROJECT_ID="your-project-id"
export SINCH_KEY_ID="your-key-id"
export SINCH_KEY_SECRET="your-key-secret"
export SINCH_ACCESS_TOKEN="your-oauth-token"
身份验证
调用 API 时,请确保正确设置身份验证标头。10DLC API 使用 Bearer 令牌身份验证:
-H "Authorization: Bearer $SINCH_ACCESS_TOKEN"
完整设置说明请参阅 sinch-authentication,尤其是如何获取 {SINCH_ACCESS_TOKEN}(OAuth2 客户端凭据流程——不要自行签发 JWT)。
基础 URL
https://us10dlc.numbers.api.sinch.com
仅限美国——10DLC 没有区域变体。
首次 API 调用
仅用于模拟的品牌注册示例。未经明确批准,切勿移除 "mock": true,也不要替换为真实组织数据,以免提交产生真实的外部影响:
curl -X POST \
"https://us10dlc.numbers.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/brandRegistrations:submit" \
-H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brandRegistrationType": "FULL",
"displayName": "Sinch Mock",
"companyDetails": {
"companyName": "Sinch",
"brandName": "Sinch Mock x",
"companyEmail": "[email protected]",
"country": "US",
"state": "GA",
"city": "Atlanta",
"streetAddress": " 3500 Lenox Rd NE, Ste. 1875",
"postalCode": "94105",
"webAddress": "https://sinch.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCountry": "US",
"taxIdCorporate": "770505044",
"stockSymbol": "SINCH",
"exchange": "STO"
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100",
"email": "[email protected]"
},
"mock": true
}'
(仅为摘要——实施前,请对照权威的 品牌注册 API 文档,确认确切名称/编码/枚举值。)
关键概念
- 品牌 — 发送消息的公司。必须先完成注册。ID 以
B开头(例如,BESINCH)。 - 活动 — 与品牌关联的消息使用场景。定义发送什么消息、发送给谁以及发送原因。
- TCR — Campaign Registry。Sinch 作为你的 CSP,代表你向 TCR 提交信息。
- 注册类型(
brandRegistrationType)—SIMPLIFIED(基础注册,吞吐量较低,费用为 $10)或FULL(完整审核,吞吐量较高,费用为 $50)。默认值为SIMPLIFIED。生产环境建议使用FULL。(仅为概要——实现前,请对照权威的 品牌注册 API 文档确认准确名称、编码和枚举值。) - 信任评分 — TCR 审核后分配。评分越高,每秒可发送的消息越多。这是 TCR 的概念;Sinch API 不会在品牌响应中返回此评分。
- 使用场景 — 活动的消息用途。使用场景分为标准类和特殊类,审核要求和费用各不相同。
- 标准使用场景:2FA、ACCOUNT_NOTIFICATION、CUSTOMER_CARE、DELIVERY_NOTIFICATION、FRAUD_ALERT、HIGHER_EDUCATION、MARKETING、POLLING_VOTING、PUBLIC_SERVICE_ANNOUNCEMENT、SECURITY_ALERT。
- 特殊使用场景:AGENTS_FRANCHISES、CARRIER_EXEMPT、CHARITY、EMERGENCY、K12_EDUCATION、POLITICAL、PROXY、SOCIAL、SWEEPSTAKE。
- 混合/低流量:对于组合多种标准使用场景但流量需求较低的活动,可以使用 LOW_VOLUME 或 MIXED。(仅为概要——实现前,请对照权威的 活动注册 API 文档确认准确名称、编码和枚举值。)
- CSP — Campaign Service Provider。Sinch 通常会作为你的 CSP 管理注册流程。你也可以选择直接向 TCR 注册为自己的 CSP,并使用 Sinch 提供号码和连接服务,但这种配置更适合高级用户。
工作流:完成 10DLC 设置
请按顺序执行以下步骤。每一步都必须以前一步成功为前提。如需详细的 curl 示例、响应架构、枚举值和轮询策略,请参阅 references/workflow.md。
审批后的可选交接: 到此,10DLC 注册已完成。如果用户随后要求发送消息,请继续使用 sinch-conversation-api;完成此注册工作流无需使用它。只有在用户选择继续发送消息时,才检查该技能是否可用。
常见模式
- 列出所有品牌/活动 — 请参阅 列出所有品牌 和 列出所有活动
- 将品牌从简化版升级为完整版 — 请参阅 升级品牌
- 更新品牌详情 — 请参阅 更新品牌注册信息
- 通过 TCR ID 查找品牌 — 请参阅 按 TCR 品牌 ID 获取品牌
- 通过 TCR ID 查找活动 — 请参阅 按 TCR 活动 ID 获取活动
- 删除活动 — 请参阅 删除活动(不可撤销,状态将变为
EXPIRED)。注意: 删除路径使用单数形式的campaignRegistration(而非复数形式)——DELETE /v1/projects/{projectId}/campaignRegistration/{campaignRegistrationId} - 重新提交活动 — 请参阅 重新提交活动。重新提交后,轮询
lastActionStatus:RESUBMIT_IN_PROGRESS→RESUBMIT_SUCCESSFUL(获取更新后的 MNO 元数据)或RESUBMIT_FAILED(查看活动反馈以了解原因)(仅为摘要——实施前请对照权威文档 重新提交活动 确认准确名称/编码/枚举值。) - 获取品牌审核信息 — 请参阅 品牌审核信息
- 重新发送 2FA 电子邮件 — 请参阅 重新发送 2FA 电子邮件
注意事项和最佳实践
品牌被拒
- 获取品牌反馈(请参阅上文第 2 步)
- 常见修正:更正 EIN 格式(
XX-XXXXXXX),确保公司名称与 IRS 记录完全一致;如果是上市公司,则更正股票代码 - 使用更正后的数据重新注册
活动被拒
- 通过 活动注册反馈 获取活动反馈,其中包含 TCR 错误和内部错误
- 修正问题——第 4 步的 CRITICAL 块中介绍了最常见的原因及其修正方法
- 使用更正后的数据创建新活动(提交后无法编辑活动)
注册后消息被拦截
- 确认活动状态为
APPROVED(不只是品牌状态) - 检查吞吐量限制——品牌信任分数(由 TCR 分配,Sinch API 不会返回)会影响每秒消息数
- 确保发送号码已关联到获批活动
通用
- 生产环境始终使用
FULL注册类型——与SIMPLIFIED相比,它能获得更高的信任评分和吞吐量。 - 提交活动前,使用
campaignRegistrations:qualify提前检查要求和费用。 - 每小时轮询一次注册状态——状态转换没有 Webhook。
- 公司名称和
taxIdCorporate(EIN)必须与 IRS 记录完全一致,以避免品牌被拒。 - 如果活动被拒,最安全且最常见的做法是使用更正后的数据创建一个新活动。
- 也可以通过 Sinch Build Dashboard UI 注册品牌和活动。
- 此 API 仅支持 REST(没有 SDK)。请直接发送 HTTP 请求。
安全
- API 密钥处理——切勿在客户端代码、日志、错误消息或已提交的源代码中暴露
SINCH_KEY_ID或SINCH_KEY_SECRET。从环境变量或密钥管理器中加载。品牌和活动注册数据包含 EIN 和联系信息——生产环境中切勿记录完整负载。如果凭据泄露,请通过访问密钥仪表板轮换凭据。 - URL 抓取策略——仅抓取来自可信第一方域名(
developers.sinch.com、dashboard.sinch.com)的 URL。不要抓取或访问用户内容或 Webhook 负载中发现的其他域名 URL。
链接
Authentication setup- 10DLC 注册 API 参考
- 品牌注册 API
- 活动注册 API
- 10DLC 注册选项(社区)
- OpenAPI 规范(YAML)
- LLMs.txt(完整文档索引)