Đánh giá điều kiện thương hiệu trước khi đăng ký chiến dịch của thương hiệu đó
Chiến dịch 10DLC mô tả các tin nhắn mà doanh nghiệp đã đăng ký dự định gửi, cách người nhận đồng ý, và cách họ có thể nhận trợ giúp hoặc dừng tin nhắn. API này tạo bản ghi tại cơ quan đăng ký; việc hoàn tất kích hoạt với nhà mạng cho môi trường chính thức là một bước thiết lập tài khoản riêng. Hãy sử dụng thương hiệu thuộc sở hữu của bạn từ đăng ký thương hiệu, sau đó tải các trường hợp sử dụng khả dụng và, đối với trường hợp sử dụng đã chọn, yêu cầu hiện tại.
Hãy sử dụng kết quả đánh giá điều kiện hiện tại để chọn các trường hợp sử dụng phụ, ID mạng đủ điều kiện, mẫu tin nhắn và các khai báo đồng ý nhận/từ chối/trợ giúp. Yêu cầu có thể khác nhau tùy theo thương hiệu và mạng. Không gửi các định danh trong ví dụ và không sao chép mô tả về sự đồng ý của ví dụ cho một doanh nghiệp có quy trình khác.
Giữ tách biệt môi trường thử nghiệm và môi trường chính thức
Đối với bài thực hành trong môi trường thử nghiệm, hãy sử dụng thương hiệu giả lập của riêng bạn và một trường hợp sử dụng hiện tại mà thương hiệu đó đủ điều kiện. Chỉ sử dụng TRIAL khi kết quả đánh giá điều kiện đó cung cấp giá trị này. Cổng thông tin kiểm tra để đảm bảo thương hiệu đã chọn và môi trường chiến dịch phải khớp nhau. Yêu cầu API trực tiếp không chạy toàn bộ quy trình xác thực theo trình hướng dẫn của cổng thông tin thay cho bạn, vì vậy hãy giữ sự tách biệt đó trong phần tích hợp của bạn.
Việc tạo chiến dịch chính thức sẽ bị tính phí và không tự động làm cho một số điện thoại sẵn sàng gửi tin. Hãy giữ môi trường chiến dịch nhất quán với thương hiệu của chiến dịch, và xem xét phí cùng các điều khoản áp dụng trước khi tạo chiến dịch thực tế.
Gửi JSON chiến dịch
Hãy chuẩn bị campaign.json với các giá trị đủ điều kiện của bạn. R000000 có nghĩa là không có nhà bán lại; chỉ sử dụng giá trị này khi đó là cấu hình dự định. Đối với cấu hình nhà bán lại MultiTEL thông thường, hãy lấy định danh nhà bán lại MultiTEL LLC được phép từ bộ sưu tập nhà bán lại trong tài khoản của bạn hoặc từ luồng chuẩn bị của cổng thông tin thay vì gán cứng định danh của người khác.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'JSON dưới đây minh họa một chiến dịch dùng thử cho thương hiệu giả lập thuộc sở hữu của bạn. Hãy thay thế thương hiệu, trường hợp sử dụng, nhà bán lại và nội dung về sự đồng ý bằng các giá trị thực sự đủ điều kiện cho bài kiểm thử của bạn.
{
"brandId": "B123ABC",
"channelId": "10DLC",
"usecase": "TRIAL",
"subUsecases": [],
"resellerId": "R000000",
"description": "Trial account notices requested by users of the example application.",
"messageFlow": "Test users explicitly select an unchecked consent box before requesting these trial notices.",
"sample1": "Example application: your requested account notice is available. Reply STOP to stop notices.",
"subscriberOptin": true,
"optinKeywords": "START",
"optinMessage": "You are subscribed to the example application's requested account notices.",
"subscriberOptout": true,
"optoutKeywords": "STOP",
"optoutMessage": "You will no longer receive the example application's account notices.",
"subscriberHelp": true,
"helpKeywords": "HELP",
"helpMessage": "For help with example account notices, contact support@example.invalid.",
"embeddedLink": false,
"embeddedPhone": false,
"numberPool": false,
"ageGated": false,
"directLending": false,
"termsAndConditions": true,
"autoRenewal": false,
"mnoIds": [],
"referenceId": "your-trial-reference"
}Chỉ đặt termsAndConditions thành true sau khi người được ủy quyền đã xem xét và chấp nhận các điều khoản áp dụng. Ví dụ không phải là sự đồng ý thay cho bạn. Hãy sử dụng giá trị boolean JSON cho các cờ, không dùng chuỗi trong dấu ngoặc kép.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $IDEMPOTENCY_KEY" \
--data-binary @campaign.json \
'https://api.multitel.net/tcr/v2/campaignBuilder'Các trường của chiến dịch và yêu cầu có điều kiện
| Các trường | Nội dung cần cung cấp |
|---|---|
| brandId, channelId, usecase | Thương hiệu thuộc sở hữu của bạn, kênh 10DLC, và mã trường hợp sử dụng hiện tại đủ điều kiện. Hãy sử dụng mã từ kết quả đánh giá điều kiện, không sử dụng nhãn đã dịch. |
| subUsecases | Một mảng các mã trường hợp sử dụng phụ đủ điều kiện. Hãy tuân thủ số lượng tối thiểu và tối đa của kết quả đánh giá điều kiện đã chọn. |
| resellerId | Một định danh nhà bán lại được phép. Tuyến thuộc sở hữu tài khoản chấp nhận các nhà bán lại thuộc sở hữu, nhà bán lại dùng chung đã cấu hình của tuyến, hoặc giá trị không có nhà bán lại có chủ ý. Nhà bán lại không liên quan sẽ bị từ chối. |
| description, messageFlow | Hãy mô tả mục đích thực tế và cách thu thập sự đồng ý. Mỗi trường phải chứa 40–4096 ký tự. Hãy nêu hành động, biểu mẫu hoặc quy trình thực tế của người dùng; không bịa ra sự đồng ý mà ứng dụng của bạn không thu thập. |
| sample1 … sample5 | Các tin nhắn đại diện, thường mỗi tin dài 20–1024 ký tự. Cổng thông tin yêu cầu ít nhất một mẫu; các mạng đủ điều kiện có thể yêu cầu nhiều hơn. Hãy cung cấp số lượng theo yêu cầu của kết quả đánh giá điều kiện hiện tại. |
| subscriberOptin, subscriberOptout, subscriberHelp | Hãy khai báo các luồng dành cho người nhận được hỗ trợ bằng đúng các tên trường này. Khi một luồng được bật, hãy cung cấp các trường từ khóa và tin nhắn của luồng đó. Yêu cầu của mạng có thể khiến một số luồng trở thành bắt buộc. |
| optinKeywords, optoutKeywords, helpKeywords | Các từ khóa thực tế được công nhận, tối đa 255 ký tự. Các từ khóa này phải khớp với hành vi của ứng dụng nhận tin. |
| optinMessage, optoutMessage, helpMessage | Các tin nhắn tương ứng. Quy tắc hiện hành đã công bố cho các trường quy định 20–1024 ký tự. Hãy nêu hành vi hỗ trợ và từ chối nhận tin thực tế. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Hãy khai báo trung thực các liên kết hoặc số điện thoại được nhúng. Một mạng vốn đủ điều kiện vẫn có thể không cho phép các nội dung này. Mẫu liên kết cho phép tối đa 255 ký tự. |
| mnoIds | Một mảng tùy chọn gồm các ID mạng dạng số đủ điều kiện từ kết quả đánh giá điều kiện. Không cho rằng mọi mạng đều hỗ trợ trường hợp sử dụng đã chọn. |
| numberPool, ageGated, directLending | Các đặc điểm áp dụng của chiến dịch dưới dạng giá trị boolean JSON. Hãy chọn các giá trị này theo dịch vụ thực tế. |
| privacyPolicyLink, termsAndConditionsLink | Các URL chính sách công khai và điều khoản liên quan của bạn khi áp dụng, mỗi URL tối đa 2048 ký tự. Các URL này phải mô tả đúng dịch vụ nhắn tin thực tế. |
| termsAndConditions | Sự chấp nhận rõ ràng đối với các điều khoản chiến dịch áp dụng. Cổng thông tin yêu cầu true và trình hướng dẫn của cổng cũng thu thập các xác nhận cá nhân hiện tại. |
| autoRenewal | Cho biết chiến dịch có tự gia hạn hay không. Giá trị mặc định là true. Việc tắt gia hạn không loại bỏ cam kết tối thiểu đã gắn với chiến dịch chính thức. |
| referenceId, tag | Mã tham chiếu chiến dịch của bạn, tối đa 50 ký tự, và các thẻ tùy chọn. referenceId không phải là tiêu đề Idempotency-Key. |
Lược đồ đã công bố có một số cách viết hoa không nhất quán trong các bảng mô tả. Yêu cầu hiện tại của cổng thông tin sử dụng subscriberOptin và subscriberOptout như minh họa ở trên. Hãy giữ đúng cách viết hoa đó. Hướng dẫn này chỉ áp dụng cho quy trình 10DLC dành cho khách hàng thuê bao; không suy ra rằng các trường bắt buộc hay các bước kích hoạt của kênh khác cũng giống như vậy.
Thử lại cùng một yêu cầu dự định một cách an toàn
Hãy sử dụng một Idempotency-Key cho lần tạo dự định này. Khóa dài 1–128 ký tự ASCII in được, không chứa dấu cách và có phạm vi trong tài khoản chủ sở hữu. Khi thử lại, hãy giữ nguyên phương thức HTTP, đường dẫn, chuỗi truy vấn và byte nội dung chính xác. Tệp JSON đã định dạng lại sẽ xung đột ngay cả khi các giá trị của tệp là tương đương.
Yêu cầu trùng lặp đang xử lý có thể trả về HTTP 409 kèm Retry-After; các yêu cầu đã hoàn tất có thể phát lại phản hồi đã lưu. Lỗi đã lưu trong bộ nhớ đệm không chứng minh rằng cơ quan đăng ký chưa tạo gì. Hãy lưu campaignId, requestId và mọi tiêu đề tương quan, kiểm tra chiến dịch hiện có và kiểm tra trạng thái thực tế và xử lý các điểm không khớp do lỗi một phần trước khi xem xét dùng khóa mới.
ID chiến dịch không phải là bước thiết lập gửi tin cuối cùng
Phản hồi sử dụng trạng thái HTTP và JSON trực tiếp. Khi tạo thành công, hãy lưu campaignId và đọc trạng thái hiện tại của chiến dịch:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Quy trình chính thức hiện tại của cổng thông tin còn chia sẻ chiến dịch với nhà mạng nhắn tin và tải thương hiệu/chiến dịch vào tài khoản gửi tin. Đó là các thao tác riêng biệt với lệnh gọi tạo công khai này. Chiến dịch tại cơ quan đăng ký vẫn có thể tồn tại ngay cả khi bước chia sẻ hoặc tải lên nhà mạng sau đó thất bại.
Hãy sử dụng quy trình tạo chính thức tích hợp của cổng thông tin khi bạn cần chuỗi kết hợp gồm đăng ký, chia sẻ và tải lên nhà mạng. Đối với chiến dịch chính thức đã được tạo trực tiếp bằng API này, hãy giữ lại ID chiến dịch của chiến dịch đó và yêu cầu đối chiếu thiết lập nhà mạng của tài khoản thông qua bộ phận hỗ trợ. Giao diện khách hàng hiện tại không cung cấp nút tiếp tục chung cho mọi chiến dịch chính thức được tạo trực tiếp. Không tạo thêm một đăng ký khác để thử lại việc kích hoạt chiến dịch. Hãy xác nhận chiến dịch đang hoạt động và thiết lập nhà mạng đã hoàn tất trước khi gán số gửi tin. Số điện thoại cũng phải thuộc sở hữu của bạn, đang hoạt động và có hỗ trợ SMS. Việc tạo chiến dịch không gửi tin nhắn.
Phí chiến dịch chính thức
| Trường hợp sử dụng | Phí hằng tháng |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Các trường hợp sử dụng dự phòng đã cấu hình khác | $11.12 |
Các mức giá bán lẻ này đã được đối chiếu với cấu hình cổng thông tin hiện tại vào ngày 24 tháng Mười năm 2026. Hãy xác nhận trường hợp sử dụng đủ điều kiện hiện tại và giá hiển thị trước khi gửi yêu cầu chính thức. monthlyFee trong phản hồi đánh giá điều kiện của cơ quan đăng ký không tự động là giá bán lẻ MultiTEL của bạn.
Cổng thông tin hiện tại quy định cam kết tối thiểu ba tháng đối với các chiến dịch chính thức không thuộc lĩnh vực chính trị. Hãy xem xét các điều khoản áp dụng và lựa chọn gia hạn trước khi xác nhận. Phí đăng ký, thuê số, thẩm định bổ sung và sử dụng tin nhắn là các khoản phí riêng. Phản hồi tạo thành công không tự chứng minh rằng mọi bước thanh toán hay kích hoạt với nhà mạng đã hoàn tất.
Xử lý lỗi xác thực và lỗi một phần
Hãy đọc status HTTP và JSON được trả về. Lỗi xác thực có thể là các mảng đối tượng code/description; lỗi cục bộ thay vào đó có thể là các đối tượng gồm message, status và, đối với một số lỗi xử lý, requestId.
| Kết quả HTTP | Hành động tiếp theo |
|---|---|
| 400 | Hãy sửa các trường cụ thể hoặc khóa lũy đẳng. Đọc lại kết quả đánh giá điều kiện hiện tại, số lượng mẫu bắt buộc và yêu cầu về luồng dành cho người nhận. |
| 401, 403 hoặc 404 | Hãy kiểm tra thông tin xác thực API và địa chỉ IP nguồn được phép, sau đó kiểm tra quyền sở hữu và quyền hạn đối với thương hiệu/nhà bán lại. Không sử dụng định danh từ tài khoản khác. |
| 402 | Hãy xem xét nguồn tiền cho môi trường chính thức và quyền mua hàng trước khi thử lại cùng một lần tạo dự định. |
| 409 | Hãy phân biệt giữa việc phát lại yêu cầu đang xử lý và yêu cầu đã thay đổi nhưng dùng cùng một khóa. Hãy giữ lại chiến dịch hiện có và chi tiết yêu cầu khi đối chiếu. |
| 429 hoặc bộ giới hạn không khả dụng | Hãy tuân thủ Retry-After khi tiêu đề này xuất hiện và giữ lại khóa gốc cùng yêu cầu chính xác. |
| 500 hoặc 502 | Việc tạo có thể đã xảy ra. Hãy lưu mọi campaignId và requestId, kiểm tra chiến dịch hiện có, rồi tiếp tục hoặc đối chiếu việc kích hoạt chiến dịch thay vì tạo bản trùng lặp. |