დეველოპერებისთვის

POST/tcr/v2/campaignBuilder

დაარეგისტრირეთ 10DLC კამპანია

გააგზავნეთ კვალიფიციური კამპანია და განასხვავეთ რეესტრში რეგისტრაცია ოპერატორთან აქტივაციისგან და გაგზავნისთვის მზადყოფნისგან.

ამ გვერდზე
  1. დააკვალიფიცირეთ ბრენდი მისი კამპანიის რეგისტრაციამდე
  2. შეინარჩუნეთ სატესტო და საპროდუქციო გარემოების გამიჯვნა
  3. გააგზავნეთ კამპანიის JSON
  4. კამპანიის ველები და პირობითი მოთხოვნები
  5. იგივე განზრახული მოთხოვნის უსაფრთხოდ გამეორება
  6. კამპანიის ID არ არის საბოლოო გასაგზავნი მოწყობა
  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, directLendingმოქმედი კამპანიის მახასიათებლები JSON ლოგიკური მნიშვნელობების სახით. აირჩიეთ ისინი რეალური სერვისის შესაბამისად.
privacyPolicyLink, termsAndConditionsLinkთქვენი შესაბამისი საჯარო პოლიტიკისა და პირობების URL-ები, როდესაც მოქმედებს, თითო 2048 სიმბოლომდე. ისინი უნდა აღწერდნენ რეალურ შეტყობინებების სერვისს.
termsAndConditionsმოქმედი კამპანიის პირობების აშკარა მიღება. პორტალი მოითხოვს true და მისი ოსტატი ასევე აგროვებს მიმდინარე ინდივიდუალურ დადასტურებებს.
autoRenewalგანახლდება თუ არა კამპანია. ნაგულისხმევია true. განახლების გამორთვა არ ხსნის მინიმალურ ვალდებულებას, რომელიც უკვე უკავშირდება საპროდუქციო კამპანიას.
referenceId, tagთქვენი კამპანიის მითითება, 50 სიმბოლომდე, და არასავალდებულო იარლიყები. referenceId არ არის Idempotency-Key სათაური.

გამოქვეყნებული სქემა აღწერილობით ცხრილებში შეიცავს გარკვეულ არათანმიმდევრულ ასოების რეგისტრს. მიმდინარე პორტალის მოთხოვნა იყენებს subscriberOptin და subscriberOptout, როგორც ზემოთ არის ნაჩვენები. შეინარჩუნეთ ეს ზუსტი რეგისტრი. ეს სახელმძღვანელო მოიცავს მოიჯარისთვის განკუთვნილ 10DLC სამუშაო პროცესს; არ ივარაუდოთ, რომ სხვა არხის სავალდებულო ველები ან აქტივაციის ნაბიჯები იგივეა.

იგივე განზრახული მოთხოვნის უსაფრთხოდ გამეორება

ამ განზრახული შექმნისთვის გამოიყენეთ ერთი Idempotency-Key. გასაღები არის 1–128 დასაბეჭდი ASCII სიმბოლო ინტერვალების გარეშე და მოქმედებს მფლობელი ანგარიშის ფარგლებში. გამეორებისას შეინარჩუნეთ HTTP მეთოდი, გზა, მოთხოვნის სტრიქონი და სხეულის ზუსტი ბაიტები უცვლელად. ხელახლა ფორმატირებული JSON ფაილი კონფლიქტს იწვევს მაშინაც კი, თუ მისი მნიშვნელობები ეკვივალენტურია.

მიმდინარე დუბლიკატმა შეიძლება დააბრუნოს HTTP 409 Retry-After-თან ერთად; დასრულებულმა მოთხოვნებმა შეიძლება გაიმეორონ შენახული პასუხი. ქეშირებული შეცდომა არ ადასტურებს, რომ რეესტრმა არაფერი შექმნა. შეინახეთ campaignId, requestId და ნებისმიერი კორელაციის სათაურები, შეამოწმეთ არსებული კამპანია და შეამოწმეთ ფაქტობრივი მდგომარეობა და აღმოფხვერით ნაწილობრივი ხარვეზით გამოწვეული შეუსაბამობები ახალი გასაღების განხილვამდე.

კამპანიის ID არ არის საბოლოო გასაგზავნი მოწყობა

პასუხი იყენებს HTTP სტატუსს და პირდაპირ JSON-ს. წარმატებული შექმნისას შეინახეთ campaignId და წაიკითხეთ მისი მიმდინარე მდგომარეობა:

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

მიმდინარე პორტალის საპროდუქციო სამუშაო პროცესი ასევე აზიარებს კამპანიას შეტყობინებების ოპერატორთან და ტვირთავს ბრენდს/კამპანიას გამგზავნ ანგარიშში. ეს ცალკე ოპერაციებია ამ საჯარო შექმნის გამოძახებისგან. რეესტრის კამპანია შეიძლება არსებობდეს მაშინაც კი, თუ შემდგომი გაზიარების ან ოპერატორთან ჩატვირთვის ნაბიჯი ვერ შესრულდა.

გამოიყენეთ პორტალის ინტეგრირებული საპროდუქციო შექმნის სამუშაო პროცესი, როდესაც გჭირდებათ რეგისტრაციის, გაზიარებისა და ოპერატორთან ჩატვირთვის გაერთიანებული თანმიმდევრობა. საპროდუქციო კამპანიისთვის, რომელიც უკვე პირდაპირ შეიქმნა ამ API-ით, შეინარჩუნეთ მისი კამპანიის ID და ანგარიშის ოპერატორთან მოწყობა მხარდაჭერის მეშვეობით შეაჯერეთ. მიმდინარე სამომხმარებლო ინტერფეისი არ აჩვენებს გაგრძელების ზოგად ღილაკს ყველა პირდაპირ შექმნილი საპროდუქციო კამპანიისთვის. არ შექმნათ სხვა რეგისტრაცია მისი აქტივაციის გასამეორებლად. დაადასტურეთ, რომ კამპანია აქტიურია და ოპერატორთან მოწყობა დასრულებულია შემდეგი ნაბიჯის წინ: გამგზავნი ნომრის მინიჭება. ნომერი ასევე უნდა იყოს საკუთარი, აქტიური და 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 ან 404შეამოწმეთ API-ის ავთენტიფიკაციის მონაცემები და ნებადართული წყაროს IP, შემდეგ ბრენდის/გადამყიდველის მფლობელობა და ნებართვები. არ გამოიყენოთ სხვა ანგარიშის იდენტიფიკატორები.
402იგივე განზრახული შექმნის გამეორებამდე გადახედეთ საპროდუქციო დაფინანსებას და შესყიდვის ნებართვას.
409განასხვავეთ მიმდინარე გამეორება იმავე გასაღების გამოყენებით შეცვლილი მოთხოვნისგან. შეჯერებისას შეინარჩუნეთ არსებული კამპანიისა და მოთხოვნის დეტალები.
429 ან შემზღუდველი მიუწვდომელიაგაითვალისწინეთ Retry-After, როდესაც ის არსებობს, და შეინარჩუნეთ ორიგინალი გასაღები და ზუსტი მოთხოვნა.
500 ან 502შექმნა შესაძლოა უკვე მომხდარა. შეინახეთ ნებისმიერი campaignId და requestId, შეამოწმეთ არსებული კამპანია და დუბლიკატის შექმნის ნაცვლად განაახლეთ ან შეაჯერეთ მისი აქტივაცია.