Guía de API RESTful de SMSBAT
Guía completa de la API RESTful de SMSBAT: todo lo que necesita saber.
Última actualización: 29 de agosto de 2025
SMSBAT RESTful API le permite enviar varios tipos de mensajes: Viber-carrusel, Viber-survey, Viber-promo (imágenes, video), chats comerciales de Viber, mensajes OTP (Viber OTP, Flash Call) y sus variantes alternativas.
Nota: Esta es la API HTTP unificada para mensajería saliente. Si necesita integraciones con bots entrantes (Viber Bot / Telegram Bot), consulte la API de Cascade.
1. Protocolo
- Protocolo: HTTPS
- Cuerpo de la solicitud: objeto JSON que contiene una matriz de "mensajes".
- Métodos:
GETpara recuperar datos (estado del mensaje, saldo, etc.)POSTpara crear objetos (por ejemplo, iniciar una transmisión/despacho)PATCHpara modificar objetos
2. Autorización
Proporcionamos varios métodos de autorización para su conveniencia:
- Autenticación básica HTTP (inicio de sesión y contraseña desde su panel de control).
- Encabezado HTTP personalizado X-Authorization-Key que contiene un token API.
- Campo de contraseña de autenticación básica HTTP que contiene el token API (pase @ como inicio de sesión).
API Token se puede generar en el Panel de control en Perfil de usuario.
Ejemplos de solicitudes
Con autenticación básica:
curl -H "Content-Type: application/json" \
-X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist \
--user user:password
Con X-Clave-de-autorización:
curl -H "X-Authorization-Key: <token>" \
-H "Content-Type: application/json" \
-X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist
3. Envío de mensajes
En la plataforma SMSBAT, cualquier envío de mensaje (incluso un solo mensaje) se considera una "Broadcast" (lista de mensajes).
Punto final
- Método: PUBLICAR
- URL: https://api.smsbat.com/bat/messagelist
- Encabezados: Tipo de contenido: aplicación/json
Estructura de carga útil básica:
{
"messages": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "Check out our new products!",
"type": "viber_carousel",
"ttl": 300,
"messageData": { ... }
}
]
}
Campos obligatorios para cada objeto de mensaje:
de: nombre alfa del remitente verificado.to: Número de teléfono del destinatario (formato E.164).tipo: enumeración del tipo de mensaje.text: Texto principal del mensaje (opcional si el tipo no requiere texto).
Valores de "tipo" admitidos:
- sms
- viber_service (o viber_trans)
- viber_promo
- viber_carrusel
-viber_survey
-viber_otp
-viber_session
-flashcall_callback
- llamada flash
Campos comunes opcionales:
customerMessageId: ID de cadena dentro de su propio sistema (utilizado para rastrear devoluciones de llamadas). Debe ser único por mensaje.dtSend: ISO8601 Fecha/Hora del envío futuro programado.dtExpire: ISO8601 Fecha/Hora del plazo de entrega.ttl: Tiempo de vida en segundos. (Si no se proporcionadtExpire, la API calcula la asignación predeterminada a partir deltipo).
TTL predeterminados (segundos):
sms- 86400 (24h)viber_trans/viber_service- 345600 -viber_promo-604800viber_session- 604800
4. Enrutamiento alternativo (en cascada)
Puede especificar una cola alternativa para garantizar la entrega de mensajes si el canal principal falla o caduca.
{
"messages": [
{
"from": "ALPHANAME",
"to": "380500505051",
"text": "test message",
"type": "viber_service",
"ttl": 60,
"fallbacks": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "test sms fallback message2",
"type": "sms"
}
]
}
]
}
5. Descripción general de los tipos de mensajes y datos de mensajes
Los tipos de mensajes complejos requieren configuraciones adicionales inyectadas en la propiedad messageData.
5.1 Promoción de Viber (viber_promo)
Solo imagen
Texto + Botón
Imagen + Texto + Botón
Combina img, buttonText y buttonAction.
Carga útil de vídeo:
"messageData":{
"video": "https://domain.com/test.mp4",
"thumbnail": "https://domain.com/carusel.png",
"fileSize": 12000000,
"duration": 30
}
buttonText y buttonAction).
5.2 Transaccional/Servicio de Viber (viber_trans, viber_service)
Si tiene una plantilla aprobada que contiene un archivo adjunto:
"messageData": {
"fileUrl": "https://domain.com/receipt.pdf",
"fileName": "Receipt.pdf",
"fileType": "pdf"
}
5.3 Carrusel de Viber (viber_carousel)
Requiere una matriz carousel.items dentro de messageData.
Limitaciones:
- Longitud de los artículos: entre 2 y 5 artículos
- Título: 2 a 38 caracteres
- imageUrl: tamaño recomendado JPEG/PNG 215x185
"messageData": {
"carousel": {
"items": [
{
"title": "50% Off Shoes!",
"imageUrl": "https://domain.com/image1.png",
"primaryButton": { "label": "Shop", "actionUrl": "..." },
"secondaryButton": { "label": "Details", "actionUrl": "..." }
}
]
}
}
5.4 Encuesta/Lista de Viber (viber_survey)
Crea una encuesta interactiva dentro de la vista de chat.
La propiedad "texto" del mensaje actúa como título de la encuesta (máximo 85 caracteres). Puede pasar entre 2 y 5 opciones, cada una con un máximo de 50 caracteres.5.5 Viber OTP (viber_otp)
Utiliza plantillas de Viber localizadas previamente registradas a nivel mundial.
"messageData": {
"templateId": "6c929cef-29b4-4349-bc9d-2a07bdbb6e43",
"templateLang": "uk",
"templateParams": {
"pin": "3211",
"business_platform_name": "SMSBAT",
"code_validity_time": 7
}
}
pin, business_platform_name) distinguen estrictamente entre mayúsculas y minúsculas. La API admite varias variantes del lenguaje de código ISO (EN, ES, RU, TR, UK, etc.).
5.6 Llamada flash ("flashcall")
Los últimos dígitos del número de marcación (el código generado) deben pasarse a través del parámetro "texto". Si se omite "texto", el código es aleatorio y debe extraerlo del cuerpo de respuesta síncrono 200 OK de la API ("mensajes/texto").