sinch-10dlc
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSinch 10DLC Registration
Sinch 10DLC 注册流程
Overview
概述
10DLC (10-Digit Long Code) is the required US registration system for Application-to-Person (A2P) SMS on standard 10-digit phone numbers. You must register a brand (the sending company) and a campaign (the messaging use case) with The Campaign Registry (TCR) via Sinch before sending any US A2P SMS.
10DLC(10位长码)是美国针对标准10位电话号码的应用到个人(A2P)短信服务的强制注册系统。在发送任何美国A2P短信之前,您必须通过Sinch向活动注册中心(TCR)注册品牌(短信发送企业)和活动(短信使用场景)。
Agent Instructions
Agent操作指引
Before writing code, determine the user's goal:
- What do you need? Register a brand, register a campaign, check status, or troubleshoot a rejection?
- Do you already have a brand ID? If yes, skip to Step 3 (qualify) or Step 4 (campaign).
- Registration type? (faster, lower throughput, $10) or
SIMPLIFIED(recommended for production, $50)?FULL
This API is REST-only — there is no SDK wrapper. Use curl, , , , or equivalent HTTP clients.
fetchaxiosrequests在编写代码前,先明确用户的目标:
- 您的需求是什么? 注册品牌、注册活动、查询状态,还是排查被拒绝的问题?
- 您是否已有品牌ID? 如果有,直接跳至步骤3(资格预审)或步骤4(活动注册)。
- 注册类型? (快速注册,较低吞吐量,费用10美元)或
SIMPLIFIED(生产环境推荐,较高吞吐量,费用50美元)?FULL
此API仅支持REST调用——没有SDK封装。请使用curl、、、或其他等效的HTTP客户端。
fetchaxiosrequestsGetting Started
快速开始
Auth: HTTP Basic () or OAuth2 bearer token. All examples use Basic auth. See sinch-authentication for setup.
keyId:keySecretFirst API call — register a brand:
bash
curl -X POST https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/brandRegistrations:submit \
-u {KEY_ID}:{KEY_SECRET} \
-H "Content-Type: application/json" \
-d '{
"brandRegistrationType": "FULL",
"displayName": "Acme Corp 10DLC",
"companyDetails": {
"companyName": "Acme Corp",
"brandName": "Acme",
"companyEmail": "support@acme.com",
"businessContactEmail": "admin@acme.com",
"country": "US",
"state": "CA",
"city": "San Francisco",
"streetAddress": "123 Main St",
"postalCode": "94105",
"webAddress": "https://acme.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCountry": "US",
"taxIdCorporate": "12-3456789",
"stockSymbol": "",
"exchange": ""
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100",
"email": "admin@acme.com"
}
}'身份验证: HTTP Basic()或OAuth2 Bearer令牌。所有示例均使用Basic认证。设置方法请参考sinch-authentication。
keyId:keySecret首次API调用——注册品牌:
bash
curl -X POST https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/brandRegistrations:submit \
-u {KEY_ID}:{KEY_SECRET} \
-H "Content-Type: application/json" \
-d '{
"brandRegistrationType": "FULL",
"displayName": "Acme Corp 10DLC",
"companyDetails": {
"companyName": "Acme Corp",
"brandName": "Acme",
"companyEmail": "support@acme.com",
"businessContactEmail": "admin@acme.com",
"country": "US",
"state": "CA",
"city": "San Francisco",
"streetAddress": "123 Main St",
"postalCode": "94105",
"webAddress": "https://acme.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCountry": "US",
"taxIdCorporate": "12-3456789",
"stockSymbol": "",
"exchange": ""
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100",
"email": "admin@acme.com"
}
}'Key Concepts
核心概念
Brand — The company sending messages. Must be registered first. ID starts with (e.g., ).
Campaign — A messaging use case tied to a brand. Defines what, to whom, and why.
TCR — The Campaign Registry. Sinch submits to TCR on your behalf as your CSP.
Registration type () — (basic, lower throughput, $10) or (complete vetting, higher throughput, $50). Default is . Prefer for production.
Trust score — Assigned by TCR after vetting. Higher score = more messages per second. This is a TCR concept; the Sinch API does not return it in the brand response.
Use case — The campaign's messaging purpose. Use cases are categorized as Standard or Special, with different vetting requirements and fees.
BBESINCHbrandRegistrationTypeSIMPLIFIEDFULLSIMPLIFIEDFULLStandard Use Cases: 2FA, ACCOUNT_NOTIFICATION, CUSTOMER_CARE, DELIVERY_NOTIFICATION, FRAUD_ALERT, HIGHER_EDUCATION, MARKETING, POLLING_VOTING, PUBLIC_SERVICE_ANNOUNCEMENT, SECURITY_ALERT.
Special Use Cases: AGENTS_FRANCHISES, CARRIER_EXEMPT, CHARITY, EMERGENCY, K12_EDUCATION, POLITICAL, PROXY, SOCIAL, SWEEPSTAKE.
Mixed/Low Volume: LOW_VOLUME or MIXED can be used for campaigns that combine multiple standard use cases but have low traffic requirements.
CSP — Campaign Service Provider. Sinch typically acts as your CSP, managing the registration process. It's also possible for you to register as your own CSP directly with TCR and use Sinch for number provisioning and connectivity, though this is a more advanced setup.
Brand(品牌)——发送短信的企业。必须先注册品牌,ID以开头(例如)。
Campaign(活动)——与品牌绑定的短信使用场景,定义短信内容、接收人群及发送原因。
TCR——活动注册中心。Sinch作为您的CSP,代表您向TCR提交注册信息。
注册类型()——(基础版,吞吐量低,费用10美元)或(完整版,审核严格,吞吐量高,费用50美元)。默认值为,生产环境推荐使用。
信任分数——TCR审核后分配的分数,分数越高,每秒可发送的短信数量越多。这是TCR的概念,Sinch API不会在品牌响应中返回该分数。
使用场景——活动的短信发送目的,分为标准场景和特殊场景,不同场景的审核要求和费用不同。
BBESINCHbrandRegistrationTypeSIMPLIFIEDFULLSIMPLIFIEDFULL标准使用场景: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(混合场景)适用于结合多种标准使用场景但流量需求较低的活动。
CSP——活动服务提供商。Sinch通常作为您的CSP,管理注册流程。您也可以直接向TCR注册成为自己的CSP,仅使用Sinch的号码分配和连接服务,但这属于高级配置。
Workflow: Complete 10DLC Setup
完整10DLC设置流程
Follow these steps in order. Each step depends on the previous one succeeding.
请按以下顺序执行步骤,每一步都依赖上一步成功完成。
Step 1: Register the Brand
步骤1:注册品牌
Gather from the user: company name, brand name, organization type (), EIN (), tax ID country, address (street, city, state, postal code, country), website (), company email, business contact email, contact person (first name, last name, phone, email), vertical, display name, and whether this is a public company (stock exchange/symbol).
brandEntityTypetaxIdCorporatewebAddressThe request body uses nested objects: , , and . See the curl example in Getting Started for the full structure.
companyDetailsfinancialDetailscontactDetailsRequired enums (inside ):
financialDetails-
(default:
brandEntityType):PUBLIC(publicly traded),PUBLIC(privately held),PRIVATE(registered nonprofit/charity)CHARITY_NON_PROFIT -
— pick the one that best matches the company's primary industry:
brandVerticalType- Tech/Comms: ,
TECHNOLOGYCOMMUNICATION - Finance/Insurance: ,
FINANCIALINSURANCE - Healthcare:
HEALTHCARE - Retail/Hospitality: ,
RETAILHOSPITALITY - Professional services (legal, accounting, consulting):
PROFESSIONAL - Property: ,
REAL_ESTATECONSTRUCTION - Public sector: ,
GOVERNMENT,POLITICALNGO - Education:
EDUCATION - Energy/Agriculture/Manufacturing: ,
ENERGY,AGRICULTUREMANUFACTURING - Transport/Postal: ,
TRANSPORTATIONPOSTAL - HR/Staffing:
HUMAN_RESOURCES - Media/Entertainment/Gambling: ,
ENTERTAINMENTGAMBLING - Legal:
LEGAL
When unclear, ask the user. The vertical does not affect approval but must be accurate. - Tech/Comms:
-
: A free-form string field (not an enum). Use an empty string
exchangefor private/nonprofit companies. For public companies, pass the exchange name (e.g.,"","NYSE","NASDAQ","AMEX","TSX")."LSE"
See Register a Brand for request/response details.
Success: Response includes . Save it for all subsequent steps.
brandRegistrationId向用户收集以下信息:企业名称、品牌名称、组织类型()、雇主识别号(EIN,即)、税号所属国家、地址(街道、城市、州、邮政编码、国家)、官网地址()、企业邮箱、业务联系人邮箱、联系人信息(姓名、电话、邮箱)、行业垂直领域、显示名称,以及是否为上市公司(股票交易所/代码)。
brandEntityTypetaxIdCorporatewebAddress请求体使用嵌套对象:、和。完整结构请参考快速开始中的curl示例。
companyDetailsfinancialDetailscontactDetails必填枚举值(位于内):
financialDetails-
(默认值:
brandEntityType):PUBLIC(上市公司)、PUBLIC(私有企业)、PRIVATE(注册非营利组织/慈善机构)CHARITY_NON_PROFIT -
——选择最符合企业核心行业的选项:
brandVerticalType- 科技/通信:、
TECHNOLOGYCOMMUNICATION - 金融/保险:、
FINANCIALINSURANCE - 医疗健康:
HEALTHCARE - 零售/ hospitality:、
RETAILHOSPITALITY - 专业服务(法律、会计、咨询):
PROFESSIONAL - 房地产/建筑:、
REAL_ESTATECONSTRUCTION - 公共部门:、
GOVERNMENT、POLITICALNGO - 教育:
EDUCATION - 能源/农业/制造:、
ENERGY、AGRICULTUREMANUFACTURING - 交通/邮政:、
TRANSPORTATIONPOSTAL - 人力资源/招聘:
HUMAN_RESOURCES - 媒体/娱乐/博彩:、
ENTERTAINMENTGAMBLING - 法律:
LEGAL
若不确定,请询问用户。行业垂直领域不影响审批结果,但必须准确填写。 - 科技/通信:
-
:自由格式字符串字段(非枚举值)。私有/非营利企业请填空字符串
exchange。上市公司请填写交易所名称(例如""、"NYSE"、"NASDAQ"、"AMEX"、"TSX")。"LSE"
请求/响应详情请参考注册品牌。
成功响应: 返回内容包含,请保存该ID用于后续所有步骤。
brandRegistrationIdStep 2: Wait for Brand Approval
步骤2:等待品牌审批
Registration is asynchronous — it takes minutes to days. There are no webhooks; you must poll.
bash
curl https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/brandRegistrations/{BRAND_REGISTRATION_ID} \
-u {KEY_ID}:{KEY_SECRET}Example response:
json
{
"brandRegistrationId": "01JGR7TNKQ7Y3GHMAXAMPLEID",
"brandId": "BEXAMPLE",
"brandRegistrationStatus": "APPROVED",
"brandRegistrationType": "FULL",
"identityStatus": "VERIFIED",
"displayName": "Acme Corp 10DLC",
"companyDetails": {
"companyName": "Acme Corp",
"brandName": "Acme",
"country": "US",
"webAddress": "https://acme.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCorporate": "12-3456789"
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100"
}
}See Check Brand Registration Status for full response details.
Decision tree:
- Status → proceed to Step 3
APPROVED - Status → poll again (see polling strategy below)
IN_PROGRESS - Status → brand was created via dashboard but not yet submitted; submit it to proceed
DRAFT - Status → brand is being upgraded from SIMPLIFIED to FULL; poll again until it resolves
UPGRADE - Status → check brand feedback for rejection reason, then fix and re-register
REJECTED
Common rejection categories: (EIN mismatch), (stock info mismatch), , .
TAX_IDSTOCK_SYMBOLGOVERNMENT_ENTITYNONPROFITPolling strategy:
- Poll every 60 minutes — not more often. There are no rate-limit headers, but aggressive polling has no benefit since TCR review is manual.
- brands typically resolve in minutes to a few hours.
SIMPLIFIED - brands typically resolve in 1–5 business days; some verticals (GOVERNMENT, POLITICAL) may take longer.
FULL - Set a maximum polling window: stop automated polling after 7 days and prompt the user to check manually or contact Sinch support.
- If the API returns an HTTP error (5xx or timeout), use exponential backoff (wait 5 min, 10 min, 20 min, then resume hourly) rather than retrying immediately.
注册流程为异步——审批时间从几分钟到几天不等。没有Webhook通知,您必须主动轮询状态。
bash
curl https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/brandRegistrations/{BRAND_REGISTRATION_ID} \
-u {KEY_ID}:{KEY_SECRET}示例响应:
json
{
"brandRegistrationId": "01JGR7TNKQ7Y3GHMAXAMPLEID",
"brandId": "BEXAMPLE",
"brandRegistrationStatus": "APPROVED",
"brandRegistrationType": "FULL",
"identityStatus": "VERIFIED",
"displayName": "Acme Corp 10DLC",
"companyDetails": {
"companyName": "Acme Corp",
"brandName": "Acme",
"country": "US",
"webAddress": "https://acme.com"
},
"financialDetails": {
"brandEntityType": "PRIVATE",
"brandVerticalType": "TECHNOLOGY",
"taxIdCorporate": "12-3456789"
},
"contactDetails": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+14155550100"
}
}完整响应详情请参考查询品牌注册状态。
状态处理逻辑:
- 状态→ 进入步骤3
APPROVED - 状态→ 继续轮询(轮询策略见下文)
IN_PROGRESS - 状态→ 品牌已通过控制台创建但未提交,需提交后继续
DRAFT - 状态→ 品牌正在从SIMPLIFIED升级为FULL,继续轮询直至状态变更
UPGRADE - 状态→ 查询品牌反馈信息了解拒绝原因,修正后重新注册
REJECTED
常见拒绝原因分类:(EIN不匹配)、(股票信息不匹配)、(政府实体问题)、(非营利组织问题)。
TAX_IDSTOCK_SYMBOLGOVERNMENT_ENTITYNONPROFIT轮询策略:
- 每60分钟轮询一次——不要过于频繁。虽然没有速率限制头,但TCR审核为人工操作,频繁轮询没有意义。
- 品牌通常在几分钟到几小时内完成审核
SIMPLIFIED - 品牌通常需要1-5个工作日完成审核;部分行业(政府、政治)可能需要更长时间
FULL - 设置最大轮询窗口:自动轮询7天后停止,提示用户手动检查或联系Sinch支持
- 若API返回HTTP错误(5xx或超时),使用指数退避策略(等待5分钟、10分钟、20分钟,之后恢复每小时轮询),而非立即重试
Step 3: Qualify the Campaign (Pre-check)
步骤3:活动资格预审(预检查)
Before creating a campaign, verify requirements and estimated fees:
bash
curl "https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/campaignRegistrations:qualify?brandId={BRAND_ID}&useCase=MARKETING" \
-u {KEY_ID}:{KEY_SECRET}useCaseCheck the response for , , (per-carrier restrictions and throughput), and / (required sub-use-case count for campaigns). If any carrier shows the campaign as unsupported, reconsider the use case before proceeding.
monthlyFeesetupFeemnoMetadataminSubUseCasesmaxSubUseCasesMIXEDSee Qualify a Campaign for full response details.
创建活动前,先验证要求和预估费用:
bash
curl "https://us10dlc.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/campaignRegistrations:qualify?brandId={BRAND_ID}&useCase=MARKETING" \
-u {KEY_ID}:{KEY_SECRET}useCase查看响应中的(月费)、(设置费)、(运营商限制和吞吐量),以及/(MIXED场景所需的子场景数量)。若有运营商显示该场景不支持,请重新考虑使用场景后再继续。
monthlyFeesetupFeemnoMetadataminSubUseCasesmaxSubUseCases完整响应详情请参考活动资格预审。
Step 4: Create the Campaign
步骤4:创建活动
Gather from the user: use case ( — one of the enums in Key Concepts), campaign name, description of who sends and receives, sample messages (realistic, matching use case), opt-in flow description (), HELP/STOP/opt-in messages and keywords, and boolean flags. You also need the from Step 2's response.
useCasemessageFlowbrandIdCRITICAL — campaigns are rejected for vague descriptions.
Bad: "We send texts to customers about their orders." Good: "Acme Corp sends order delivery notifications to customers who opted in during checkout at acme.com. Messages include tracking links and estimated delivery times."
Key points:
- and
descriptioneach have a 40-character minimum — be specific and detailedmessageFlow - –
sample1are required (separate string fields, not an array);sample3is optionalsample4 - has no default — must be explicitly set to
affiliateMarketingortruefalse - All keyword fields (,
optinKeywords,optoutKeywords) are comma-separated with no spaceshelpKeywords
For the full field reference, constraints, and a complete curl example, see Campaign Registration Fields. For the raw API schema, see Create a Campaign (API reference).
Success: Response includes (Sinch ULID format — not the TCR campaign ID, which is assigned after TCR approval).
campaignRegistrationId向用户收集以下信息:使用场景(——核心概念中列出的枚举值之一)、活动名称、短信发送方和接收方说明、示例短信内容(需符合使用场景)、 opt-in流程说明()、HELP/STOP/opt-in短信内容及关键词,以及布尔标志。您还需要步骤2中获取的。
useCasemessageFlowbrandId重要提示——活动描述模糊会导致被拒绝。
错误示例: "我们向客户发送订单相关短信。" 正确示例: "Acme Corp向在acme.com结账时选择opt-in的客户发送订单配送通知,短信包含跟踪链接和预计送达时间。"
关键点:
- 和
description的最小长度为40个字符——请填写具体详细的内容messageFlow - –
sample1为必填项(独立字符串字段,非数组);sample3为可选项sample4 - 无默认值——必须显式设置为
affiliateMarketing或truefalse - 所有关键词字段(、
optinKeywords、optoutKeywords)使用逗号分隔,无空格helpKeywords
完整字段参考、约束条件及curl示例请参考活动注册字段。API原始架构请参考创建活动(API参考)。
成功响应: 返回内容包含(Sinch ULID格式——并非TCR活动ID,TCR活动ID在TCR审批后分配)。
campaignRegistrationIdStep 5: Upload Supporting Documents (if required)
步骤5:上传支持文档(如有需要)
Set when creating the campaign (Step 4) to delay submission until documents are uploaded.
attachments: true- Endpoint:
POST /v1/projects/{projectId}/uploadCampaignFiles:submit - Required fields: (the
campaignInternalIdfrom Step 4),campaignRegistrationId(boolean)submitCampaign - File object: ,
fileName(base64-encoded),fileContent(integer enum: 1=PRIVACY_POLICY, 2=TERMS_AND_CONDITIONS, 3=CALL_TO_ACTION, 4=OPT_IN, 5=MMS)fileCategory - Limits: max 10MB per file, max 5 files per category
- Workflow: set for all but the last file, then
submitCampaign: falseon the final upload to submit the campaignsubmitCampaign: true
See Upload Supporting Documents for request/response details.
在步骤4创建活动时设置,可延迟提交活动直至文档上传完成。
attachments: true- 接口地址:
POST /v1/projects/{projectId}/uploadCampaignFiles:submit - 必填字段: (步骤4中获取的
campaignInternalId)、campaignRegistrationId(布尔值)submitCampaign - 文件对象: 、
fileName(base64编码)、fileContent(整数枚举:1=隐私政策, 2=服务条款, 3=行动号召, 4=Opt-in流程, 5=MMS相关)fileCategory - 限制: 单文件最大10MB,每个分类最多5个文件
- 流程: 除最后一个文件外,其余文件上传时设置,最后一个文件上传时设置
submitCampaign: false以提交活动submitCampaign: true
请求/响应详情请参考上传支持文档。
Step 6: Wait for Campaign Approval
步骤6:等待活动审批
Same async pattern as brand: poll and wait. No webhooks.
See Check Campaign Status for request/response details.
Campaign status flow: → → → / (or / / at various stages).
SINCH_REVIEWSINCH_APPROVEDSUBMITTEDAPPROVEDACTIVESINCH_REJECTEDREJECTEDSUBMISSION_FAILEDPolling strategy:
- Poll every 60 minutes.
- Campaigns typically take 1–7 business days to reach a final status (Sinch internal review + TCR review).
- Stop automated polling after 14 days and advise the user to contact Sinch support.
- On API errors, apply exponential backoff as described in Step 2.
Once approved, you can send A2P SMS on US 10-digit long codes through Sinch. To send messages, see the sinch-conversation-api skill.
与品牌审批相同,采用异步模式——轮询等待,无Webhook通知。
请求/响应详情请参考查询活动状态。
活动状态流转:(Sinch内部审核)→ (Sinch审核通过)→ (已提交至TCR)→ /(已通过)(或在各个阶段出现//)。
SINCH_REVIEWSINCH_APPROVEDSUBMITTEDAPPROVEDACTIVESINCH_REJECTEDREJECTEDSUBMISSION_FAILED轮询策略:
- 每60分钟轮询一次
- 活动通常需要1-7个工作日才能达到最终状态(Sinch内部审核 + TCR审核)
- 自动轮询14天后停止,建议用户联系Sinch支持
- 若API返回错误,采用步骤2中描述的指数退避策略
活动通过后,您即可通过Sinch发送美国10位长码的A2P短信。短信发送方法请参考sinch-conversation-api技能文档。
Common Patterns
常见操作
- List all brands/campaigns — See List All Brands and List All Campaigns
- Upgrade brand from Simplified to Full — See Upgrade Brand
- Update brand details — See Update Brand Registration
- Look up brand by TCR ID — See Get Brand by TCR Brand ID
- Look up campaign by TCR ID — See Get Campaign by TCR Campaign ID
- Delete a campaign — See Delete Campaign (irreversible, status becomes ). Note: the delete path uses singular
EXPIRED(not plural) —campaignRegistrationDELETE /v1/projects/{projectId}/campaignRegistration/{campaignRegistrationId} - Resubmit a campaign — See Resubmit Campaign. After resubmitting, poll :
lastActionStatus→RESUBMIT_IN_PROGRESS(get updated MNO metadata) orRESUBMIT_SUCCESSFUL(check campaign feedback for reason)RESUBMIT_FAILED - Get brand vetting info — See Brand Vetting Information
- Resend 2FA email — See Resend 2FA Email
- 列出所有品牌/活动——请参考列出所有品牌和列出所有活动
- 将品牌从Simplified升级为Full——请参考升级品牌
- 更新品牌详情——请参考更新品牌注册信息
- 通过TCR ID查询品牌——请参考通过TCR品牌ID获取品牌信息
- 通过TCR ID查询活动——请参考通过TCR活动ID获取活动信息
- 删除活动——请参考删除活动(操作不可逆,状态变为)。**注意:**删除接口路径使用单数
EXPIRED(而非复数)——campaignRegistrationDELETE /v1/projects/{projectId}/campaignRegistration/{campaignRegistrationId} - 重新提交活动——请参考重新提交活动。重新提交后,轮询:
lastActionStatus(重新提交中)→RESUBMIT_IN_PROGRESS(重新提交成功,获取更新后的M元数据)或RESUBMIT_SUCCESSFUL(重新提交失败,查询活动反馈了解原因)RESUBMIT_FAILED - 获取品牌审核信息——请参考品牌审核信息
- 重新发送2FA邮件——请参考重新发送2FA邮件
Gotchas and Best Practices
常见问题与最佳实践
Brand rejected
品牌被拒绝
- Fetch brand feedback (see Step 2 above)
- Common fixes: correct EIN format (), match company name to IRS records exactly, fix stock symbol if public
XX-XXXXXXX - Re-register with corrected data
- 获取品牌反馈信息(参考步骤2)
- 常见修复方法:修正EIN格式()、确保企业名称与IRS记录完全一致、修正上市公司股票代码
XX-XXXXXXX - 使用修正后的数据重新注册品牌
Campaign rejected
活动被拒绝
- Fetch campaign feedback via Campaign Registration Feedback — includes TCR errors and internal errors
- Fix the issue — the most common causes and their fixes are described in Step 4's CRITICAL block
- Create a new campaign with corrected data (campaigns cannot be edited after submission)
- 通过活动注册反馈获取反馈信息——包含TCR错误和内部错误
- 修复问题——最常见的原因及修复方法请参考步骤4中的重要提示部分
- 使用修正后的数据创建新活动(活动提交后无法编辑)
Messages blocked after registration
注册成功后短信被拦截
- Verify campaign status is (not just brand)
APPROVED - Check throughput limits — brand trust score (assigned by TCR, not returned by Sinch API) affects messages per second
- Ensure the sending number is associated with the approved campaign
- 验证活动状态为(仅品牌通过是不够的)
APPROVED - 检查吞吐量限制——品牌信任分数(TCR分配,Sinch API不返回)会影响每秒短信发送量
- 确保发送号码已关联到已通过审批的活动
General
通用最佳实践
- Always use registration type for production — it yields higher trust scores and throughput than
FULL.SIMPLIFIED - Use before submitting a campaign to check requirements and fees upfront.
campaignRegistrations:qualify - Poll registration status hourly — there are no webhooks for state transitions.
- Match company name and (EIN) to IRS records exactly to avoid brand rejection.
taxIdCorporate - If a campaign is rejected, the safest and most common approach is to create a new one with corrected data.
- Brands and campaigns can also be registered via the Sinch Build Dashboard UI.
- This API is REST-only (no SDK). Use direct HTTP calls.
- 生产环境始终使用注册类型——相比
FULL,它能获得更高的信任分数和吞吐量SIMPLIFIED - 提交活动前使用检查要求和费用
campaignRegistrations:qualify - 每小时轮询一次注册状态——状态变更没有Webhook通知
- 确保企业名称和(EIN)与IRS记录完全一致,避免品牌被拒绝
taxIdCorporate - 若活动被拒绝,最安全且最常用的方法是创建新活动并提交修正后的数据
- 品牌和活动也可通过Sinch Build Dashboard控制台进行注册
- 此API仅支持REST调用(无SDK),请使用直接HTTP调用
Links
相关链接
- Authentication setup
- 10DLC Registration API Reference
- Brand Registration API
- Campaign Registration API
- 10DLC Registration Options (Community)
- OpenAPI Spec (YAML)
Note: The same Registration API also includes TFN (Toll-Free Number) verification endpoints. This skill covers 10DLC only. For toll-free registration, see the API spec directly.
注意: 此注册API还包含TFN(免费号码)验证接口。本技能仅覆盖10DLC相关内容。免费号码注册请直接参考API规范。