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

- URL canónico: https://www.broadnet.me/pt/developers/migrate
- Idioma: pt
- Última atualização: 2026-10-21
- Editor: BroadNet (https://www.broadnet.me)
- Versão Markdown da página, gerada a partir da página publicada.

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

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.

| Conceito | Forma típica em outros fornecedores | BroadNet |
|---|---|---|
| Host API | Um 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ção | Um 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 mensagem | Uma solicitação HTTP POST para um endpoint de mensagens | `POST /sms/sendSms` O corpo da requisição é JSON. |
| Remetente | `from`, `sender`, `originator` | `senderId` Um identificador de remetente alfanumérico ou um número, registado por país. |
| Destinatário | `to`, `destination`, `msisdn` | `destinationNumber` Formato internacional, como no exemplo de especificação `447700900101`. |
| Texto da mensagem | `body`, `text`, `content` | `message` O texto da mensagem, exatamente como o destinatário o verá. |
| Codificação de caracteres e partes da mensagem | Calculado 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 agendado | Um campo `send_at` ou de horário de agendamento | `isSchedule · gmt · time` Deixe esses campos em branco para enviar a mensagem imediatamente. |
| ID da mensagem | Um campo ID na resposta JSON | `200 OK → 2603121407537573731` O corpo da resposta de `/sms/sendSms` é o ID da mensagem. |
| Vários destinatários | Um ponto final em lote ou um loop | `POST /sms/sendSmsGroupData` Um array `contacts` no corpo. `POST /sms/sendbulk` aceita o upload de um ficheiro. |
| Webhook de status de entrega | Um 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 entrega | Uma 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 entrega | Exportar 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 erro | Um status HTTP mais um código de erro do fornecedor | `400 · 401 · 500` 400: erro de validação ou campo ausente. 401: token Bearer inválido ou ausente. 500: erro inesperado do servidor. |
| SMPP | As sessões SMPP (vinculações) ao SMSC do fornecedor | `bind · 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 GET | Uma 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`. |
| SDK | Uma 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)
```

Todos os caminhos e campos desta página foram retirados da especificação OpenAPI BroadNet. Faça o download e verifique o seu mapeamento antes de escrever o código. [Abra a especificação OpenAPI](https://www.broadnet.me/developers/openapi.yaml)

## 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](https://www.broadnet.me/pt/regulations)

## 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.](https://www.broadnet.me/pt/onboarding)

## 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.

| Tarefa | A sua equipa | BroadNet |
|---|---|---|
| Mapeamento de campos e alterações de código | Faç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. |
| Credenciais | Armazene 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 remetente | Forneç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 rota | Confirme 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 rollback | Defina 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 mensagem | Monitorize 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ção | Denuncie-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 antiga | Encerre 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

[Mude para a BroadNet Porque as equipas migram para BroadNet e o plano de transição em quatro etapas.](https://www.broadnet.me/pt/switch) [Referência API Autenticação Bearer, envio individual e em massa, consulta de números e erros.](https://www.broadnet.me/pt/developers/api) [Webhooks O status da entrega foi enviado para o URL webhook na sua conta.](https://www.broadnet.me/pt/developers/webhooks)

## 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.

[Solicitar acesso de teste](https://www.broadnet.me/pt/signup) [Porque mudar para a BroadNet](https://www.broadnet.me/pt/switch)
