BroadNet
Guia de migração independente do fornecedor·/developers/migrate

Migre o seu tráfego de SMS para BroadNet, independentemente do fornecedor.

Este guia aborda os conceitos utilizados pelo seu fornecedor atual (envio de mensagem, remetente, relatórios de entrega e webhooks de status) e mostra a parte correspondente da API BroadNet. Em seguida, cobre o lado operacional: registo do ID do remetente, execução de ambos os fornecedores em paralelo, aumento gradual do tráfego, reversão e quem é responsável por cada etapa. Não menciona nenhum fornecedor específico, pois os conceitos são os mesmos em todos os casos.

Enviar um SMS
POST /sms/sendSms
Autenticação
Authorization: Bearer <token>
API HTTP legada
/websmpp/websms
SMPP
Versão 3.4, com comprovativos de entrega

Mapeie a sua API atual para BroadNet

A maioria API de SMS partilha os mesmos conceitos básicos, embora com nomes diferentes. Encontre o conceito na primeira coluna, seja qual for o nome que o seu fornecedor lhe dê, e use o equivalente BroadNet. Os nomes dos campos são exatamente como aparecem na especificação OpenAPI.

ConceitoForma típica em outros fornecedoresBroadNet
Host APIUm host API regional para a sua conta.https://api.broadnet.me

As credenciais de teste, e para onde enviar o tráfego de teste, vêm com o seu acesso de teste: solicite-o em /signup e respondemos em até um dia útil.

AutenticaçãoUm ID de conta e uma chave secreta por meio de autenticação básica, ou um cabeçalho de chave API.Authorization: Bearer <token>

Um token de acesso por conta.

Enviar uma mensagemUma solicitação HTTP POST para um endpoint de mensagensPOST /sms/sendSms

O corpo da requisição é JSON.

Remetentefrom, sender, originatorsenderId

Um identificador de remetente alfanumérico ou um número, registado por país.

Destinatárioto, destination, msisdndestinationNumber

Formato internacional, como no exemplo de especificação 447700900101.

Texto da mensagembody, text, contentmessage

O texto da mensagem, exatamente como o destinatário o verá.

Codificação de caracteres e partes da mensagemCalculado pelo fornecedor ou devolvido por uma chamada API separada.messageType

TEXT (GSM-7) ou UNICODE. POST /sms/identify devolve messageType, charCount, smsParts e charLimit antes de você enviar.

Envio agendadoUm campo send_at ou de horário de agendamentoisSchedule · gmt · time

Deixe esses campos em branco para enviar a mensagem imediatamente.

ID da mensagemUm campo ID na resposta JSON200 OK → 2603121407537573731

O corpo da resposta de /sms/sendSms é o ID da mensagem.

Vários destinatáriosUm ponto final em lote ou um loopPOST /sms/sendSmsGroupData

Um array contacts no corpo. POST /sms/sendbulk aceita o upload de um ficheiro.

Webhook de status de entregaUm URL de retorno por solicitação ou por conta.Webhook URL on your account

O status da entrega é enviado para o URL webhook configurado na sua conta. POST /sms/resendDlr reenvia os recibos caso eles não cheguem até ele.

Consulta sobre o status da entregaUma solicitação GET para a mensagem pelo seu ID.GET /websmpp/websmsstatus

API HTTP legada. Passe o ID da mensagem como respid e format=json para JSON. Valores: DELIVRD, UNDELIV, EXPIRED, REJECTD.

Exportação de relatório de entregaExportar um ficheiro CSV no console./websmpp/api/dlrreport

API HTTP legada. Um relatório de entregas em formato XLSX para um intervalo de datas.

Respostas de erroUm status HTTP mais um código de erro do fornecedor400 · 401 · 500

400: erro de validação ou campo ausente. 401: token Bearer inválido ou ausente. 500: erro inesperado do servidor.

SMPPAs sessões SMPP (vinculações) ao SMSC do fornecedorbind · submit_sm · deliver_sm

Sessões SMPP v3.4 como transmissor, recetor ou transceptor. Os relatórios de entrega chegam como deliver_sm. A sua conta inclui as credenciais de login SMPP.

Envio com uma URL HTTP GETUma URL GET com credenciais nos parâmetros.GET /websmpp/websms

API HTTP legada. user, pass (ou accesskey), sid, mno, type, text. Mantido para integrações existentes; novas devem usar /sms.

SDKUma biblioteca de clientes por idioma@broadnet/cpaas-sdk

Existe um SDK oficial para TypeScript e Node.js. Para outras linguagens, gere um cliente a partir da especificação OpenAPI.

Aqui está o mesmo envio como uma única solicitação. Substitua os campos de remetente, destinatário e texto do seu fornecedor por senderId, destinationNumber e message :

POST /sms/sendSms
curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "ACME",
    "destinationNumber": "447700900101",
    "message": "Your code is 8123",
    "messageType": "TEXT"
  }'

# 200 OK — the response body is the message ID, e.g. 2603121407537573731

Para verificar uma mensagem, consulte o seu estado com o ID da mensagem que a solicitação de envio devolveu:

Consulta de status de entrega
# Status lookup on the legacy HTTP API (/websmpp), by message ID
curl "https://api.broadnet.me/websmpp/websmsstatus?respid=2603121407537573731&format=json" \
  -H "Authorization: Bearer $BROADNET_TOKEN"

# "status": "DELIVRD"   (or UNDELIV, EXPIRED, REJECTD)

Mova os seus IDs de remetente

Os IDs de remetente alfanuméricos e os códigos curtos são geralmente portáteis, sujeitos às regras de registo de cada operadora e regulador. Um registo está vinculado à rota que o seu tráfego percorre, portanto, planeie-o antes que qualquer mensagem de produção seja enviada para a BroadNet.

  1. 1

    Liste todos os IDs de remetente, os países para os quais enviam e o tipo de tráfego que transportam: OTP, transacional ou de marketing.

  2. 2

    Verifique as regras de cada país. Nos Emirados Árabes Unidos, os IDs de remetente são registados de acordo com as regras TDRA por meio da operadora, sendo um ID por entidade legal por caso de uso. Na Arábia Saudita, eles precisam da aprovação CST e da operadora, e os remetentes estrangeiros se vinculam por meio de um agregador local licenciado CST.

  3. 3

    O seu engenheiro de migração envia os registos das rotas da BroadNet, e a equipa de conformidade da BroadNet acompanha cada um deles até a aprovação.

  4. 4

    Inicie a execução paralela num país somente após o ID do remetente ser aprovado para as rotas da BroadNet naquele país. Até lá, continue a enviar pelo seu fornecedor atual.

As regras para cada mercado estão nas páginas de regulamentos. Regulamentação de SMS por país

Execute ambos os fornecedores em paralelo

Mantenha o seu fornecedor atual ativo e adicione BroadNet como uma segunda rota por trás de um switch no seu próprio código. Envie primeiro para os seus próprios números verificados, depois para uma pequena parte do tráfego real e compare ambas as rotas nos mesmos destinos.

Comparação por país e operadora:

  • A combinação de status de entrega: entregue, não entregue, expirado e rejeitado.
  • O tempo decorrido entre o envio de uma mensagem e a receção do relatório de entrega.
  • O remetente exibido no aparelho.
  • A contagem de segmentos para o mesmo texto, de POST /sms/identify.

Escolha a rota por destinatário em vez de por mensagem, para que todas as tentativas de reenvio OTP para um utilizador passem pelo mesmo fornecedor. Uma troca de encaminhamento mínima:

route.ts
// Send a share of recipients through BroadNet; the rest stay on your
// current provider. BROADNET_SHARE is a percentage (0-100) you control.
const BROADNET_SHARE = Number(process.env.BROADNET_SHARE ?? "0");

// Same recipient -> same bucket, so OTP retries stay on one provider.
function bucket(to: string): number {
  let h = 0;
  for (const c of to) h = (h * 31 + c.charCodeAt(0)) >>> 0;
  return h % 100;
}

export async function sendSms(to: string, text: string, senderId: string) {
  if (bucket(to) < BROADNET_SHARE) return sendViaBroadNet(to, text, senderId);
  return sendViaCurrentProvider(to, text, senderId); // your existing code
}

async function sendViaBroadNet(to: string, text: string, senderId: string) {
  const res = await fetch("https://api.broadnet.me/sms/sendSms", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.BROADNET_TOKEN}`,
      "Content-Type": "application/json",
    },
    // Use UNICODE for non-GSM text; POST /sms/identify tells you which.
    body: JSON.stringify({ senderId, destinationNumber: to, message: text, messageType: "TEXT" }),
  });
  if (!res.ok) throw new Error(`BroadNet send failed: ${res.status}`);
  return { provider: "broadnet", messageId: await res.text() };
}

Aumentar o tráfego em etapas

Transfira o volume de produção para BroadNet em etapas que você escolher, um país ou caso de uso por vez. Permaneça em cada etapa até que os comprovativos de entrega correspondam ao que você enviou e, em seguida, passe para a próxima.

  1. Testando

    Somente os seus números verificados. Confirme o ID do remetente, o texto da mensagem e os comprovativos de entrega.

  2. 5%

    Uma pequena parcela do tráfego real. O tráfego OTP para um único país devolve comprovativos de entrega rápidos e claros.

  3. 25%

    Volume suficiente para comparar taxas de entrega e prazos de receção com o seu fornecedor atual.

  4. 100%

    Todo o tráfego para esse país ou caso de uso. O seu fornecedor atual permanece ativo até que os comprovativos de entrega correspondam ao que você enviou.

Quanto tempo leva?

Aumentar o tráfego leva o tempo que você precisar. O processo de integração segue um único caminho: respondemos a uma solicitação de acesso de teste em até um dia útil, a integração técnica leva de 2 a 5 dias úteis e a validação da rota com aprovação do ID do remetente leva de 3 a 10 dias úteis. Na maioria dos mercados, o processo da descoberta à entrada em operação leva de 5 a 15 dias úteis; em mercados onde os órgãos reguladores demoram mais para aprovar os IDs dos remetentes, o processo leva ainda mais tempo. Consulte as etapas de integração.

Volte para o seu fornecedor atual sem interrupção

Para reverter, use o mesmo botão ao contrário: reduza a porcentagem de tráfego enviado pelo BroadNet para o último nível que funcionou ou para zero. A sua integração atual e os seus registos de ID de remetente permanecem ativos o tempo todo, portanto, reduzir a porcentagem é suficiente. Nada precisa ser reconstruído.

  • Mantenha as credenciais do seu fornecedor atual, os registos de ID do remetente e o endpoint webhook ativos até que todo o tráfego tenha sido transferido e os relatórios de entrega correspondam ao que você enviou.
  • Antes de começar, definam o que desencadeia um rollback, por exemplo, uma queda na proporção de mensagens entregues num determinado país, e quem tem permissão para tomar essa decisão.
  • Mantenha o seu manipulador webhook em execução após um rollback: os relatórios de entrega de mensagens já enviadas pelo BroadNet ainda podem chegar.
  • Desative a rota antiga somente depois que todo o tráfego passar sem problemas pela BroadNet e os comprovativos de entrega corresponderem ao que você enviou.

Quem é responsável por quê?

Uma migração afeta o seu código, os seus registos de remetente e o tráfego em produção. É assim que o trabalho é dividido.

TarefaA sua equipaBroadNet
Mapeamento de campos e alterações de códigoFaça as alterações no código e assuma o controlo da chave de encaminhamento.O seu engenheiro de migração mapeia os seus payloads, IDs de remetente e recibos atuais para a API BroadNet.
CredenciaisArmazene o token de acesso em local seguro e mantenha-o fora do controlo de versão.Emite o token de acesso e, para SMPP, as credenciais de login.
Registo de ID do remetenteForneça à empresa os documentos que cada órgão regulador solicitar.Submete os registos das suas rotas e acompanha cada um deles até a aprovação.
Validação de rotaConfirme os resultados dos testes nos seus próprios números de telefone.Os testes de entrega em cada mercado são realizados antes do início da produção.
Aumento do tráfego e rollbackDefina cada etapa, o que desencadeia um rollback e quem toma essa decisão.É possível contactar um engenheiro de migração específico durante a execução paralela e a transição.
Entrega após BroadNet aceitar uma mensagemMonitorize os comprovativos de entrega nos seus próprios sistemas.Encaminha cada mensagem da sua plataforma para a operadora e reporta a receção da mesma.
Incidentes de produçãoDenuncie-os para developers@broadnet.me.Suporte técnico 24 horas por dia, 7 dias por semana, para contas de produção, com resposta P1 em 15 minutos.
Desativando a rota antigaEncerre a conta com o seu fornecedor anterior.Confirma se os IDs do remetente, a taxa de transferência e os comprovativos de entrega foram liquidados antes de você fechar o processo.

Documentação relacionada

Perguntas frequentes

Preciso reescrever a minha integração para migrar para BroadNet ?

Geralmente não. Você altera o host, o cabeçalho de autenticação e alguns nomes de campo: o campo do remetente passa a ser senderId, o campo do destinatário passa a ser destinationNumber e o campo de texto passa a ser message. As integrações SMPP apontam a sua conexão existente para a BroadNet com novas credenciais.

Posso manter os meus IDs de remetente?

Em geral, sim, sujeito às regras de registo de cada operadora e órgão regulador. Os registos são feitos nas rotas da BroadNet antes da transição: nos Emirados Árabes Unidos, de acordo com as regras TDRA, e na Arábia Saudita, com a aprovação CST e da operadora.

Quanto tempo demora uma migração?

Na maioria dos mercados, o processo de descoberta e entrada em operação leva de 5 a 15 dias úteis; em mercados onde os órgãos reguladores demoram mais para aprovar os IDs dos remetentes, o prazo é ainda maior. O aumento gradual do tráfego após essa etapa leva o tempo que você escolher.

O que acontece se as taxas de entrega caírem enquanto eu aumento o tráfego?

Reduza a porcentagem de tráfego enviado pela BroadNet para a última etapa que funcionou ou para zero. O seu fornecedor atual ainda está ativo, então o tráfego continua a fluir. Em seguida, revise os comprovativos de entrega do país afetado com o seu engenheiro de migração antes de tentar novamente.

Existe alguma taxa para suporte à migração?

Não. O suporte à migração e a janela de execução paralela estão incluídos na sua conta. Você paga apenas pelas mensagens que envia.

Solicitar acesso de teste · resposta num dia útil

Obtenha as credenciais, envie mensagens de teste para o seu próprio número verificado e mapeie a sua integração atual com um engenheiro de telecomunicações BroadNet antes que qualquer tráfego de produção seja movimentado.