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

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

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.

ConceptoForma habitual en otros proveedoresBroadNet
Host APIUn host API regional para su cuentahttps://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ónUn ID de cuenta y un secreto a través de autenticación básica, o un encabezado de clave APIAuthorization: Bearer <token>

Un token de acceso por cuenta.

Enviar un mensajeUna solicitud HTTP POST a un punto final de mensajesPOST /sms/sendSms

El cuerpo de la solicitud es JSON.

Remitentefrom, sender, originatorsenderId

Un identificador de remitente alfanumérico o un número, registrado por país.

Destinatarioto, destination, msisdndestinationNumber

Formato internacional, como en el ejemplo de especificación 447700900101.

Texto del mensajebody, text, contentmessage

El texto del mensaje, exactamente como lo verá el destinatario.

Codificación de caracteres y partes del mensajeCalculado 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 programadoUn campo send_at o de tiempo programadoisSchedule · gmt · time

Omita estos campos para enviar el mensaje inmediatamente.

ID del mensajeUn campo de ID en la respuesta JSON200 OK → 2603121407537573731

El cuerpo de respuesta de /sms/sendSms es el ID del mensaje.

Varios destinatariosUn punto final de lote o un buclePOST /sms/sendSmsGroupData

Un array contacts en el cuerpo. POST /sms/sendbulk acepta una carga de archivo en su lugar.

Webhook de estado de entregaUna 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 entregaUna solicitud GET para el mensaje por su IDGET /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 entregaExportació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 errorUn estado HTTP más un código de error del proveedor400 · 401 · 500

400: error de validación o campo faltante. 401: token Bearer no válido o faltante. 500: error inesperado del servidor.

SMPPLas 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 GETUna 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.

SDKUna 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)

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

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

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.

TareaSu equipoBroadNet
Mapeo de campos y cambios de códigoRealiza 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.
CredencialesAlmacene 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 remitenteProporcione 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 rutaConfirma 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ónDecida 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 mensajeSupervise 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ónInfó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 rutaCierra 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

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.