One system, every module.
Nothing here is a bolted-on add-on. Every module shares the same customers, items, warehouses and ledger -- so a sale, a receipt, or an approval updates everything downstream automatically.
Point of Sale
A till built for a real counter, not a demo screen.
- Barcode scanning, manual entry, and a quick-pick bar for your top-selling items
- Split and multiple payment methods, card terminal integration (Newland & PAX), cash drawer control
- Register open/close with cash reconciliation, and a full X/Z reading report
- Every void, cancel, and discount requires supervisor authorization - with a full audit trail
- Receipt, SMS and Telegram notifications on sales, voids, and register closes
How it flows
01
Item scanned or picked
Barcode scan, manual entry, or a quick-pick tile builds the cart - prices and tax pull from the same item master every other module uses.
02
Payment taken, split if needed
Cash, card (via the connected terminal), or a split between methods - the drawer only opens through the app, never on its own.
03
Void, cancel or discount? Authorization required
A supervisor PIN, QR card, or authenticator code is required every time, with the reason logged permanently against that line.
04
Receipt and alerts go out
The receipt prints, and SMS/Telegram notifications fire on the sale, the void, or the register close - whichever just happened.
05
Register closes against real server data
Cash reconciliation at close-out is computed from the server's own sales and payment records, never the terminal's own running total.
Purchasing & Inventory
From a low-stock alert to a posted goods receipt.
- Purchase requests, purchase orders, goods receipts and goods returns, all linked end to end
- Landed cost allocation across freight, duty and other charges
- Multi-warehouse and multi-branch stock, with inter-branch transfer requests
- Batch and serial number tracking where it matters
- Low-stock reorder suggestions, computed from real sales velocity, not a fixed reorder point
How it flows
01
Reorder suggested from real velocity
Low stock is flagged from actual sales speed for that item and branch, not a fixed reorder point someone set once and forgot.
02
Purchase order issued
A request can route through approval first if configured, then becomes a PO sent to the supplier.
03
Goods received into the warehouse
Stock updates the instant the receipt is posted - landed costs (freight, duty) get allocated across the received lines.
04
Invoice matched three ways
The supplier invoice is checked against the PO and the goods receipt - quantity or price mismatches are flagged before payment.
05
Payment posted to the ledger
Once matched, payment posts straight to the GL - no separate reconciliation step needed later.
Sales & AR
Quotation to cash, with approvals that actually mean something.
- Sales quotations, orders, invoices and credit memos in one document chain
- Configurable approval workflows, routed by document type and amount
- Customer statements, aging reports, and overdue-invoice follow-up
- Price lists, discounts and convenience fees handled consistently across every sales document
How it flows
01
Quotation sent
Built from the same price lists and items as every other document - no separate quoting spreadsheet to keep in sync.
02
Converted to an order or invoice
Amount above a configured threshold? It routes through the approval chain before it can post.
03
Stock reserved and delivered
Inventory reflects the commitment immediately, across whichever warehouse or branch is fulfilling it.
04
Payment collected
Full or partial payment against the invoice, recorded the moment it comes in.
05
AR updates in real time
Aging reports and customer statements always reflect what's actually outstanding right now, not last night's batch job.
Finance & GL
Real double-entry accounting underneath everything.
- A full general ledger - every module posts real journal entries, not a summary view
- Bank reconciliation with CSV statement import and outstanding-line matching
- Budgets vs. actuals, with automatic overrun alerts
- Standard financial statements: trial balance, P&L, balance sheet, and control account reconciliation
How it flows
01
A transaction happens anywhere
A POS sale, a purchase invoice, an expense claim - wherever it originates in the system.
02
A real journal entry posts automatically
Full double-entry, not a summary line - allocated to the right accounts and cost centers as it happens.
03
Bank statements import and match
CSV import against outstanding lines, with INFI proposing likely matches for a human to confirm.
04
Budgets are checked as spend happens
An overrun against budget raises an alert at the moment it happens, not at month-end.
05
Statements are always current
Trial balance, P&L, balance sheet - generated from live data, with no month-end close required to trust them.
Returns & Credit Notes
A return that stays linked to what it's returning.
- Sales returns and purchase returns both reference the original document, not a fresh standalone entry
- Configurable approval routing for returns above a threshold, same as any other document
- Stock is restored to the exact warehouse it left, the moment the return posts
- Credit notes and refunds post to the ledger automatically - no manual journal entry required
How it flows
01
Return initiated against the original sale
Every return references the specific invoice or receipt it's returning - never a disconnected new entry.
02
Reason logged
Damaged, wrong item, customer changed their mind - the reason is captured and stays on the record.
03
Approval routes if configured
Returns above a threshold, or against certain customers, can require the same authorization as any other document.
04
Stock restored
Inventory updates back into the exact warehouse the item left, the instant the return posts.
05
Credit note or refund issued
The GL adjustment posts automatically - accounts receivable and revenue both reflect the return with no manual journal entry.