Every feature, one platform
From kitchen operations to financial statements — purchasing, inventory, recipes, POS imports, waste, payroll, delivery receivables, and double-entry accounting. Everything connected, nothing manual.
Operations
The daily workflows that keep your restaurant running.
Purchase Tracking
Record vendor invoices with line-item detail. Multi-currency with exchange rates. Tracked items go to stock, expense items hit the P&L. Import purchases from XLSX/CSV.
- Unlimited inventory items on all plans
- Line-item quantities, units, and unit prices
- Multi-currency purchases with exchange rate conversion
- Auto-link to vendors and payment accounts
- Stock movements generated automatically
- Import purchases from BasilBook XLSX/CSV template (Pro)
- Auto-create vendors during import
POS Sales Import
Import sales from POPOK POS or any XLSX/CSV spreadsheet. Sync directly from POPOK with one click. Auto-creates sale items, staff, categories, and delivery platforms.
- One-click Sync POPOK button on Sales, Sale Items, and Categories pages
- POPOK POS auto-detection (Sales Report + Product Report)
- BasilBook native XLSX/CSV with 60+ flexible column aliases
- Auto-creates sale items, staff, categories, delivery platforms
- Invoice-level + line-item discount handling with proportional distribution
- Per-channel pricing stored separately (dine-in vs Grab vs FoodPanda)
- Journal entries auto-generated per invoice
- Detailed sync results: created, updated, skipped counts
- Idempotent — duplicate invoices detected and skipped
Sales XLSX/CSV Import
Import sales from any spreadsheet using the BasilBook template. 60+ flexible column aliases, auto-creates sale items and staff.
- BasilBook native XLSX/CSV with flexible column headers
- Auto-creates sale items, staff, and delivery platforms
- Journal entries auto-generated per invoice
- Downloadable templates in .xlsx and .csv
Purchase Import
Import purchase invoices from XLSX/CSV. Groups line items by reference number, auto-creates vendors, generates stock movements.
- One row per purchase line, grouped by referenceNumber
- Items matched by name (must exist in the system)
- Vendors auto-created when not found
- Stock movements generated for tracked inventory items
- Journal entries auto-generated per purchase
Stock Count
Count actual inventory and compare against system balance. Adjustments recorded as stock movements with journal entries and printable receipt preview.
- Shows current system balance per item
- Enter counted quantities — variance calculated automatically
- Adjustment entries created as stock movements
- Journal entries auto-generated for inventory adjustments
- Receipt preview for printing or archiving
- Reveals shrinkage, theft, or miscounts
Waste Tracking
Record waste by reason — spoilage, overcooking, prep waste, unknown loss. Each entry deducts stock and generates a journal entry. Import waste records from XLSX/CSV.
- Five reasons: spoiled, expired, overcooked, prep waste, unknown loss
- Links to inventory items with quantities
- Auto-generates stock movement and journal entry
- Waste reports by reason, item, and period
- Import waste records from BasilBook template (Pro)
Waste Import
Import waste records from XLSX/CSV. Items matched by name, stock movements and journal entries auto-generated for tracked inventory.
- One row per waste entry with date, item, quantity, reason
- Items must exist in the system (matched by name)
- Stock movements auto-generated for tracked items
- Journal entries auto-generated (Dr Waste Expense, Cr Inventory)
Expense Tracking
Record overhead costs like rent, utilities, and cleaning services. Import expenses from XLSX/CSV. Journal entries auto-generated for every expense.
- Track rent, utilities, services, and other overhead costs
- Expense categories auto-created with usage: expense
- Map to expense and payment accounts from your Chart of Accounts
- Journal entries auto-generated (Dr Expense, Cr Cash/Bank)
- Import from BasilBook XLSX/CSV template (Pro)
Daily Reconciliation
Compare POS totals against cash, bank, QR receipts, and delivery receivables every day. Close the session to lock the day.
- One session per business day
- Enter POS total, expected cash, actual cash, bank, delivery
- Cash variance and unreconciled amount calculated live
- Close session to lock — no retroactive changes
Management
Master data that powers your cost control.
Standard Recipes
Define ingredient composition for every menu item. Recipes are versioned — never overwritten. Your December food cost uses December's recipe.
- Link ingredients with quantities and units
- Multiple recipe versions per sale item
- Effective date ranges for seasonal changes
- Theoretical consumption calculated from sales
- Historical recipes preserved — never overwritten
Recipe Cost Analysis
Know your true food cost per item. Compare theoretical vs actual consumption to catch over-portioning and waste before it eats your margin.
- Cost per serving calculated from ingredient prices
- Food cost percentage per menu item
- Theoretical vs actual variance reporting
- Spot recipe drift before it becomes a loss
Delivery Platform Management
Configure Grab, FoodPanda, Nham24 and other delivery platforms with commission rates. Track receivables and per-channel pricing per item.
- Add platforms with name + commission rate
- Platforms auto-created during POS import (Grab 25%, FoodPanda 30%)
- Per-channel pricing — each item can have a different price per platform
- Commission expense recorded at time of sale
- Net receivable created and cleared on settlement
- Manage platforms in Settings → Delivery tab
Payroll Management
Calculate payroll using daily wage = monthly salary / 30. Salary is snapshot at payroll time — giving a raise doesn't change past payslips.
- Daily wage: monthly salary / 30
- Staff line items with days worked
- Salary snapshot preserved (raise doesn't change past records)
- Journal entries generated for each period
- Auto-fill days worked from DailyBrew attendance
Attendance Tracking
Sync employee attendance from DailyBrew. Track check-ins, late arrivals, early leaves, and absences with a visual calendar grid. Auto-fill days worked when running payroll.
- One-click sync from DailyBrew
- Visual calendar grid — present, late, early, absent
- Employee summary with hours worked and averages
- Staff linked via POS Username
- Unmatched usernames highlighted for easy linking
- Sync history with detailed stats
- Auto-fill payroll days from attendance records
Team Members
Invite staff by email or public ID. Import staff from XLSX/CSV or auto-create from POS imports.
- Free plan: owner + 1 team member
- Pro plan: unlimited team members
- Role-based access (owner, manager, member)
- Invite by email or shareable public ID
- Import staff from BasilBook template
- Staff auto-created from POS import operator names
- Stable POS username for import matching + editable display name
Telegram Notifications
Receive real-time alerts in your Telegram group — stock alerts, reconciliation reminders, weekly reports, and team invitations. Just add @BasilBook_bot to your group.
- Official @BasilBook_bot — no setup required
- Auto-detect chat ID with /chatid command or Detect button
- Configurable per-org: choose which notifications to receive
- Custom bot support for Pro users (bring your own bot)
- Test connection from Settings → Notifications
Copy from Another Location
Opening a second restaurant? Copy items, vendors, and menu items from an existing location. Perfect for franchises.
- Select source and target organizations
- Copy items, vendors, and sale items in bulk
- No need to re-enter master data manually
- Each organization is a separate billing unit
Finance
Accounting-grade reporting without the accounting degree.
Chart of Accounts
Every organization starts with 23 pre-seeded standard accounts. Revenue auto-classified: Food Revenue (4000), Beverage Revenue (4100), Delivery sub-accounts (4210, 4220).
- Assets, liabilities, equity, revenue, expenses
- System roles: cash, bank, inventory, COGS, payroll, etc.
- Food vs Beverage revenue auto-classified by category keywords
- Delivery revenue sub-accounts (Food 4210, Beverage 4220)
- Pro: add unlimited custom accounts
Double-Entry Accounting
Every operational event generates balanced Dr/Cr journal entries. Books are always correct by design — no manual posting needed.
- Purchase: Dr Inventory/Expense, Cr Cash/Bank/Payables
- Waste: Dr Waste Expense, Cr Inventory
- Cash/Card sale: Dr Cash/Bank, Cr Food Revenue + Cr Beverage Revenue
- Delivery sale: Dr Receivable + Dr Commission, Cr Delivery Revenue
- Entries posted automatically — no manual input needed
Automated Journal Entries
Purchases, sales, waste, and payroll auto-generate proper Dr/Cr entries. Every entry links to its source transaction for full auditability.
- All plans: auto-generated entries from purchases, sales, and waste
- Pro: create manual entries, edit, and reverse
- Draft / Posted / Reversed status workflow
- Reference link to source (invoice number, purchase ID)
- Full audit trail with timestamps
Financial Reports
Daily sales, weekly top sellers, monthly income statements. Dashboard with KPIs, charts, and period selector.
- Dashboard: revenue, cost, profit, margin KPIs
- Daily sales chart + payment method breakdown
- Top-selling items by period
- Monthly: income statement, balance sheet, cash flow
- Pro: export reports as Excel
Multi-Currency Support
Each organization can accept multiple currencies. Currency is snapshot on every transaction — changing your primary currency never rewrites history.
- Primary currency + accepted currencies per organization
- Currency snapshot on every sale and purchase
- Historical accuracy preserved across currency changes
- Org-aware formatCurrency() and formatDate() utilities
Dashboard & KPIs
Real-time financial overview with revenue, cost, profit, and margin KPIs. Daily sales chart, payment method breakdown, and top-selling items.
- Period selector: Today, This Week, This Month
- Revenue, Purchases, Gross Profit, Margin % KPIs
- Daily sales bar chart
- Payment method breakdown (Cash, Card, QR, Delivery)
- Top 5 selling items by period
Data & Integration
Get your data in and out — no lock-in, no friction.
10 Import Types
Import items, sale items, vendors, staff, categories, sales, purchases, waste, expenses, and stock counts. POPOK POS auto-detected. BasilBook XLSX/CSV with 60+ flexible column aliases.
- Sale items import is free for all plans
- Sales, purchase & expense imports require Pro
- POPOK POS: Product List, Sales Report, Product Report
- BasilBook native: flexible column headers, case-insensitive
- Downloadable templates in both .xlsx and .csv
- Auto-creates categories, staff, vendors, delivery platforms
Excel Export
Export items, vendors, purchases, sales, waste, journal entries, and more as .xlsx files. Full data workbook for backups and audits.
- Export any resource individually
- Full data workbook: every resource as a sheet
- Downloadable import templates included
- Perfect for backups, audits, or migration
Setup Wizard
Guided onboarding: restaurant info, locale, import products or quick-add menu items, delivery platforms. Shared modal components for categories, sale items, and inventory items. Replay anytime from the sidebar.
- 4-step onboarding: Restaurant → Locale → Import/Quick Add → Ready
- Import POPOK Product List or BasilBook XLSX/CSV during onboarding
- Quick-add categories, sale items, and delivery platforms inline
- Shared CategoryModal, SaleItemModal, and InventoryItemModal across pages
- Setup Wizard accessible from sidebar to replay anytime
Snapshot Architecture
Data is frozen at transaction time. Rename products, change currencies, update salaries — historical records never change. Audit-ready by design.
- Product names frozen on sales transactions
- Currency snapshot on every purchase and sale
- Salary snapshot on payroll lines
- Recipe versioning with effective dates
- Immutable stock ledger with source references
- Per-channel price isolation
REST API
Full REST API for all resources. JWT + refresh tokens. Apple and Google OAuth for mobile. Build custom integrations or connect your POS.
- JWT access tokens (15 min) + refresh tokens (30 days)
- Apple identity token + Google id_token verification
- All CRUD operations via REST endpoints
- Multipart file upload for imports
- JSON 404 catch-all for clean error handling
Mobile App (Coming Soon)
Native iOS and iPad app built with Expo React Native. Same API, same data, optimized for on-the-go restaurant management.
- iPhone + iPad optimized
- Same REST API backend
- Offline-capable with sync
- Apple Sign-in + Google Sign-in

POS sync, seamless
Connect your Hang POPOK POS to sync products and categories automatically on the Free plan. Upgrade to Pro to sync sales invoices directly via the GraphQL API — no more manual Excel exports. Sale items, staff, categories, and delivery platforms are created automatically.
Staff attendance, automated
DailyBrew tracks when your staff check in and out. BasilBook syncs that data automatically — building a visual calendar of attendance, flagging late arrivals and absences, and pre-filling days worked when you create payroll. No double entry. No spreadsheets.
Ready to take control?
Start free with full operational control. Upgrade to Pro when you need imports, accounting, and delivery management.