Centro de ayuda Compatibilidad de la API de Mensaje

Compatibilidad de la API de Mensaje

SMSBAT admite una capa de compatibilidad con Messagio API. Esto le permite migrar sus integraciones de Viber existentes diseñadas para Messagio directamente a SMSBAT sin tener que reescribir su estructura de carga útil ni cambiar la lógica de integración.


Configuración de conexión

Para enrutar solicitudes a través de SMSBAT, actualice la URL base y las credenciales de autenticación en su integración:

  • URL base: https://restapi.smsbat.com
  • Punto final: POST /api/SendMessage
  • Formato de solicitud: application/x-www-form-urlencoded (Datos del formulario)

Autenticación y credenciales

Las solicitudes se autentican utilizando parámetros enviados directamente dentro de los datos del formulario del cuerpo de la solicitud:

ParámetroTipoRequeridoDescripción
usuariocadenaEl inicio de sesión de su cuenta SMSBAT o su identificador de usuario.
signocadenaSecreto de API o firma registrada para el nombre del remitente.
decadenaNombre alfabético del remitente registrado.
método_envíocadenaTipo de canal. Utilice viber para mensajes habituales de Viber Business o viber_otp para plantillas Viber OTP.
teléfonocadenaNúmero de teléfono del destinatario en formato internacional (por ejemplo, “380501234567”).

Tipos de mensajes de Viber

Elija una pestaña a continuación para ver los parámetros específicos y solicitar cargas útiles para diferentes estructuras de mensajes de Viber:

Envía un mensaje de texto simple.

Parámetros adicionales:

ParámetroTipoRequeridoDescripción
txtcadenaTexto del mensaje.

Ejemplo de carga útil de solicitud:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Hello+from+SMSBAT%21

Parámetros adicionales:

| Parámetro | Tipo | Requerido | Descripción |
| :--- | :--- | :--- | :--- |
| `plantilla.id` | cadena | **Sí** | ID de plantilla Viber OTP preaprobada. |
| `plantilla.lang` | cadena | **Sí** | Código de idioma de plantilla (por ejemplo, `en`, `uk`). |
| `plantilla.params.pin` | cadena | **Sí** | El valor del pin OTP para inyectar en la plantilla. |
| `template.params.business_platform_name` | cadena | **Sí** | El marcador de posición del nombre comercial en la plantilla. |
| `template.params.code_validity_time` | cadena | **Sí** | Período de validez del PIN en minutos. |

**Ejemplo de carga útil de solicitud:**
```http
POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber_otp&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&template.id=otp_template_123&template.lang=en&template.params.pin=123456&template.params.business_platform_name=SMSBAT&template.params.code_validity_time=7
```

Envía una tarjeta de mensaje interactiva que contiene varias diapositivas (tarjetas) que el usuario puede deslizar.

Parámetros adicionales:

ParámetroTipoRequeridoDescripción
txtcadenaTexto del título del carrusel.
carrusel[N].títulocadenaTítulo de la tarjeta N (comenzando en 0).
carrusel[N].image_urlcadenaURL de imagen HTTPS pública de la tarjeta “N”.
carrusel[N].etiqueta_primariacadenaTítulo del botón principal de la tarjeta N.
carrusel[N].primary_urlcadenaURL del enlace del botón principal de la tarjeta N.
carrusel[N].etiqueta_secundariacadenaNoTítulo del botón secundario de la tarjeta N.
carrusel[N].secundaria_urlcadenaNoURL del enlace del botón secundario de la tarjeta N.

Ejemplo de carga útil de solicitud:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Top+picks+for+you&carousel%5B0%5D.title=First+Offer&carousel%5B0%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-1.png&carousel%5B0%5D.primary_label=Open&carousel%5B0%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-1&carousel%5B0%5D.secondary_label=Details&carousel%5B0%5D.secondary_url=https%3A%2F%2Fwww.example.com%2Fitem-1%2Fdetails&carousel%5B1%5D.title=Second+Offer&carousel%5B1%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-2.png&carousel%5B1%5D.primary_label=Open&carousel%5B1%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-2

Formato de respuesta

El punto final de compatibilidad de la API de Messagio devuelve respuestas en formato XML con un código de estado “HTTP 200 OK”.

Respuesta aceptada (éxito)

<response>
  <code>0</code>
  <tech_message>OK</tech_message>
  <msg_id phone="380501234567">MESSAGE_GUID</msg_id>
</response>

Respuestas de error

Si falla la validación de los parámetros de una solicitud o la autenticación, la respuesta devolverá un código distinto de cero.

<response>
  <code>-1</code>
  <tech_message>PARAM ERROR (sign)</tech_message>
</response>

Devoluciones de llamada

Las URL de devolución de llamada deben implementarse y alojarse en su plataforma. SMSBAT envía devoluciones de llamadas HTTP para actualizar su sistema con respecto a eventos de entrega, respuestas a encuestas y respuestas de usuarios.

1. Devolución de llamada del estado de entrega

Se envía cuando un mensaje cambia de estado (entregado, leído, fallido).

  • Tipo de contenido: aplicación/x-www-form-urlencoded
  • Método: POST

Solicitar formatos de carga útil:

  • Entregado:
    msg_id=MESSAGE_GUID&status=delivered
    
  • Visto/Leído:
    msg_id=MESSAGE_GUID&status=delivered&type=seen
    
  • No entregado/Error:
    msg_id=MESSAGE_GUID&status=undelivered&status_extended=REASON
    

Descripción de campos:

  • msg_id: ID de mensaje único (GUID) SMSBAT devuelto en la respuesta de SendMessage.
  • estado: resultado de la entrega (entregado, no entregado o estado desconocido).
  • tipo: se establece en visto cuando el mensaje ha sido visto por el destinatario.
  • status_extended: motivo técnico específico del estado no entregado (por ejemplo, VIBER_EXPIRED, VIBER_BLOCKED_BY_USER, VIBER_USER_NOT_FOUND, VIBER_NO_DEVICE).

2. Devolución de llamada de respuesta a la encuesta

Se activa cuando un usuario selecciona una opción de respuesta en un mensaje de Viber Survey.

  • Tipo de contenido: aplicación/x-www-form-urlencoded
  • Método: POST

Solicitar formato de carga útil:

msg_id=ORIGINAL_SURVEY_MESSAGE_GUID&text=SELECTED_OPTION_TEXT

3. Devolución de llamada de mensaje de usuario entrante

Se activa cuando un usuario envía un mensaje de texto o una respuesta multimedia a su servicio Viber Business.

  • Tipo de contenido: aplicación/json
  • Método: POST

Solicitar formato de carga útil:

{
  "msg_id": "INBOUND_MESSAGE_GUID",
  "text": "Hello, I have a question",
  "media": "https://example.com/user-attachment.png",
  "phone": "380501234567",
  "sender_bm_id": "12345"
}

Descripción de campos:

  • msg_id: el ID de mensaje único generado para la respuesta entrante.
  • text: contenido de texto enviado por el usuario (puede ser nulo si solo enviaron medios).
  • media: URL directa para descargar cualquier archivo adjunto multimedia enviado por el usuario (puede ser nulo si solo es texto).
  • phone: Número de teléfono del remitente en formato internacional.
  • sender_bm_id: el ID del remitente de Viber Business.