Introduction
The SushiGo cash management system provides end-of-day financial tracking for multi-location restaurant operations. It captures daily income totals by tender type (cash, card, transfer) across multiple registers, terminals, and bank accounts.This system records daily totals from external POS systems, not individual ticket-level transactions.
Core Concepts
Cash Sessions
A cash session represents a single operating day for a specific cash register. Each session:- Tracks opening and closing balances
- Contains all income adjustments and expenses for that day
- Must be unique per register and date
- Has a lifecycle:
DRAFT→POSTED
Cash Registers
Physical or logical registers that process transactions. Types include:- ON_PREMISE: Store register for dine-in service
- DELIVERY: Register for delivery operations
- EVENT: Temporary register for special events
Tender Types
Transactions are categorized by payment method:- CASH: Physical currency
- CARD: Card payments via terminals
- TRANSFER: Bank transfers
Key Features
Multi-Register Support
Manage multiple registers per branch with distinct workflows for on-premise, delivery, and events
Tender Breakdown
Track income and expenses by tender type with automatic terminal and account linking
Session Lifecycle
Draft → Posted workflow with balance calculations and variance detection
Audit Trail
Complete traceability with user tracking, timestamps, and source system references
System Architecture
Data Model Overview
| Entity | Purpose | Key Fields |
|---|---|---|
CashRegister | Register catalog per branch | code, name, type, branch_id |
CashTerminal | Card terminal tracking | name, provider, last_four |
BankAccount | Transfer destination accounts | alias, bank_name, clabe_masked |
CashSession | Daily operating session | operating_date, status, opening_balance, closing_balance |
CashAdjustment | Income/outflow header | type, direction, source_system |
CashAdjustmentLine | Tender-level breakdown | tender_type, amount, terminal_id, bank_account_id |
CashExpense | Operating expenses | tender_type, amount, category, vendor |
Workflow Overview
Status Flow
Cash sessions and adjustments follow a simple two-state lifecycle:Permissions
Suggested permissions for access control:cash-registers.manage- Create and configure registerscash-terminals.manage- Manage card terminalscash-adjustments.create- Record daily incomecash-adjustments.post- Finalize adjustmentscash-expenses.create- Log operational expensescash-expenses.post- Approve and lock expenses
Use the existing
OperatingUnitUser scoping to restrict access to registers tied to specific branches or units.Next Steps
Cash Sessions
Learn about session lifecycle and balance calculations
Registers & Terminals
Set up registers, terminals, and bank accounts
Cash Adjustments
Record income and corrections with approval workflow
Cash Expenses
Track operational expenses by category and vendor