Restofy Docs
Chats con restaurantes POST

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
        }
    }
}