Qualifique uma marca antes de registar a sua campanha
Uma campanha 10DLC descreve as mensagens que uma empresa registada pretende enviar, como os destinatários consentem e como podem obter ajuda ou parar as mensagens. Esta API cria o registo no registo central; concluir a ativação da operadora em produção é uma etapa separada de configuração da conta. Utilize uma marca pertencente à sua conta, obtida através do registo de marca, depois carregue os seus casos de uso disponíveis e os requisitos atuais do caso de uso selecionado.
Utilize o resultado atual da qualificação para escolher subcasos de uso, ID de rede elegíveis, exemplos de mensagens e declarações de opt-in/opt-out/ajuda. Os requisitos podem variar consoante a marca e a rede. Não submeta os identificadores do exemplo nem copie a sua descrição de consentimento para uma empresa com um processo diferente.
Mantenha sandbox e produção separadas
Para um exercício em sandbox, utilize a sua própria marca simulada e um caso de uso atual para o qual seja elegível. Utilize TRIAL apenas quando essa qualificação o oferecer. O portal verifica se a marca selecionada e o ambiente da campanha coincidem. Um pedido direto à API não executa por si a validação completa do assistente do portal, pelo que deve preservar essa separação na sua integração.
A criação de campanhas de produção é faturável e não torna automaticamente um número pronto para enviar. Mantenha o ambiente da campanha coerente com a sua marca e reveja a tarifa e os termos aplicáveis antes de criar uma campanha ativa.
Submeta o JSON da campanha
Prepare campaign.json com os seus valores qualificados. R000000 significa sem revendedor; utilize-o apenas quando essa for a configuração pretendida. Para a configuração normal de revendedor MultiTEL, obtenha o identificador de revendedor MultiTEL LLC permitido a partir da coleção de revendedores da sua conta ou do fluxo de preparação do portal, em vez de codificar diretamente o identificador de outra entidade.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'O JSON seguinte ilustra uma campanha de teste para uma marca simulada própria. Substitua a marca, o caso de uso, o revendedor e o texto de consentimento pelos valores que realmente se qualificam para o seu teste.
{
"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"
}Defina termsAndConditions como true apenas depois de a pessoa autorizada ter revisto e aceite os termos aplicáveis. O exemplo não constitui consentimento em seu nome. Utilize booleanos JSON para os sinalizadores, não cadeias entre aspas.
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'Campos da campanha e requisitos condicionais
| Campos | O que fornecer |
|---|---|
| brandId, channelId, usecase | A sua marca própria, o canal 10DLC e um código de caso de uso atual elegível. Utilize códigos da qualificação, não etiquetas traduzidas. |
| subUsecases | Uma matriz de códigos de subcasos de uso elegíveis. Respeite as contagens mínima e máxima da qualificação selecionada. |
| resellerId | Um identificador de revendedor permitido. A rota detida pela conta aceita revendedores próprios, o seu revendedor partilhado configurado ou o valor intencional sem revendedor. Um revendedor não relacionado é rejeitado. |
| description, messageFlow | Descreva a finalidade real e a forma como o consentimento é recolhido. Cada campo deve conter 40–4096 caracteres. Inclua a ação, o formulário ou o processo real do utilizador; não invente consentimento que a sua aplicação não recolhe. |
| sample1 … sample5 | Mensagens representativas, normalmente com 20–1024 caracteres cada. O portal exige pelo menos uma; as redes elegíveis podem exigir mais. Forneça o número exigido pela qualificação atual. |
| subscriberOptin, subscriberOptout, subscriberHelp | Declare os fluxos de destinatário suportados utilizando estes nomes de campo exatos. Quando um fluxo está ativado, forneça os seus campos de palavra-chave e de mensagem. Os requisitos da rede podem tornar determinados fluxos obrigatórios. |
| optinKeywords, optoutKeywords, helpKeywords | As palavras-chave reais reconhecidas, até 255 caracteres. Devem corresponder ao comportamento da aplicação recetora. |
| optinMessage, optoutMessage, helpMessage | As mensagens correspondentes. As regras de campo publicadas atuais especificam 20–1024 caracteres. Inclua o comportamento real de suporte e de opt-out. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Declare links incorporados ou números de telefone com veracidade. Uma rede de outro modo qualificada pode não os permitir. Uma amostra de link permite até 255 caracteres. |
| mnoIds | Uma matriz opcional de ID numéricos de rede elegíveis da qualificação. Não presuma que todas as redes suportam o caso de uso selecionado. |
| numberPool, ageGated, directLending | Características aplicáveis da campanha como booleanos JSON. Escolha-as de acordo com o serviço real. |
| privacyPolicyLink, termsAndConditionsLink | Os seus URL públicos relevantes de política e de termos, quando aplicável, até 2048 caracteres cada. Devem descrever o serviço de mensagens real. |
| termsAndConditions | Aceitação explícita dos termos aplicáveis da campanha. O portal exige true e o seu assistente também recolhe as confirmações individuais atuais. |
| autoRenewal | Se a campanha é renovada. A predefinição é true. Desativar a renovação não remove um compromisso mínimo já associado a uma campanha de produção. |
| referenceId, tag | A sua referência de campanha, até 50 caracteres, e etiquetas opcionais. referenceId não é o cabeçalho Idempotency-Key. |
O esquema publicado contém algumas maiúsculas inconsistentes nas tabelas descritivas. O pedido atual do portal utiliza subscriberOptin e subscriberOptout conforme mostrado acima. Mantenha exatamente essas maiúsculas. Este guia abrange o fluxo 10DLC destinado ao inquilino; não infira que os campos obrigatórios ou as etapas de ativação de outro canal sejam os mesmos.
Repita o mesmo pedido pretendido em segurança
Utilize uma Idempotency-Key para esta criação pretendida. A chave tem 1–128 caracteres ASCII imprimíveis sem espaços e está limitada à conta proprietária. Mantenha o método HTTP, o caminho, a cadeia de consulta e os bytes exatos do corpo inalterados numa repetição. Um ficheiro JSON reformatado entra em conflito mesmo que os seus valores sejam equivalentes.
Uma duplicação em curso pode devolver HTTP 409 com Retry-After; os pedidos concluídos podem repetir a sua resposta armazenada. Um erro em cache não prova que o registo não criou nada. Guarde campaignId, requestId e quaisquer cabeçalhos de correlação, inspecione a campanha existente e reconcilie uma falha parcial antes de considerar uma nova chave.
Um ID de campanha não é a configuração final de envio
A resposta utiliza o estado HTTP e JSON direto. Após uma criação bem-sucedida, guarde campaignId e leia o seu estado atual:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"O fluxo de produção atual do portal também partilha a campanha com a operadora de mensagens e carrega a marca/campanha na conta de envio. Essas são operações separadas desta chamada pública de criação. Uma campanha de registo pode existir mesmo que uma etapa posterior de partilha ou de carregamento na operadora falhe.
Utilize o fluxo integrado de criação em produção do portal quando precisar da sequência combinada de registo, partilha e carregamento na operadora. Para uma campanha de produção já criada diretamente por esta API, conserve o seu ID de campanha e solicite a reconciliação da configuração da operadora da conta através do suporte. A IU atual do cliente não expõe um botão geral de retomar para cada campanha de produção criada diretamente. Não crie outro registo para repetir a sua ativação. Confirme que a campanha está ativa e que a configuração da operadora foi concluída antes de atribuir um número de envio. O número também deve ser próprio, ativo e com SMS ativado. A criação da campanha não envia mensagens.
Tarifas de campanhas de produção
| Caso de uso | Tarifa mensal |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Outros casos de uso de recurso configurados | $11.12 |
Estes montantes de retalho foram verificados em relação à configuração atual do portal em 24 de outubro de 2026. Confirme o caso de uso qualificado atual e o preço apresentado antes de uma submissão em produção. Um monthlyFee numa resposta de qualificação do registo não é automaticamente o seu preço de retalho MultiTEL.
O portal atual indica um compromisso mínimo de três meses para campanhas de produção não políticas. Reveja os termos aplicáveis e a escolha de renovação antes de confirmar. Registo, aluguer de número, verificação adicional e utilização de mensagens são cobranças separadas. Uma resposta de criação bem-sucedida não prova por si só que todas as etapas de faturação ou de ativação na operadora foram concluídas.
Trate falhas de validação e parciais
Leia HTTP status e o JSON devolvido. As falhas de validação podem ser matrizes de objetos code/description; as falhas locais podem, em vez disso, ser objetos com message, status e, para alguns erros de processamento, requestId.
| Resultado HTTP | Próxima ação |
|---|---|
| 400 | Corrija os campos específicos ou a chave de idempotência. Releia a qualificação atual, a contagem necessária de amostras e os requisitos de fluxos de destinatário. |
| 401, 403 ou 404 | Verifique as credenciais da API e o IP de origem permitido, depois a propriedade e as permissões de marca/revendedor. Não utilize identificadores de outra conta. |
| 402 | Reveja o financiamento de produção e a permissão de compra antes de repetir a mesma criação pretendida. |
| 409 | Distinga a repetição em curso de um pedido alterado que utiliza a mesma chave. Mantenha os detalhes existentes da campanha e do pedido ao reconciliar. |
| 429 ou limitador indisponível | Respeite Retry-After quando presente e conserve a chave original e o pedido exato. |
| 500 ou 502 | A criação pode já ter ocorrido. Guarde qualquer campaignId e requestId, verifique a campanha existente e retome ou reconcilie a sua ativação em vez de criar uma duplicação. |