Restofy Docs
Productos del menú POST

Listar productos del catálogo

POST /api/products/list-products

Descripción

Retorna los productos disponibles del catálogo del restaurante, paginados, con búsqueda y filtros opcionales.

Detalles

Lista los productos disponibles del catálogo respetando el orden configurado del restaurante. Permite buscar por coincidencia parcial en el nombre del producto, su código de identificación o el nombre de su categoría. Admite además filtrar por categoría, por estado activo o pausado y por un rango de precio base. Incluye datos de presentación, precio base, categoría asociada y estado operativo de cada producto. Los productos eliminados no se incluyen en la respuesta.

Permisos requeridos

catalog.module

Request

Nombre Tipo Requerido Reglas
query string No
max:100
categoryUuid string No
min:36 max:36
status string No
enum:active,inactive
minPriceCents int No
min_value:0
maxPriceCents int No
min_value:0

Paginación

defaultLimit 25
maxLimit 100
allowedSorts sortKey, name, sku, basePriceCents, createdAt
defaultSort sortKey
defaultDir asc
withTotal true

Ejemplo de request

curl -X POST https://restofy.pro/api/products/list-products \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -H "X-Tenant-Key: <tenantKey>"

Los valores son demo: reemplázalos por datos reales del negocio.

Ejemplo de respuesta

Actualizado: 2026-09-08T16:35:34Z
HTTP 200

Request

[]

Response

{
    "success": true,
    "message": "Operación realizada correctamente",
    "data": {
        "products": [
            {
                "uuid": "3661c9fa-18be-11f1-9da2-b627060a1ebe",
                "name": "Sopa del Día",
                "sku": "SOP-001",
                "internalName": "sopa-dia",
                "description": "Sopa casera preparada según disponibilidad del día",
                "kitchenDefaultNotes": "Caliente; Tibia; Sin sal; Aparte el pan",
                "basePriceCents": 700000,
                "prepTimeMinutes": 15,
                "stockMin": "0.0000",
                "sortKey": "02",
                "iconFontAwesome": "fa-solid fa-bowl-hot",
                "color": "#f59e0b",
                "isActive": 1,
                "productCategoryUuid": "ef52bb1b-f81b-44f8-a33c-119ca3d557ce",
                "productCategoryName": "Sopas y Cremas",
                "unitId": 1,
                "defaultCourseId": 1,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "3661f2f0-18be-11f1-9da2-b627060a1ebe",
                "name": "Ajiaco Bogotano",
                "sku": "SOP-002",
                "internalName": "ajiaco",
                "description": "Ajiaco tradicional con pollo, papas y mazorca",
                "kitchenDefaultNotes": "Con alcaparras; Sin alcaparras; Extra crema; Extra mazorca; Aparte el aguacate; Bien caliente; Sin cilantro",
                "basePriceCents": 1100000,
                "prepTimeMinutes": 20,
                "stockMin": "0.0000",
                "sortKey": "04",
                "iconFontAwesome": "fa-solid fa-bowl-food",
                "color": "#eab308",
                "isActive": 1,
                "productCategoryUuid": "ef52bb1b-f81b-44f8-a33c-119ca3d557ce",
                "productCategoryName": "Sopas y Cremas",
                "unitId": 1,
                "defaultCourseId": 1,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 6
            },
            {
                "uuid": "36620cf6-18be-11f1-9da2-b627060a1ebe",
                "name": "Bandeja Paisa",
                "sku": "CAR-001",
                "internalName": "bandeja",
                "description": "Bandeja típica con carne molida, chicharrón, chorizo, huevo, arroz, frijoles y aguacate",
                "kitchenDefaultNotes": "Carne término medio; Carne bien cocida; Carne tres cuartos; Sin chicharrón; Extra arepa; Sin frijoles; Huevo frito; Huevo revuelto; Aparte el aguacate",
                "basePriceCents": 1800000,
                "prepTimeMinutes": 20,
                "stockMin": "0.0000",
                "sortKey": "06",
                "iconFontAwesome": "fa-solid fa-plate-wheat",
                "color": "#ef4444",
                "isActive": 1,
                "productCategoryUuid": "f13d2b64-a2cd-4b6c-836a-7ac52b63a463",
                "productCategoryName": "Carnes",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "366221e3-18be-11f1-9da2-b627060a1ebe",
                "name": "Churrasco a la Parrilla",
                "sku": "CAR-002",
                "internalName": "churrasco",
                "description": "Corte de churrasco 300g a la parrilla con papas y chimichurri",
                "kitchenDefaultNotes": "Término rojo; Término medio; Término bien cocido; Sin sal; Extra chimichurri; Aparte la guarnición",
                "basePriceCents": 2200000,
                "prepTimeMinutes": 25,
                "stockMin": "0.0000",
                "sortKey": "08",
                "iconFontAwesome": "fa-solid fa-fire-burner",
                "color": "#f43f5e",
                "isActive": 1,
                "productCategoryUuid": "f13d2b64-a2cd-4b6c-836a-7ac52b63a463",
                "productCategoryName": "Carnes",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "3662326a-18be-11f1-9da2-b627060a1ebe",
                "name": "Lomo de Res al Vino",
                "sku": "CAR-003",
                "internalName": "lomo-res",
                "description": "Lomo de res con reducción de vino tinto y puré de papa",
                "kitchenDefaultNotes": null,
                "basePriceCents": 2500000,
                "prepTimeMinutes": 30,
                "stockMin": "0.0000",
                "sortKey": "0a",
                "iconFontAwesome": "fa-solid fa-drumstick-bite",
                "color": "#ef4444",
                "isActive": 1,
                "productCategoryUuid": "f13d2b64-a2cd-4b6c-836a-7ac52b63a463",
                "productCategoryName": "Carnes",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "36624424-18be-11f1-9da2-b627060a1ebe",
                "name": "Cazuela de Mariscos",
                "sku": "MAR-001",
                "internalName": "cazuela",
                "description": "Camarones, calamar y mejillones en salsa de coco y cúrcuma",
                "kitchenDefaultNotes": null,
                "basePriceCents": 2300000,
                "prepTimeMinutes": 20,
                "stockMin": "0.0000",
                "sortKey": "0c",
                "iconFontAwesome": "fa-solid fa-fish",
                "color": "#06b6d4",
                "isActive": 1,
                "productCategoryUuid": "bacf4e3d-70fb-425f-9ede-1fdb924aed80",
                "productCategoryName": "Mariscos",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "366262db-18be-11f1-9da2-b627060a1ebe",
                "name": "Filete de Tilapia",
                "sku": "MAR-002",
                "internalName": "tilapia",
                "description": "Filete de tilapia a la plancha con arroz y ensalada",
                "kitchenDefaultNotes": null,
                "basePriceCents": 1600000,
                "prepTimeMinutes": 18,
                "stockMin": "0.0000",
                "sortKey": "0e",
                "iconFontAwesome": "fa-solid fa-fish-fins",
                "color": "#0ea5e9",
                "isActive": 1,
                "productCategoryUuid": "bacf4e3d-70fb-425f-9ede-1fdb924aed80",
                "productCategoryName": "Mariscos",
                "unitId": 1,
                "defaultCourseId": 2,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "36626e5c-18be-11f1-9da2-b627060a1ebe",
                "name": "Ensalada César",
                "sku": "ENS-001",
                "internalName": "cesar",
                "description": "Lechuga romana, crutones, parmesano y aderezo César",
                "kitchenDefaultNotes": "Aparte la salsa; Sin champiñones; Bien cocido; Término medio",
                "basePriceCents": 1000000,
                "prepTimeMinutes": 8,
                "stockMin": "0.0000",
                "sortKey": "0g",
                "iconFontAwesome": "fa-solid fa-seedling",
                "color": "#10b981",
                "isActive": 1,
                "productCategoryUuid": "5eca3294-1826-4735-9caa-a84736fd34f6",
                "productCategoryName": "Ensaladas",
                "unitId": 1,
                "defaultCourseId": 1,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "3662794a-18be-11f1-9da2-b627060a1ebe",
                "name": "Ensalada Tropical",
                "sku": "ENS-002",
                "internalName": "tropical",
                "description": "Espinaca, mango, fresas y aderezo de maracuyá",
                "kitchenDefaultNotes": null,
                "basePriceCents": 1100000,
                "prepTimeMinutes": 8,
                "stockMin": "0.0000",
                "sortKey": "0i",
                "iconFontAwesome": "fa-solid fa-leaf",
                "color": "#14b8a6",
                "isActive": 1,
                "productCategoryUuid": "5eca3294-1826-4735-9caa-a84736fd34f6",
                "productCategoryName": "Ensaladas",
                "unitId": 1,
                "defaultCourseId": 1,
                "revenueAccountId": 12,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "3662837e-18be-11f1-9da2-b627060a1ebe",
                "name": "Tres Leches",
                "sku": "POS-001",
                "internalName": "tres-leches",
                "description": "Bizcocho húmedo bañado en tres tipos de leche",
                "kitchenDefaultNotes": "Sin lactosa; Extra dulce de leche; Porción pequeña",
                "basePriceCents": 900000,
                "prepTimeMinutes": 5,
                "stockMin": "0.0000",
                "sortKey": "0k",
                "iconFontAwesome": "fa-solid fa-cake-candles",
                "color": "#ec4899",
                "isActive": 1,
                "productCategoryUuid": "8e8c547a-0b6c-4a2a-a49d-6de5611f4a82",
                "productCategoryName": "Postres",
                "unitId": 1,
                "defaultCourseId": 3,
                "revenueAccountId": 15,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "36628d62-18be-11f1-9da2-b627060a1ebe",
                "name": "Mousse de Maracuyá",
                "sku": "POS-002",
                "internalName": "mousse-maracuya",
                "description": "Mousse cremoso de maracuyá con coulis de fruta",
                "kitchenDefaultNotes": null,
                "basePriceCents": 850000,
                "prepTimeMinutes": 5,
                "stockMin": "0.0000",
                "sortKey": "0m",
                "iconFontAwesome": "fa-solid fa-lemon",
                "color": "#eab308",
                "isActive": 1,
                "productCategoryUuid": "8e8c547a-0b6c-4a2a-a49d-6de5611f4a82",
                "productCategoryName": "Postres",
                "unitId": 1,
                "defaultCourseId": 3,
                "revenueAccountId": 15,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "36629787-18be-11f1-9da2-b627060a1ebe",
                "name": "Churros con Chocolate",
                "sku": "POS-003",
                "internalName": "churros",
                "description": "Churros artesanales con salsa de chocolate caliente",
                "kitchenDefaultNotes": "Extra chocolate; Sin azúcar adicional; Caliente; Tibio",
                "basePriceCents": 750000,
                "prepTimeMinutes": 10,
                "stockMin": "0.0000",
                "sortKey": "0o",
                "iconFontAwesome": "fa-solid fa-cookie",
                "color": "#f59e0b",
                "isActive": 1,
                "productCategoryUuid": "8e8c547a-0b6c-4a2a-a49d-6de5611f4a82",
                "productCategoryName": "Postres",
                "unitId": 1,
                "defaultCourseId": 3,
                "revenueAccountId": 15,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 2
            },
            {
                "uuid": "3662a28e-18be-11f1-9da2-b627060a1ebe",
                "name": "Limonada Natural",
                "sku": "BEV-001",
                "internalName": "limonada",
                "description": "Limonada natural con hielo y menta",
                "kitchenDefaultNotes": null,
                "basePriceCents": 500000,
                "prepTimeMinutes": 3,
                "stockMin": "0.0000",
                "sortKey": "0q",
                "iconFontAwesome": "fa-solid fa-glass-citrus",
                "color": "#84cc16",
                "isActive": 1,
                "productCategoryUuid": "d88163ca-a221-493d-9907-b7c6cafdc34b",
                "productCategoryName": "Bebidas Frías",
                "unitId": 3,
                "defaultCourseId": 2,
                "revenueAccountId": 13,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 3
            },
            {
                "uuid": "3662ae66-18be-11f1-9da2-b627060a1ebe",
                "name": "Jugo de Naranja",
                "sku": "BEV-002",
                "internalName": "jugo-naranja",
                "description": "Jugo de naranja natural recién exprimido",
                "kitchenDefaultNotes": null,
                "basePriceCents": 550000,
                "prepTimeMinutes": 3,
                "stockMin": "0.0000",
                "sortKey": "0s",
                "iconFontAwesome": "fa-solid fa-glass-water",
                "color": "#f97316",
                "isActive": 1,
                "productCategoryUuid": "d88163ca-a221-493d-9907-b7c6cafdc34b",
                "productCategoryName": "Bebidas Frías",
                "unitId": 3,
                "defaultCourseId": 3,
                "revenueAccountId": 13,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 3
            },
            {
                "uuid": "3662ba46-18be-11f1-9da2-b627060a1ebe",
                "name": "Agua con Gas",
                "sku": "BEV-003",
                "internalName": "agua-gas",
                "description": "Agua mineral con gas 350ml",
                "kitchenDefaultNotes": null,
                "basePriceCents": 350000,
                "prepTimeMinutes": 1,
                "stockMin": "0.0000",
                "sortKey": "0u",
                "iconFontAwesome": "fa-solid fa-droplet",
                "color": "#3b82f6",
                "isActive": 1,
                "productCategoryUuid": "d88163ca-a221-493d-9907-b7c6cafdc34b",
                "productCategoryName": "Bebidas Frías",
                "unitId": 3,
                "defaultCourseId": 3,
                "revenueAccountId": 13,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 3
            },
            {
                "uuid": "3662c515-18be-11f1-9da2-b627060a1ebe",
                "name": "Café Negro",
                "sku": "BEV-010",
                "internalName": "cafe-negro",
                "description": "Café espresso doble preparado al momento",
                "kitchenDefaultNotes": null,
                "basePriceCents": 400000,
                "prepTimeMinutes": 3,
                "stockMin": "0.0000",
                "sortKey": "0w",
                "iconFontAwesome": "fa-solid fa-mug-hot",
                "color": "#78716c",
                "isActive": 1,
                "productCategoryUuid": "09c72918-06ae-444b-859f-ec3c4b4c0cbf",
                "productCategoryName": "Bebidas Calientes",
                "unitId": 3,
                "defaultCourseId": 3,
                "revenueAccountId": 13,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 3
            },
            {
                "uuid": "3662d290-18be-11f1-9da2-b627060a1ebe",
                "name": "Café Latte",
                "sku": "BEV-011",
                "internalName": "cafe-latte",
                "description": "Espresso con leche vaporizada y espuma",
                "kitchenDefaultNotes": null,
                "basePriceCents": 600000,
                "prepTimeMinutes": 4,
                "stockMin": "0.0000",
                "sortKey": "0y",
                "iconFontAwesome": "fa-solid fa-mug-saucer",
                "color": "#f59e0b",
                "isActive": 1,
                "productCategoryUuid": "09c72918-06ae-444b-859f-ec3c4b4c0cbf",
                "productCategoryName": "Bebidas Calientes",
                "unitId": 3,
                "defaultCourseId": 3,
                "revenueAccountId": 13,
                "createdAt": "2026-04-15T17:05:02.000Z",
                "pricesCount": 3
            },
            {
                "uuid": "65b775d3-726c-45b6-b2bd-8f998891c383",
                "name": "Prod Listado 6aa0391954f60",
                "sku": "SOP-003",
                "internalName": null,
                "description": null,
                "kitchenDefaultNotes": null,
                "basePriceCents": 1000,
                "prepTimeMinutes": 0,
                "stockMin": "0.0000",
                "sortKey": "h",
                "iconFontAwesome": "fa-solid fa-bowl-food",
                "color": "#FF4500",
                "isActive": 1,
                "productCategoryUuid": "ef52bb1b-f81b-44f8-a33c-119ca3d557ce",
                "productCategoryName": "Sopas y Cremas",
                "unitId": 1,
                "defaultCourseId": 5,
                "revenueAccountId": null,
                "createdAt": "2026-09-08T16:34:33.000Z",
                "pricesCount": 0
            }
        ],
        "pagination": {
            "page": 1,
            "limit": 25,
            "total": 18,
            "totalPages": 1,
            "hasNext": false,
            "hasPrev": false
        }
    }
}