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
Importante: Indicar el webhook donde recibirá los mensajes, para que nuestro equipo de soporte pueda asociarlo a su cuenta de Whatsapp
Campo | Detalles | Tipo |
---|---|---|
total | Número de callbacks en la llamada. | String |
data | Lista de callbacks. | Data[] |
clientInfo | Información del cliente | ClientInfo |
ConversationID | String |
data:
Campo | Detalles | Tipo |
---|---|---|
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
Campo | Detalles | Tipo |
---|---|---|
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:
Status | Descripción | Equivalente 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 envio | Código de entrega | Status | Significado |
---|---|---|---|
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