Paso 2 - Enviar un SMS
Last update: 2 months ago by Yered Rios
Con el token obtenido en el paso anterior, realiza un POST al endpoint de mensajería incluyendo el Bearer token en el header
Authorization
| URL | https://gateway.broadcastermobile.com/services/messaging |
| METHOD | POST |
| HEADERS | Content-Type: application/json Authorization: Bearer [access_token] |
Body
{"msisdn": [numeric][required],"dial": [string][required],"message": [String][required],"country": [string][recommended],"carrier": [String][optional],"mask": [String][optional],"dataCoding": [String][optional],"dlr": [Boolean][optional],"schedule": [String][optional][format: ISO-8601],"tag": [String][optional],"msgClass": [numeric][optional],"optionals": [String][optional]}
| Parámetros | Descripción | Obligatorio |
|---|---|---|
| msisdn | Número de teléfono destino en formato internacional, sin signo +. Ej: 5215512345678. | Sí |
| dial | Shortcode o número de origen. Solo dígitos. Ej: "5217000". | Sí |
| message | Texto del SMS a enviar. | Sí |
| country | Código de país ISO 3166-1 alpha-2. Ej: "MX", "CO", "PE". Envíalo siempre que puedas: mejora la velocidad de resolución del operador y reduce errores -40. | Recomendado |
| carrier | Nombre del operador destino. Si se omite, el sistema lo detecta automáticamente. | No |
| mask | Máscara alfanumérica de remitente. Requiere capacidad habilitada en tu cuenta. | No |
| dataCoding | Codificación del mensaje. Omite este campo para detección automática de Unicode. | No |
| dlr | true para solicitar acuse de entrega. Default: false. Ver Acuse de Entrega (DLR). | No |
| schedule | Fecha/hora de envío programado en formato ISO 8601. Debe ser una fecha futura. | No |
| tag | Etiqueta libre para identificar el envío en tus reportes. | No |
| msgClass | Clase del mensaje. Caso de uso avanzado. | No |
| optionals | JSON en formato string para opciones avanzadas (tipo de DLR, RCS fallback, etc.). | No |
No envíes apiKey en el body. El sistema lo ignora y lo toma del token automáticamente — no necesitas incluirlo.
Ejemplo
{"msisdn": 5215512345678,"dial": "5217000","message": "Tu código de verificación es: 948271","country": "MX"}
Respuesta exitosa
{"code": 0,"mailingId": 4823910,"result": "Applied","scheduledAt": null}
| Campo | Tipo | Descripción |
|---|---|---|
| code | número | 0 = exitoso. Valor negativo = error. |
| mailingId | número | ID único del mensaje aceptado. Úsalo para rastrear el envío. |
| result | string | "Applied" cuando el mensaje fue aceptado. |
| scheduledAt | string | Fecha programada (si usaste schedule). null en envíos inmediatos. |
| message | string | Descripción del error (presente cuando code ≠ 0). |
| hint | string | Detalle adicional del error para facilitar el diagnóstico. |
Todos los endpoints devuelven HTTP 200 OK. El resultado real del envío se indica dentro del body con el campo code.
Acuse de Entrega (DLR)
Si quieres saber si el SMS llegó al destinatario, activa el acuse de entrega agregando dlr: true y el campo optionals con registeredDelivery:
{"msisdn": 5215512345678,"dial": "5217000","message": "Hola, tu pedido fue enviado","country": "MX","dlr": true,"optionals": "{\"registeredDelivery\":1}"}
Reglas del DLR
- Si envías , el campodlr: truedebe incluiroptionalscon un valor válido.registeredDelivery
- Si incluyes enregisteredDelivery,optionalsdebe serdlr.true
Valores válidos de registeredDelivery
| Valor | Significado |
|---|---|
| 1 | Notifica solo al entregar exitosamente. |
| 5 | Notifica al entregar o al fallar. |
| 11 | Notifica en cualquier cambio de estado. |
