# Lista de verificación de integración SMPP

- URL canónica: https://www.broadnet.me/es/guides/smpp-integration-checklist
- Idioma: es
- Editor: BroadNet (https://www.broadnet.me)
- Versión Markdown de la página, generada a partir de la página publicada.

Protocolos y API Checklist gratuita

Una lista de verificación de campo para integrar SMPP v3.4/v5.0: tipos de bind, TLV opcionales, manejo de confirmaciones de entrega, keepalives enquire_link, throttling, TLS y un plan de pruebas previo a producción.

33 puntos de control 5 min de lectura Actualizado el 14 de julio de 2026

Envíenme el PDF

Para desarrolladores e ingenieros de mensajería que configuran un nuevo bind SMPP.

Contenido

1. 01Configuración de sesión y bind
2. 02Envío de mensajes (submit_sm)
3. 03Parámetros opcionales (TLV) que vale la pena configurar
4. 04Manejo de confirmaciones de entrega (DLR)
5. 05Keepalive y control de flujo
6. 06Seguridad del transporte (TLS)
7. 07Plan de pruebas previo a producción

[Ver todas las guías](https://www.broadnet.me/es/guides)

En resumen

SMPP (Short Message Peer-to-Peer) es el protocolo binario que la mayoría de los agregadores y operadores exponen para la mensajería A2P de alto rendimiento. Una integración limpia tiene menos que ver con escribir PDU y más con acertar en los detalles operativos: elegir el modo de bind correcto, respetar los límites de ventana y throttle, analizar las confirmaciones de entrega de forma fiable, mantener viva la sesión y asegurar el transporte. Trabaje de arriba hacia abajo — cada grupo es un punto de control que puede validar antes de promover un bind a producción.

La checklist

## Avance punto por punto y marque cada casilla.

Diagrama Una sesión SMPP entre su plataforma y BroadNet

Su plataforma (ESME)

BroadNet SMSC

Una conexión TCP/TLS persistente

1. `bind_transceiver` Abrir y autenticar la sesión
2. `bind_transceiver_resp` Sesión aceptada
3. `submit_sm` Enviar un mensaje
4. `submit_sm_resp` Aceptado, ID de mensaje devuelto
5. `deliver_sm` Confirmación de entrega o mensaje entrante
6. `deliver_sm_resp` Confirmado
7. `enquire_link` Keepalive en estado de inactividad

01

### Configuración de sesión y bind

Elija el modo de bind correcto para la dirección de su tráfico y confirme la versión de protocolo negociada antes de enviar un solo mensaje.

- Confirme la versión de SMPP — v3.4 para la mayoría de las rutas, v5.0 donde el proveedor admita el estado de congestión y TLV mejorados. La v5.0 es compatible hacia atrás; no asuma que las funciones están disponibles hasta que el bind_resp lo confirme.
- Elija el tipo de bind correcto por sesión. transmisor (solo MT), receptor (solo DLR/MO), o transceptor (ambos en una sola sesión). Prefiera el transceptor para reducir a la mitad el número de conexiones donde el proveedor lo permita.
- Configure system_id, password, system_type y address_range exactamente como se aprovisionaron. Un address_range mal configurado bloquea silenciosamente el enrutamiento de MO/DLR en los binds de receptor.
- Acuerde por escrito con el proveedor el número de binds concurrentes y el TPS por bind. Abrir más binds de los aprovisionados es la causa más común de una cuenta limitada (throttled) o suspendida.
- Gestione explícitamente los códigos de estado de bind_resp — reintente ESME_RALYBND y reduzca el ritmo ante ESME_RBINDFAIL. Nunca reintente un bind fallido en bucle continuo; use retroceso exponencial con jitter.

02

### Envío de mensajes (submit_sm)

- Configure correctamente source_addr_ton / source_addr_npi y dest_addr_ton / dest_addr_npi para sender ID alfanuméricos frente a numéricos. Remitente alfanumérico → TON 5 (alfanumérico); MSISDN internacional → TON 1, NPI 1.
- Elija el data_coding correcto: GSM de 7 bits (0), 8 bits (4), o UCS-2 (8) para Unicode. Mezclar codificaciones sin configurar data_coding causa mojibake y una segmentación incorrecta.
- Implemente la concatenación de mensajes largos mediante UDH o los TLV opcionales SAR (sar_msg_ref_num, sar_total_segments, sar_segment_seqnum). Elija un método y manténgalo; algunas rutas rechazan UDH, otras rechazan los TLV SAR.
- Solicite confirmaciones de entrega con registered_delivery = 1 solo donde los consuma. Solicitar DLR que no procesa desperdicia rendimiento y puede generar advertencias por parte del proveedor.
- Respete la semántica de validity_period y schedule_delivery_time para su caso de uso (OTP = validez corta). Los OTP de corta duración deben llevar un validity_period ajustado para que los mensajes obsoletos no se entreguen tarde.

03

### Parámetros opcionales (TLV) que vale la pena configurar

- message_payload — para cargas útiles que superan el límite del campo short_message. No rellene a la vez short_message y message_payload; los proveedores lo rechazan.
- TLV sar_* — concatenación basada en estándares sin bytes UDH en el cuerpo.
- dest_addr_subunit / source_addr_subunit — donde la ruta lo requiera para el enrutamiento al terminal.
- Transporte los metadatos proporcionados por el cliente solo en TLV aprobados por el proveedor. Los TLV personalizados fuera del rango acordado suelen eliminarse o provocar errores de análisis más adelante.

04

### Manejo de confirmaciones de entrega (DLR)

Las confirmaciones de entrega llegan como PDU deliver_sm y son la columna vertebral de su conciliación y de los informes de calidad.

- Analice el recibo del campo short_message de deliver_sm: id, sub, dlvrd, fecha de envío, fecha de finalización, stat, err. El campo `stat` (DELIVRD, UNDELIV, EXPIRED, REJECTD, etc.) es su estado terminal.
- Correlacione los DLR con su envío usando el formato de message_id del proveedor, no solo el texto del recibo. El message_id puede devolverse en hexadecimal en submit_resp pero en decimal en el DLR — normalice ambos.
- Trate los recibos intermedios (no finales) por separado de los estados finales. El bit 0x04 de esm_class marca una confirmación de entrega; solo los valores `stat` finales deberían cerrar un mensaje.
- Devuelva siempre un deliver_sm_resp — un DLR no confirmado se reenvía y puede bloquear la ventana. Responda con prontitud aunque el procesamiento posterior sea asíncrono.
- Asigne los códigos de error del operador a una taxonomía normalizada (suscriptor ausente, terminal ocupado, bloqueado como spam, número inválido). Los códigos de error en bruto varían según la ruta; una taxonomía normalizada permite comparar la calidad entre rutas.

05

### Keepalive y control de flujo

- Envíe enquire_link con un temporizador de inactividad (habitualmente 30-60 s) y trate una ausencia de enquire_link_resp como una sesión muerta. Esta es la única forma fiable de detectar una conexión TCP semiabierta.
- Implemente la ventana de SMPP: limite los PDU pendientes sin confirmar y pause los envíos cuando la ventana esté llena. Disparar submit_sm a ciegas más allá de la ventana es lo que provoca ESME_RTHROTTLED.
- Reduzca el ritmo ante ESME_RTHROTTLED (0x58) en lugar de reintentar de inmediato. Añada jitter para que las tormentas de reconexión no se sincronicen entre los procesos worker.
- Respete unbind / unbind_resp para un cierre ordenado; reconéctese con retroceso ante desconexiones inesperadas.

06

### Seguridad del transporte (TLS)

- Use SMPP sobre TLS donde el proveedor lo ofrezca; desactive los binds en texto plano en producción. SMPP no tiene cifrado nativo — TLS es el control de la capa de transporte.
- Fije o valide la cadena de certificados del servidor y exija TLS 1.2 o superior. Rechace certificados caducados o autofirmados; no desactive la verificación 'para que funcione'.
- Restrinja los binds a IP de origen en lista blanca en ambos extremos. La lista blanca de IP es un control estándar del operador y una forma rápida de contener fugas de credenciales.
- Rote las credenciales de SMPP según un calendario y almacénelas en un gestor de secretos, nunca en el código.

07

### Plan de pruebas previo a producción

- Envíe a un MSISDN de prueba en vivo en cada ruta objetivo y confirme la recepción en el terminal de extremo a extremo.
- Verifique el ciclo completo de DLR para los resultados entregado, no entregado, expirado y rechazado.
- Pruebe mensajes largos (multisegmento) y contenido Unicode (UCS-2) en cada ruta.
- Realice pruebas de carga con su TPS aprovisionado y confirme un comportamiento adecuado en el límite de ventana/throttle.
- Simule una conexión caída a mitad de ventana y confirme una reconexión limpia y sin envíos duplicados. La idempotencia en los reintentos evita la doble facturación y la entrega duplicada al terminal.
- Confirme la monitorización: el estado del bind, la ocupación de la ventana, la latencia de envío/DLR y las tasas de códigos de error generan alertas.

Referencias

- [Especificación SMPP v3.4](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)
- [Especificación SMPP v5.0](https://smpp.org/SMPP_v5.pdf)
- [3GPP TS 23.040 — Realización técnica del SMS](https://www.3gpp.org/dynareport/23040.htm)

Normas y referencias regulatorias citadas en esta guía. BroadNet es miembro asociado de la GSMA y miembro del MEF y opera mensajería de nivel operador desde 2003.

Related

- [Buscador de códigos de error de SMPP (herramienta gratuita)](https://www.broadnet.me/es/tools/smpp-error-codes)
- [Decodificador de DLR (herramienta gratuita)](https://www.broadnet.me/es/tools/dlr-decoder)
- [¿Qué es SMPP?](https://www.broadnet.me/es/answers/what-is-smpp)
- [Protocolo SMPP — análisis en profundidad](https://www.broadnet.me/es/answers/smpp-protocol)
- [Documentación para desarrolladores](https://www.broadnet.me/es/developers)

Guarde una copia

## ¿La quiere en un PDF para compartir?

Recíbala en su bandeja de entrada para compartirla con su equipo: sin spam, un solo correo.

Envíenme el PDF

Obtener el PDF

## Envíenme «Lista de verificación de integración SMPP» por correo.

Te enviaremos un PDF limpio e imprimible de esta checklist para que lo compartas con tu equipo o lo guardes para tu RFP. Un ingeniero de mensajería solo te contactará si lo pides, sin spam comercial.

- PDF imprimible, una página por sección
- Todo el contenido de esta página, listo para compartir
- Opcional: una llamada con un ingeniero de BroadNet

¿Prefieres no compartir tu correo? Usa Imprimir / guardar como PDF arriba: la checklist completa está en esta página.

Línea directa · respuesta en un día hábil

## Envíenme «Lista de verificación de integración SMPP»

Díganos adónde enviarlo. Le enviaremos el PDF por correo y solo le contactaremos si lo solicita.

1. 1 Quién
2. 2 Necesidad
3. 3 Contexto
