Qualifica un marchio prima di registrarne la campagna
Una campagna 10DLC descrive i messaggi che un'azienda registrata intende inviare, il modo in cui i destinatari acconsentono e come possono ottenere aiuto o interrompere i messaggi. Questa API crea il record nel registro; il completamento dell'attivazione dell'operatore in produzione è una fase separata di configurazione dell'account. Usa un marchio di tua proprietà ottenuto tramite la registrazione del marchio, quindi carica i suoi casi d'uso disponibili e i requisiti attuali del caso d'uso selezionato.
Usa il risultato di qualificazione attuale per scegliere sotto-casi d'uso, ID di rete idonei, esempi di messaggi e dichiarazioni di opt-in/opt-out/aiuto. I requisiti possono variare in base al marchio e alla rete. Non inviare gli identificativi dell'esempio né copiare la relativa descrizione del consenso per un'azienda con un processo diverso.
Tieni separati sandbox e produzione
Per un esercizio in sandbox, usa il tuo marchio fittizio e un caso d'uso attuale per cui è qualificato. Usa TRIAL solo quando è offerto da tale qualificazione. Il portale verifica che il marchio selezionato e l'ambiente della campagna corrispondano. Una richiesta API diretta non esegue per te la convalida completa della procedura guidata del portale, quindi mantieni tale separazione nella tua integrazione.
La creazione di campagne di produzione è fatturabile e non rende automaticamente un numero pronto per l'invio. Mantieni l'ambiente della campagna coerente con il relativo marchio e verifica la tariffa e le condizioni applicabili prima di creare una campagna attiva.
Invia il JSON della campagna
Prepara campaign.json con i tuoi valori qualificati. R000000 significa nessun rivenditore; usalo solo quando questa è la configurazione prevista. Per la normale configurazione di rivenditore MultiTEL, ottieni l'identificativo di rivenditore MultiTEL LLC consentito dalla raccolta di rivenditori del tuo account o dal flusso di preparazione del portale, anziché codificare direttamente l'identificativo di altri.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'Il seguente JSON illustra una campagna di prova per un marchio fittizio di tua proprietà. Sostituisci il marchio, il caso d'uso, il rivenditore e il testo del consenso con i valori effettivamente qualificati per il tuo 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"
}Imposta termsAndConditions su true solo dopo che la persona autorizzata ha esaminato e accettato le condizioni applicabili. L'esempio non costituisce consenso per tuo conto. Usa booleani JSON per gli indicatori, non stringhe tra virgolette.
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'Campi della campagna e requisiti condizionali
| Campi | Cosa fornire |
|---|---|
| brandId, channelId, usecase | Il tuo marchio di proprietà, il canale 10DLC e un codice di caso d'uso attuale idoneo. Usa i codici della qualificazione, non le etichette tradotte. |
| subUsecases | Un array di codici di sotto-casi d'uso idonei. Rispetta il conteggio minimo e massimo della qualificazione selezionata. |
| resellerId | Un identificativo di rivenditore consentito. Il percorso di proprietà dell'account accetta rivenditori di proprietà, il relativo rivenditore condiviso configurato o il valore intenzionale senza rivenditore. Un rivenditore non correlato viene rifiutato. |
| description, messageFlow | Descrivi lo scopo effettivo e il modo in cui viene raccolto il consenso. Ciascuno deve contenere 40–4096 caratteri. Includi l'azione, il modulo o il processo reale dell'utente; non inventare un consenso che la tua applicazione non raccoglie. |
| sample1 … sample5 | Messaggi rappresentativi, normalmente 20–1024 caratteri ciascuno. Il portale ne richiede almeno uno; le reti idonee possono richiederne di più. Fornisci il numero richiesto dalla qualificazione attuale. |
| subscriberOptin, subscriberOptout, subscriberHelp | Dichiara i flussi dei destinatari supportati usando questi nomi di campo esatti. Quando un flusso è abilitato, fornisci i relativi campi di parola chiave e messaggio. I requisiti di rete possono rendere obbligatori determinati flussi. |
| optinKeywords, optoutKeywords, helpKeywords | Le parole chiave effettive riconosciute, fino a 255 caratteri. Devono corrispondere al comportamento dell'applicazione ricevente. |
| optinMessage, optoutMessage, helpMessage | I messaggi corrispondenti. Le attuali regole di campo pubblicate specificano 20–1024 caratteri. Includi il comportamento reale di assistenza e di opt-out. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Dichiara con veridicità i link incorporati o i numeri di telefono. Una rete altrimenti qualificata può vietarli. Un esempio di link consente fino a 255 caratteri. |
| mnoIds | Un array facoltativo di ID di rete numerici idonei dalla qualificazione. Non presumere che ogni rete supporti il caso d'uso selezionato. |
| numberPool, ageGated, directLending | Caratteristiche applicabili della campagna come booleani JSON. Sceglile in base al servizio effettivo. |
| privacyPolicyLink, termsAndConditionsLink | I tuoi URL pubblici pertinenti di informativa e condizioni, ove applicabile, fino a 2048 caratteri ciascuno. Devono descrivere il servizio di messaggistica effettivo. |
| termsAndConditions | Accettazione esplicita delle condizioni applicabili della campagna. Il portale richiede true e la relativa procedura guidata raccoglie anche le attuali conferme individuali. |
| autoRenewal | Indica se la campagna si rinnova. Il valore predefinito è true. La disattivazione del rinnovo non rimuove un impegno minimo già associato a una campagna di produzione. |
| referenceId, tag | Il tuo riferimento di campagna, fino a 50 caratteri, e tag facoltativi. referenceId non è l'intestazione Idempotency-Key. |
Lo schema pubblicato contiene alcune maiuscole incoerenti nelle tabelle descrittive. La richiesta attuale del portale usa subscriberOptin e subscriberOptout come mostrato sopra. Mantieni esattamente tali maiuscole. Questa guida riguarda il flusso 10DLC rivolto al tenant; non dedurre che i campi obbligatori o le fasi di attivazione di un altro canale siano gli stessi.
Riprova la stessa richiesta prevista in sicurezza
Usa una Idempotency-Key per questa creazione prevista. La chiave è di 1–128 caratteri ASCII stampabili senza spazi ed è limitata all'account proprietario. Mantieni invariati il metodo HTTP, il percorso, la stringa di query e i byte esatti del corpo in caso di nuovo tentativo. Un file JSON riformattato è in conflitto anche se i relativi valori sono equivalenti.
Un duplicato in corso può restituire HTTP 409 con Retry-After; le richieste completate possono riprodurre la risposta memorizzata. Un errore memorizzato nella cache non dimostra che il registro non abbia creato nulla. Salva campaignId, requestId ed eventuali intestazioni di correlazione, esamina la campagna esistente e riconcilia un errore parziale prima di considerare una nuova chiave.
Un ID campagna non è la configurazione finale di invio
La risposta usa lo stato HTTP e JSON diretto. In caso di creazione riuscita, conserva campaignId e leggine lo stato attuale:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Il flusso di produzione attuale del portale condivide inoltre la campagna con l'operatore di messaggistica e carica il marchio/la campagna nell'account di invio. Si tratta di operazioni separate da questa chiamata pubblica di creazione. Una campagna del registro può esistere anche se una successiva fase di condivisione o caricamento sull'operatore non riesce.
Usa il flusso integrato di creazione in produzione del portale quando ti serve la sequenza combinata di registrazione, condivisione e caricamento sull'operatore. Per una campagna di produzione già creata direttamente da questa API, conservane l'ID campagna e fai riconciliare tramite l'assistenza la configurazione dell'operatore dell'account. L'interfaccia cliente attuale non espone un pulsante generale di ripresa per ogni campagna di produzione creata direttamente. Non creare un'altra registrazione per riprovarne l'attivazione. Conferma che la campagna sia attiva e che la configurazione dell'operatore sia completata prima di assegnare un numero di invio. Il numero deve inoltre essere di proprietà, attivo e abilitato agli SMS. La creazione della campagna non invia messaggi.
Tariffe delle campagne di produzione
| Caso d'uso | Tariffa mensile |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Altri casi d'uso di riserva configurati | $11.12 |
Questi importi al dettaglio sono stati verificati rispetto alla configurazione attuale del portale il 24 ottobre 2026. Conferma il caso d'uso qualificato attuale e il prezzo visualizzato prima di un invio in produzione. Un monthlyFee in una risposta di qualificazione del registro non è automaticamente il tuo prezzo al dettaglio MultiTEL.
Il portale attuale prevede un impegno minimo di tre mesi per le campagne di produzione non politiche. Esamina le condizioni applicabili e la scelta di rinnovo prima di confermare. Registrazione, noleggio del numero, verifica aggiuntiva e utilizzo dei messaggi sono addebiti separati. Una risposta di creazione riuscita non dimostra di per sé che ogni fase di fatturazione o attivazione dell'operatore sia stata completata.
Gestisci errori di convalida e parziali
Leggi HTTP status e il JSON restituito. Gli errori di convalida possono essere array di oggetti code/description; gli errori locali possono invece essere oggetti con message, status e, per alcuni errori di elaborazione, requestId.
| Risultato HTTP | Azione successiva |
|---|---|
| 400 | Correggi i campi specifici o la chiave di idempotenza. Rileggi la qualificazione attuale, il conteggio richiesto degli esempi e i requisiti dei flussi dei destinatari. |
| 401, 403 o 404 | Verifica le credenziali API e l'IP di origine consentito, quindi la proprietà e le autorizzazioni di marchio/rivenditore. Non usare identificativi di un altro account. |
| 402 | Verifica i fondi di produzione e l'autorizzazione all'acquisto prima di riprovare la stessa creazione prevista. |
| 409 | Distingui la riproduzione in corso da una richiesta modificata che usa la stessa chiave. Conserva i dettagli esistenti della campagna e della richiesta durante la riconciliazione. |
| 429 o limitatore non disponibile | Rispetta Retry-After quando presente e conserva la chiave originale e la richiesta esatta. |
| 500 o 502 | La creazione potrebbe essere già avvenuta. Salva eventuali campaignId e requestId, verifica la campagna esistente e riprendine o riconciliane l'attivazione anziché creare un duplicato. |