Programiści

POST/tcr/v2/campaignBuilder

Zarejestruj kampanię 10DLC

Zgłoś zakwalifikowaną kampanię i odróżnij rejestrację w rejestrze od aktywacji u operatora oraz gotowości do wysyłki.

Na tej stronie
  1. Zakwalifikuj markę przed zarejestrowaniem jej kampanii
  2. Oddziel środowisko testowe od produkcyjnego
  3. Prześlij plik JSON kampanii
  4. Pola kampanii i wymagania warunkowe
  5. Ponów bezpiecznie to samo zamierzone żądanie
  6. Identyfikator kampanii to nie ostateczna konfiguracja wysyłki
  7. Opłaty za kampanie produkcyjne
  8. Obsługuj błędy walidacji i częściowe awarie

Zakwalifikuj markę przed zarejestrowaniem jej kampanii

Kampania 10DLC opisuje wiadomości, które zarejestrowana firma zamierza wysyłać, sposób wyrażania zgody przez odbiorców oraz sposób uzyskania pomocy lub rezygnacji z wiadomości. To API tworzy rekord w rejestrze; ukończenie produkcyjnej aktywacji u operatora to osobny etap konfiguracji konta. Użyj własnej marki z rejestracji marki, a następnie wczytaj jej dostępne przypadki użycia i — dla wybranego przypadku użycia — jego bieżące wymagania.

Wykorzystaj bieżący wynik kwalifikacji, aby wybrać podprzypadki użycia, kwalifikujące się identyfikatory sieci, przykładowe wiadomości oraz deklaracje zgody, wypisania i pomocy. Wymagania mogą różnić się w zależności od marki i sieci. Nie przesyłaj przykładowych identyfikatorów ani nie kopiuj opisu zgody dla firmy o innym procesie.

Oddziel środowisko testowe od produkcyjnego

Do ćwiczeń w piaskownicy użyj własnej marki testowej oraz bieżącego przypadku użycia, do którego się ona kwalifikuje. Użyj wartości TRIAL tylko wtedy, gdy przewiduje ją ta kwalifikacja. Portal sprawdza, czy wybrane środowiska marki i kampanii są zgodne. Bezpośrednie żądanie API nie wykonuje za Ciebie pełnej walidacji kreatora portalu, dlatego zachowaj ten podział w swojej integracji.

Utworzenie kampanii produkcyjnej jest płatne i nie powoduje automatycznie, że numer będzie gotowy do wysyłki. Utrzymuj zgodność środowiska kampanii ze środowiskiem marki oraz zapoznaj się z opłatą i obowiązującymi warunkami przed utworzeniem kampanii rzeczywistej.

Prześlij plik JSON kampanii

Przygotuj plik campaign.json z zakwalifikowanymi wartościami. Wartość R000000 oznacza brak odsprzedawcy; używaj jej tylko wtedy, gdy taka konfiguracja jest zamierzona. W przypadku standardowej konfiguracji odsprzedawcy MultiTEL uzyskaj dozwolony identyfikator odsprzedawcy MultiTEL LLC z kolekcji odsprzedawców na Twoim koncie lub z przepływu przygotowania w portalu, zamiast wpisywać na stałe cudzy identyfikator.

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

Poniższy kod JSON ilustruje kampanię próbną dla własnej marki testowej. Zastąp markę, przypadek użycia, odsprzedawcę i tekst zgody wartościami, które rzeczywiście kwalifikują się do Twojego testu.

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

Ustaw wartość termsAndConditions na true dopiero po zapoznaniu się i zaakceptowaniu obowiązujących warunków przez upoważnioną osobę. Przykład nie stanowi zgody w Twoim imieniu. Dla flag używaj wartości logicznych JSON, a nie ciągów w cudzysłowie.

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'

Pola kampanii i wymagania warunkowe

10DLC — żądanie kampanii
PolaCo podać
brandId, channelId, usecaseTwoja własna marka, kanał 10DLC oraz kwalifikujący się bieżący kod przypadku użycia. Używaj kodów z kwalifikacji, a nie przetłumaczonych etykiet.
subUsecasesTablica kwalifikujących się kodów podprzypadków użycia. Przestrzegaj minimalnej i maksymalnej liczby wybranej kwalifikacji.
resellerIdDozwolony identyfikator odsprzedawcy. Trasa należąca do konta akceptuje własnych odsprzedawców, skonfigurowanego współdzielonego odsprzedawcę lub celową wartość oznaczającą brak odsprzedawcy. Niepowiązany odsprzedawca jest odrzucany.
description, messageFlowOpisz rzeczywisty cel oraz sposób zbierania zgody. Każdy opis powinien zawierać 40–4096 znaków. Podaj rzeczywiste działanie użytkownika, formularz lub proces; nie wymyślaj zgody, której Twoja aplikacja nie zbiera.
sample1 … sample5Reprezentatywne wiadomości, zwykle po 20–1024 znaki każda. Portal wymaga co najmniej jednej; kwalifikujące się sieci mogą wymagać ich więcej. Podaj liczbę wymaganą przez bieżącą kwalifikację.
subscriberOptin, subscriberOptout, subscriberHelpZadeklaruj obsługiwane przepływy odbiorców, używając dokładnie tych nazw pól. Gdy przepływ jest włączony, podaj jego pola słów kluczowych i wiadomości. Wymagania sieci mogą sprawić, że określone przepływy będą obowiązkowe.
optinKeywords, optoutKeywords, helpKeywordsRzeczywiste rozpoznawane słowa kluczowe, do 255 znaków. Muszą odpowiadać zachowaniu aplikacji odbierającej.
optinMessage, optoutMessage, helpMessageOdpowiadające im wiadomości. Obowiązujące opublikowane reguły pól określają 20–1024 znaki. Uwzględnij rzeczywiste zachowania pomocy i wypisania się.
embeddedLink, embeddedPhone, embeddedLinkSampleRzetelnie zadeklaruj osadzone łącza lub numery telefonów. Nawet sieć spełniająca pozostałe warunki kwalifikacji może ich zabronić. Próbka łącza dopuszcza do 255 znaków.
mnoIdsOpcjonalna tablica kwalifikujących się numerycznych identyfikatorów sieci z kwalifikacji. Nie zakładaj, że każda sieć obsługuje wybrany przypadek użycia.
numberPool, ageGated, directLendingObowiązujące cechy kampanii jako wartości logiczne JSON. Wybierz je zgodnie z rzeczywistą usługą.
privacyPolicyLink, termsAndConditionsLinkOdpowiednie publiczne adresy URL polityki i warunków, jeśli dotyczy, do 2048 znaków każdy. Muszą opisywać rzeczywistą usługę przesyłania wiadomości.
termsAndConditionsWyraźna akceptacja obowiązujących warunków kampanii. Portal wymaga wartości true, a jego kreator zbiera również bieżące potwierdzenia indywidualne.
autoRenewalOkreśla, czy kampania się odnawia. Wartością domyślną jest true. Wyłączenie odnawiania nie usuwa minimalnego zobowiązania już powiązanego z kampanią produkcyjną.
referenceId, tagTwoje odniesienie do kampanii, do 50 znaków, oraz opcjonalne tagi. Pole referenceId to nie nagłówek Idempotency-Key.

Opublikowany schemat zawiera pewne niespójności kapitalizacji w tabelach opisowych. Bieżące żądanie portalu używa pól subscriberOptin i subscriberOptout, jak pokazano powyżej. Zachowaj dokładnie tę pisownię. Ten przewodnik dotyczy procesu 10DLC dla najemców; nie wnioskuj, że wymagane pola innego kanału ani etapy aktywacji są takie same.

Ponów bezpiecznie to samo zamierzone żądanie

Użyj jednego klucza Idempotency-Key dla tego zamierzonego utworzenia. Klucz ma 1–128 drukowalnych znaków ASCII bez spacji i jest przypisany do konta właściciela. Podczas ponawiania zachowaj bez zmian metodę HTTP, ścieżkę, ciąg zapytania i dokładne bajty treści. Sformatowany ponownie plik JSON powoduje konflikt, nawet jeśli jego wartości są równoważne.

Duplikat w trakcie przetwarzania może zwrócić kod HTTP 409 z nagłówkiem Retry-After; ukończone żądania mogą odtworzyć zapisaną odpowiedź. Zapisany błąd nie dowodzi, że rejestr niczego nie utworzył. Zapisz pola campaignId i requestId oraz wszelkie nagłówki korelacji, sprawdź istniejącą kampanię i uzgodnij częściową awarię przed rozważeniem nowego klucza.

Identyfikator kampanii to nie ostateczna konfiguracja wysyłki

Odpowiedź używa statusu HTTP i bezpośredniego kodu JSON. Po pomyślnym utworzeniu zachowaj identyfikator campaignId i odczytaj jego bieżący stan:

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

Bieżący produkcyjny przepływ portalu udostępnia również kampanię operatorowi telekomunikacyjnemu i wczytuje markę/kampanię na konto wysyłkowe. Są to operacje odrębne od tego publicznego wywołania tworzenia. Kampania w rejestrze może istnieć, nawet jeśli późniejszy etap udostępniania lub wczytywania u operatora nie powiedzie się.

Użyj zintegrowanego przepływu tworzenia produkcji w portalu, gdy potrzebujesz połączonej sekwencji rejestracji, udostępniania i wczytywania u operatora. W przypadku kampanii produkcyjnej już utworzonej bezpośrednio przez to API zachowaj jej identyfikator kampanii i zleć uzgodnienie konfiguracji operatorskiej konta za pośrednictwem pomocy technicznej. Bieżący interfejs klienta nie udostępnia ogólnego przycisku wznawiania dla każdej bezpośrednio utworzonej kampanii produkcyjnej. Nie twórz kolejnej rejestracji, aby ponowić jej aktywację. Potwierdź, że kampania jest aktywna, a konfiguracja operatorska została ukończona, przed przypisaniem numeru wysyłkowego. Numer musi być również własny, aktywny i obsługujący SMS. Utworzenie kampanii nie wysyła wiadomości.

Opłaty za kampanie produkcyjne

Bieżące skonfigurowane miesięczne opłaty za kampanie
Przypadek użyciaOpłata miesięczna
LOW_VOLUME, UCAAS_LOW$1.67
SOLE_PROPRIETOR$2.23
CHARITY$3.34
EMERGENCY$5.56
AGENTS_FRANCHISES$33.34
Inne skonfigurowane rezerwowe przypadki użycia$11.12

Te kwoty detaliczne sprawdzono względem bieżącej konfiguracji portalu w dniu 24 października 2026. Przed zgłoszeniem produkcyjnym potwierdź bieżący kwalifikujący się przypadek użycia i wyświetloną cenę. Pole monthlyFee w odpowiedzi kwalifikacyjnej rejestru nie jest automatycznie Twoją ceną detaliczną MultiTEL.

Bieżący portal określa trzymiesięczne minimalne zobowiązanie dla niepolitycznych kampanii produkcyjnych. Przed potwierdzeniem zapoznaj się z obowiązującymi warunkami i wyborem odnawiania. Rejestracja, wynajem numeru, dodatkowa weryfikacja i wykorzystanie wiadomości to odrębne opłaty. Pomyślna odpowiedź o utworzeniu nie dowodzi samodzielnie, że wszystkie etapy rozliczeniowe i aktywacyjne u operatora zostały ukończone.

Obsługuj błędy walidacji i częściowe awarie

Odczytaj status HTTP i zwrócony kod JSON. Błędy walidacji mogą być tablicami obiektów code/description; awarie lokalne mogą natomiast być obiektami z polami message i status oraz, w przypadku niektórych błędów przetwarzania, requestId.

Błędy kampanii
Wynik HTTPNastępne działanie
400Popraw określone pola lub klucz idempotencji. Ponownie zapoznaj się z bieżącą kwalifikacją, wymaganą liczbą próbek i wymaganiami dotyczącymi przepływów odbiorców.
401, 403 lub 404Sprawdź poświadczenia API i dozwolony źródłowy adres IP, a następnie własność i uprawnienia marki/odsprzedawcy. Nie używaj identyfikatorów z innego konta.
402Przed ponowieniem tego samego zamierzonego utworzenia sprawdź finansowanie produkcji i uprawnienie do zakupu.
409Odróżnij odtwarzanie w trakcie przetwarzania od zmienionego żądania używającego tego samego klucza. Podczas uzgadniania zachowaj szczegóły istniejącej kampanii i żądania.
429 lub niedostępność ogranicznikaPrzestrzegaj nagłówka Retry-After, gdy jest obecny, i zachowaj pierwotny klucz oraz dokładne żądanie.
500 lub 502Utworzenie mogło już nastąpić. Zapisz wszelkie wartości campaignId i requestId, sprawdź istniejącą kampanię oraz wznów lub uzgodnij jej aktywację, zamiast tworzyć duplikat.