Pedido del comensal
POST
Ver el pedido
POST /api/orders/get-order
Descripción
Devuelve el estado del pedido, sus productos y sus totales en una sola lectura.
Detalles
Retorna el pedido en curso con su estado, el lugar donde se atiende, el canal de entrega, cómo eligió pagar el cliente y, cuando es a domicilio, la dirección y el estado de la entrega. Incluye además los productos cargados con sus opciones elegidas y el desglose de totales, para pintar la pantalla del pedido sin pedir cada cosa por separado.
Permisos requeridos
auth-order
Request
Este endpoint no recibe parámetros.
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| order | object | Estado del pedido |
| order.orderUuid | string | Identificador del pedido |
| order.orderCode | string | Número del pedido para mostrar |
| order.joinCode | string Admite vacío | Código corto para que otros se sumen |
| order.lifecycleStatus | string | Estado del pedido |
| order.awaitingApproval | bool | Si espera que el restaurante lo apruebe |
| order.isLocked | bool | Si hay un pago en línea en curso y no se puede editar |
| order.onlinePaymentStatus | string | Estado del pago en línea |
| order.openedAt | datetime | Cuándo se abrió el pedido |
| order.closedAt | datetime Admite vacío | Cuándo se cerró el pedido |
| order.timezone | string | Zona horaria del restaurante |
| order.fulfillmentUuid | string | Identificador del canal de entrega |
| order.fulfillmentTypeCode | string | Código del tipo de canal |
| order.fulfillmentTypeName | string | Nombre del tipo de canal |
| order.callerMode | string Admite vacío | Cómo se llama al cliente cuando el pedido está listo |
| order.callerLabel | string Admite vacío | Nombre del código de llamado |
| order.tableName | string Admite vacío | Nombre de la mesa |
| order.roomName | string Admite vacío | Nombre de la habitación |
| order.paysAtEnd | bool | Si el pedido se paga al final y suma rondas sin pagar antes |
| order.paymentOptionType | string Admite vacío | Forma de pago elegida |
| order.payingGuestName | string Admite vacío | Quién del grupo eligió cómo pagar, si no fuiste tú |
| order.isPaymentStarted | bool | Si el cobro ya arrancó y el grupo no puede sumar platos |
| order.nextStep | string Admite vacío | Lo próximo que le falta al pedido: address, zone, pickup, payment, transfer, online o review |
| order.paymentMethodCode | string Admite vacío | Medio de pago en línea elegido |
| order.cashTenderedCents | int Admite vacío | Con cuánto paga en efectivo, en centavos |
| order.ordering | object | Si el canal recibe pedidos ahora |
| order.ordering.canOrder | bool | Si recibe pedidos en este momento |
| order.ordering.reason | string | Motivo por el que recibe o no pedidos |
| order.ordering.opensAt | datetime Admite vacío | Cuándo vuelve a recibir pedidos |
| order.delivery | object Admite vacío | Datos del domicilio; vacío si no es a domicilio |
| order.delivery.status | string Admite vacío | Estado de la entrega |
| order.delivery.recipientName | string Admite vacío | Quién recibe |
| order.delivery.recipientPhone | string Admite vacío | Teléfono de quien recibe |
| order.delivery.addressLine | string Admite vacío | Dirección de entrega |
| order.delivery.addressDetail | string Admite vacío | Complemento de la dirección |
| order.delivery.city | string Admite vacío | Ciudad |
| order.delivery.municipalityCode | string Admite vacío | Código oficial de la ciudad |
| order.delivery.reference | string Admite vacío | Punto de referencia |
| order.delivery.deliveryZoneId | int Admite vacío | Zona de entrega elegida |
| order.delivery.courierName | string Admite vacío | Nombre del domiciliario |
| order.delivery.courierPhone | string Admite vacío | Teléfono del domiciliario |
| order.paymentReceipt | object Admite vacío | Último comprobante de transferencia; vacío si no hay |
| order.paymentReceipt.paymentReceiptUuid | string | Identificador del comprobante |
| order.paymentReceipt.status | string | Estado de la revisión del comprobante |
| order.paymentReceipt.createdAt | datetime | Cuándo se subió |
| order.pickup | object Admite vacío | Quién recoge el pedido; vacío si no es para recoger o si falta |
| order.pickup.recipientName | string Admite vacío | Quién recoge |
| order.pickup.recipientPhone | string Admite vacío | Teléfono de quien recoge |
| order.pickup.vehiclePlate | string Admite vacío | Placa del vehículo |
| order.pickup.vehicleModel | string Admite vacío | Modelo del vehículo |
| order.pickup.vehicleColor | string Admite vacío | Color del vehículo |
| order.pickup.callerInfo | string Admite vacío | Código con el que se llama al cliente |
| items | array | Productos del pedido |
| items[].itemUuid | string | Identificador del producto en el pedido |
| items[].productUuid | string | Identificador público del producto |
| items[].productName | string | Nombre del producto |
| items[].productIcon | string Admite vacío | Ícono del producto |
| items[].categoryName | string Admite vacío | Nombre de la categoría |
| items[].productPriceOptionName | string Admite vacío | Variación elegida |
| items[].quantity | decimal | Cantidad |
| items[].unitPriceCents | int | Precio unitario, en centavos |
| items[].modifiersTotalCents | int | Total de las opciones elegidas, en centavos |
| items[].discountCents | int | Descuento aplicado, en centavos |
| items[].isComped | bool | Si es cortesía |
| items[].totalBaseCents | int | Total antes de impuestos, en centavos |
| items[].taxCents | int | Impuestos, en centavos |
| items[].priceCents | int | Total de la línea, en centavos |
| items[].lifecycleStatus | string | Estado del producto en el pedido |
| items[].preparationStatus | string | Estado en cocina |
| items[].servedStatus | string | Estado de entrega a la mesa |
| items[].itemNotes | string Admite vacío | Indicaciones para la cocina |
| items[].consumptionMode | string Admite vacío | Si se come en la mesa o va empacado |
| items[].guestName | string Admite vacío | Nombre de quien lo pidió |
| items[].isMine | bool | Si lo pediste tú |
| items[].authorKey | string Admite vacío | Marca anónima de quien lo pidió, igual para sus productos del pedido |
| items[].cancellationReasonName | string Admite vacío | Motivo que escribió el comensal al cancelar |
| items[].createdAt | datetime | Cuándo se agregó |
| items[].submittedAt | datetime Admite vacío | Cuándo se envió al restaurante |
| items[].confirmedAt | datetime Admite vacío | Cuándo lo aprobó el restaurante |
| items[].firedAt | datetime Admite vacío | Cuándo entró a cocina |
| items[].readyAt | datetime Admite vacío | Cuándo quedó listo |
| items[].servedAt | datetime Admite vacío | Cuándo se entregó |
| items[].cancelledAt | datetime Admite vacío | Cuándo se canceló |
| modifiers | array | Opciones elegidas en cada producto |
| modifiers[].itemUuid | string | Producto del pedido al que pertenece |
| modifiers[].modifierGroupName | string | Nombre del grupo de opciones |
| modifiers[].modifierName | string | Nombre de la opción |
| modifiers[].quantity | decimal | Cantidad |
| modifiers[].unitPriceCents | int | Precio unitario, en centavos |
| modifiers[].totalCents | int | Total de la opción, en centavos |
| totals | object | Totales del pedido |
| totals.productsCents | int | Total de los productos, en centavos |
| totals.taxInclusionMode | string | Si los precios incluyen impuestos |
| totals.totalBaseCents | int | Subtotal antes de impuestos, en centavos |
| totals.taxCents | int | Impuestos, en centavos |
| totals.priceCents | int | Total de los productos con impuestos, en centavos |
| totals.discountReasonName | string Admite vacío | Motivo del descuento |
| totals.discountCents | int | Descuentos, en centavos |
| totals.tipAmountCents | int | Propina, en centavos |
| totals.tipModeApplied | string | Cómo se calculó la propina |
| totals.isTipOverridden | bool | Si la propina la eligió el cliente |
| totals.deliveryFeeCents | int | Costo del domicilio, en centavos |
| totals.deliveryModeApplied | string | Cómo se calculó el domicilio |
| totals.grandTotalCents | int | Total a pagar, en centavos |
| totals.balanceCents | int | Saldo pendiente, en centavos |
| totals.paymentStatus | string | Estado del pago |
Ejemplo de request
curl -X POST https://restofy.pro/api/orders/get-order \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-10-09T02:12:12Z
HTTP 200
Request
[]
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"order": {
"orderUuid": "946990a8-cbf2-4507-8681-a2214210560b",
"orderCode": "88X-P74",
"joinCode": "P74",
"lifecycleStatus": "ordering",
"awaitingApproval": false,
"isLocked": false,
"onlinePaymentStatus": "none",
"openedAt": "2026-10-09T02:10:15.000Z",
"closedAt": null,
"timezone": "America/Bogota",
"fulfillmentUuid": "94c7d029-0c97-401a-8859-4172b99384bd",
"fulfillmentTypeCode": "fulfillment.counter",
"fulfillmentTypeName": "Autoservicio",
"callerMode": "name",
"callerLabel": null,
"tableName": null,
"roomName": null,
"paysAtEnd": false,
"paymentOptionType": null,
"payingGuestName": null,
"isPaymentStarted": false,
"nextStep": "pickup",
"paymentMethodCode": null,
"cashTenderedCents": null,
"ordering": {
"canOrder": true,
"reason": "open",
"opensAt": null
},
"delivery": null,
"paymentReceipt": null,
"pickup": null
},
"items": [
{
"itemUuid": "c92805ca-6d91-4404-aec4-4185e06a4ea9",
"productUuid": "3662a28e-18be-11f1-9da2-b627060a1ebe",
"productName": "Limonada Natural",
"productIcon": "fa-solid fa-glass-citrus",
"categoryName": "Bebidas Frías",
"productPriceOptionName": null,
"quantity": "1.0000",
"unitPriceCents": 500000,
"modifiersTotalCents": 0,
"discountCents": 0,
"isComped": 0,
"totalBaseCents": 0,
"taxCents": 0,
"priceCents": 500000,
"lifecycleStatus": "draft",
"preparationStatus": "pending",
"servedStatus": "pending",
"itemNotes": null,
"consumptionMode": null,
"guestName": "Comensal de prueba",
"isMine": true,
"authorKey": "5c3bac54645bb815",
"cancellationReasonName": null,
"createdAt": "2026-10-09T02:10:15.728Z",
"submittedAt": null,
"confirmedAt": null,
"firedAt": null,
"readyAt": null,
"servedAt": null,
"cancelledAt": null
}
],
"modifiers": [],
"totals": {
"productsCents": 500000,
"taxInclusionMode": "inclusive",
"totalBaseCents": 0,
"taxCents": 0,
"priceCents": 0,
"discountReasonName": null,
"discountCents": 0,
"tipAmountCents": 0,
"tipModeApplied": "voluntary",
"isTipOverridden": 0,
"deliveryFeeCents": 0,
"deliveryModeApplied": "disabled",
"grandTotalCents": 500000,
"balanceCents": 0,
"paymentStatus": "unpaid"
}
}
}