בדקו את זכאותו של מותג לפני רישום הקמפיין שלו
קמפיין 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'שדות הקמפיין ודרישות מותנות
| שדות | מה לספק |
|---|---|
| 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 וכל כותרות המתאם, בדקו את הקמפיין הקיים ובדקו את המצב בפועל ופתרו אי-התאמות בעקבות כשל חלקי לפני שקילת מפתח חדש.
מזהה קמפיין אינו ההגדרה הסופית לשליחה
התגובה משתמשת בסטטוס HTTP וב-JSON ישיר. ביצירה מוצלחת, שמרו את campaignId וקראו את מצבו העדכני:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"זרימת העבודה בייצור של הפורטל העדכני גם משתפת את הקמפיין עם ספק ההודעות וטוענת את המותג/קמפיין לחשבון השליחה. אלו פעולות נפרדות מקריאת היצירה הציבורית הזו. קמפיין במרשם יכול להתקיים גם אם שלב שיתוף או טעינת ספק מאוחר יותר נכשל.
השתמשו בזרימת העבודה המשולבת ליצירת ייצור של הפורטל כאשר אתם זקוקים לרצף המשולב של רישום, שיתוף וטעינת ספק. עבור קמפיין ייצור שכבר נוצר ישירות על ידי API זה, שמרו את מזהה הקמפיין שלו ודאגו לתאם את הגדרת הספק של החשבון דרך התמיכה. ממשק הלקוחות העדכני אינו חושף כפתור המשך כללי עבור כל קמפיין ייצור שנוצר ישירות. אל תיצרו רישום נוסף כדי לנסות שוב את הפעלתו. ודאו שהקמפיין פעיל והגדרת הספק הושלמה לפני הקצאת מספר שליחה. המספר חייב גם להיות בבעלותכם, פעיל ומופעל עם 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 שלכם.
הפורטל העדכני קובע התחייבות מזערית של שלושה חודשים עבור קמפייני ייצור לא פוליטיים. עיינו בתנאים החלים ובבחירת החידוש לפני האישור. רישום, השכרת מספר, בדיקות נוספות ושימוש בהודעות הם חיובים נפרדים. תגובת יצירה מוצלחת אינה מוכיחה בפני עצמה שכל שלבי החיוב או הפעלת הספק הושלמו.
טפלו באימות ובכשלים חלקיים
קראו את status של HTTP ואת ה-JSON המוחזר. כשלי אימות יכולים להיות מערכים של אובייקטי code/description; כשלים מקומיים יכולים להיות במקום זאת אובייקטים עם message, status ובמקרה של שגיאות עיבוד מסוימות, requestId.
| תוצאת HTTP | פעולה הבאה |
|---|---|
| 400 | תקנו את השדות הספציפיים או את מפתח האידמפוטנטיות. קראו שוב את תוצאת בדיקת הזכאות העדכנית, את מספר הדוגמאות הנדרש ואת דרישות זרימת הנמענים. |
| 401, 403 או 404 | בדקו את פרטי ההזדהות ל-API ואת ה-IP המותר של המקור, ולאחר מכן את בעלות המותג/משווק וההרשאות. אל תשתמשו במזהים מחשבון אחר. |
| 402 | עיינו במימון הייצור ובהרשאת הרכישה לפני ניסיון חוזר של אותה יצירה מיועדת. |
| 409 | הבחינו בין שחזור בתהליך לבין בקשה שהשתנתה המשתמשת באותו מפתח. שמרו את הקמפיין הקיים ואת פרטי הבקשה בעת התאמה. |
| 429 או מגביל לא זמין | כבדו את Retry-After כאשר הוא קיים ושמרו את המפתח המקורי ואת הבקשה המדויקת. |
| 500 או 502 | יתכן שהיצירה כבר התרחשה. שמרו כל campaignId ו-requestId, בדקו את הקמפיין הקיים, והמשיכו או תאמו את הפעלתו במקום ליצור כפילות. |