Programadores

POST/tcr/v2/campaignBuilder

Registar uma campanha 10DLC

Submeta uma campanha qualificada e distinga o registo no registo central da ativação na operadora e da prontidão de envio.

Nesta página
  1. Qualifique uma marca antes de registar a sua campanha
  2. Mantenha sandbox e produção separadas
  3. Submeta o JSON da campanha
  4. Campos da campanha e requisitos condicionais
  5. Repita o mesmo pedido pretendido em segurança
  6. Um ID de campanha não é a configuração final de envio
  7. Tarifas de campanhas de produção
  8. Trate falhas de validação e parciais

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

Pedido de campanha 10DLC
CamposO que fornecer
brandId, channelId, usecaseA 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.
subUsecasesUma matriz de códigos de subcasos de uso elegíveis. Respeite as contagens mínima e máxima da qualificação selecionada.
resellerIdUm 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, messageFlowDescreva 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 … sample5Mensagens 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, subscriberHelpDeclare 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, helpKeywordsAs palavras-chave reais reconhecidas, até 255 caracteres. Devem corresponder ao comportamento da aplicação recetora.
optinMessage, optoutMessage, helpMessageAs mensagens correspondentes. As regras de campo publicadas atuais especificam 20–1024 caracteres. Inclua o comportamento real de suporte e de opt-out.
embeddedLink, embeddedPhone, embeddedLinkSampleDeclare 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.
mnoIdsUma 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, directLendingCaracterísticas aplicáveis da campanha como booleanos JSON. Escolha-as de acordo com o serviço real.
privacyPolicyLink, termsAndConditionsLinkOs 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.
termsAndConditionsAceitaçã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.
autoRenewalSe 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, tagA 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

Tarifas mensais de campanha configuradas atuais
Caso de usoTarifa 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.

Falhas de campanha
Resultado HTTPPróxima ação
400Corrija 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 404Verifique 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.
402Reveja o financiamento de produção e a permissão de compra antes de repetir a mesma criação pretendida.
409Distinga 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ívelRespeite Retry-After quando presente e conserve a chave original e o pedido exato.
500 ou 502A 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.