# Migre su tráfico de SMS a BroadNet desde cualquier proveedor.

- URL canónica: https://www.broadnet.me/es/developers/migrate
- Idioma: es
- Última actualización: 2026-10-21
- Editor: BroadNet (https://www.broadnet.me)
- Versión Markdown de la página, generada a partir de la página publicada.

Guía de migración independiente del proveedor· /developers/migrate

Esta guía toma los conceptos que usa su proveedor actual (envío de mensajes, remitente, confirmaciones de entrega y webhooks de estado) y muestra la parte correspondiente de la API BroadNet. Luego, aborda el aspecto operativo: registro de ID de remitente, ejecución de ambos proveedores en paralelo, aumento gradual del tráfico, reversión y quién es responsable de cada paso. No menciona a ningún proveedor en particular, ya que los conceptos son los mismos en todas partes.

**Enviar un SMS**

POST /sms/sendSms

**Autenticación**

Authorization: Bearer <token>

**API HTTP heredada**

/websmpp/websms

**SMPP**

Versión 3.4, con confirmaciones de entrega

## Asigne su API actual a BroadNet

La mayoría de API de SMS comparten un pequeño conjunto de conceptos con nombres diferentes. Busque el concepto en la primera columna, independientemente de cómo lo denomine su proveedor, y utilice el equivalente BroadNet. Los nombres de los campos son exactamente como aparecen en la especificación OpenAPI.

| Concepto | Forma habitual en otros proveedores | BroadNet |
|---|---|---|
| Host API | Un host API regional para su cuenta | `https://api.broadnet.me` Las credenciales de prueba, y adónde enviar el tráfico de prueba, llegan con su acceso de prueba: solicítelo en /signup y le respondemos en un día hábil. |
| Autenticación | Un ID de cuenta y un secreto a través de autenticación básica, o un encabezado de clave API | `Authorization: Bearer <token>` Un token de acceso por cuenta. |
| Enviar un mensaje | Una solicitud HTTP POST a un punto final de mensajes | `POST /sms/sendSms` El cuerpo de la solicitud es JSON. |
| Remitente | `from`, `sender`, `originator` | `senderId` Un identificador de remitente alfanumérico o un número, registrado por país. |
| Destinatario | `to`, `destination`, `msisdn` | `destinationNumber` Formato internacional, como en el ejemplo de especificación `447700900101`. |
| Texto del mensaje | `body`, `text`, `content` | `message` El texto del mensaje, exactamente como lo verá el destinatario. |
| Codificación de caracteres y partes del mensaje | Calculado por el proveedor o devuelto por una llamada a la API independiente. | `messageType` `TEXT` (GSM-7) o `UNICODE`. `POST /sms/identify` devuelve `messageType`, `charCount`, `smsParts` y `charLimit` antes de enviar. |
| Envío programado | Un campo `send_at` o de tiempo programado | `isSchedule · gmt · time` Omita estos campos para enviar el mensaje inmediatamente. |
| ID del mensaje | Un campo de ID en la respuesta JSON | `200 OK → 2603121407537573731` El cuerpo de respuesta de `/sms/sendSms` es el ID del mensaje. |
| Varios destinatarios | Un punto final de lote o un bucle | `POST /sms/sendSmsGroupData` Un array `contacts` en el cuerpo. `POST /sms/sendbulk` acepta una carga de archivo en su lugar. |
| Webhook de estado de entrega | Una URL de devolución de llamada por solicitud o por cuenta. | `Webhook URL on your account` El estado de entrega se envía a la URL webhook configurada en su cuenta. `POST /sms/resendDlr` vuelve a enviar los recibos cuando no los ha recibido. |
| Consulta sobre el estado de la entrega | Una solicitud GET para el mensaje por su ID | `GET /websmpp/websmsstatus` API HTTP heredada. Pasa el ID del mensaje como `respid` y `format=json` para JSON. Valores: `DELIVRD`, `UNDELIV`, `EXPIRED`, `REJECTD`. |
| Exportación del informe de entrega | Exportación CSV en la consola | `/websmpp/api/dlrreport` API HTTP heredada. Un informe de entrega en formato XLSX para un rango de fechas. |
| Respuestas de error | Un estado HTTP más un código de error del proveedor | `400 · 401 · 500` 400: error de validación o campo faltante. 401: token Bearer no válido o faltante. 500: error inesperado del servidor. |
| SMPP | Las sesiones SMPP se vinculan al SMSC del proveedor. | `bind · submit_sm · deliver_sm` Sesiones SMPP v3.4 como transmisor, receptor o transceptor. Las confirmaciones de entrega llegan como `deliver_sm`. Su cuenta incluye las credenciales de inicio de sesión SMPP. |
| Envío mediante una URL HTTP GET | Una URL GET con credenciales en los parámetros. | `GET /websmpp/websms` API HTTP heredada. `user`, `pass` (o `accesskey` ), `sid`, `mno`, `type`, `text`. Se conservan para las integraciones existentes; las nuevas deben usar `/sms`. |
| SDK | Una biblioteca de clientes por idioma. | `@broadnet/cpaas-sdk` Existe un SDK oficial para TypeScript y Node.js. Para otros lenguajes, genere un cliente a partir de la especificación OpenAPI. |

Aquí se muestra el mismo envío como una sola solicitud. Reemplace los campos de remitente, destinatario y texto de su proveedor con `senderId`, `destinationNumber` y `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 comprobar un mensaje, consulte su estado con el ID del mensaje que devolvió la solicitud de envío:

Consulta del estado 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)
```

Cada ruta y campo de esta página proviene de la especificación OpenAPI BroadNet. Descárgala y compara tu mapeo con ella antes de escribir código. [Abrir la especificación OpenAPI](https://www.broadnet.me/developers/openapi.yaml)

## Mueva sus identificadores de remitente

Los identificadores de remitente alfanuméricos y los códigos cortos suelen ser portátiles, sujetos a las normas de registro de cada operador y regulador. El registro pertenece a la ruta que sigue su tráfico, así que planifíquelo antes de que cualquier mensaje de producción se envíe a BroadNet.

1. 1 Enumere todos los identificadores de remitente, los países a los que envían mensajes y el tipo de tráfico que transportan: OTP, transaccional o de marketing.
2. 2 Consulta las normas de cada país. En los Emiratos Árabes Unidos, los identificadores de remitente se registran conforme a las normas TDRA a través del operador, con un identificador por entidad jurídica y por caso de uso. En Arabia Saudita, se requiere la aprobación CST y del operador, y los remitentes extranjeros se vinculan a través de un agregador local con licencia CST.
3. 3 Su ingeniero de migración envía los registros para las rutas de BroadNet, y el equipo de cumplimiento de BroadNet realiza el seguimiento de cada uno hasta su aprobación.
4. 4 Inicie la transmisión en paralelo en un país solo después de que el identificador del remitente haya sido aprobado allí para las rutas de BroadNet. Hasta entonces, continúe enviando a través de su proveedor actual.

Las normas para cada mercado se encuentran en las páginas de reglamentos. [Normativa sobre SMS por país](https://www.broadnet.me/es/regulations)

## Ejecutar ambos proveedores en paralelo

Mantén activo tu proveedor actual y agrega BroadNet como una segunda ruta detrás de un conmutador en tu propio código. Envía primero a tus números verificados, luego una pequeña parte del tráfico real y compara ambas rutas en los mismos destinos.

Comparar, por país y operador:

- La combinación de estados de entrega: entregado, no entregado, caducado y rechazado.
- El tiempo transcurrido desde que se envía un mensaje hasta que se recibe su comprobante de entrega.
- El remitente que aparece en el teléfono.
- El recuento de segmentos para el mismo texto, desde `POST /sms/identify`.

Elija la ruta por destinatario en lugar de por mensaje, de modo que todos los reintentos OTP para un usuario pasen por el mismo proveedor. Un conmutador de enrutamiento mínimo:

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 el tráfico por etapas

Traslada el volumen de producción a BroadNet por etapas, según tus necesidades, un país o caso de uso a la vez. Permanece en cada etapa hasta que las confirmaciones de entrega coincidan con lo que enviaste, y luego pasa a la siguiente.

1. Pruebas Solo se aceptan números verificados. Confirme la identidad del remitente, el texto del mensaje y los comprobantes de entrega.
2. 5% Una pequeña parte del tráfico real. El tráfico OTP a un solo país devuelve confirmaciones de entrega rápidas y claras.
3. 25% Volumen suficiente para comparar las tarifas de envío y los plazos de entrega con su proveedor actual.
4. 100% Todo el tráfico para ese país o caso de uso. Tu proveedor actual seguirá activo hasta que las confirmaciones de entrega coincidan con lo que enviaste.

### Cuánto tiempo tarda

El aumento del tráfico puede tardar el tiempo que usted decida. El proceso de incorporación sigue un único procedimiento: respondemos a las solicitudes de acceso de prueba en un día hábil, la integración técnica tarda de 2 a 5 días hábiles y la validación de rutas con la aprobación del ID del remitente tarda de 3 a 10 días hábiles. La mayoría de los mercados pasan de la fase de descubrimiento a la puesta en marcha en 5 a 15 días hábiles; los mercados donde los reguladores tardan más en aprobar los ID de remitente requieren más tiempo. [Consulta los pasos de incorporación](https://www.broadnet.me/es/onboarding)

## Vuelva a su proveedor actual sin interrupción del servicio

Para revertir los cambios, utilice el mismo interruptor a la inversa: reduzca el porcentaje de tráfico enviado a través de BroadNet al último valor que funcionó o a cero. Su integración actual y sus registros de ID de remitente se mantienen activos en todo momento, por lo que basta con reducir el porcentaje. No es necesario reconstruir nada.

- Mantenga activas las credenciales de su proveedor actual, los registros de ID de remitente y el punto final webhook hasta que todo el tráfico se haya transferido y las confirmaciones de entrega coincidan con lo que usted envió.
- Antes de empezar, pónganse de acuerdo sobre qué desencadena una reversión, por ejemplo, una caída en la proporción de mensajes entregados en un país, y quién está autorizado a decidirlo.
- Mantén tu gestor webhook en funcionamiento después de una reversión: las confirmaciones de entrega de los mensajes ya enviados a través de BroadNet aún pueden llegar.
- Retire la ruta antigua solo después de que todo el tráfico pase sin problemas por BroadNet y las confirmaciones de entrega coincidan con lo que usted envió.

## ¿Quién es responsable de qué?

Una migración afecta a tu código, a tus registros de remitentes y al tráfico en tiempo real. Así es como se divide el trabajo.

| Tarea | Su equipo | BroadNet |
|---|---|---|
| Mapeo de campos y cambios de código | Realiza los cambios en el código y toma el control del conmutador de enrutamiento. | Su ingeniero de migración asigna sus cargas útiles, identificadores de remitente y recibos actuales a la API BroadNet. |
| Credenciales | Almacene el token de acceso de forma segura y manténgalo fuera del control de versiones. | Emite el token de acceso y, para SMPP, las credenciales de inicio de sesión. |
| Registro de ID de remitente | Proporcione a la empresa los documentos que solicite cada organismo regulador. | Tramita las inscripciones para sus rutas y realiza el seguimiento de cada una hasta su aprobación. |
| Validación de ruta | Confirma los resultados de la prueba en tus propios números de teléfono. | Pruebas de entrega en cada mercado antes del tráfico de producción. |
| Aumento del tráfico y reversión | Decida cada paso, qué desencadena una reversión y quién la decide. | Se puede contactar con un ingeniero de migración específico durante la ejecución en paralelo y la transición. |
| Entrega después de que BroadNet acepte un mensaje | Supervise las confirmaciones de entrega en sus propios sistemas. | Enruta cada mensaje desde su plataforma al operador e informa de la confirmación de entrega. |
| Incidentes de producción | Infórmales a developers@broadnet.me. | Soporte técnico 24/7 para cuentas de producción, con respuesta P1 en 15 minutos. |
| Retirada de la antigua ruta | Cierra la cuenta con tu proveedor anterior. | Confirma que los identificadores de remitente, el rendimiento y las confirmaciones de entrega se hayan liquidado antes de cerrarlo. |

## Documentación relacionada

[Cámbiate a BroadNet Por qué los equipos se cambian a BroadNet y el plan de transición en cuatro pasos.](https://www.broadnet.me/es/switch) [Referencia API Autenticación Bearer, envío individual y masivo, consulta de números y errores.](https://www.broadnet.me/es/developers/api) [Webhooks El estado de la entrega se ha enviado a la URL webhook de tu cuenta.](https://www.broadnet.me/es/developers/webhooks)

## Preguntas frecuentes

### ¿Tengo que reescribir mi integración para migrar a BroadNet?

Normalmente no. Se modifican el host, el encabezado de autenticación y algunos nombres de campos: el campo del remitente pasa a ser `senderId`, el del destinatario `destinationNumber` y el del texto `message`. Las integraciones SMPP redirigen su enlace existente a BroadNet con nuevas credenciales.

### ¿Puedo conservar mis identificadores de remitente?

En general, sí, sujeto a las normas de registro de cada operador y regulador. Los registros se presentan en las rutas de BroadNet antes de la puesta en marcha: en los Emiratos Árabes Unidos bajo las normas TDRA, y en Arabia Saudita con la aprobación CST y del operador.

### ¿Cuánto tiempo tarda una migración?

La mayoría de los mercados pasan de la fase de descubrimiento a la de puesta en marcha en 5 a 15 días hábiles; los mercados donde los reguladores tardan más en aprobar los identificadores de remitente tardan más. El aumento del tráfico posterior dura el tiempo que usted decida.

### ¿Qué sucede si las tasas de entrega disminuyen mientras aumento el tráfico?

Reduzca el porcentaje de tráfico enviado a través de BroadNet al último paso que funcionó, o a cero. Su proveedor actual sigue activo, por lo que el tráfico continúa fluyendo. Luego, revise las confirmaciones de entrega del país afectado con su ingeniero de migración antes de volver a intentarlo.

### ¿Tiene algún coste el servicio de asistencia para la migración?

No. El soporte para la migración y la ventana de ejecución en paralelo están incluidos en tu cuenta. Solo pagas por los mensajes que envías.

## Solicitar acceso de prueba · respuesta en un día hábil

Obtenga sus credenciales, envíe mensajes de prueba a su propio número verificado y configure su integración actual con un ingeniero de telecomunicaciones BroadNet antes de que se mueva cualquier tráfico de producción.

[Solicitar acceso de prueba](https://www.broadnet.me/es/signup) [Por qué cambiarse a BroadNet](https://www.broadnet.me/es/switch)
