Kvalificera ett varumärke innan du registrerar dess kampanj
En 10DLC-kampanj beskriver meddelandena som ett registrerat företag avser att skicka, hur mottagarna samtycker och hur de kan få hjälp eller stoppa meddelanden. Detta API skapar registerposten; att slutföra operatörsaktivering i produktion är ett separat kontokonfigurationssteg. Använd ett ägt varumärke från varumärkesregistrering, läs sedan in tillgängliga användningsfall och det valda användningsfallets aktuella krav.
Använd det aktuella kvalificeringsresultatet för att välja underanvändningsfall, behöriga nätverks-ID:n, meddelandeexempel och opt-in-/opt-out-/help-deklarationer. Kraven kan skilja sig åt mellan varumärken och nätverk. Skicka inte in exemplets identifierare och kopiera inte dess samtyckesbeskrivning för ett företag med en annan process.
Håll sandlåda och produktion åtskilda
För en sandlådeövning använder du ditt eget testvarumärke och ett aktuellt användningsfall som det kvalificerar sig för. Använd TRIAL endast när kvalificeringen erbjuder det. Portalen kontrollerar att valt varumärke och kampanjmiljö överensstämmer. En direkt API-begäran kör inte portalens fullständiga guidevalidering åt dig, så bevara den separationen i din integration.
Skapande av kampanj i produktion är debiterbart och gör inte automatiskt ett nummer klart för sändning. Håll kampanjmiljön konsekvent med dess varumärke och granska avgiften och tillämpliga villkor innan du skapar en kampanj i produktion.
Skicka in kampanj-JSON:en
Förbered campaign.json med dina kvalificerade värden. R000000 betyder ingen återförsäljare; använd det endast när det är den avsedda konfigurationen. För den normala MultiTEL-återförsäljarkonfigurationen hämtar du den tillåtna MultiTEL LLC-återförsäljaridentifieraren från ditt kontos återförsäljarsamling eller portalens förberedelseflöde i stället för att hårdkoda någon annans identifierare.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'Följande JSON illustrerar en testkampanj för ett ägt testvarumärke. Ersätt varumärket, användningsfallet, återförsäljaren och samtyckestexten med de värden som faktiskt kvalificerar sig för ditt test.
{
"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"
}Ställ in termsAndConditions på true först efter att den behöriga personen har granskat och accepterat tillämpliga villkor. Exemplet är inte samtycke för din räkning. Använd JSON-booleska värden för flaggorna, inte citerade strängar.
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'Kampanjfält och villkorliga krav
| Fält | Vad du ska ange |
|---|---|
| brandId, channelId, usecase | Ditt ägda varumärke, kanal 10DLC och en behörig aktuell användningsfallskod. Använd koder från kvalificeringen, inte översatta etiketter. |
| subUsecases | En matris med behöriga underanvändningsfallskoder. Respektera den valda kvalificeringens minimi- och maximiantal. |
| resellerId | En tillåten återförsäljaridentifierare. Den kontoägda rutten accepterar ägda återförsäljare, dess konfigurerade delade återförsäljare eller det avsiktliga värdet för ingen återförsäljare. En obesläktad återförsäljare avvisas. |
| description, messageFlow | Beskriv det faktiska syftet och hur samtycke samlas in. Varje ska innehålla 40–4096 tecken. Inkludera den verkliga användaråtgärden, formuläret eller processen; hitta inte på samtycke som din applikation inte samlar in. |
| sample1 … sample5 | Representativa meddelanden, normalt 20–1024 tecken vardera. Portalen kräver minst ett; behöriga nätverk kan kräva fler. Ange det antal som krävs av den aktuella kvalificeringen. |
| subscriberOptin, subscriberOptout, subscriberHelp | Deklarera mottagarflöden som stöds med dessa exakta fältnamn. När ett flöde är aktiverat anger du dess nyckelords- och meddelandefält. Nätverkskrav kan göra vissa flöden obligatoriska. |
| optinKeywords, optoutKeywords, helpKeywords | De faktiska igenkända nyckelorden, upp till 255 tecken. De måste överensstämma med den mottagande applikationens beteende. |
| optinMessage, optoutMessage, helpMessage | Motsvarande meddelanden. Aktuella publicerade fältregler anger 20–1024 tecken. Inkludera verkligt kundstöd och beteende för avregistrering. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Deklarera inbäddade länkar eller telefonnummer sanningsenligt. Ett i övrigt behörigt nätverk kan förbjuda dem. Ett länkexempel tillåter upp till 255 tecken. |
| mnoIds | En valfri matris med behöriga numeriska nätverks-ID:n från kvalificering. Anta inte att varje nätverk stöder det valda användningsfallet. |
| numberPool, ageGated, directLending | Tillämpliga kampanjegenskaper som JSON-booleska värden. Välj dem enligt den faktiska tjänsten. |
| privacyPolicyLink, termsAndConditionsLink | Dina relevanta offentliga URL:er för integritetspolicy och villkor vid behov, upp till 2048 tecken vardera. De måste beskriva den faktiska meddelandetjänsten. |
| termsAndConditions | Uttrycklig acceptans av tillämpliga kampanjvillkor. Portalen kräver true och dess guide samlar också in aktuella individuella bekräftelser. |
| autoRenewal | Om kampanjen förnyas. Standard är true. Inaktivering av förnyelse tar inte bort ett minimiåtagande som redan är kopplat till en kampanj i produktion. |
| referenceId, tag | Din kampanjreferens, upp till 50 tecken, och valfria taggar. referenceId är inte Idempotency-Key-huvudet. |
Det publicerade schemat innehåller viss inkonsekvent versalisering i beskrivande tabeller. Den aktuella portalbegäran använder subscriberOptin och subscriberOptout såsom visas ovan. Behåll exakt den bokstavsformen. Den här guiden täcker det kundvända 10DLC-arbetsflödet; anta inte att en annan kanals obligatoriska fält eller aktiveringssteg är desamma.
Försök samma avsedda begäran igen på ett säkert sätt
Använd en Idempotency-Key för denna avsedda skapelse. Nyckeln är 1–128 utskrivbara ASCII-tecken utan blanksteg och är avgränsad till ägarkontot. Behåll HTTP-metoden, sökvägen, frågesträngen och de exakta byten i kroppen oförändrade vid ett nytt försök. En omformaterad JSON-fil står i konflikt även om dess värden är likvärdiga.
En pågående dubblett kan returnera HTTP 409 med Retry-After; slutförda begäranden kan spela upp sitt lagrade svar igen. Ett cachat fel bevisar inte att registret inte skapade något. Spara campaignId, requestId och eventuella korrelationshuvuden, inspektera befintlig kampanj och stäm av ett partiellt fel innan du överväger en ny nyckel.
Ett kampanj-ID är inte den slutliga sändningskonfigurationen
Svaret använder HTTP-status och direkt JSON. Vid lyckad skapelse behåller du campaignId och läser dess aktuella tillstånd:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Portalens aktuella produktionsarbetsflöde delar också kampanjen med meddelandeoperatören och läser in varumärke/kampanj i sändningskontot. Dessa är separata åtgärder från detta offentliga skapelseanrop. En registerkampanj kan finnas även om ett senare delnings- eller operatörsinläsningssteg misslyckas.
Använd portalens integrerade arbetsflöde för skapelse i produktion när du behöver den kombinerade sekvensen för registrering, delning och operatörsinläsning. För en produktionskampanj som redan har skapats direkt med detta API behåller du dess kampanj-ID och får kontots operatörskonfiguration avstämd via kundstöd. Det aktuella kundgränssnittet exponerar inte en allmän återuppta-knapp för varje direkt skapad produktionskampanj. Skapa inte en ny registrering för att försöka aktivera igen. Bekräfta att kampanjen är aktiv och att operatörskonfigurationen har slutförts innan tilldelning av ett sändningsnummer. Numret måste också vara ägt, aktivt och SMS-aktiverat. Kampanjskapelse skickar inte meddelanden.
Avgifter för kampanjer i produktion
| Användningsfall | Månadsavgift |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Andra konfigurerade reservanvändningsfall | $11.12 |
Dessa detaljbelopp kontrollerades mot den aktuella portalkonfigurationen den 24 oktober 2026. Bekräfta det aktuella kvalificerade användningsfallet och visat pris före en inlämning i produktion. En monthlyFee i ett kvalificeringssvar från registret är inte automatiskt ditt MultiTEL-detaljpris.
Den aktuella portalen anger ett minimiåtagande på tre månader för icke-politiska produktionskampanjer. Granska tillämpliga villkor och förnyelseval innan bekräftelse. Registrering, nummerhyra, ytterligare granskning och meddelandeanvändning är separata avgifter. Ett lyckat skapelsesvar bevisar inte i sig att varje fakturerings- eller operatörsaktiveringssteg har slutförts.
Hantera validering och partiella fel
Läs HTTP-status och returnerad JSON. Valideringsfel kan vara matriser med code/description-objekt; lokala fel kan i stället vara objekt med message, status och, för vissa bearbetningsfel, requestId.
| HTTP-resultat | Nästa åtgärd |
|---|---|
| 400 | Korrigera de aktuella fälten eller idempotensnyckeln. Läs aktuell kvalificering, krävt exempelantal och krav för mottagarflöde på nytt. |
| 401, 403 eller 404 | Kontrollera API-autentiseringsuppgifter och tillåten käll-IP, sedan ägarskap och behörigheter för varumärke/återförsäljare. Använd inte identifierare från ett annat konto. |
| 402 | Granska produktionsfinansiering och köpbehörighet innan du försöker samma avsedda skapelse igen. |
| 409 | Skilj mellan upprepat svar för en pågående begäran och en ändrad begäran med samma nyckel. Behåll befintliga kampanj- och begärandetaljer vid avstämning. |
| 429 eller begränsare otillgänglig | Respektera Retry-After när den finns och behåll ursprunglig nyckel och exakt begäran. |
| 500 eller 502 | Skapelse kan redan ha inträffat. Spara eventuell campaignId och requestId, kontrollera befintlig kampanj och återuppta eller stäm av dess aktivering i stället för att skapa en dubblett. |