ডেভেলপার

POST/tcr/v2/campaignBuilder

একটি 10DLC ক্যাম্পেইন নিবন্ধন করুন

একটি যোগ্য ক্যাম্পেইন জমা দিন এবং রেজিস্ট্রি নিবন্ধনকে ক্যারিয়ার সক্রিয়করণ ও পাঠানোর প্রস্তুতি থেকে আলাদা করুন।

এই পৃষ্ঠায়
  1. ক্যাম্পেইন নিবন্ধনের আগে ব্র্যান্ডের যোগ্যতা যাচাই করুন
  2. স্যান্ডবক্স ও প্রোডাকশন আলাদা রাখুন
  3. ক্যাম্পেইন JSON জমা দিন
  4. ক্যাম্পেইন ফিল্ড ও শর্তাধীন প্রয়োজনীয়তা
  5. একই উদ্দিষ্ট অনুরোধ নিরাপদে পুনরায় চেষ্টা করুন
  6. একটি ক্যাম্পেইন আইডি চূড়ান্ত পাঠানোর সেটআপ নয়
  7. প্রোডাকশন ক্যাম্পেইন ফি
  8. যাচাইকরণ ও আংশিক ব্যর্থতা পরিচালনা করুন

ক্যাম্পেইন নিবন্ধনের আগে ব্র্যান্ডের যোগ্যতা যাচাই করুন

একটি 10DLC ক্যাম্পেইন বর্ণনা করে নিবন্ধিত ব্যবসা কী বার্তা পাঠাতে চায়, প্রাপকরা কীভাবে সম্মতি দেন এবং কীভাবে তারা সাহায্য পেতে বা বার্তা বন্ধ করতে পারেন। এই API রেজিস্ট্রি রেকর্ড তৈরি করে; প্রোডাকশন ক্যারিয়ার সক্রিয়করণ সম্পূর্ণ করা একটি পৃথক অ্যাকাউন্ট সেটআপ পদক্ষেপ। আপনার মালিকানাধীন ব্র্যান্ড ব্যবহার করুন, যেটি ব্র্যান্ড নিবন্ধন থেকে পাওয়া গেছে। এরপর এর উপলব্ধ ব্যবহার-ক্ষেত্রগুলি এবং নির্বাচিত ব্যবহার-ক্ষেত্রের বর্তমান প্রয়োজনীয়তা লোড করুন।

সাব-ব্যবহার-ক্ষেত্র, যোগ্য নেটওয়ার্ক আইডি, বার্তার নমুনা এবং অপ্ট-ইন/আউট/সহায়তা ঘোষণা বেছে নিতে বর্তমান যোগ্যতা ফলাফল ব্যবহার করুন। প্রয়োজনীয়তা ব্র্যান্ড ও নেটওয়ার্কভেদে ভিন্ন হতে পারে। উদাহরণের শনাক্তকারী জমা দেবেন না বা ভিন্ন প্রক্রিয়ার ব্যবসার জন্য এর সম্মতি বিবরণ অনুলিপি করবেন না।

স্যান্ডবক্স ও প্রোডাকশন আলাদা রাখুন

স্যান্ডবক্স অনুশীলনের জন্য, আপনার নিজের মক ব্র্যান্ড এবং বর্তমান ব্যবহার-ক্ষেত্র ব্যবহার করুন যার জন্য এটি যোগ্য। TRIAL শুধুমাত্র তখন ব্যবহার করুন যখন সেই যোগ্যতা এটি প্রদান করে। পোর্টাল পরীক্ষা করে যে নির্বাচিত ব্র্যান্ড ও ক্যাম্পেইন পরিবেশ সামঞ্জস্যপূর্ণ। সরাসরি API অনুরোধ আপনার জন্য পোর্টালের সম্পূর্ণ উইজার্ড যাচাইকরণ চালায় না, তাই আপনার ইন্টিগ্রেশনে সেই পৃথকীকরণ বজায় রাখুন।

প্রোডাকশন ক্যাম্পেইন তৈরি বিলযোগ্য এবং এটি স্বয়ংক্রিয়ভাবে কোনো নম্বরকে পাঠানোর জন্য প্রস্তুত করে না। ক্যাম্পেইন পরিবেশ এর ব্র্যান্ডের সাথে সামঞ্জস্যপূর্ণ রাখুন এবং লাইভ ক্যাম্পেইন তৈরির আগে ফি ও প্রযোজ্য শর্তাবলী পর্যালোচনা করুন।

ক্যাম্পেইন JSON জমা দিন

campaign.json আপনার যোগ্য মান দিয়ে প্রস্তুত করুন। R000000 অর্থ কোনো রিসেলার নেই; শুধুমাত্র তখন এটি ব্যবহার করুন যখন সেটিই উদ্দিষ্ট কনফিগারেশন। সাধারণ MultiTEL রিসেলার কনফিগারেশনের জন্য, অন্যের শনাক্তকারী হার্ডকোড না করে আপনার অ্যাকাউন্টের রিসেলার সংগ্রহ বা পোর্টাল প্রস্তুতি প্রবাহ থেকে অনুমোদিত MultiTEL LLC রিসেলার শনাক্তকারী সংগ্রহ করুন।

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'

নিম্নলিখিত JSON আপনার মালিকানাধীন মক ব্র্যান্ডের জন্য একটি ট্রায়াল ক্যাম্পেইন চিত্রিত করে। আপনার পরীক্ষার জন্য প্রকৃতপক্ষে যোগ্য মান দিয়ে ব্র্যান্ড, ব্যবহার-ক্ষেত্র, রিসেলার এবং সম্মতি পাঠ্য প্রতিস্থাপন করুন।

{
  "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"
}

termsAndConditions কে true এ সেট করুন শুধুমাত্র অনুমোদিত ব্যক্তি প্রযোজ্য শর্তাবলী পর্যালোচনা ও গ্রহণ করার পরে। উদাহরণটি আপনার পক্ষে সম্মতি নয়। ফ্ল্যাগগুলির জন্য JSON বুলিয়ান ব্যবহার করুন, উদ্ধৃত স্ট্রিং নয়।

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'

ক্যাম্পেইন ফিল্ড ও শর্তাধীন প্রয়োজনীয়তা

10DLC ক্যাম্পেইন অনুরোধ
ফিল্ডগুলিযা প্রদান করতে হবে
brandId, channelId, usecaseআপনার মালিকানাধীন ব্র্যান্ড, চ্যানেল 10DLC এবং একটি যোগ্য বর্তমান ব্যবহার-ক্ষেত্র কোড। যোগ্যতা থেকে কোড ব্যবহার করুন, অনূদিত লেবেল নয়।
subUsecasesযোগ্য সাব-ব্যবহার-ক্ষেত্র কোডের একটি অ্যারে। নির্বাচিত যোগ্যতার সর্বনিম্ন ও সর্বোচ্চ সংখ্যা মেনে চলুন।
resellerIdএকটি অনুমোদিত রিসেলার শনাক্তকারী। অ্যাকাউন্ট-মালিকানাধীন রুট মালিকানাধীন রিসেলার, এর কনফিগার করা শেয়ার্ড রিসেলার বা ইচ্ছাকৃত নো-রিসেলার মান গ্রহণ করে। সম্পর্কহীন রিসেলার প্রত্যাখ্যাত হয়।
description, messageFlowপ্রকৃত উদ্দেশ্য এবং কীভাবে সম্মতি সংগ্রহ করা হয় তা বর্ণনা করুন। প্রতিটিতে 40–4096 অক্ষর থাকা উচিত। প্রকৃত ব্যবহারকারী ক্রিয়া, ফর্ম বা প্রক্রিয়া অন্তর্ভুক্ত করুন; এমন সম্মতি উদ্ভাবন করবেন না যা আপনার অ্যাপ্লিকেশন সংগ্রহ করে না।
sample1 … sample5প্রতিনিধিত্বমূলক বার্তা, সাধারণত প্রতিটি 20–1024 অক্ষর। পোর্টালের কমপক্ষে একটি প্রয়োজন; যোগ্য নেটওয়ার্ক আরও বেশি প্রয়োজন করতে পারে। বর্তমান যোগ্যতার জন্য প্রয়োজনীয় সংখ্যা সরবরাহ করুন।
subscriberOptin, subscriberOptout, subscriberHelpএই সঠিক ফিল্ড নাম ব্যবহার করে সমর্থিত প্রাপক প্রবাহ ঘোষণা করুন। যখন একটি প্রবাহ সক্রিয় থাকে, এর কীওয়ার্ড ও বার্তা ফিল্ড সরবরাহ করুন। নেটওয়ার্ক প্রয়োজনীয়তা নির্দিষ্ট প্রবাহকে বাধ্যতামূলক করতে পারে।
optinKeywords, optoutKeywords, helpKeywordsপ্রকৃত স্বীকৃত কীওয়ার্ড, সর্বোচ্চ 255 অক্ষর পর্যন্ত। এগুলি গ্রহণকারী অ্যাপ্লিকেশনের আচরণের সাথে মিলতে হবে।
optinMessage, optoutMessage, helpMessageসংশ্লিষ্ট বার্তাগুলি। বর্তমান প্রকাশিত ফিল্ড নিয়ম 20–1024 অক্ষর নির্দিষ্ট করে। প্রকৃত সহায়তা ও অপ্ট-আউট আচরণ অন্তর্ভুক্ত করুন।
embeddedLink, embeddedPhone, embeddedLinkSampleএমবেডেড লিংক বা ফোন নম্বর সত্যভাবে ঘোষণা করুন। অন্যান্য যোগ্যতার শর্ত পূরণ করা নেটওয়ার্কও এগুলি নিষিদ্ধ করতে পারে। একটি লিংক নমুনা সর্বোচ্চ 255 অক্ষর পর্যন্ত অনুমোদন করে।
mnoIdsযোগ্যতা থেকে প্রাপ্ত যোগ্য সংখ্যাসূচক নেটওয়ার্ক আইডির একটি ঐচ্ছিক অ্যারে। অনুমান করবেন না যে প্রতিটি নেটওয়ার্ক নির্বাচিত ব্যবহার-ক্ষেত্র সমর্থন করে।
numberPool, ageGated, directLendingJSON বুলিয়ান হিসাবে প্রযোজ্য ক্যাম্পেইন বৈশিষ্ট্য। প্রকৃত পরিষেবা অনুযায়ী এগুলি বেছে নিন।
privacyPolicyLink, termsAndConditionsLinkপ্রযোজ্য হলে আপনার প্রাসঙ্গিক পাবলিক নীতি ও শর্তাবলীর URL, প্রতিটি সর্বোচ্চ 2048 অক্ষর পর্যন্ত। এগুলি প্রকৃত বার্তা পরিষেবা বর্ণনা করতে হবে।
termsAndConditionsপ্রযোজ্য ক্যাম্পেইন শর্তাবলীর স্পষ্ট গ্রহণ। পোর্টালের true প্রয়োজন এবং এর উইজার্ড বর্তমান পৃথক নিশ্চিতকরণও সংগ্রহ করে।
autoRenewalক্যাম্পেইন নবায়ন হবে কিনা। ডিফল্ট হলো true। নবায়ন অক্ষম করা প্রোডাকশন ক্যাম্পেইনের সাথে ইতিমধ্যে যুক্ত ন্যূনতম প্রতিশ্রুতি অপসারণ করে না।
referenceId, tagআপনার ক্যাম্পেইন রেফারেন্স, সর্বোচ্চ 50 অক্ষর পর্যন্ত এবং ঐচ্ছিক ট্যাগ। referenceId Idempotency-Key হেডার নয়।

প্রকাশিত স্কিমায় বর্ণনামূলক টেবিলে কিছু অসামঞ্জস্যপূর্ণ বড় হাতের অক্ষর রয়েছে। বর্তমান পোর্টাল অনুরোধ উপরে দেখানো হিসাবে subscriberOptin এবং subscriberOptout ব্যবহার করে। সেই সঠিক কেসিং বজায় রাখুন। এই নির্দেশিকা টেন্যান্ট-মুখী 10DLC কর্মপ্রবাহ কভার করে; অনুমান করবেন না যে ভিন্ন চ্যানেলের প্রয়োজনীয় ফিল্ড বা সক্রিয়করণ ধাপ একই।

একই উদ্দিষ্ট অনুরোধ নিরাপদে পুনরায় চেষ্টা করুন

এই উদ্দিষ্ট তৈরির জন্য একটি Idempotency-Key ব্যবহার করুন। কীটি স্পেস ছাড়া 1–128 মুদ্রণযোগ্য ASCII অক্ষর এবং মালিক অ্যাকাউন্টের মধ্যে সীমাবদ্ধ। পুনরায় চেষ্টায় HTTP পদ্ধতি, পাথ, ক্যোয়ারি স্ট্রিং এবং সঠিক বডি বাইট অপরিবর্তিত রাখুন। এর মান সমতুল্য হলেও পুনর্গঠিত JSON ফাইল বিরোধ সৃষ্টি করে।

চলমান ডুপ্লিকেট Retry-After সহ HTTP 409 ফেরত দিতে পারে; সম্পন্ন অনুরোধগুলি তাদের সংরক্ষিত প্রতিক্রিয়া পুনরায় চালাতে পারে। ক্যাশ করা ত্রুটি প্রমাণ করে না যে রেজিস্ট্রি কিছুই তৈরি করেনি। নতুন কী বিবেচনার আগে campaignId, requestId এবং যেকোনো পারস্পরিক সম্পর্ক হেডার সংরক্ষণ করুন, বিদ্যমান ক্যাম্পেইন পরিদর্শন করুন এবং প্রকৃত অবস্থা যাচাই করে আংশিক ব্যর্থতার ফলে তৈরি হওয়া অসংগতি দূর করুন।

একটি ক্যাম্পেইন আইডি চূড়ান্ত পাঠানোর সেটআপ নয়

প্রতিক্রিয়া HTTP স্থিতি ও সরাসরি JSON ব্যবহার করে। সফল তৈরিতে, campaignId সংরক্ষণ করুন এবং এর বর্তমান অবস্থা পড়ুন:

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

বর্তমান পোর্টালের প্রোডাকশন কর্মপ্রবাহ মেসেজিং ক্যারিয়ারের সাথে ক্যাম্পেইন শেয়ার করে এবং পাঠানোর অ্যাকাউন্টে ব্র্যান্ড/ক্যাম্পেইন লোড করে। এগুলি এই পাবলিক তৈরি কল থেকে পৃথক অপারেশন। পরবর্তী শেয়ারিং বা ক্যারিয়ার-লোডিং ধাপ ব্যর্থ হলেও একটি রেজিস্ট্রি ক্যাম্পেইন থাকতে পারে।

যখন আপনার সম্মিলিত নিবন্ধন, শেয়ারিং ও ক্যারিয়ার-লোডিং ক্রম প্রয়োজন তখন পোর্টালের সমন্বিত প্রোডাকশন তৈরি কর্মপ্রবাহ ব্যবহার করুন। এই API দ্বারা সরাসরি ইতিমধ্যে তৈরি প্রোডাকশন ক্যাম্পেইনের জন্য, এর ক্যাম্পেইন আইডি ধরে রাখুন এবং সহায়তার মাধ্যমে অ্যাকাউন্টের ক্যারিয়ার সেটআপ মিটমাট করুন। বর্তমান গ্রাহক UI সরাসরি তৈরি প্রতিটি প্রোডাকশন ক্যাম্পেইনের জন্য সাধারণ পুনরায় শুরু বোতাম প্রকাশ করে না। এর সক্রিয়করণ পুনরায় চেষ্টা করতে আরেকটি নিবন্ধন তৈরি করবেন না। পাঠানোর নম্বর নির্ধারণের আগে ক্যাম্পেইন সক্রিয় এবং ক্যারিয়ার সেটআপ সম্পূর্ণ হয়েছে তা নিশ্চিত করুন। নম্বরটিও মালিকানাধীন, সক্রিয় এবং SMS-সক্ষম হতে হবে। ক্যাম্পেইন তৈরি বার্তা পাঠায় না।

প্রোডাকশন ক্যাম্পেইন ফি

বর্তমান কনফিগার করা মাসিক ক্যাম্পেইন ফি
ব্যবহার-ক্ষেত্রমাসিক ফি
LOW_VOLUME, UCAAS_LOW$1.67
SOLE_PROPRIETOR$2.23
CHARITY$3.34
EMERGENCY$5.56
AGENTS_FRANCHISES$33.34
অন্যান্য কনফিগার করা ফলব্যাক ব্যবহার-ক্ষেত্র$11.12

এই খুচরা পরিমাণ 24 অক্টোবর 2026 তারিখে বর্তমান পোর্টাল কনফিগারেশনের সাথে যাচাই করা হয়েছিল। প্রোডাকশন জমা দেওয়ার আগে বর্তমান যোগ্য ব্যবহার-ক্ষেত্র ও প্রদর্শিত মূল্য নিশ্চিত করুন। রেজিস্ট্রি যোগ্যতা প্রতিক্রিয়ায় একটি monthlyFee স্বয়ংক্রিয়ভাবে আপনার MultiTEL খুচরা মূল্য নয়।

বর্তমান পোর্টাল অরাজনৈতিক প্রোডাকশন ক্যাম্পেইনের জন্য তিন মাসের ন্যূনতম প্রতিশ্রুতি উল্লেখ করে। নিশ্চিত করার আগে প্রযোজ্য শর্তাবলী ও নবায়ন পছন্দ পর্যালোচনা করুন। নিবন্ধন, নম্বর ভাড়া, অতিরিক্ত যাচাইকরণ এবং বার্তা ব্যবহার পৃথক চার্জ। সফল তৈরি প্রতিক্রিয়া স্বাধীনভাবে প্রমাণ করে না যে প্রতিটি বিলিং বা ক্যারিয়ার-সক্রিয়করণ ধাপ সম্পূর্ণ হয়েছে।

যাচাইকরণ ও আংশিক ব্যর্থতা পরিচালনা করুন

HTTP status এবং ফেরত আসা JSON পড়ুন। যাচাইকরণ ব্যর্থতা code/description অবজেক্টের অ্যারে হতে পারে; স্থানীয় ব্যর্থতা পরিবর্তে message, status সহ অবজেক্ট হতে পারে এবং কিছু প্রক্রিয়াকরণ ত্রুটির জন্য, requestId।

ক্যাম্পেইন ব্যর্থতা
HTTP ফলাফলপরবর্তী পদক্ষেপ
400নির্দিষ্ট ফিল্ড বা আইডেম্পোটেন্সি কী সংশোধন করুন। বর্তমান যোগ্যতা, প্রয়োজনীয় নমুনা সংখ্যা এবং প্রাপক-প্রবাহ প্রয়োজনীয়তা পুনরায় পড়ুন।
401, 403 বা 404API শংসাপত্র ও অনুমোদিত উৎস IP পরীক্ষা করুন, তারপর ব্র্যান্ড/রিসেলার মালিকানা ও অনুমতি। অন্য অ্যাকাউন্টের শনাক্তকারী ব্যবহার করবেন না।
402একই উদ্দিষ্ট তৈরি পুনরায় চেষ্টার আগে প্রোডাকশন তহবিল ও ক্রয় অনুমতি পর্যালোচনা করুন।
409একই কী ব্যবহার করে পরিবর্তিত অনুরোধ থেকে চলমান রিপ্লে আলাদা করুন। মিটমাট করার সময় বিদ্যমান ক্যাম্পেইন ও অনুরোধের বিবরণ রাখুন।
429 বা লিমিটার অনুপলব্ধউপস্থিত থাকলে Retry-After মান্য করুন এবং মূল কী ও সঠিক অনুরোধ ধরে রাখুন।
500 বা 502তৈরি ইতিমধ্যে ঘটে থাকতে পারে। ডুপ্লিকেট তৈরি না করে যেকোনো campaignId ও requestId সংরক্ষণ করুন, বিদ্যমান ক্যাম্পেইন পরীক্ষা করুন এবং এর সক্রিয়করণ পুনরায় শুরু বা মিটমাট করুন।