Power Without Complexity
Everything you need to integrate TallyhubGH into your workflow. From quick starts to advanced configurations.
Available in 6 languages with RTL support — switch anytime from the header.
Getting Started
Set up your account and complete onboarding
Point of Sale
Learn how to use the POS system
Dashboard Guide
Understand your dashboard and metrics
Getting Started
Video coming soon
Add a video URL to display it here
Getting Started Video
Watch this video to learn the basics of TallyhubGH
Welcome to TallyhubGH! This comprehensive documentation covers all features and functionalities of the platform. Whether you're setting up your first store or managing a multi-location business, this guide will help you make the most of TallyhubGH.
TallyhubGH is an inventory management and POS platform for retail and distribution: catalog and stock control, fast checkout, purchases, expenses, and reports — in the browser or as a desktop app with offline sync.
Use the sidebar on this page to jump to a module. Each module includes a video walkthrough slot (add your YouTube or MP4 URL in the page script) and page-level detail aligned with the live dashboard at devdashboard.tallyhubgh.com.
Authentication & Onboarding
Video coming soon
Add a video URL to display it here
Authentication & Onboarding Video
Learn how to register, verify your email, and complete the onboarding process
Getting started with TallyhubGH is straightforward. This section covers the complete registration and onboarding process to help you set up your account and business profile.
Registration Flow
1. Registration Page (`/auth/register`)
To create your TallyhubGH account, click "Sign Up" on the landing page or navigate directly to /auth/register.
Required Fields:
- Full Name
- Email Address
- Password (with strength indicator)
- Confirm Password
- Terms of Service acceptance checkbox
Features:
- Real-time password validation with strength indicator
- Email format validation
- Terms of Service link for review
- Automatic redirect to email verification after successful registration
Note: After registration, email verification is required before you can proceed to the onboarding flow. Check your email inbox (and spam folder) for the verification link.
2. Email Verification (`/auth/verify-email`)
After registration, you'll be automatically redirected to the email verification page. The verification process includes:
- Verification email sent to your registered email address
- Click the verification link in the email to verify your account
- Alternative option to resend verification email if needed
- Once verified, you'll proceed to the onboarding flow
3. Login Page (`/auth/login`)
Access the login page by clicking "Login" on the landing page or navigating to /auth/login.
Login Methods:
- Email/Password: Traditional login method using your registered email and password
- Magic Link: Passwordless login via email - enter your email and receive a login link
Additional Features:
- Remember me option to stay logged in
- Forgot password link for password recovery
- Two-factor authentication (if enabled in your account)
- Automatic redirect based on user role and onboarding status after login
Onboarding Flow
After email verification, you'll go through a 4-step onboarding process to set up your business. Each step can be completed at your own pace, and you can skip some steps to complete later.
Step 1: Business Profile (`/onboarding/business`)
This is the first step after email verification. Here you'll set up your basic business information.
Required Information:
- Company/Business Name
- Industry Type (dropdown selection)
- Business Type (Retail, Wholesale, Distribution, etc.)
- Country
- Phone Number
- Business Address
- Tax ID (optional)
Purpose: Sets up basic business information that will be used throughout the platform. After completing this step, you'll automatically proceed to Locations setup.
Step 2: Locations Setup (`/onboarding/locations`)
Configure where your inventory will be stored. You can add multiple locations later, but you need at least one location to get started.
Location Information:
- Location Name
- Location Type (Store, Warehouse, Distribution Center)
- Address
- Phone Number
- Default location selection (mark as default if this is your primary location)
Purpose: Configure where inventory will be stored and managed. The default location will be used for new products unless specified otherwise. After completing this step, you'll proceed to personalize your dashboard.
Step 3: App Settings (`/onboarding/settings`)
Personalize your dashboard before you start selling. Pick the theme that suits how your team works — you can always change it later.
- Choose from light, dark, and colorful themes
- Live preview shows how your dashboard will look
- Reset to the default theme at any time
- Change the theme later from Settings → Preferences
Purpose: Sets the look and feel of your dashboard. After completing this step, you'll proceed to connect a mobile device (optional).
Step 4: Connect Mobile App (`/onboarding/connect-app`)
Link your mobile device for barcode scanning and mobile POS functionality. This step is optional and can be completed later if you prefer.
Pairing Process:
- Download TallyhubGH mobile app from App Store (iOS) or Google Play Store (Android)
- Open the mobile app
- Scan the QR code displayed on the web screen, OR
- Enter the pairing code manually if QR scanning is not available
- QR code display for easy scanning
- Manual pairing code option as alternative
- Skip option - you can complete this step later from Settings
- Multiple devices can be paired to your account
Purpose: Link mobile device for barcode scanning and mobile POS. Once paired, you can use your mobile device as a barcode scanner and process sales on the go. After connecting (or skipping), onboarding is complete and you'll be taken to your workspace.
Organization Selection (`/auth/select-organization`)
If you belong to multiple organizations (e.g., you're invited to multiple businesses), you'll see an organization selection page after login.
- View list of all organizations you can access
- See your role in each organization
- Select the organization you want to enter
- Switch between organizations anytime from the user menu
✓ Onboarding Complete!
Once you've completed the onboarding flow, you'll have full access to TallyhubGH. You can always revisit any of these settings from the Settings page to make changes or complete skipped steps.
Dashboard
Video coming soon
Add a video URL to display it here
Dashboard Overview Video
Explore the dashboard features and learn how to navigate your control center
The Dashboard is your home screen after sign-in (/). It summarizes sales, performance, demand, and recent orders for the warehouse or store you have selected in the app chrome (slim sidebar / title bar). Most widgets respect the calendar period in the page header (single day or range; default is the last 30 days).
This page is not the old layout with four top stat cards, a nine-button quick-actions grid, credit-sales toggles, or separate “Top products / Top customers” panels. Those patterns live elsewhere (sidebar, POS, Reports). What you see today is built in dashboard/pages/index.vue.
Access & plan
- Route: / (layout: dashboard)
- Location: Pick a warehouse/store in the slim sidebar. Without a selection, stats and insights show empty or “select a location” messaging.
- Advanced analytics: The top row (AI Insight + Performance summary) is wrapped in advancedAnalytics. Tenants without that entitlement see a plan upsell instead of those cards.
- Refresh: Page header refresh reloads stats, chart, visitors, orders, and dashboard insights for the current period and warehouse.
Page header
PageHeader shows a time-based greeting, the shared calendar (day or range), and Refresh. Export is disabled on this page. Global search in the title bar is hidden while you are on the dashboard home screen.
Top row — AI Insight & Performance summary
On large screens this row is one column for AI and three for performance (xl:grid-cols-4). Both require advancedAnalytics.
AI Insight
- Today’s highlights — headline and tip lines from useDashboardInsights (API when online; SQLite on desktop when offline).
- Optional on-device AI — download/load model, then ask questions in plain language or run saved SQL queries.
- Expand opens the full AI drawer; the card can auto-flip between insight panels (pauses on hover).
- Data-tour target: data-tour="ai-summary"
Performance summary
- Nine metrics from GET /dashboard/stats (or local DB): total sales, products sold, expenses, net/gross profit, average order value, total orders, return rate, conversion rate.
- Shows 2–3 metrics at a time (viewport-dependent) with pagination dots; rotates on a long interval unless you hover or use the switch control.
- Mini bar chart per metric with period comparison growth; banner links to /reports/analytics.
- Data-tour target: data-tour="performance"
Middle row
Recent sales order (chart)
- MultiSeriesLineChart with three series: Sales, Orders, and Customers over the selected period.
- Header shows formatted total sales for the series; tooltips use chart labels from the API.
- Data from fetchChart (useDashboard / dashboard store), scoped by warehouse and dates.
- Data-tour target: data-tour="sales-chart"
Product demand & Store network (flip card)
- Front — Product demand: products sold and unique customers with growth; tabs By payment method, By Time, By Location with animated mini bars and tooltips.
- Back — Store network: globe visualization and units sold by location; manual flip control and auto-flip (pauses on hover).
- Data from fetchVisitors; data-tour: data-tour="visitor-stats"
Recent Transactions
Full-width DataTable (not the old “All Orders” paginated hub). Each row is a recent order line: customer/source as product column, date, recorded by (lg+), order id, price (xl+), quantity, total, status badge, and View.
- View or clicking the order id opens ViewOrderDrawer with full order detail (fetchOrderById, with offline SQLite on desktop).
- Data from fetchOrders for the current warehouse and period.
- Data-tour target: data-tour="recent-orders"
App chrome (not on the page body)
Quick navigation, POS, sync, notifications, lock screen, global AI assistant, and warehouse switching live in the dashboard layout (slim + main sidebar, title bar). The guided tour also highlights those controls after the page widgets.
- Store switcher — slim sidebar (data-tour="slim-sidebar")
- Main menu — POS, inventory, reports, settings (data-tour="main-sidebar")
- Tour, Sync, Support, AI assistant, Lock, Notifications — title bar / header actions
Data & offline
useDashboard loads stats, chart, visitors, orders, and order detail. On Tauri desktop, when offline it reads from SQLite (offline-queries); when online it uses the API and can fall back to local data on failure. Insights follow the same pattern via useDashboardInsights.
Guided tour
Start from the Tour button in the header. Steps cover AI summary, performance, sales chart, product demand / store network, recent transactions, sidebars, sync, support, AI assistant, lock screen, and notifications (useTour key dashboard).
Typical workflow
- Sign in and select your warehouse or store.
- Set the calendar to today, this week, or a custom range (default last 30 days).
- Review AI highlights and performance (if your plan includes advanced analytics).
- Scan the sales chart and product demand / store network card.
- Open a recent transaction to view or act on the order in the drawer.
- Use Refresh after bulk sync or end-of-day reconciliation.
- Drill into /reports/analytics or sidebar modules for deeper reports.
Pro tip
If numbers look empty, confirm a warehouse is selected and your period includes sales activity. Desktop users should sync when online so offline dashboard tiles match the server.
Point of Sale (POS)
Video coming soon
Add a video URL to display it here
Point of Sale Video
Watch how to use the POS system for fast and efficient transactions
The POS system is a comprehensive point-of-sale interface designed for fast, efficient transactions with full offline support. It's optimized for retail environments and provides all the tools you need to process sales quickly and accurately.
Access & Requirements
- Route: /pos
- Access: Requires sales.create permission
- Layout: POS layout (full-screen optimized for efficiency)
- Keyboard Shortcuts: F1-F8 for quick navigation
Main POS Page (`/pos`)
Header Navigation
The header navigation varies based on your location type:
Standard POS Navigation:
- New Sale (F1)
- Returns (F4)
- Customers (F5)
- Reports (F7)
- Session (F8)
Warehouse/Distribution Center Navigation:
- New Sale (F1)
- Dispatch (F2)
- Settlements (F3)
- Returns (F4)
- Customers (F5)
- History (F6)
- Reports (F7)
- Session (F8)
Additional Header Elements:
- Current user name
- Current session info (session number, start time)
- Settings icon (access POS settings)
- Notifications icon (view notifications)
- Logout option
- Online/Offline status indicator
Product Grid/List View
Located in the left/center area of the POS screen, this is where you browse and select products.
View Modes:
- Grid View: Product cards with images (default) - best for visual browsing
- List View: Compact list format - shows more products at once
Toggle: Click grid/list icon in toolbar to switch between views
Product Information Displayed:
- Product images
- Product name
- SKU/Barcode
- Price
- Stock quantity (if inventory tracking enabled)
- Category filtering
- Search functionality
Product Selection: Click product to add to cart, or scan barcode to add instantly
Category Sidebar
Located on the left side of the product area, the category sidebar helps you filter products quickly.
- List of all product categories
- "All Products" option to show everything
- Category icons for visual identification
- Product count per category
- Click category to filter products instantly
Cart Panel
Located on the right side of the POS screen, the cart panel shows all items in the current transaction.
Features:
- List of items in cart with product details
- Quantity adjustment (+/- buttons)
- Remove item option
- Price per item
- Subtotal, Tax, Total calculations (auto-updated)
- Customer selection dropdown
- Discount application (percentage or fixed amount)
- Payment method selection
- Complete sale button
Mobile: On mobile devices, cart can be toggled on/off to maximize screen space
Search Bar
Located at the top of the product area, the search bar provides quick product lookup.
- Search by product name
- Search by SKU
- Search by barcode (auto-scans if barcode scanner connected)
- Real-time filtering as you type
Barcode Scanner Integration
TallyhubGH supports multiple barcode scanning methods for fast product lookup.
Hardware Support:
- USB Barcode Scanners: Auto-detected when connected, works immediately
- Mobile App Scanner: Via QR pairing - use your mobile device as a scanner
- Camera-based Scanning: On mobile devices - use device camera to scan barcodes
Usage: Scan barcode to add product to cart instantly. The system automatically finds the product and adds it to the current transaction.
POS Features
1. New Sale (`/pos`)
Process new sales transactions quickly and efficiently.
Receipt: Auto-prints if printer configured, or displays on screen for digital receipt
2. Returns (`/pos/returns`)
Process product returns and refunds efficiently. Access by clicking "Returns" in navigation or pressing F4.
3. Dispatch (Warehouse Only) (`/pos/dispatch`)
Manage delivery/dispatch of credit sales. Available only for warehouse-type locations. Access by clicking "Dispatch" in navigation or pressing F2.
4. Settlements (Warehouse Only) (`/pos/settlements`)
Settle credit sales with delivery agents. Available only for warehouse-type locations. Access by clicking "Settlements" in navigation or pressing F3.
5. Dispatch History (Warehouse Only) (`/pos/dispatch-history`)
View historical dispatch records. Available only for warehouse-type locations. Access by clicking "History" in navigation or pressing F6.
6. Customers (`/pos/customers`)
Manage customers directly from POS. Access by clicking "Customers" in navigation or pressing F5.
7. Reports (`/pos/reports`)
View POS-specific reports. Access by clicking "Reports" in navigation or pressing F7.
8. Session Management (`/pos/session`)
Manage POS sessions for cash reconciliation and reporting. Access by clicking "Session" in navigation or pressing F8.
POS Settings
Access POS settings by clicking the settings icon in the POS header. Configure various aspects of your POS system:
Settings Tabs:
- Receipt: Receipt printing and formatting (template, printer settings)
- Transaction: Transaction flow settings (auto-print, require customer, etc.)
- Display: Interface customization (theme, font size, layout)
- Hardware: Printer, scanner, display configuration
- Security: PIN requirements, void permissions, refund permissions
- Tax: Tax calculation settings (default tax rate, tax display)
Offline Mode
One of TallyhubGH's most powerful features - the POS works completely offline when internet is unavailable.
Features:
- Automatic: POS automatically switches to offline mode when internet is unavailable
- All POS Functions Available: Process sales, returns, view products, everything works offline
- Transactions Queued: All transactions are saved locally and queued for sync
- Auto-sync: When connection is restored, transactions automatically sync to server
Indicator: Shows offline/online status in header so you always know your connection status
How to Set Up POS
- Start Session: Click "Session" → "Start New Session" to begin
- Configure Settings: Click settings icon → Configure receipt, hardware, etc.
- Connect Hardware:
- Connect receipt printer (USB/Network)
- Connect barcode scanner (USB)
- Pair mobile app for mobile scanning
- Test Transaction: Process a test sale to ensure everything works
- Configure Receipt: Customize receipt template in settings to match your brand
💡 Pro Tip
Use keyboard shortcuts (F1-F8) for faster navigation. The POS is designed for speed - with barcode scanning and keyboard shortcuts, you can process transactions in seconds.
Sales Management
Video coming soon
Add a video URL to display it here
Sales Management — video walkthrough
Customers, orders, invoices, returns, and how they connect to POS
Sales Management covers everything after the register: customer records, order history, invoicing, and returns. Most day-to-day selling happens in Point of Sale; this area is for review, follow-up, and formal documents.
Open the Sales section from the sidebar. Each page respects your role permissions (typically sales.view).
- Base route
/sales- Permission
sales.view
Pages in this module
Customers
/sales/customers · sales.view
Central customer directory with contact details, credit terms, and linked activity.
- Search and filter customers; open a detail drawer for full profile
- View related orders, invoices, and returns from the customer record
- Create and edit customers; quick-add from dashboard shortcuts
- Supports walk-in and account customers used at POS
- Tip: Use consistent phone/email fields — POS customer lookup relies on them
Sales Orders
/sales/orders · sales.view
List of completed and in-progress sales with status, totals, and warehouse context.
- Date-range filtering aligned with the global calendar on list pages
- Order detail: line items, payments, discounts, taxes, and staff attribution
- Status updates where your workflow allows (e.g. fulfilment states)
- Print or export-friendly views for receipts and summaries
Invoices
/sales/invoices · sales.view
Formal invoices separate from POS tickets — draft, send, track payment status.
- Create invoices from scratch or from existing orders
- Statuses: Draft, Sent, Paid, Overdue, Cancelled
- Line-level products, tax, and discounts
- Record payments against open invoices
Returns
/sales/returns · sales.view
Post-sale returns and refunds with stock restoration rules.
- Link returns to original sale or order when possible
- Reason codes and notes for audit
- Refund method tracking (cash, card, store credit)
- Inventory impact reflected in stock transactions
Payments (roadmap)
/sales/payments · sales.view
Reserved route for a dedicated payments ledger; the live UI is still a placeholder — use Invoices and POS payment flows today.
- Route exists in the app shell for future AR/collections work
- Record customer payments today via Sales → Invoices or POS checkout
Common workflows
Typical flow: POS sale → order record
- Ring up the sale at /pos and complete payment
- Order appears under Sales Orders with session and warehouse metadata
- Issue an invoice later from /sales/invoices if the customer needs a formal bill
Desktop offline
- On the desktop app, recently synced orders and customers remain readable offline; creating invoices may queue until connectivity returns.
Purchases Management
Video coming soon
Add a video URL to display it here
Purchases Management — video walkthrough
Suppliers, purchase orders, goods receipt, and supplier bills
Purchases connects suppliers to inbound stock. Create a purchase order (PO), receive goods against it, then record supplier bills for accounts payable.
Stock levels and inventory flow charts on the Stock page react when receipts are posted.
- Base route
/purchases- Permission
purchases.view
Pages in this module
Suppliers
/purchases/suppliers · suppliers.view
Vendor master data — contacts, terms, and performance context.
- Add and edit suppliers with address and tax details
- Supplier-scoped filters on PO and bill lists
- Link suppliers to default products where configured
Purchase Orders
/purchases/orders · purchases.view
Authoring and tracking POs from draft through received/cancelled.
- Multi-line POs with variant-level quantities and costs
- Status pipeline: Pending, Approved, Sent, Acknowledged, Partially received, Received, Cancelled
- Warehouse-scoped POs; appears in Stock page supply pulse when open
- Quick reorder shortcuts from low-stock items on /inventory/stock
Goods Receipt
/purchases/receipts · purchases.view
Record physical receipt of goods and increase on-hand stock.
- Receive against an existing PO or ad-hoc receipt
- Partial receipts update PO line received quantities
- Posts stock transactions and updates stock_items automatically
- Batch/expiry capture when products use lot tracking
Supplier Bills
/purchases/bills · purchases.bills
Accounts payable — supplier invoices matched to POs or standalone.
- Bill lifecycle and payment recording
- Reference PO or receipt for three-way match style workflows
- Outstanding balance visibility for finance roles
Desktop offline
- Desktop offline: PO list and stats can load from SQLite; creating or receiving may enqueue for sync when online.
Inventory Management
Video coming soon
Add a video URL to display it here
Inventory Management — video walkthrough
Stock levels, movements, adjustments, transfers, counts, and locations
Inventory is the source of truth for on-hand quantity per warehouse. Every sale, receipt, adjustment, transfer, and count writes to the stock transaction ledger.
Use Stock Levels for operational overview; use Transactions for audit; use Adjustments and Add Stock for corrections.
- Base route
/inventory- Permission
inventory.view
Pages in this module
Stock Levels
/inventory/stock · inventory.view
Warehouse-scoped roster of SKUs with health status, value, and analytics strip.
- Roster tabs: All, Healthy, Low stock, Out of stock with server-side pagination
- Supply pulse: in/out flow chart (7-day navigator), pending PO pipeline
- Panorama breakdown across warehouses (plan-gated advanced analytics)
- Product drawer: timeline of recent movements, quick adjust, reorder panel
- Header Add Stock opens multi-line adjustment drawer (catalog + existing stock)
- Desktop offline: list, flow, movements, and add-stock lines from SQLite
- Tip: Select the warehouse in the page header before adding stock — the drawer locks to that location
Transactions
/inventory/transactions · inventory.view
Immutable movement log — sales, receipts, adjustments, transfers, counts.
- Filter by type, warehouse, product, and date range
- Running balance per variant where applicable
- Reference links to source documents (sale ID, adjustment ID, etc.)
Adjustments
/inventory/adjustments · inventory.adjust
Formal adjustment documents with approval workflow (increase, decrease, set level).
- Multi-line adjustments with reason, reference, and unit cost
- Statuses: draft → approved → processed (updates stock)
- Desktop offline create via local SQLite + sync queue
Transfers
/inventory/transfers · inventory.transfer
Move stock between warehouses with in-transit tracking.
- Source and destination warehouses with line-level quantities
- Transfer out / transfer in transaction pair
- Status tracking until fully received
Stock Counts
/inventory/counts · inventory.count
Physical stocktake sessions with variance posting.
- Count sheets by warehouse and product selection
- Record counted qty vs system qty
- Post variances as adjustment transactions
Locations
/inventory/locations · tenants.settings
Warehouses and stores — also reachable from Settings → Locations.
- Warehouse vs retail location types
- Default warehouse for POS and stock views
- Product–warehouse assignments for catalog scoping
Common workflows
Add stock for a new variant
- Create the product in Catalog → Products (optional initial stock at create)
- On Stock Levels, click Add Stock in the header
- Pick the variant line (includes catalog-only SKUs with zero on hand)
- Submit an INCREASE adjustment — on-hand updates after processing
Desktop offline
- Tauri desktop app keeps stock_items and stock_transactions locally; quick adjust and Add Stock work offline and sync when connectivity returns.
Catalog Management
Video coming soon
Add a video URL to display it here
Catalog Management — video walkthrough
Products, categories, brands, variants, and price lists
Catalog is your merchandise master data. Products hold marketing fields; variants hold SKU, barcode, and price; stock lives per warehouse under Inventory.
POS and sales screens always resolve to a variant ID.
- Base route
/catalog- Permission
products.view
Pages in this module
Products
/catalog/products · products.view
Primary product workspace with grid/list, filters, and rich create/edit drawers.
- Multi-variant products with images, category, brand, and tax flags
- Track stock toggle; optional opening stock on create
- Warehouse toolbar filter scopes visible products
- Bulk actions where permissions allow
- Desktop offline: categories/brands from SQLite; create queues locally
Categories
/catalog/categories · products.view
Hierarchical category tree for navigation and reporting.
- Parent/child categories with drag reorder
- Active/inactive flag
- Used in POS category sidebar and product filters
Brands
/catalog/brands · products.view
Brand directory with logo and optional website.
- Link brands to products for filtering and labels
- Offline read on desktop when API unavailable
Variants
/catalog/variants · products.view
Flat or grouped variant list with per-warehouse stock health summary.
- SKU, barcode, price, cost, and attribute JSON
- Stock health badges: in stock / low / out
- Flat export-style list for pickers (e.g. Add Stock drawer online)
Price Lists
/catalog/pricing · products.update
Location- or segment-specific pricing rules.
- Override base variant price per context
- Bulk price update tools
- Requires products.update permission
Desktop offline
- Product and variant rows sync to SQLite on desktop; edits enqueue to the sync worker.
Expenses
Video coming soon
Add a video URL to display it here
Expenses — video walkthrough
Track operating expenses and review expense transactions
Expenses capture money out of the business outside of inventory purchases — rent, utilities, salaries, and other overheads. Totals feed the dashboard performance summary alongside sales.
- Base route
/expenses- Permission
expenses.view
Pages in this module
Expenses
/expenses · expenses.view
Main expense register with categories and approval-style list views.
- Create expenses from dashboard quick action (?openAdd=1)
- Category and type classification
- Date filtering with shared calendar component
- Attachment notes and reference numbers where enabled
Expense Transactions
/expenses/transactions · expenses.view
Ledger-style view of expense-related movements.
- Cross-cut view for accountants
- Export and search
Expense Types & Categories
/expenses/types · expenses.view
Supporting masters for classifying spend (/expenses/types, /expenses/categories).
- Configure reusable types
- Organize spending for P&L style reports
Reports & Analytics
Video coming soon
Add a video URL to display it here
Reports & Analytics — video walkthrough
Analytics hub, sales reports, and inventory reports
Reports turn operational data into decisions. Analytics (plan-gated) provides cross-module KPIs; Sales and Inventory reports drill into specific domains with export-friendly tables.
Many report and analytics surfaces require the subscription feature advancedAnalytics — locked modules show an upgrade gate instead of charts.
- Base route
/reports- Permission
reports.view
Pages in this module
Analytics
/reports/analytics · reports.view
Cross-business analytics dashboard with charts and comparisons.
- Period selectors: daily, weekly, monthly, yearly
- Comparison to previous period
- Tied to subscription advancedAnalytics feature gate on home dashboard
Sales Reports
/reports/sales · reports.sales
Revenue, tenders, and product/customer breakdowns.
- Summary and detail modes
- Date range and warehouse filters
- Export for spreadsheets
Inventory Reports
/reports/inventory · reports.inventory
Stock valuation, movement pages, and ageing views.
- Movement ledger report aligned with /inventory/transactions
- Low stock and valuation snapshots
- Desktop offline reads from SQLite where implemented
Settings
Video coming soon
Add a video URL to display it here
Settings — video walkthrough
Profile, team, organization, billing, security, and preferences
Settings configure how your organization runs on TallyhubGH. Access via the user menu or /settings routes. Visibility depends on owner role and fine-grained permissions.
- Base route
/settings
Pages in this module
Profile
/settings/profile
Your user name, email, avatar, and password changes.
- Update contact info
- Change password
- Locale preferences
Locations
/settings/locations · tenants.settings
Organization warehouses — same data as Inventory → Locations.
- Create warehouses and retail stores
- Set codes and addresses
- Control which products appear per warehouse
Tax & Discount
/settings/tax-discount · taxes.view
Tax rates and discount presets applied at POS and invoicing.
- Tax groups
- Default discount rules
- Receipt display options
Team
/settings/team · users.invite
Invite users and assign roles with permission labels.
- Role templates (Owner, Manager, Cashier, etc.)
- Per-membership permission overrides
- Pending invitations
Organization
/settings/organization · settings.billing
Business legal profile, currency, and regional defaults.
- Business name and branding
- Currency symbol and decimal rules
- Fiscal year settings where applicable
Billing
/settings/billing · settings.billing
Subscription plan, payment method, and invoices from TallyhubGH.
- Plan upgrade/downgrade
- Paystack checkout flow
- Entitlement sync to desktop SQLite for offline enforcement
Security
/settings/security
Session lock PIN/password for shared devices.
- Optional auto-lock timer
- Desktop offline PIN verification against local bcrypt hash
- Reconcile with server when back online
Preferences
/settings/preferences
Theme, keyboard shortcuts reference, and UI defaults.
- 30+ DaisyUI themes (light/dark)
- Keyboard shortcut cheat sheet
- Default landing module preferences
POS Settings
/settings/pos · tenants.settings
Receipt header/footer, printer targets, and POS behavior flags.
- Receipt customization
- Hardware printer integration on desktop
Desktop App & Offline Sync
Video coming soon
Add a video URL to display it here
Desktop App & Offline Sync — video walkthrough
Tauri desktop install, SQLite cache, and sync queue behavior
TallyhubGH ships as a web dashboard and as a Tauri desktop app (Windows/macOS). The desktop build keeps a local SQLite copy of your tenant data so you can sell and adjust stock when the internet drops.
Changes queue in sync_queue and push automatically when you are back online — use Tools → Sync Now or Ctrl/Cmd+R.
Pages in this module
What works offline
/
Read/write capabilities without network on desktop.
- POS: complete sales, payments, cash movements, session close
- Catalog: browse/create products; categories & brands from SQLite
- Inventory: stock list, flow chart, movements, adjustments, Add Stock lines
- Billing entitlement checked against local row + auth fallback
- Session lock PIN unlock offline
Sync infrastructure
/
How local changes reach the server.
- Entities: sale, payment, stock_transaction, product, inventory_adjustment, session_lock, etc.
- sync_status column: pending → synced / failed
- Sidebar Online/Offline badge reflects navigator.onLine
- Failed rows retain sync_error for support
Install & updates
/
Desktop distribution.
- Download from tallyhubgh.com — Tauri bundles migrations on first launch
- Help menu links to this documentation
- Auto-update channel when enabled in release builds
Desktop app notes
- Run migrations once per install; do not edit SQLite manually unless debugging — use TablePlus only in dev environments.
Notifications
Video coming soon
Add a video URL to display it here
Notifications — video walkthrough
In-app alerts, filters, and the header notification bell
Notifications keep your team informed about stock, sales, billing, security, and system events. The bell in the dashboard header shows a preview; the full inbox lives at /notifications.
Requires notifications.view (enforced by dashboard route guards).
- Base route
/notifications- Permission
notifications.view
Pages in this module
Notifications inbox
/notifications · notifications.view
Full-page feed with stats, filters, sort, detail drawer, and deep links.
- Stats row: Unread, Critical, Today, Total
- Filters: All, Unread, and by type (Inventory, Sales, Billing, Security, System)
- Sort: newest, oldest, or by severity
- Mark one read, mark all read, dismiss, open linked route (?id= for drawer)
- Categories include low stock, out of stock, expiry, orders, payments due/overdue, billing, security
- Pending return approvals can be actioned from the drawer when payload allows
- Tip: Deep link: /notifications?id= opens the detail drawer on load
Header preview
/
Bell dropdown in the dashboard layout lists recent items without leaving your current page.
- Unread badge count
- Mark all read from dropdown
- View all → /notifications
Marketplace & Store
Video coming soon
Add a video URL to display it here
Marketplace & Store — video walkthrough
Public marketplace browse and your organization storefront listings
The marketplace lets buyers discover products published by organizations on the platform. Store Management is where your tenant curates which catalog items appear publicly and how the storefront looks.
These routes use the marketplace layout (distinct from the main dashboard chrome). Sidebar entries may be disabled in some builds — routes remain available when you have products.view.
- Base route
/marketplace- Permission
products.view
Pages in this module
Marketplace browse
/marketplace · products.view
Public catalog discovery with search, filters, and featured products.
- Hero search bar
- Featured products strip when no filters applied
- Sidebar filters: category, brand, organization, price range, sort
- Product cards link to /marketplace/product/
Store management
/store/management · products.view
Manage your organization's marketplace listings and store profile stats.
- Listing grid with add/edit listing drawer
- Store profile card (name, accent color, slug)
- Links to marketplace browse and store settings
- Stats cards for published vs draft listings
Store settings
/store/settings · products.view
Branding and identity for your public storefront.
- Store name and URL slug (/marketplace/store/)
- Accent color and description
- Logo / banner fields where configured
Public store page
/store/{slug} · products.view
Customer-facing storefront for your slug (tenant name derived slug when configured).
- Organization-scoped product showcase
- Shares catalog data with internal products
AI, Support & Customer Display
Video coming soon
Add a video URL to display it here
AI, Support & Customer Display — video walkthrough
AI assistant, support chat, second screen, and customer payment QR
Beyond module pages, the dashboard shell exposes tools from the header and title bar: AI insights, human support chat, a customer-facing display, and hosted payment QR for MoMo/card flows.
Pages in this module
AI Assistant
/
Natural-language queries and saved SQL snippets (plan / role gated).
- Opened from header sparkles control or Tools menu (Cmd/Ctrl+Shift+A on desktop)
- Single AIChatDrawer hosted in layouts/dashboard.vue
- Home dashboard AI Insight card uses the same assistant stack
- Storekeepers may hide AI on POS routes only
Custom Support
/
In-app ChatWidget for TallyhubGH support conversations.
- Title bar and Help → Custom Support
- Desktop tray Tools menu entry
Customer display
/customer-display
Second-screen experience for shoppers: idle branding, live cart, checkout QR.
- Open from POS toolbar when enabled
- States: idle, active cart mirror, remote checkout QR split
- Uses customer-display layout (fullscreen)
- Idle content configurable from organization settings
Public pay link
/pay
Hosted payment page customers open from QR (no dashboard login).
- Public route — validates payment session from POS
- Shows error state when link expired
- Completes MoMo / card flows initiated at register
Platform operations (not in tenant app)
Video coming soon
Add a video URL to display it here
Platform operations (not in tenant app) — video walkthrough
What platform operators use vs what your store team sees
The tenant dashboard documented here does not include a /admin UI for everyday store users. Platform-wide tenant/user/subscription administration is handled by separate operator tooling and server APIs (under server/api/admin on the backend).
If you are a store owner or cashier, use Settings → Billing and Settings → Team instead — not a global admin console.
Pages in this module
Tenant admin = Settings
/settings
Organization owners manage their own subscription, team, and locations inside the app.
- Billing → /settings/billing
- Team invites → /settings/team
- Organization profile → /settings/organization
Backend admin APIs
/
Engineering-only endpoints for migrations and platform maintenance.
- Not exposed as a sidebar module in the retail dashboard
- Used by TallyhubGH operators during support incidents
Web & mobile experience
Video coming soon
Add a video URL to display it here
Web & mobile experience — video walkthrough
Responsive web, desktop app, and PWA — not a separate native store app
TallyhubGH is built as a responsive Nuxt web app. There is no separate native iOS/Android module in this dashboard repository — mobile staff typically use the browser or install the site as a PWA, while stores that need offline use the Tauri desktop build.
Pages in this module
Mobile browser / PWA
/
Full dashboard and POS in a mobile viewport.
- Responsive layouts; POS optimized for touch
- Add to Home Screen for app-like shortcut
- Requires connectivity unless using desktop app
Desktop app (recommended offline)
/
See Desktop & Offline module for SQLite sync.
- Windows/macOS Tauri shell
- Same routes as web with native menu and tray
Barcode & hardware
/pos
Camera scanning and printers depend on device/browser.
- POS barcode input via scanner wedge or camera where supported
- Receipt printing via Settings → POS on desktop
Desktop app notes
- Do not expect Settings → Mobile App device pairing in the current dashboard — that flow is not implemented in settings pages.
Billing & Subscriptions
Video coming soon
Add a video URL to display it here
Billing & Subscriptions — video walkthrough
Plans, usage meters, Paystack checkout, and invoices in Settings → Billing
Subscription state controls plan limits (locations, users, products) and feature gates such as advancedAnalytics. Tenants manage billing at Settings → Billing; marketing pricing tables on tallyhubgh.com mirror the same plan tiers.
Desktop stores entitlement in SQLite for offline enforcement; tampered local rows block the app until reconciled online.
- Base route
/settings/billing- Permission
settings.billing
Pages in this module
Billing dashboard
/settings/billing · settings.billing
Operational billing hub inside the tenant app (not the marketing pricing page).
- Stat cards: plan status, renewal, spend, payment health
- Current plan card with free / active / past_due states
- Usage meters vs plan limits (users, locations, products, storage, transactions)
- Change plan drawer — upgrade, downgrade, or choose subscription
- Scheduled plan change banner when downgrade is pending
- Payment methods and billing history sections
- Paystack checkout + callback routes (/billing/callback, /settings/billing-callback)
Subscription enforcement
/
How the app decides what you can do when offline or out of quota.
- SubscriptionBlockedScreen when entitlement invalid or tampered
- Auto-retry when browser comes back online
- Feature gates on dashboard AI, stock analytics, sales reports, etc.
Common workflows
Upgrade from free tier
- Go to Settings → Billing
- Click Choose Subscription / Change Plan
- Complete Paystack checkout
- Return via billing callback — auth/me refreshes plan on account
Desktop offline
- billing_entitlement and billing_settings_cache rows on desktop; editing them locally triggers block until server auth matches.
Standard plan tiers
Marketing limits below mirror tallyhubgh_pricing.json. Live checkout and usage meters are in Settings → Billing.
FREE
Forever free for small businesses
Limits & Resources
Included Features
Perfect For
Payment Options
- Free - No payment required
Starter
Perfect for small retail shops
Save GHS 210 (10%)
Limits & Resources
Included Features
Perfect For
Payment Options
- Mobile Money (MTN, Voda, AirtelTigo)
- Card (Visa/Mastercard)
- Bank transfer
Growth
MOST POPULARIdeal for growing businesses
Save GHS 505 (10%)
Limits & Resources
Included Features
Perfect For
Payment Options
- Mobile Money (MTN, Voda, AirtelTigo)
- Card (Visa/Mastercard)
- Bank transfer
Pro
For established businesses
Save GHS 918 (10%)
Limits & Resources
Included Features
Perfect For
Payment Options
- Mobile Money (MTN, Voda, AirtelTigo)
- Card (Visa/Mastercard)
- Bank transfer
- Bank standing order
- Invoice billing (for companies)
Lifetime
LIMITED TO 100 USERSOne-time payment, own forever
Payment Options
- Pay in full: GHS 50,000
- 3-month installment: GHS 7,000 × 3
- 6-month installment: GHS 3,600 × 6
- Mobile Money or bank transfer
Add-ons
Enhance your plan with additional features and resources.
Extra POS Device
Per additional device
Additional Warehouse
Per location
SMS Bundle (1,000)
Extra SMS credits
Extra Storage (5GB)
Additional cloud storage
WhatsApp Integration
WhatsApp Business API
Thermal Printer Setup
One-time hardware setup
Special Plans
Exclusive offers and discounts for specific user groups.
Try Before You Buy
GHS 49/month for first 3 months, then GHS 99
Requirements:
- First 3 months only
Student/NGO Plan
50% OFF on all plans
Requirements:
- Must verify with student ID or NGO certificate
- Annual payment required
Early Bird Special
First 500 users get 3 months FREE + lifetime 15% discount
Requirements:
- First 500 users only
Market Vendor Discount
Free plan forever with 200 SKUs + 20% discount on upgrades
Requirements:
- Show proof of market vendor status
Themes
Video coming soon
Add a video URL to display it here
Themes Video
Customize your TallyhubGH experience with different themes
TallyhubGH offers a comprehensive theme system with 32 beautiful themes to customize your experience. Choose from 19 light themes and 13 dark themes to match your preference and style.
Overview
Themes allow you to personalize the appearance of TallyhubGH across all pages. Each theme includes carefully crafted color palettes that affect the entire interface, including buttons, backgrounds, text colors, and accent colors.
Theme Statistics:
- Total Themes: 32 themes
- Light Themes: 19 themes
- Dark Themes: 13 themes
- Default Theme: Deep Space (dark theme)
- Theme Persistence: Saved in cookies for 1 year
How to Change Themes on Landing Page
Changing themes on the landing page is simple and can be done in two ways:
Method 1: Quick Theme Toggle
The quickest way to switch between light and dark themes:
- Look for the sun/moon icon button in the top navigation bar (header)
- Click the button to toggle between light and dark themes
- The theme changes instantly across the entire application
- Your preference is automatically saved
Note: The quick toggle switches between the default light theme (Winter) and default dark theme (Deep Space). For more theme options, use Method 2.
Method 2: Theme Switcher Dropdown
Access the full theme selection menu:
- Look for the "Theme" button with a color swatch icon in the top navigation bar
- Click the button to open the theme dropdown menu
- Browse through available themes organized by type:
- Light Themes section (19 options)
- Dark Themes section (13 options)
- Click on any theme to apply it immediately
- The selected theme is highlighted with a checkmark
Available Themes
Light Themes (19 themes)
Perfect for daytime use and bright environments:
Dark Themes (13 themes)
Ideal for low-light environments and reducing eye strain:
Theme Features
Automatic Persistence
Your theme preference is automatically saved and persists across sessions:
- Theme is saved in browser cookies
- Cookie expires after 1 year
- Theme is applied immediately on page load
- No need to re-select your theme each visit
Instant Application
Themes are applied instantly without page reload:
- No page refresh required
- Smooth transitions between themes
- Applied across all pages immediately
- Works on both landing page and authenticated pages
Theme Preview
In the theme switcher dropdown, each theme shows a preview:
- Color swatch showing primary colors
- Visual preview of theme colors
- Active theme marked with checkmark
- Theme name and description displayed
Where Themes Are Available
Themes can be changed from multiple locations:
- Landing Page: Header navigation bar (top right)
- Dashboard: Header navigation bar
- All Pages: Theme controls available in header
- Settings Page: Can also be changed from user settings (if available)
Theme Components
Quick Theme Toggle
A simple button that toggles between light and dark themes:
- Shows sun icon when dark theme is active
- Shows moon icon when light theme is active
- Quick toggle between Winter (light) and Deep Space (dark)
- Located next to the full theme switcher
Theme Switcher
Full theme selection dropdown menu:
- Dropdown format for compact display
- Organized by light and dark themes
- Shows all 32 available themes
- Visual preview for each theme
- Active theme clearly marked
Technical Details
How Themes Work
Themes are implemented using CSS custom properties and data attributes:
- Theme ID is stored as data-theme attribute on HTML element
- CSS variables are dynamically updated based on theme
- Theme plugin applies theme on page load
- Theme composable manages theme state and persistence
Cookie Details:
- Cookie Name: tallyhub-theme
- Max Age: 1 year (365 days)
- SameSite: Lax
- Secure: Enabled in production
Default Theme
The default theme is Night (a dark theme). This is applied when:
- No theme cookie exists (first-time visitor)
- Theme cookie is invalid or expired
- Theme preference hasn't been set yet
Best Practices
- Choose based on environment: Light themes for bright offices, dark themes for low-light conditions
- Consider eye strain: Dark themes reduce eye strain in low-light environments
- Match your brand: Select themes that align with your business aesthetic
- Test different themes: Try multiple themes to find your preference
- Theme consistency: Your theme preference applies across all pages
Pro Tip
Use the quick theme toggle for fast switching between light and dark modes during different times of day. Use the full theme switcher when you want to explore all available color schemes and find your perfect match.
Partner Program
Video coming soon
Add a video URL to display it here
Partner Program — video walkthrough
Referral codes, share links, tracking referrals, and commission payouts
The TallyhubGH Partner Program lets you earn recurring commission by referring businesses to TallyhubGH. It is a standalone portal at /partners, separate from the merchant dashboard — anyone can join for free, with no TallyhubGH subscription required.
Each partner gets a unique referral code and share link. When a business signs up with your code and subscribes to a paid plan, you earn commission for as long as they stay subscribed.
- Base route
/partners
Pages in this module
Becoming a partner
/partners
Create a free partner account and get your referral code instantly.
- Free to join — no subscription or credit card required
- Register with your name, email, and password (phone optional) at /partners
- A unique 6-character referral code is generated on signup
- Sign in any time at /partners; your dashboard opens automatically
- Tip: Businesses must enter your code when they register to be attributed to you — share it before they sign up
How it works
/partners
Three steps from sharing your code to recurring income.
- Share your code or share link (/auth/register?ref=CODE) with any business
- The business enters your code when registering on TallyhubGH
- They appear in your referrals list the moment they sign up
- When they subscribe to a paid plan, you earn commission
Your partner dashboard
/partners/dashboard
Track referrals, conversion, and estimated earnings live.
- Referral code hero with copy-code and copy-link buttons
- Stat tiles: total referrals, subscribed, and on-trial counts
- Referrals table: business, status, plan, and signup date
- Statuses: Signed up, Free plan, On trial, Subscribed
- Estimated earnings card with subscribed count and conversion rate
- Tip: Share your link on WhatsApp and social media — it works around the clock
Commission & payouts
/partners/dashboard
How earnings are calculated and paid out.
- Commission is a percentage of subscription value (currently 20%)
- Recurring — you keep earning while the referred business stays subscribed
- Dashboard earnings are indicative and may differ from final approved payouts
- Add your payout details (e.g. MTN MoMo number and name) on the dashboard
- Payouts are made in local currency (GHS)
Common workflows
From referral to payout
- Join free at /partners and copy your referral code
- Share your code or link with a business
- They register with your code and start using TallyhubGH
- They upgrade to a paid plan — the referral is marked Subscribed
- Save your payout details to receive commission in GHS