Appearance
Estado de envío de mensaje con plantilla
GET /api/v1/message_templates/send-status
Este endpoint permite consultar el estado de envío de un mensaje enviado previamente utilizando una plantilla predefinida de WhatsApp.
Las plantillas aseguran que los mensajes enviados mantengan un formato estructurado, cumpliendo con las políticas de la API de WhatsApp Business. A través de este endpoint, se puede verificar si el mensaje fue entregado, leído o si falló durante el proceso de envío.
Este proceso es útil para el seguimiento de notificaciones automatizadas, recordatorios o confirmaciones de citas enviadas mediante plantillas.
La solicitud se realiza mediante el método GET
, incluyendo como parámetros el número de origen, el destinatario y el identificador del mensaje enviado. A continuación, se detalla su uso, junto con los parámetros requeridos, ejemplos de solicitud y la estructura de la respuesta.
ℹ Recuerda que:
La URL base para todas las solicitudes es: https://tu-dominio.c3.pe
Importante: reemplaza tu-dominio
por el nombre de dominio específico que te haya proporcionado C3.
Solicitud
Cabeceras
Encabezado | Tipo | Obligatorio | Descripción |
---|---|---|---|
Authorization | String | ✅ Sí | Token de autenticación (Bearer Token). |
Parámetros de Consulta
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
from_date | string | ✅ Sí | Fecha y hora de inicio en formato YYYY-MM-DD HH:MM:SS . |
to_date | string | ✅ Sí | Fecha y hora de fin en formato YYYY-MM-DD HH:MM:SS . |
wa_number | string | ✅ Sí | Número de WhatsApp desde el que se enviaron los mensajes. |
update_id | string | ❌ No | ID único del envío generado por el sistema (por ejemplo, msg_c3api_... ). |
with_pagination | int | ❌ No | Indica si se debe incluir paginación en la respuesta (1 para activarlo). |
per_page | int | ❌ No | Cantidad de registros por página (por defecto 15 ). |
page | int | ❌ No | Número de página a consultar (por defecto 1 ). |
Ejemplo de solicitud completa
http
GET /api/v1/message_templates/send-status?wa_number=5115937474&from_date=2025-05-01 &to_date=2025-05-31&with_pagination=1
Respuesta
Respuesta Base 200
json
{
"message": "Listado de mensajes",
"data": [
{
"id": 61516,
"created_at": "2025-05-27 10:40:21",
"sender": "C3API",
"update_id": "msg_c3api_1748360418",
"status": "FAILED",
"reason": "Message undeliverable",
"customer_number": "51975116632",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
},
{
"id": 61517,
"created_at": "2025-05-27 10:51:57",
"sender": "C3API",
"update_id": "msg_c3api_1748361117",
"status": "DELIVERED",
"reason": "Ok",
"customer_number": "51975116638",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
},
{
"id": 61560,
"created_at": "2025-05-27 17:12:14",
"sender": "C3API",
"update_id": "msg_c3api_1748383934",
"status": "FAILED",
"reason": "Message undeliverable",
"customer_number": "51975116632",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
}
]
}
Respuesta con paginación 200
json
{
"message": "Listado de mensajes",
"data": [
{
"id": 61516,
"created_at": "2025-05-27 10:40:21",
"sender": "C3API",
"update_id": "msg_c3api_1748360418",
"status": "FAILED",
"reason": "Message undeliverable",
"customer_number": "51975116632",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
},
{
"id": 61517,
"created_at": "2025-05-27 10:51:57",
"sender": "C3API",
"update_id": "msg_c3api_1748361117",
"status": "DELIVERED",
"reason": "Ok",
"customer_number": "51975116638",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
},
{
"id": 61560,
"created_at": "2025-05-27 17:12:14",
"sender": "C3API",
"update_id": "msg_c3api_1748383934",
"status": "FAILED",
"reason": "Message undeliverable",
"customer_number": "51975116632",
"type": "template",
"payload": {
"name": "recuperar_cliente",
"category": "MARKETING",
"components": [
{
"text": "Estimado cliente, sabemos que deseas comunicarte con nosotros, por favor avísame si podemos conversar ahora.",
"type": "BODY"
}
]
}
}
],
"pagination": {
"total_items": 3,
"items_per_page": 15,
"current_page": 1,
"total_pages": 1
}
}
Definición de atributos
Campo | Tipo | Descripción |
---|---|---|
message | String | Mensaje de respuesta del servidor. |
data.id | Integer | Identificador del mensaje. |
data.created_at | String (datetime) | Fecha y hora de creación del mensaje. |
data.sender | String | Origen del mensaje (ej. "C3API" ). |
data.update_id | String | Identificador único de la actualización o evento. |
data.status | String | Estado del mensaje (ej. "SENDED" , "DELIVERED" , "READED" , "FAILED" ). |
data.reason | String | Motivo o resultado asociado al estado del mensaje. |
data.customer_number | String | Número de WhatsApp del cliente. |
data.type | String | Tipo de mensaje (ej. "text" ). |
data.payload | Object | Datos adicionales del mensaje. |
data.payload.name | String | Nombre de la plantilla o contenido enviado. |
data.payload.category | String | Categoría del mensaje. |
data.payload.components | Array | Lista de componentes del mensaje. |
pagination | Object | Información de la paginación. |
pagination.total_items | Integer | Total de elementos encontrados. |
pagination.items_per_page | Integer | Elementos por página. |
pagination.current_page | Integer | Página actual. |
pagination.total_pages | Integer | Total de páginas. |
Errores generales
Código HTTP | Tipo | Causa común |
---|---|---|
401 | Unauthorized | El token de acceso no fue proporcionado en el encabezado Authorization , es inválido o ha sido revocado. Verifique que el token sea correcto y esté activo. |
422 | Unprocessable Entity | La solicitud fue entendida, pero contiene errores semánticos que impiden su procesamiento. Esto puede deberse a: 1. Parámetros faltantes o inválidos (ej, from_date no es una fecha válida); 2. Recurso inexistente ( wa_number no registrado en el sistema); 3. Violación de reglas de negocio (el rango de fechas excede el límite permitido). |
500 | Server Error | Error interno del servidor. Intenta nuevamente más tarde o contacta soporte técnico. |