| Term | Definition |
| Tenant | A customer organization (restaurant, retail, etc.). Has its own DB, orgId, slug. |
| orgId | Organization ID. Same as tenantId in most contexts. Used for tenant-scoped tables. |
| tenantId | Tenant ID from master Tenants table. Used interchangeably with orgId. |
| tenantSlug | URL-friendly tenant identifier (e.g. acme-cafe). Used in X-Tenant-Slug header. |
| Master DB | Central database: Tenants, Organizations, Users, DatabaseConfigs. |
| Tenant DB | Per-tenant database: Products, pos_carts, Invoices, Staff, etc. |
| tenant_employees | Master table: maps email → tenant. Used for employee routing at login. |
| multiDatabaseManager | Resolves tenant DB connections (MAIN, ANALYTICS, HR). |
| Provisioning | Creating new tenant: org, user, DBs from templates. |
DISABLE_PUBLIC_SIGNUP | Env flag: when true, POST /api/public/signup is rejected; GET /api/public/signup-status reports closed; no new tenant DBs from self-service. See 01 — Infrastructure. |
| Term | Definition |
| pos_carts | POS cart table. Holds items (JSON), payments (JSON), status, totals. |
| Cart status | open, awaiting_payment, paid, voided, refunded |
| Invoice status | draft, paid |
| priceCents | All monetary amounts stored in cents (integer). |
| Finalize | Complete a POS sale: mark paid, create invoice, KDS ticket, inventory deduction. |
| Tender | Payment method: cash, card, gift card, loyalty, crypto. |
| posModules | JSON array on Devices.metadata (alias pos_modules) listing enabled Modern POS vertical modules. Parsed and whitelisted by backend/utils/posModules.js; only fuel is defined today. |
| Fuel / forecourt module | Optional Modern POS panel when posModules contains fuel. Pump/grade layout and FMS notes live in fuelSite on the same device row. Admin → Device registry. |
| fuelSite | JSON object on Devices.metadata: pumps, grades, authorizationMode, integration, posPanel. Sanitized by backend/utils/fuelSite.js; exposed to POS as device.fuelSite from GET /api/pos/settings. |
| FMS | Fuel Management System (third-party or bridge-driven forecourt control). fuelSite.authorizationMode and integration.type document how POS relates to the live pump stack. |
| Term | Definition |
| KDS | Kitchen Display System. Browser UI polls GET /api/kds/orders; tickets live in tenant kitchen_tickets. |
| Station | Slug on a ticket/line (e.g. grill, bar, main) for split boards; optional query ?station= on /pos/kitchen. |
| Category routing | Admin maps Products.category → station via kds_category_routing when useRoutingCategories is enabled. |
| Fire ticket | Colloquial: order appears on KDS. Primary path: POS inserts kitchen_tickets in cloud DB. Optional: Bridge / local SQLite in edge deployments. |
| Preparable | Cart line treated as kitchen-prep (category heuristics, preparable flag, consumable/recipe, etc.). |
| Recipe | Ingredients for a consumable item; prepStations can hint station order. |
| kitchen_tickets | Tenant table: lanes (FIRE/PREP/FUTURE/DONE), station, JSON items, meta linked to cart via cartId. |
| Kitchen domains | /api/kitchen-domains — inventory catalog domains, not KDS routing. |
| Term | Definition |
| register_shifts | Tenant table: open/closed cash-register sessions per org_id, device_key, user_id, optional staff_id, opening float, status. APIs under /api/pos/register/*. |
| POS PIN session | Staff identity after POST /api/pos/register/authenticate, persisted in browser localStorage (see posLocalPersistence.js); used with staff_id on status/open. |
| canTransactOnRegister | Modern POS flag: register open for session user or open shift staff matches PIN staff. |
| loadStaffInfoForOpenShift | Backend helper resolving display staff for a shift row (staff id column first, then platform link on Staff). |
| Term | Definition |
| Payments engine | backend/payments/ — engine, providers, ledger, v1 API. |
| Ledger | Double-entry ledger for payment transactions. |
| Idempotency | Prevents duplicate processing of the same logical request. POS routes use Idempotency-Key (and optional PPO headers) via middleware/idempotency.js. |
| PPO headers | X-PPO-Client-Mutation-Id, X-PPO-Device-Id, X-PPO-Register-Id, X-PPO-Sequence — device/register context for offline replay and auditing; paired with Idempotency-Key. |
| pawspos_offline | Browser IndexedDB database name for the POS offline queue (object store queue). Legacy ppos_offline_v1 is migrated into it on upgrade. |
| posApi | frontend/src/pos/api.js — wraps mutating POS HTTP calls with tryOnlineThenQueue. |
| walletnotify | Crypto wallet webhook: new tx received. |
| DOGE, LTC, BTC | Dogecoin, Litecoin, Bitcoin. Supported cryptocurrencies. |
| Term | Definition |
| Bridge | On-premises agent. Connects outbound to cloud. C# or Node.js. |
| WebSocket path | /api/bridges/connect — Bridge connects here. |
| deviceKey | Auth for kiosk/mobile devices. |
| Heartbeat | POST /api/devices/heartbeat — Device reports status. |
| Device registry | Admin UI at /admin/devices/manager (DeviceManager.jsx) for tenant Devices rows: type, location, metadata, POS extras (e.g. fuel module). |
| pushEnvelope | bridgeConnectionManager: sends one JSON object on the tenant bridge WebSocket (fire-and-forget). Used for signageUpdate. |
| signageUpdate | WebSocket message type from cloud to bridge: catalogChanged or manualRefresh. See 26. |