Nhà phát triển

POST/tcr/v2/campaignBuilder

Đăng ký chiến dịch 10DLC

Gửi chiến dịch đủ điều kiện và phân biệt việc đăng ký với cơ quan đăng ký với việc kích hoạt với nhà mạng và trạng thái sẵn sàng gửi tin.

Trên trang này
  1. Đá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 đó
  2. Giữ tách biệt môi trường thử nghiệm và môi trường chính thức
  3. Gửi JSON chiến dịch
  4. Các trường của chiến dịch và yêu cầu có điều kiện
  5. Thử lại cùng một yêu cầu dự định một cách an toàn
  6. ID chiến dịch không phải là bước thiết lập gửi tin cuối cùng
  7. Phí chiến dịch chính thức
  8. Xử lý lỗi xác thực và lỗi một phần

Đá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

Yêu cầu chiến dịch 10DLC
Các trườngNội dung cần cung cấp
brandId, channelId, usecaseThươ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.
subUsecasesMộ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.
resellerIdMộ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, messageFlowHã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 … sample5Cá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, subscriberHelpHã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, helpKeywordsCá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, helpMessageCá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, embeddedLinkSampleHã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ự.
mnoIdsMộ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, directLendingCá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, termsAndConditionsLinkCá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ế.
termsAndConditionsSự 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.
autoRenewalCho 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, tagMã 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

Phí chiến dịch hằng tháng đã cấu hình hiện tại
Trường hợp sử dụngPhí 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.

Các lỗi chiến dịch
Kết quả HTTPHành động tiếp theo
400Hã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 404Hã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.
402Hã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.
409Hã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ụngHã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 502Việ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.