SENDO PUSH API


API de envío de notificaciones PUSH para integrar tus eventos en flujos de backend, de aplicaciones de lado del cliente o automatizaciones programadas.

Envía notificaciones PUSH a un cliente a través de token que identifica el dispositivo destino tanto para plataformas iOS y Android. Antes de recibir las notificaciones los usuarios de tu app móvil deben dar permiso a la recepción en dispositivos iPhone y Android. Esto se logra mediante la suscripción de los mismos.

Para la entrega a dispositivos iPhone se requiere la configuración de los servicios Apple Push Notification (APN) y Google Cloud Messaging (GCM).

Enviar push por token

POSThttps://api.sendo.cloud/api/push/send-by-token

Este endpoint se utiliza para enviar una notificación push a múltiples dispositivos móviles identificados por sus tokens.

Atributos requeridos


CampoTipoDescripciónValor por defectoOpcionalComentarios
notification_titlestringTítulo de la notificación.ningunoNo
notification_bodystringMensaje de la notificación.ningunoNo
url_imgstringLa URL de la imagen asociada a la notificación.ninguno
tokensarrayUn objeto que contiene el token del dispositivo al que se enviará la notificación.ningunoNo
content_availablearrayUn booleano que se utiliza en iOS para indicar si la notificación está disponible para usarse cuando la aplicación está en primer plano.true

Cuerpo de la solicitud.


curl --location 'http://35.185.103.32:3000/api/push/sendByToken' 
--header 'Content-Type: application/json' 
--data  '{
"notification_title": "Envio de notificación token",
"notification_body": "Descripción de la notificación",
"url_img": "https://ejemplo.com/imagen.jpg",
"user_external_id": "2211"
}'
Respuesta
CódigoDescripción
200Exitoso
{
  "messageId": [
    {
      "messageId": number,
      "token": string,
      "user_external_id": string
    }
  ],
  "success": boolean,
  "error": null
}

Respuestas del servidor.

Enviar notificación por usuario

POSThttps://api.sendo.cloud/api/push/send-by-user

Este endpoint se utiliza para enviar una notificación por un id de usuario.

Atributos requeridos


CampoTipoDescripciónValor por defectoOpcionalComentarios
notification_titlestringTítulo de la notificación.ningunoNo
notification_bodystringMensaje de la notificación.ningunoNo
url_imgstringLa URL de la imagen asociada a la notificación.ninguno
user_external_idstringEl ID del usuario al que se enviará la notificación.ningunoNo
content_availablearrayUn booleano que se utiliza en iOS para indicar si la notificación está disponible para usarse cuando la aplicación está en primer plano.true

Cuerpo de la solicitud.


curl --location 'http://35.185.103.32:3000/api/push/sendByToken' 
--header 'Content-Type: application/json' 
--data  '{
"notification_title": "Envio de notificación token",
"notification_body": "Descripción de la notificación",
"url_img": "https://ejemplo.com/imagen.jpg",
"tokens": [{"token":"<MOBILE_TOKEN>","user_external_id":"2211"}]
}'
Respuesta
CódigoDescripción
200Exitoso
{
  "messageId": [
    {
      "messageId": number,
      "token": string,
      "user_external_id": string
    }
  ],
  "success": boolean,
  "error": null
}

Respuestas del servidor.

Enviar push por tema

POSThttps://api.sendo.cloud/api/push/send-by-topic

Este endpoint se utiliza para enviar una notificación push a múltiples dispositivos móviles suscritos a un tema específico.

Atributos requeridos


CampoTipoDescripciónValor por defectoOpcionalComentarios
notification_titlestringTítulo de la notificación.ningunoNo
notification_bodystringDescripción de la notificación.ningunoNo
url_imgstringLa URL de la imagen asociada a la notificaciónninguno
topicstringTema para mandar notificación con ese tema.ningunoNo

Cuerpo de la solicitud.


curl --location 'http://35.185.103.32:3000/api/push/sendBytopic' 
--header 'Content-Type: application/json' 
--data '{
"notification_title": "Envio de notificación tema",
"notification_description": "Notificación de prueba usando tema",
"url_img": "https://ejemplo.com/imagen.jpg",
"topic": "Test Topic"
}'
Respuesta
CódigoDescripción
200Exitoso
{
  "messageId": number,
  "success": boolean,
  "error": null
}

Respuestas del servidor.

Suscripción

POSThttps://api.sendo.cloud/api/push/subscribe

Este endpoint se utiliza para suscribir tokens de dispositivos móviles a un tema específico para recibir notificaciones push.

Atributos requeridos


CampoTipoDescripciónValor por defectoOpcionalComentarios
tokensarrayUn arreglo de tokens de dispositivos móviles que se van a suscribir al tema.ningunoNo
topicstringEl nombre del tema al que se van a suscribir los tokens.ningunoNo

Cuerpo de la solicitud.


curl --location 'http://35.185.103.32:3000/api/push/subscribe' 
--header 'Content-Type: application/json' 
--data '{
"tokens": ["<MOBILE_TOKEN>"]
}'
Respuesta
CódigoDescripción
200Exitoso
{
  "success": true,
  "error": null
}

Respuestas del servidor.

Desuscripción

POSThttps://api.sendo.cloud/api/push/unsubscribe

Este endpoint se utiliza para cancelar la suscripción de tokens de dispositivos móviles a un tema específico.

Atributos requeridos


CampoTipoDescripciónValor por defectoOpcionalComentarios
tokensarrayUn arreglo de tokens de dispositivos móviles que están suscritos al tema.ningunoNo
topicstringEl nombre del tema al que se van a desuscribir los tokens.ningunoNo

Cuerpo de la solicitud.


curl --location 'http://35.185.103.32:3000/api/push/unsubscribe' 
--header 'Content-Type: application/json' 
--data '{
"tokens": ["<MOBILE_TOKEN>"]
}'
Respuesta
CódigoDescripción
200Exitoso
{
  "success": true,
  "error": null
}

Respuestas del servidor.

Histórico

POSThttps://api.sendo.cloud/api/push/history

Este endpoint se utiliza para obtener el historial de notificaciones de un usuario específico. La cantidad de historial se limita a un periodo de 48 horas

Required attributes


CampoTipoDescripción
userIdstringEl ID del usuario para obtener el historial de notificaciones.

Request body.


curl --location 'https://api.sendo.cloud/api/push/history' 
--header 'Content-Type: application/json' 
--data '{
"userId": "<USER_ID>"
}'
Respuesta
CodeDescription
200Successful
[
  {
    "messageId": "fed3fdfc-5fc6-456e-95b7-298a899dab87",
    "title": "Lorem ipsum dolor sit amet",
    "body": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae",
    "eventDate": "2024-06-18 11:23:36",
    "isRead": false
  },
  {
    "messageId": "fed3fdfc-5fc6-456e-95b7-298a899dab88",
    "title": "Lorem ipsum dolor sit amet",
    "body": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae",
    "eventDate": "2024-06-18 12:30:36",
    "isRead": true
  }
]

Respuestas del servidor.

Entrega

POSThttps://api.sendo.cloud/api/push/delivery?messageId=<MESSAGE_ID>

Este endpoint se utiliza para actualizar un evento de estado de notificación push.

NOTE: Para Firebase SDK: En desarrollo deberá agregar el siguiente código para habilitar las métricas de entrega messaging().setDeliveryMetricsExportToBigQuery(true);

Required attributes


ParamTypeDescription
messageIdstringEl ID de la notificación push para actualizar.

Respuesta
CodeDescription
200Successful

    {
        "status": "Success"
    },

Marcar como leído

POSThttps://api.sendo.cloud/api/push/set-read

Este endpoint se utiliza para marcar una notificación push como leída.

Required attributes

CampoTipoDescripción
messageIdArreglo de stringEl arreglo de ID de la notificación push a marcar como leídas.

Request body.


curl --location 'https://api.sendo.cloud/api/push/set-read' 
--header 'Content-Type: application/json' 
--data '{
"messageId": ["<MESSAGE_ID>"]
}'
Response
CodeDescription
200Successful
{
  "status": "success"
}

Server responses.


Enrolamiento

Asignar token

POSThttps://api.sendo.cloud/api/push/set-token

Este endpoint debe de ser utilizado para asignar un token generado por el SDK de Firebase al usuario.

NOTA: La implementación del API debe de realizarse luego de que el SDK genere el token del dispositivo.

Required attributes

CampoTipoDescripciónOpcionalComentarios
user_external_idstringEl ID del usuario a enrolar.No
tokenstringEl token del dispositivo a enrolar.No
osstringEl sistema operativo del dispositivo a enrolar.
modelstringEl modelo del dispositivo a enrolar.

Cuerpo de la solicitud.


curl --location 'https://api.sendo.cloud/api/push/enrollment' 
--header 'Content-Type: application/json' 
--data '{
"user_external_id": "<user_external_id>",
"token": "<TOKEN>"
}'
Respuesta
CodeDescription
200Successful
{
  "status": "success",
  "message": "Token assigned to user 1"
}

Respuestas del servidor.


Actualizar token

PATCHhttps://api.sendo.cloud/api/push/update-token
Este método se usa para actualizar el token del usuario.

Required attributes

CampoTipoDescripciónOpcionalComentarios
user_external_idstringEl ID de usuario del usuario a actualizar.No
oldTokenstringToken expirado del dispositivo.No
newTokenstringEl nuevo token generado por el dispositivo.No

Request body.


curl --location 'https://api.sendo.cloud/api/push/update-token' 
--header 'Content-Type: application/json' 
--data '{
"user_external_id": "<user_external_id>",
"oldToken": "<TOKEN>",
"newToken": "<TOKEN>"
}'
Response
CodeDescription
200Successful
{
  "status": "success",
  "message": "Token updated to user 1"
}

Server responses.