Webhooks

Los Webhooks (o callbacks) son retornos de llamada de HTTP definidos por el usuario, que son accionados por eventos específicos. Siempre que ocurra un evento de acción, la API de Sinch recolectará los datos e inmediatamente enviará una notificación (solicitud HTTP) a la URL proporcionada por el cliente actualizando el estatus de los mensajes enviados o indicando cuándo recibirá un mensaje.

Cuando reciba un mensaje, la API de Sinch Messaging enviará una notificación de solicitud HTTP POST a la URL del Webhook con los detalles.

Es importante que su Webhook retorne una respuesta HTTPS 200 OK para las notificaciones (en un lapso de hasta 200 ms o de manera asíncrona). Caso contrario, la API de Sinch Messaging considerará esa notificación como una falla e intentará nuevamente.

Importante: Indicar el webhook donde recibirá los mensajes, para que nuestro equipo de soporte pueda asociarlo a su cuenta de Whatsapp

Ejemplo

{
  "total": 1,
  "data": [
    {
      "id": "8995c40f-1c3a-48d0-98ee-bbc603622a91",
      "correlationId": "...",
      "destination": "5411900000000",
      "origin": "5411900000000",
      "campaignId": 100,
      "campaignAlias": "...",
      "flowId": "...",
      "extraInfo": "...",
      "sent": true,
      "sentStatusCode": 1,
      "sentStatus": "sent status",
      "sentDate": "2017-12-18T17:09:31.891Z",
      "sentAt": 1513616971891,
      "delivered": true,
      "deliveredStatusCode": 1,
      "deliveredStatus": "delivered status",
      "deliveredDate": "2017-12-18T17:09:31.891Z",
      "deliveredAt": 1513616971891,
      "read": true,
      "readDate": "2017-12-18T17:09:31.891Z",
      "readAt": 1513616971891,
      "updatedDate": "2017-12-18T17:09:31.891Z",
      "updatedAt": 1513616971891,
      "type": "MESSAGE"
    }
  ],
  "clientInfo": {
      "customerId": 42,
      "subAccountId": 1291,
      "userId": 1
  }
}

Importante: Indicar el webhook donde recibirá los mensajes, para que nuestro equipo de soporte pueda asociarlo a su cuenta de Whatsapp

CampoDetallesTipo

total

Número de callbacks en la llamada.

String

data

Lista de callbacks.

Data[]

clientInfo

Información del cliente

ClientInfo

ConversationID

String

data:

CampoDetallesTipo

id

ID del último mensaje

String

correlationId

Un ID único configurado por usted para coincidir con el estado del mensaje (callback y DLR). Este parámetro es opcional y puede usar el ID generado por Sinch Messaging para esta coincidencia.

String

destination

Teléfono al que se envió el mensaje (incluido el código de país). Ejemplo: 5411900000000.

String

origin

Teléfono que identifica la cuenta de WhatsApp (incluido el código de país). Ejemplo: 5411900000000.

String

campaignId

ID de campaña previamente definido.

String

campaignAlias

Alias de campaña previamente definido.

String

extraInfo

Información adicional enviada con el mensaje original.

String

sent

Indica si el mensaje fue enviado.

Boolean

sentStatusCode

Código de estado generado por Sinch Messaging para un mensaje que indica el estado de envío.

Number

sentStatus

Descripción del estado enviado.

Boolean

sentDate

Fecha en que se envió el mensaje. Formato: yyyy-MM-dd’T'HH:mm:ssZ.

String

sentAt

Hora en que se envió el mensaje, utilizando el formato Unix_time

Number

delivered

Indica si el mensaje fue entregado al destino.

Boolean

deliveredStatusCode

Código de estado generado por Sinch Messaging para indicar que el mensaje fue entregado.

Number

deliveredStatus

Descripción del estado de entrega

String

deliveredDate

Fecha en que se entregó el mensaje. Formato: yyyy-MM-dd’T'HH:mm:ssZ

String

deliveredAt

Hora en que se entregó el mensaje, utilizando el formato Unix_time

Number

read

Indica si el mensaje fue leído por el destinatario.

Boolean

readDate

Fecha en que se leyó el mensaje. Formato: yyyy-MM-dd’T'HH:mm:ssZ

String

readAt

Hora en que se leyó el mensaje, utilizando el formato Unix_time

String

updatedDate

Fecha en que se actualizó el estado del mensaje. Formato: yyyy-MM-dd’T'HH:mm:ssZ

String

updatedAt

Fecha en que se actualizó el estado del mensaje, utilizando el formato Unix_time

String

type

El tipo de entidad del que trata este objeto de estado. Actualmente, la única opción disponible es “mensaje”.

String

clientInfo

CampoDetallesTipo

customerId

Identificación del cliente.

Number

subAccountId

Identificación de la subcuenta.

Number

userId

Identificación del usuario.

Number

Status

Descripción del Status que nosotros podemos enviar en la devolución de llamada:

StatusDescripciónEquivalente en WhatsApp para dispositivos móveis

SENT_SUCCESS

Mensaje recibido por servidor de WhatsApp

Una marca de verificación

DELIVERED_SUCCESS

Mensaje de entrega para el destinatario

Dos marcas de verificación

READ_SUCCESS

Mensaje leído por el destinatario

Dos marcas de verificación azules

Otros Status

Estos son los códigos devueltos en los campos sentStatusCode y deliveryStatusCode.

Código de envioCódigo de entregaStatusSignificado

102

CARRIER COMMUNICATION ERROR

Error al cargar multimedia para WhatsApp.

103

REJECTED_BY_CARRIER

Se produjo un error en la base de datos.

2

101

EXPIRED

Mensaje expirado.

2

104

NOT_DELIVERED

Posibles Causas:Límite alcanzado: se han intentado demasiados mensajes enviados,o no envía un mensaje porque el número de teléfono de destino no existe,o la estructura de la plantilla no existe,o no pudo enviar un mensaje porque el número de destino está fuera del tiempo de sesión abierta de 24 horas para recibir mensajes libremente. o hubo un error de carga de medios (error desconocido), o no envía un mensaje porque su cuenta no es elegible en Facebook Business Manager,o hubo un error de carga temporal. Intentar nuevamente más tarde.

202

EXPIREDINVALID_DESTINATION_NUMBER

Contacto de WhatsApp inválido.

204

DESTINATION_BLOCKED_BY_OPTOUT

Destino bloqueado por Opt-Out.

207

INVALID_MESSAGE_TEXT

El valor del parámetro no es válido.

209

INVALID_CONTENT

Tipo de mensaje UNKNOWN inválido.

210

INVALID_SESSION

La sesión no está abierta o ninguna plantilla de fallback está configurada.

301

INTERNAL_ERROR

No es posible verificar contactos desde la API de WhatsApp.

Errores

HTTP Code

Description

2xx

Success

200

Success (OK)

201

Successfully created (For POST requests)

302

Found

4xx

Client Errors

400

Request was invalid

401

Unauthorized

403

Forbidden

404

Not found

405

Method not allowed

412

Precondition failed

429

Too many requests

5xx

Server Errors

500

Internal server error

504

Timeout

Last updated