Notificaciones de Mensajes Enviados
Notificaciones de estado de mensajes enviados
Las notificaciones de estado de mensajes proporcionaron información sobre el estado de tus mensajes.
Este documento abarca:
- Notificaciones de estado de mensajes
- Parámetros de notificación de estado de mensaje
Para obtener más información general sobre los webhooks, consulta:
- Formato del webhook de notificaciones
- Configuración de las notificaciones
- Aplicación de ejemplo para pruebas
Notificación de estado de mensajes
El cliente de la API de WhatsApp Business enviará notificaciones para informarte acerca del estado de los mensajes entre tú y otros usuarios. Cuando un mensaje se envía correctamente, recibes una notificación cuando el mensaje se envía, se entrega o se lee. El orden de estas notificaciones en tu aplicación puede no reflejar el tiempo real del estado del mensaje. Consulta la marca de tiempo para determinar el tiempo, en caso de ser necesario. Las notificaciones que puedes recibir son las siguientes:
- sent sent: el servidor recibió el mensaje enviado por tu empresa. Para recibir notificaciones de mensajes enviados, establece el valor de sent_status en true en la configuración de la aplicación. La notificación de estado enviado está desactiva de forma predeterminada.
- delivered: el mensaje enviado por tu empresa se entregó al dispositivo del usuario.
- read: el usuario leyó el mensaje enviado por tu empresa. Las notificaciones de lectura solo estarán disponibles para aquellos usuarios que tengan habilitadas las confirmaciones de lectura. Para los usuarios que no las tienen habilitadas, solo recibirás la notificación entregada.
- failed: no se pudo enviar el mensaje enviado por tu empresa. Se incluirá la razón del error en la devolución de llamada. Consulta también el documento de mensajes de error para obtener una mayor descripción del error.
- deleted: a partir de v2.21.3, el usuario eliminó el mensaje que envió a tu empresa.
Al recibir una notificación "status": "deleted", debes comprobar, de buena fe, que el mensaje se elimine del sistema si se descargó desde el servidor.
Para que el estado sea read, debe haber sido entregado (delivered). En algunas situaciones, como cuando un usuario está en la pantalla de chat y llega un mensaje, el mensaje se entrega (delivered) y se lee (read) casi simultáneamente. En esta o en otras situaciones similares, la notificación delivered no se devuelve, ya que se entiende que un mensaje se entregó si se leyó. La razón de este comportamiento es la optimización interna.
En los siguientes ejemplos, el recipient_id en su lugar puede ser un campo group_id. Esto depende de si el mensaje se envía a un individuo o a un grupo.
Ejemplo: Mensaje enviado
{
"statuses": [
{
"id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
"recipient_id": "16315555555",
"status": "sent",
"timestamp": "1518694700"
}
]
}
Ejemplo: Mensaje entregado
{
"statuses": [
{
"id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
"recipient_id": "16315555555",
"status": "delivered",
"timestamp": "1518694708"
}
]
}
Ejemplo: Mensaje leido
{
"statuses": [
{
"id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
"recipient_id": "16315555555",
"status": "read",
"timestamp": "1518694722"
}
]
}
Ejemplo: Mensaje con errores
{
"statuses": [
{
"errors": [
{
"code": 470,
"title": "Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider."
}
],
"id": "gBGGEgZHMlEfAgkM1RBkhDRr7t8",
"recipient_id": "12064001000",
"status": "failed",
"timestamp": "1533332775"
}
]
}
Ejemplo: Mensaje eliminado
{
"statuses": [
{
"id": "ABGGFmkiWVVPAgo66iFiii_-TG0-",
"recipient_id": "16692259554",
"status": "deleted",
"timestamp": "1532413514"
}
]
}
Parámetros de notificación de estado de mensajes
Cuando envías un mensaje a un usuario y tienes configurado el webhook, recibirás actualizaciones de estado que te permiten saber cuándo se envía y se entrega el mensaje, y cuándo fue leído por el usuario. Estos son los campos que conforman los mensajes de estado.
| Nombre | Descripción | Tipo |
|---|---|---|
| statuses | Objeto de estados | Matriz de cualquier tipo de mensaje de estado |
Objeto statuses
El objeto statuses te mantendrá al tanto del estado de los mensajes entre tú y otros usuarios o grupos.
| Nombre | Descripción | Tipo |
|---|---|---|
| id | Identificador del mensaje | Cadena |
| recipient_id | Identificador de WhatsApp del destinatario | Cadena |
| statuses | Estado de mensaje: read, delivered, sent, failed o deleted. Consulta la tabla Todos los estados posibles de un mensaje para obtener más información | Cadena |
| id | Identificador del mensaje | Cadena |
| timestamp | Marca de tiempo del mensaje de estado | Cadena |
Todos los estados posibles de un mensaje
En esta tabla, se presentan todas las opciones posibles para el estado de un mensaje.
| Estado | Descripción | Tipo |
|---|---|---|
| sent | El servidor de WhatsApp recibió el mensaje | Una marca de verificación |
| delivered | El mensaje se entregó al destinatario | Dos marcas de verificación |
| read | El destinatario leyó el mensaje | Dos marcas de verificación azules |
| failed | El mensaje no se pudo enviar | Triángulo de error rojo |
| deleted | A partir de v2.21.3, el usuario eliminó el mensaje | El mensaje se reemplaza en WhatsApp móvil por una nota que indica que el mensaje se eliminó |