sinch-imported-numbers-hosting-orders
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSinch Imported Numbers & Hosting Orders
Sinch 导入号码与托管订单
Overview
概述
The Imported Numbers and Hosting Orders API imports non-Sinch phone numbers for use with Sinch SMS without porting. It manages the lifecycle from qualification through text-enablement, including LOA generation and carrier OSR updates.
Imported Numbers和Hosting Orders API无需号码转网,即可将非Sinch电话号码导入以用于Sinch SMS服务。它管理从号码验证到短信启用的全生命周期,包括LOA生成和运营商OSR更新。
Agent Instructions
Agent操作说明
Before generating code, ask the user these clarifying questions:
- Goal — What do you need?
- Import a number (single or bulk)?
- Qualify numbers for text-enablement?
- Text-enable qualified numbers?
- Check status of an existing order?
- LOA type (if text-enabling) — Are you a direct Sinch customer, a reseller, or do you have a blanket LOA?
- Number type (if text-enabling) — Standard or Toll-Free?
- Language — curl, Node.js SDK, Python, Java?
Wait for answers, then follow the matching workflow below.
生成代码前,请向用户询问以下澄清问题:
- 目标 — 你需要实现什么功能?
- 导入单个号码还是批量导入?
- 验证号码以启用短信功能?
- 为已验证号码启用短信功能?
- 检查现有订单状态?
- LOA类型(若启用短信功能)— 你是Sinch直接客户、经销商,还是拥有通用LOA(blanket LOA)?
- 号码类型(若启用短信功能)— 标准号码还是免费电话(Toll-Free)?
- 开发语言/工具 — curl、Node.js SDK、Python还是Java?
等待用户回复后,遵循下方对应的工作流操作。
Decision Tree
决策树
User wants to work with imported numbers →
├─ Import numbers
│ ├─ Single number → Workflow A (Import Number)
│ └─ Bulk (≤5) → Workflow B (Bulk Import via Hosting Order)
├─ Qualify numbers → Workflow C (Qualify → email invoices)
├─ Text-enable numbers
│ ├─ Standard numbers → Workflow D (Text-Enable)
│ └─ Toll-Free → Workflow D variant (TF endpoint)
├─ Check order status → Workflow E (Hosting Order Status)
└─ Manage numbers → Workflow F (CRUD operations)用户需要处理导入号码 →
├─ 导入号码
│ ├─ 单个号码 → 工作流A(导入单个号码)
│ └─ 批量(≤5个) → 工作流B(通过托管订单批量导入)
├─ 验证号码 → 工作流C(验证 → 发送发票邮件)
├─ 启用短信功能
│ ├─ 标准号码 → 工作流D(启用短信功能)
│ └─ 免费电话 → 工作流D变体(使用TF端点)
├─ 检查订单状态 → 工作流E(托管订单状态查询)
└─ 管理号码 → 工作流F(CRUD操作)Critical Rules
重要规则
- E.164 format required. All phone numbers must include leading (e.g.,
+).+12025550134 - Qualification requires manual review. After , the user must email invoices to
addNumbers. Takes 1–3 business days.orders@sinch.com - Unlink before relinking. To change service plan or campaign, first set both to empty string , then set new values in a separate request.
"" - Hosting orders are async. Poll order status or set per-request.
callbackUrl - List hosting orders requires all four params: ,
states,type,servicePlanIdare all required.campaignId - is read-only on responses. Exception: writable in
migrateToSinchTmorequests.hostingOrders:importNumbers
- 必须使用E.164格式。所有电话号码必须以开头(例如:
+)。+12025550134 - 号码验证需要人工审核。调用后,用户必须将发票邮件发送至
addNumbers,审核需1-3个工作日。orders@sinch.com - 重新关联前需先解绑。若要更改服务计划或活动,需先将两者设置为空字符串,再通过单独请求设置新值。
"" - 托管订单为异步处理。可轮询订单状态,或在请求中设置。
callbackUrl - 查询托管订单列表需提供四个参数:、
states、type、servicePlanId均为必填项。campaignId - 字段:在响应中为只读字段。例外情况:在
migrateToSinchTmo请求中可写。hostingOrders:importNumbers
Getting Started
快速开始
Authentication
身份验证
See sinch-authentication for full auth setup. This API uses OAuth2 client credentials (production) or Basic Auth (testing only, rate-limited).
Base URL:
https://imported.numbers.api.sinch.comRegion: US and CA only. Single global endpoint (not regionalized).
完整的身份验证设置请参考sinch-authentication。该API在生产环境使用OAuth2客户端凭证,测试环境仅支持基础认证(有调用频率限制)。
基础URL:
https://imported.numbers.api.sinch.com适用区域: 仅美国和加拿大。使用单一全球端点(无区域化区分)。
First API Call — Import a Number
首次API调用 — 导入单个号码
bash
curl -X POST "https://imported.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/importedNumbers" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+11234567890",
"regionCode": "US",
"displayName": "My Number",
"smsConfiguration": {
"servicePlanId": "YOUR_service_plan_id",
"campaignId": "YOUR_campaign_id"
},
"callbackUrl": "https://example.com/callback"
}'bash
curl -X POST "https://imported.numbers.api.sinch.com/v1/projects/{PROJECT_ID}/importedNumbers" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+11234567890",
"regionCode": "US",
"displayName": "My Number",
"smsConfiguration": {
"servicePlanId": "YOUR_service_plan_id",
"campaignId": "YOUR_campaign_id"
},
"callbackUrl": "https://example.com/callback"
}'Key Concepts
核心概念
- Imported Number — Non-Sinch number enabled for SMS via Sinch as DCA. Linked to a service plan and optionally a 10DLC campaign.
- Qualified Number — Number that passed eligibility review. States: →
ELIGIBLE_CHECK_PENDING/ELIGIBLE→NOT_ELIGIBLE→VERIFICATION_PENDING/VERIFIED/VERIFICATION_FAILED→VERIFICATION_BLOCKED→HOSTING_IN_PROGRESS/HOSTING_DONE.HOSTING_FAILED - Hosting Order — Async provisioning tracker. States: →
DRAFT→SUBMITTED→WAITING_FOR_LOA_SIGNATURE→IN_PROGRESS/COMPLETED. Type:REJECTEDorIMPORT.TYPE_TEXT_ENABLE - LOA — Letter of Authorization for text-enablement. Three types: ,
directLoaInfo,resellerLoaInfo(emptyblanketLoaInfo).{} - Service Plan ID — Links number to SMS service. Campaign ID — Links to 10DLC campaign (US A2P).
- OSR Update — Carrier-level record update. Schedulable via .
scheduledOsrUpdateTime
- 导入号码 — 作为DCA通过Sinch启用SMS功能的非Sinch号码,关联至某个服务计划,可选关联10DLC活动。
- 已验证号码 — 通过资格审核的号码。状态流程:→
ELIGIBLE_CHECK_PENDING/ELIGIBLE→NOT_ELIGIBLE→VERIFICATION_PENDING/VERIFIED/VERIFICATION_FAILED→VERIFICATION_BLOCKED→HOSTING_IN_PROGRESS/HOSTING_DONE。HOSTING_FAILED - 托管订单 — 异步配置跟踪器。状态流程:→
DRAFT→SUBMITTED→WAITING_FOR_LOA_SIGNATURE→IN_PROGRESS/COMPLETED。类型分为REJECTED或IMPORT。TYPE_TEXT_ENABLE - LOA — 用于启用短信功能的授权书(Letter of Authorization)。分为三种类型:、
directLoaInfo、resellerLoaInfo(值为blanketLoaInfo)。{} - 服务计划ID(Service Plan ID) — 将号码与SMS服务关联。活动ID(Campaign ID) — 关联至10DLC活动(美国A2P场景)。
- OSR更新 — 运营商级记录更新,可通过设置调度时间。
scheduledOsrUpdateTime
Workflows
工作流
Workflow A: Import Single Number
工作流A:导入单个号码
Ask for: , , . Optional: , , .
phoneNumberregionCodeservicePlanIdcampaignIddisplayNamecallbackUrl- 1. Import number via
POST /importedNumbers - 2. Verify:
GET /importedNumbers/{phoneNumber}
Numbers with their own NNID must complete NNID provisioning first.
API docs: Import number → Get imported number
Workflow B: Bulk Import via Hosting Order
工作流B:通过托管订单批量导入
Ask for: (list, max 5), , . Optional: , , .
numbersregionCodeservicePlanIdcampaignIdcallbackUrlmigrateToSinchTmo- 1. Create hosting order via
POST /hostingOrders:importNumbers - 2. Track: — wait for
GET /hostingOrders/{orderId}COMPLETED - 3. Verify: — check per-number status
GET /hostingOrders/{orderId}/numbers
Limit: 5 numbers per request by default. Contact account manager to increase.
需获取:(号码列表,最多5个)、、。可选参数:、、。
numbersregionCodeservicePlanIdcampaignIdcallbackUrlmigrateToSinchTmo- 1. 调用创建托管订单
POST /hostingOrders:importNumbers - 2. 跟踪状态:调用— 等待状态变为
GET /hostingOrders/{orderId}COMPLETED - 3. 验证:调用— 检查每个号码的状态
GET /hostingOrders/{orderId}/numbers
限制:默认每次请求最多导入5个号码。如需提升限制,请联系客户经理。
Workflow C: Qualify Numbers
工作流C:验证号码
Ask for: list of (E.164).
phoneNumbers- 1. Submit batch via (body:
POST /qualifiedNumbers:addNumbers){"phoneNumbers": [...]} - 2. Remind user: "Email invoices for these numbers to orders@sinch.com — qualification won't proceed without them."
- 3. Track: — wait for
GET /qualifiedNumbers/{phoneNumber}stateELIGIBLE - 4. If ownership verification required: run voice challenge (see Workflow F)
API docs: Create batch → Get qualified number
Workflow D: Text-Enable Numbers
工作流D:启用短信功能
Ask for: (list, max 500), , , and LOA info. Optional: , , , .
numbersregionCodeservicePlanIdcampaignIdnnidscheduledOsrUpdateTimecallbackUrlDetermine LOA type:
-
Direct customer →(authorized person, address, voice carrier)
directLoaInfo -
Reseller →(business name + authorized person, address, voice carrier)
resellerLoaInfo -
Blanket LOA →(pre-approved with account manager)
blanketLoaInfo: {} -
1. Text-enable via(or
POST /qualifiedNumbers:textEnableNumbersfor full order response)POST /hostingOrders:textEnableNumbers -
2. LOA sent to authorized person's email for e-signature — confirm email is correct before submitting
-
3. Track hosting order:
GET /hostingOrders/{orderId}
For Toll-Free, use or instead.
POST /qualifiedNumbers:textEnableTollFreeNumbersPOST /hostingOrders:textEnableTollFreeNumbers需获取:列表(最多500个)、、,以及LOA信息。可选参数:、、、。
numbersregionCodeservicePlanIdcampaignIdnnidscheduledOsrUpdateTimecallbackUrl确定LOA类型:
-
直接客户 → 使用(需提供授权人、地址、语音运营商信息)
directLoaInfo -
经销商 → 使用(需提供企业名称+授权人、地址、语音运营商信息)
resellerLoaInfo -
通用LOA → 使用(需提前与客户经理确认获批)
blanketLoaInfo: {} -
1. 调用启用短信功能(或调用
POST /qualifiedNumbers:textEnableNumbers获取完整订单响应)POST /hostingOrders:textEnableNumbers -
2. LOA将发送至授权人邮箱以进行电子签名 — 提交前请确认邮箱地址正确
-
3. 跟踪托管订单状态:调用
GET /hostingOrders/{orderId}
对于免费电话(Toll-Free),请使用或替代。
POST /qualifiedNumbers:textEnableTollFreeNumbersPOST /hostingOrders:textEnableTollFreeNumbersWorkflow E: Check Hosting Order Status
工作流E:检查托管订单状态
- 1. List orders: (all four required)
GET /hostingOrders?states=...&type=...&servicePlanId=...&campaignId=... - 2. Get specific:
GET /hostingOrders/{orderId} - 3. Get report: (shows totals for OSR, SMS provisioned, campaign linked)
GET /hostingOrders/{orderId}/report - 4. Drill into numbers:
GET /hostingOrders/{orderId}/numbers
Workflow F: Manage Numbers & Verification
工作流F:号码管理与验证
Imported numbers: list, get, update, delete via and .
/importedNumbers/importedNumbers/{phoneNumber}Qualified numbers: list (requires param), get, delete via .
states/qualifiedNumbersVoice challenge (ownership verification):
- 1. — triggers voice call with code
POST /qualifiedNumbers/{phone}:sendVoiceChallenge - 2. — body:
POST /qualifiedNumbers/{phone}:verifyVoiceChallenge{"code": "1234"}
API docs: List imported · Update imported · Delete imported · List qualified · Send challenge · Verify challenge
导入号码管理:通过和接口执行列表查询、详情查询、更新、删除操作。
/importedNumbers/importedNumbers/{phoneNumber}已验证号码管理:通过接口执行列表查询(需参数)、详情查询、删除操作。
/qualifiedNumbersstates语音验证挑战(所有权验证):
- 1. 调用— 触发语音呼叫并发送验证码
POST /qualifiedNumbers/{phone}:sendVoiceChallenge - 2. 调用— 请求体:
POST /qualifiedNumbers/{phone}:verifyVoiceChallenge{"code": "1234"}
Callbacks
回调
Callback URLs are set per-request via on import and text-enable operations (not project-level). Configure HMAC signing via with — verifies payloads via header.
callbackUrlPATCH /callbackConfiguration{"hmacSecret": "..."}X-Sinch-SignatureSee references/callbacks.md for full payload schema, event types, and failure codes.
Allowlist these IPs: , ,
54.76.19.15954.78.194.3954.155.83.128回调URL通过导入和启用短信功能请求中的参数按请求设置(非项目级全局设置)。可通过接口配置HMAC签名,请求体为 — 通过头验证请求 payload。
callbackUrlPATCH /callbackConfiguration{"hmacSecret": "..."}X-Sinch-Signature完整的payload schema、事件类型和错误码请参考references/callbacks.md。
需将以下IP加入白名单:, ,
54.76.19.15954.78.194.3954.155.83.128Gotchas and Best Practices
注意事项与最佳实践
- Bulk import limit: allows 5 numbers by default. Use
hostingOrders:importNumbersfor single numbers.POST /importedNumbers - Text-enable limit: Up to 500 numbers per request.
- 409 Conflict means the number is already imported. Check with first.
GET /importedNumbers/{phoneNumber} - Hosting order states: →
SUBMITTED→WAITING_FOR_LOA_SIGNATURE→IN_PROGRESS/COMPLETED.REJECTED
- 批量导入限制:默认最多支持5个号码。单个号码导入请使用
hostingOrders:importNumbers接口。POST /importedNumbers - 短信启用限制:每次请求最多支持500个号码。
- 409 Conflict错误表示该号码已被导入。请先调用查询确认。
GET /importedNumbers/{phoneNumber} - 托管订单状态流程:→
SUBMITTED→WAITING_FOR_LOA_SIGNATURE→IN_PROGRESS/COMPLETED。REJECTED