The restaurant module is designed for food service businesses that need to manage a physical dining room alongside delivery operations. It lets you define your menu (categories and products), configure tables with occupancy and reservation status, create and track dine-in orders (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/fredy-rizo/MultiSas/llms.txt
Use this file to discover all available pages before exploring further.
Pedido), dispatch deliveries with real-time status, and record charges at checkout — all within a single company tenant.
Features
Menu Management
Organize your menu with named categories (e.g., Starters, Mains, Drinks) and attach products with descriptions, prices, and optional extras.
Table Management
Define tables with a number, seating capacity, and real-time occupancy and reservation flags including reservation time and notes.
Order (Pedido) Management
Create POS orders linked to a product and company, auto-numbered via the company’s bill counter, and timestamped with date and hour.
Delivery Tracking
Record delivery orders with client name, phone, address, reference notes, and track status through
"En camino", "Entregado", or "No entregado".Charge Management
Log charges associated with a product and company, recording payment method and paid status for POS reconciliation.
Data Models
Category
Stored in collectioncategory_restaurante. Organises menu items into logical groups.
| Field | Type | Notes |
|---|---|---|
name_category | String | Category label (e.g., "Bebidas", "Postres") |
description_category | String | What the category contains |
sort_order | String | Display ordering hint |
status_category | Boolean | Whether the category is active (defaults to true) |
company._id | String | Owning company ID snapshot |
company.name_company | String | Company name snapshot |
company.name_founder | String | Founder name snapshot |
company.nit_company | String | Company NIT snapshot |
company.type_dato | String | Company type_dato snapshot |
Product
Stored in collectionproduct_restaurante. Represents a menu item.
| Field | Type | Notes |
|---|---|---|
name_product | String | Product name |
description_product | String | Product description |
price_product | String | Sale price |
status_product | Boolean | Whether the product is active (defaults to true) |
extras | Array | Optional add-ons, each with name_extra and price_extra |
category | Object | Snapshot of the parent category (_id, name_category, description_category, sort_order, status_category) |
company | Object | Snapshot of company identity fields |
Table
Stored in collectiontable_restaurante. Represents a physical dining table.
| Field | Type | Notes |
|---|---|---|
number_table | Number | Table number identifier |
capacity_table | Number | Maximum seating capacity |
occupied | Boolean | Whether the table is currently occupied (defaults to false) |
reserved | Boolean | Whether the table is reserved (defaults to false) |
hour_reserved | String | Reservation time (defaults to "") |
observation_reserved | String | Free-text reservation note (defaults to "") |
company | Object | Snapshot of company identity fields |
Pedido (Dine-in Order)
Stored in collectionpedido_restaurante. Records a product ordered at the restaurant. This model shares the /api/pedido route prefix with the sublimation pedido router; restaurant pedido routes are distinguished by the /restaurante/ path segment.
| Field | Type | Notes |
|---|---|---|
bill_counter | String | Auto-generated order number from bill_counter_pedido_restaurante |
date_pedido | String | Date the order was placed (DD/MM/YY) |
hour_pedido | String | Time the order was placed |
price_pedido | String | Price taken from the linked product |
product | Object | Snapshot of product fields (_id, name_product, description_product, price_product, extras) |
company | Object | Snapshot of company identity fields |
Delivery
Stored in collectiondelivery_restaurante. Tracks an out-of-restaurant delivery.
| Field | Type | Notes |
|---|---|---|
name_client_delivery | String | Recipient name |
phone_client_delivery | String | Recipient phone |
address_client_delivery | String | Delivery address |
references_client_delivery | String | Address landmarks or notes (defaults to "") |
status_delivery | String (enum) | "En camino", "Entregado", "No entregado", or "" |
payment_method | String (enum) | "Efectivo", "Transferencia", or "" |
paid | Boolean | Whether payment has been received (defaults to false) |
product | Object | Snapshot of product fields including extras |
Charge
Stored in collectioncharge_restaurante. Records a payment collected for a product.
| Field | Type | Notes |
|---|---|---|
price_charge | String | Amount charged |
payment_method | String (enum) | "Efectivo", "Transferencia", "Tarjeta", or "" |
paid | Boolean | Whether the charge is settled (defaults to false) |
product | Object | Snapshot of product fields (_id, name_product, description_product, price_product, extras) |
company | Object | Snapshot of company identity fields |
Order Flow
Add Products to Menu
Create one or more
Category records, then add Product records under each category. Products can include optional extras (add-ons) with their own prices.Assign Table
Register your physical tables with
number_table and capacity_table. The occupied and reserved flags are updated as guests arrive or reservations are made.Create Order
When a guest orders, create a
Pedido by posting to /api/pedido/restaurante/:company_id/:product_id. The bill_counter is auto-incremented using bill_counter_pedido_restaurante on the company document.Track / Update State
Update the table’s
occupied flag and monitor order status. For kitchen tracking, refer to the cocina module (part of the restaurante company type).Process Delivery (Optional)
For takeaway or home delivery, create a
Delivery record by posting to /api/delivery/:company_id/:product_id with client contact information, address, and product snapshot. Update status_delivery as the order progresses.API Endpoints Summary
Categories — /api/category
| Method | Endpoint | Description |
|---|---|---|
POST | /api/category/:company_id | Create a new menu category |
PUT | /api/category/updating/:company_id/:category_id | Update a menu category |
GET | /api/category/list/:company_id | List all categories for a company (paginated) |
DELETE | /api/category/delete/:category_id | Delete a category |
Products — /api/product
| Method | Endpoint | Description |
|---|---|---|
POST | /api/product/:company_id/:category_id | Create a new menu product (category required) |
PUT | /api/product/:company_id/updating/:product_id | Update a menu product |
PUT | /api/product/agregate/:company_id_resp/extra/:product_id_resp/push | Add an extra to a product |
PUT | /api/product/updating/:company_id/:product_id/:extra_id/product | Update a product extra |
GET | /api/product/list/:company_id/product | List all products for a company (paginated) |
DELETE | /api/product/delete/:company_id/product/:product_id | Delete a product |
DELETE | /api/product/delete/:company_id/product/:product_id/extra/:extra_id | Delete a product extra |
Tables — /api/table
| Method | Endpoint | Description |
|---|---|---|
POST | /api/table/:company_id | Create a new table |
PUT | /api/table/updating/:company_id/:table_id | Update table details |
PUT | /api/table/updating-occupied/:company_id/:table_id | Update table occupied status |
PUT | /api/table/updating-reserved/:company_id/:table_id | Update table reservation |
GET | /api/table/list/:company_id | List all tables for a company (paginated) |
DELETE | /api/table/remove/:company_id/:table_id | Delete a table |
Orders (Pedido) — /api/pedido
| Method | Endpoint | Description |
|---|---|---|
POST | /api/pedido/restaurante/:company_id/:product_id | Create a dine-in order for a product |
GET | /api/pedido/restaurante/:company_id | List all restaurant orders for a company (paginated) |
Deliveries — /api/delivery
| Method | Endpoint | Description |
|---|---|---|
POST | /api/delivery/:company_id/:product_id | Create a delivery order |
PUT | /api/delivery/status/:company_id/:delivery_id | Update delivery status |
PUT | /api/delivery/update/:company_id/methods/:delivery_id | Update delivery payment method |
GET | /api/delivery/list/:company_id/:delivery_id/:query | List deliveries (paginated) |
Charges — /api/charge
| Method | Endpoint | Description |
|---|---|---|
POST | /api/charge/:company_id/:product_id/:pedido_id | Record a charge for a product and order |
GET | /api/charge/:company_id | List all charges for a company (paginated) |
The restaurant company type (
restaurante) initialises only the bill_counter_pedido_restaurante counter. Ensure the company’s type_company is set to "restaurante" when registering so the correct modules and counter are provisioned. The /api/pedido route prefix is shared with the sublimation module — restaurant pedido routes are always accessed via the /restaurante/ path segment.Full Restaurant API Reference
Browse the complete endpoint reference for categories, products, tables, orders, deliveries, and charges in the restaurant module.