Ver los mensajes de un chat
POST /api/chats/list-messages
Descripción
Lista los mensajes de un chat tuyo, del más nuevo al más viejo.
Detalles
* Llegan primero los últimos mensajes; los anteriores se piden con el cursor de la respuesta. * Incluye la bienvenida, cada producto enviado, los avisos y el estado del pedido. * En un chat en grupo ves también lo que pidieron los demás, con su nombre. * Solo responde si eres miembro del chat.
Permisos requeridos
public
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| chatUuid | string | Sí |
min:36
max:36
|
| deviceUuid | string | Sí |
min:36
max:36
|
| cursor | string | No |
max:300
|
Paginación
| mode | cursor |
| defaultLimit | 30 |
| maxLimit | 100 |
| cursorKeys | m.sort_at AS sortAt, m.id AS messageId |
| cursorDir | desc |
Ejemplo de request
curl -X POST https://restofy.pro/api/chats/list-messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"chatUuid": "string",
"deviceUuid": "string"
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-10-09T02:12:12Z
HTTP 200
Request
{
"chatUuid": "80e86e5f-c386-11f1-a755-a2f78ac020f7",
"deviceUuid": "6cae753b-0b66-4ab5-bb63-ee6335003ed2"
}
Response
{
"success": true,
"message": "Mensajes",
"data": {
"messages": [
{
"messageUuid": "83c773ba-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-answer",
"referenceKey": "answer:5dcc2699-72ac-4c46-a52c-3d9769f4ccfd",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "pickup",
"expiresAt": null,
"questionUuid": "5dcc2699-72ac-4c46-a52c-3d9769f4ccfd",
"recipientName": "Laura Gómez",
"recipientPhone": null,
"vehiclePlate": null,
"vehicleModel": null,
"vehicleColor": null,
"callerInfo": "12"
},
"occurredAt": "2026-10-09T02:09:52.863Z",
"sortAt": "2026-10-09T02:09:52.863Z"
},
{
"messageUuid": "83c77338-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-question",
"referenceKey": "question:5dcc2699-72ac-4c46-a52c-3d9769f4ccfd",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "pickup",
"expiresAt": null,
"questionUuid": "5dcc2699-72ac-4c46-a52c-3d9769f4ccfd",
"isOptional": false
},
"occurredAt": "2026-10-09T02:09:52.862Z",
"sortAt": "2026-10-09T02:09:52.862Z"
},
{
"messageUuid": "83c776e0-c386-11f1-a755-a2f78ac020f7",
"messageType": "pickup-ticket",
"referenceKey": "ticket:60af600e9c9be48cf7939a2faf886c40",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "staff_code",
"expiresAt": null,
"orderUuid": "858dde50-163e-4201-9524-f0da64e65a32",
"label": "Vibrador",
"value": "12"
},
"occurredAt": "2026-10-09T02:09:52.845Z",
"sortAt": "2026-10-09T02:09:52.845Z"
},
{
"messageUuid": "835809bc-c386-11f1-a755-a2f78ac020f7",
"messageType": "order-step",
"referenceKey": "step:ad4814978c95102a521f70d74137ea12",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "approval",
"expiresAt": null,
"orderUuid": "858dde50-163e-4201-9524-f0da64e65a32",
"orderCode": "94T-R25",
"label": "Esperando aprobación",
"courier": null,
"reason": null,
"caller": null
},
"occurredAt": "2026-10-09T02:09:52.129Z",
"sortAt": "2026-10-09T02:09:52.129Z"
},
{
"messageUuid": "82f97dc4-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-answer",
"referenceKey": "answer:a2ac1bc3-5276-4f37-b55a-dcc6a83d9c4e",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "payment",
"expiresAt": null,
"questionUuid": "a2ac1bc3-5276-4f37-b55a-dcc6a83d9c4e",
"optionType": "pay_on_pickup",
"methodCode": null,
"cashTenderedCents": null
},
"occurredAt": "2026-10-09T02:09:51.498Z",
"sortAt": "2026-10-09T02:09:51.498Z"
},
{
"messageUuid": "823ba333-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-question",
"referenceKey": "question:a2ac1bc3-5276-4f37-b55a-dcc6a83d9c4e",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "payment",
"expiresAt": null,
"questionUuid": "a2ac1bc3-5276-4f37-b55a-dcc6a83d9c4e",
"isOptional": false
},
"occurredAt": "2026-10-09T02:09:50.274Z",
"sortAt": "2026-10-09T02:09:50.274Z"
},
{
"messageUuid": "823ba45f-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-answer",
"referenceKey": "answer:54ce343e-a411-42ef-a9f6-49f85186641e",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "pickup",
"expiresAt": null,
"questionUuid": "54ce343e-a411-42ef-a9f6-49f85186641e",
"recipientName": "Laura Gómez",
"recipientPhone": "+573001234567",
"vehiclePlate": null,
"vehicleModel": null,
"vehicleColor": null,
"callerInfo": null
},
"occurredAt": "2026-10-09T02:09:50.273Z",
"sortAt": "2026-10-09T02:09:50.273Z"
},
{
"messageUuid": "81d66546-c386-11f1-a755-a2f78ac020f7",
"messageType": "checkout-question",
"referenceKey": "question:54ce343e-a411-42ef-a9f6-49f85186641e",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": "pickup",
"expiresAt": null,
"questionUuid": "54ce343e-a411-42ef-a9f6-49f85186641e",
"isOptional": false
},
"occurredAt": "2026-10-09T02:09:49.633Z",
"sortAt": "2026-10-09T02:09:49.633Z"
},
{
"messageUuid": "8358093f-c386-11f1-a755-a2f78ac020f7",
"messageType": "item-round",
"referenceKey": "round:2717f5a2bb5874dc8b28101945146b60",
"authorKind": "diner",
"authorName": "Laura",
"isMine": true,
"payload": {
"state": null,
"expiresAt": null,
"roundKey": "6cae753b-0b66-4ab5-bb63-ee6335003ed2|2026-10-09T02:09:52.000Z",
"lines": [
{
"itemUuid": "ddc1bb1b-9d9f-4861-a8c3-7376045e77c2",
"productName": "Limonada Natural",
"detail": "",
"quantity": 1,
"totalCents": 500000
}
]
},
"occurredAt": "2026-10-09T02:09:52.129Z",
"sortAt": "2026-10-09T02:09:49.596Z"
},
{
"messageUuid": "81d667df-c386-11f1-a755-a2f78ac020f7",
"messageType": "item-draft",
"referenceKey": "current:2be710b09f84e194d1ae4bda2dc8084f:77529b68d130d125ff07a534a7b69adb:1",
"authorKind": "diner",
"authorName": "Laura",
"isMine": true,
"payload": {
"state": "draft",
"expiresAt": null,
"itemUuid": "ddc1bb1b-9d9f-4861-a8c3-7376045e77c2",
"productName": "Limonada Natural",
"detail": "",
"quantity": 1,
"totalCents": 500000
},
"occurredAt": "2026-10-09T02:09:49.596Z",
"sortAt": "2026-10-09T02:09:49.596Z"
},
{
"messageUuid": "81d66763-c386-11f1-a755-a2f78ac020f7",
"messageType": "order-opened",
"referenceKey": "order-opened:858dde50-163e-4201-9524-f0da64e65a32",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": null,
"expiresAt": null,
"orderCode": "94T-R25",
"joinCode": null,
"context": "counter"
},
"occurredAt": "2026-10-09T02:09:49.540Z",
"sortAt": "2026-10-09T02:09:49.539Z"
},
{
"messageUuid": "80e8bd2f-c386-11f1-a755-a2f78ac020f7",
"messageType": "greeting",
"referenceKey": "greeting",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": null,
"expiresAt": null,
"title": "¡Hola! Qué bueno verte",
"text": "Pide por aquí y pasa a recogerlo cuando esté listo."
},
"occurredAt": "2026-10-09T02:09:47.998Z",
"sortAt": "2026-10-09T02:09:47.998Z"
},
{
"messageUuid": "80e8ba77-c386-11f1-a755-a2f78ac020f7",
"messageType": "place-card",
"referenceKey": "place-card",
"authorKind": "restaurant",
"authorName": null,
"isMine": false,
"payload": {
"state": null,
"expiresAt": null,
"name": "Mi Negocio",
"cuisine": null,
"logoUrl": null,
"coverUrl": null,
"context": "counter",
"placeTitle": "Entrega 3c1597"
},
"occurredAt": "2026-10-09T02:09:47.998Z",
"sortAt": "2026-10-09T02:09:47.998Z"
}
],
"pagination": {
"limit": 30,
"hasNext": false,
"nextCursor": null
}
}
}