Udviklere

POST/tcr/v2/campaignBuilder

Registrer en 10DLC-kampagne

Indsend en kvalificeret kampagne, og skeln mellem registrering i registret, carrieraktivering og afsendelsesparathed.

På denne side
  1. Kvalificer et brand, før du registrerer dets kampagne
  2. Hold sandbox og produktion adskilt
  3. Indsend kampagnens JSON
  4. Kampagnefelter og betingede krav
  5. Prøv den samme tilsigtede anmodning igen på sikker vis
  6. Et kampagne-ID er ikke den endelige afsendelsesopsætning
  7. Gebyrer for produktionskampagner
  8. Håndter validerings- og delfejl

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

10DLC-kampagneanmodning
FelterHvad du skal angive
brandId, channelId, usecaseDit ejede brand, kanalen 10DLC og en kvalificeret aktuel use-case-kode. Brug koder fra kvalifikationen, ikke oversatte etiketter.
subUsecasesEt array med kvalificerede sub-use-case-koder. Overhold den valgte kvalifikations minimums- og maksimumsantal.
resellerIdEn 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, messageFlowBeskriv 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 … sample5Repræ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, subscriberHelpDeklarer 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, helpKeywordsDe faktisk genkendte nøgleord, op til 255 tegn. De skal matche den modtagende applikations adfærd.
optinMessage, optoutMessage, helpMessageDe tilsvarende meddelelser. De aktuelt offentliggjorte feltregler angiver 20–1024 tegn. Medtag reel support- og opt-out-adfærd.
embeddedLink, embeddedPhone, embeddedLinkSampleDeklarer indlejrede links eller telefonnumre sandfærdigt. Et ellers kvalificeret netværk kan forbyde dem. Et linkeksempel tillader op til 255 tegn.
mnoIdsEt 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, directLendingRelevante kampagneegenskaber som JSON-booleans. Vælg dem ud fra den faktiske tjeneste.
privacyPolicyLink, termsAndConditionsLinkDine relevante offentlige politik- og vilkårs-URL’er, når de er relevante, op til 2048 tegn hver. De skal beskrive den faktiske beskedtjeneste.
termsAndConditionsEksplicit accept af de gældende kampagnevilkår. Portalen kræver true, og dens guide indsamler også de aktuelle individuelle bekræftelser.
autoRenewalOm kampagnen fornyes. Standardværdien er true. Deaktivering af fornyelse fjerner ikke en minimumsforpligtelse, der allerede er knyttet til en produktionskampagne.
referenceId, tagDin 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

Aktuelt konfigurerede månedlige kampagnegebyrer
Use-caseMå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.

Kampagnefejl
HTTP-resultatNæste handling
400Ret 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 404Kontroller API-legitimationsoplysninger og tilladt kilde-IP, derefter ejerskab af brand/reseller og tilladelser. Brug ikke identifikatorer fra en anden konto.
402Gennemgå produktionsfinansiering og købstilladelse, før du prøver den samme tilsigtede oprettelse igen.
409Skel 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ængeligOverhold Retry-After, når den findes, og bevar den oprindelige nøgle og den nøjagtige anmodning.
500 eller 502Oprettelsen 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.