Kvalificer et brand, før du registrerer dets kampagne
En 10DLC-kampagne beskriver de meddelelser, en registreret virksomhed har til hensigt at sende, hvordan modtagere giver samtykke, og hvordan de kan få hjælp eller stoppe meddelelser. Denne API opretter registerposten; gennemførelse af carrieraktivering i produktion er et separat kontokonfigurationstrin. Brug et ejet brand fra brandregistrering, indlæs derefter dets tilgængelige use cases og den valgte use cases aktuelle krav.
Brug det aktuelle kvalifikationsresultat til at vælge sub-use cases, kvalificerede netværks-ID’er, beskedeksempler og opt-in/opt-out/hjælp-erklæringer. Krav kan variere efter brand og netværk. Indsend ikke eksemplets identifikatorer, og kopier ikke dets samtykkebeskrivelse til en virksomhed med en anden proces.
Hold sandbox og produktion adskilt
Brug til en sandboxøvelse dit eget mockbrand og en aktuel use case, som det er kvalificeret til. Brug TRIAL kun, når kvalifikationen tilbyder den. Portalen kontrollerer, at det valgte brand og kampagnemiljøet stemmer overens. En direkte API-anmodning kører ikke portalens fulde guidevalidering for dig, så bevar denne adskillelse i din integration.
Oprettelse af en produktionskampagne er fakturerbar og gør ikke automatisk et nummer klar til afsendelse. Hold kampagnemiljøet i overensstemmelse med dets brand, og gennemgå gebyret og de gældende vilkår, før du opretter en livekampagne.
Indsend kampagnens JSON
Forbered campaign.json med dine kvalificerede værdier. R000000 betyder ingen reseller; brug den kun, når det er den tilsigtede konfiguration. Hent til den normale MultiTEL-resellerkonfiguration den tilladte reselleridentifikator for MultiTEL LLC fra din kontos resellersamling eller portalens forberedelsesflow i stedet for at hardcode en andens identifikator.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'Den følgende JSON illustrerer en prøvekampagne for et ejet mockbrand. Erstat brandet, use casen, reselleren og samtykketeksten med de værdier, der faktisk kvalificerer til din 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"
}Sæt termsAndConditions til true først, efter den autoriserede person har gennemgået og accepteret de gældende vilkår. Eksemplet er ikke samtykke på dine vegne. Brug JSON-booleans til flagene, ikke strenge i anførselstegn.
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'Kampagnefelter og betingede krav
| Felter | Hvad du skal angive |
|---|---|
| brandId, channelId, usecase | Dit ejede brand, kanalen 10DLC og en kvalificeret aktuel use-case-kode. Brug koder fra kvalifikationen, ikke oversatte etiketter. |
| subUsecases | Et array med kvalificerede sub-use-case-koder. Overhold den valgte kvalifikations minimums- og maksimumsantal. |
| resellerId | En tilladt reselleridentifikator. Den kontoejede rute accepterer ejede resellere, dens konfigurerede delte reseller eller den bevidst valgte værdi uden reseller. En urelateret reseller afvises. |
| description, messageFlow | Beskriv det faktiske formål, og hvordan samtykke indsamles. Hver skal indeholde 40–4096 tegn. Medtag den reelle brugerhandling, formular eller proces; opfind ikke et samtykke, som din applikation ikke indsamler. |
| sample1 … sample5 | Repræsentative meddelelser, normalt 20–1024 tegn hver. Portalen kræver mindst én; kvalificerede netværk kan kræve flere. Angiv det antal, som den aktuelle kvalifikation kræver. |
| subscriberOptin, subscriberOptout, subscriberHelp | Deklarer understøttede modtagerflows med disse nøjagtige feltnavne. Når et flow er aktiveret, skal du angive dets nøgleords- og beskedfelter. Netværkskrav kan gøre bestemte flows obligatoriske. |
| optinKeywords, optoutKeywords, helpKeywords | De faktisk genkendte nøgleord, op til 255 tegn. De skal matche den modtagende applikations adfærd. |
| optinMessage, optoutMessage, helpMessage | De tilsvarende meddelelser. De aktuelt offentliggjorte feltregler angiver 20–1024 tegn. Medtag reel support- og opt-out-adfærd. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Deklarer indlejrede links eller telefonnumre sandfærdigt. Et ellers kvalificeret netværk kan forbyde dem. Et linkeksempel tillader op til 255 tegn. |
| mnoIds | Et valgfrit array med kvalificerede numeriske netværks-ID’er fra kvalifikationen. Antag ikke, at alle netværk understøtter den valgte use case. |
| numberPool, ageGated, directLending | Relevante kampagneegenskaber som JSON-booleans. Vælg dem ud fra den faktiske tjeneste. |
| privacyPolicyLink, termsAndConditionsLink | Dine relevante offentlige politik- og vilkårs-URL’er, når de er relevante, op til 2048 tegn hver. De skal beskrive den faktiske beskedtjeneste. |
| termsAndConditions | Eksplicit accept af de gældende kampagnevilkår. Portalen kræver true, og dens guide indsamler også de aktuelle individuelle bekræftelser. |
| autoRenewal | Om kampagnen fornyes. Standardværdien er true. Deaktivering af fornyelse fjerner ikke en minimumsforpligtelse, der allerede er knyttet til en produktionskampagne. |
| referenceId, tag | Din kampagnereference, op til 50 tegn, og valgfrie tags. referenceId er ikke headeren Idempotency-Key. |
Det offentliggjorte skema indeholder inkonsekvent brug af store bogstaver i beskrivende tabeller. Den aktuelle portalanmodning bruger subscriberOptin og subscriberOptout som vist ovenfor. Bevar nøjagtigt denne stavemåde. Denne vejledning dækker den tenantvendte 10DLC-arbejdsgang; udled ikke, at en anden kanals påkrævede felter eller aktiveringstrin er de samme.
Prøv den samme tilsigtede anmodning igen på sikker vis
Brug én Idempotency-Key til denne tilsigtede oprettelse. Nøglen er 1–128 udskrivbare ASCII-tegn uden mellemrum og er afgrænset til ejerkontoen. Bevar HTTP-metoden, stien, forespørgselsstrengen og de nøjagtige bodybytes uændrede ved et nyt forsøg. En omformateret JSON-fil er i konflikt, selv om dens værdier er ækvivalente.
Et igangværende duplikat kan returnere HTTP 409 med Retry-After; fuldførte anmodninger kan afspille deres gemte svar igen. En cachelagret fejl beviser ikke, at registret intet har oprettet. Gem campaignId, requestId og eventuelle korrelationsheadere, undersøg den eksisterende kampagne, og kontroller den faktiske tilstand, og afklar uoverensstemmelser efter en delvis fejl, før du overvejer en ny nøgle.
Et kampagne-ID er ikke den endelige afsendelsesopsætning
Svaret bruger HTTP-status og direkte JSON. Bevar ved oprettelse campaignId, og læs dens aktuelle tilstand:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Portalens aktuelle produktionsarbejdsgang deler også kampagnen med beskedcarrieren og indlæser brandet/kampagnen på afsendelseskontoen. Det er separate handlinger ud over dette offentlige oprettelseskald. En registerkampagne kan eksistere, selv om et senere delings- eller carrierindlæsningstrin mislykkes.
Brug portalens integrerede arbejdsgang til produktionsoprettelse, når du har brug for den samlede sekvens til registrering, deling og carrierindlæsning. Bevar for en produktionskampagne, der allerede er oprettet direkte via denne API, dens kampagne-ID, og få kontoens carrieropsætning afstemt via support. Den aktuelle kunde-UI viser ikke en generel genoptag-knap for hver direkte oprettet produktionskampagne. Opret ikke en ny registrering for at prøve dens aktivering igen. Bekræft, at kampagnen er aktiv, og at carrieropsætningen er fuldført, før du tildeler et afsendernummer. Nummeret skal også være ejet, aktivt og SMS-aktiveret. Oprettelse af en kampagne sender ikke meddelelser.
Gebyrer for produktionskampagner
| Use-case | Månedligt gebyr |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Andre konfigurerede fallback-use cases | $11.12 |
Disse detailbeløb blev kontrolleret mod den aktuelle portalkonfiguration den 24. oktober 2026. Bekræft den aktuelle kvalificerede use case og den viste pris før en produktionsindsendelse. En monthlyFee i et registerkvalifikationssvar er ikke automatisk din MultiTEL-detailpris.
Den aktuelle portal angiver en minimumsforpligtelse på tre måneder for ikke-politiske produktionskampagner. Gennemgå de gældende vilkår og fornyelsesvalget før bekræftelse. Registrering, nummerleje, ekstra vetting og beskedforbrug er separate gebyrer. Et vellykket oprettelsessvar beviser ikke i sig selv, at alle fakturerings- eller carrieraktiveringstrin er fuldført.
Håndter validerings- og delfejl
Læs HTTP-status og den returnerede JSON. Valideringsfejl kan være arrays af code/description-objekter; lokale fejl kan i stedet være objekter med message, status og, for visse behandlingsfejl, requestId.
| HTTP-resultat | Næste handling |
|---|---|
| 400 | Ret de specifikke felter eller idempotency-nøglen. Læs den aktuelle kvalifikation, det krævede antal eksempler og kravene til modtagerflows igen. |
| 401, 403 eller 404 | Kontroller API-legitimationsoplysninger og tilladt kilde-IP, derefter ejerskab af brand/reseller og tilladelser. Brug ikke identifikatorer fra en anden konto. |
| 402 | Gennemgå produktionsfinansiering og købstilladelse, før du prøver den samme tilsigtede oprettelse igen. |
| 409 | Skel mellem gentagelse af en igangværende anmodning og en ændret anmodning med samme nøgle. Bevar den eksisterende kampagne og anmodningsoplysningerne ved afstemning. |
| 429 eller limiter ikke tilgængelig | Overhold Retry-After, når den findes, og bevar den oprindelige nøgle og den nøjagtige anmodning. |
| 500 eller 502 | Oprettelsen kan allerede være sket. Gem campaignId og requestId, kontroller den eksisterende kampagne, og genoptag eller afstem dens aktivering i stedet for at oprette et duplikat. |