Point of sale · Inventory · Built for Ghana

The till that never stops selling. Even when the network does.

Opti Shop runs your counter, your stock and your customer credit across every branch. Every sale is saved on the device first, so light-off, data-off and bad-signal days never cost you a customer.

Offline
100% of sales
Search
< 100 ms
Licence
Pay once
Owner · All branches · Live —GHS
Sales today+12.4%
GH₵14,382
TransactionsToday
312
Sales feed3 branches
Takings by hourToday
Credit owed14 debtors
GH₵3,915
Sync healthy 2 MoMo pending Last sync 4s ago

Built for the shops on every street

Supermarkets Provision stores Boutiques Hardware General stores Cosmetics Wholesale depots Mini marts
01 / The whole shop

One system, from the delivery van to the receipt.

Selling, stock, purchasing, credit, cash-up and reports in one install for each client. Owners see every branch. Cashiers see only their till.

POS

A counter built for queues

Barcode scan, search or category tiles. Hold and resume carts, weighed items, line and sale discounts, and big touch targets for tablets.

Hold / resumeWeighed qtyKeyboard firstReturns
Inventory

Stock as a ledger

Every sale, delivery and adjustment is an append-only movement. Stock counts show variances before anything posts.

StocktakeLow stock
Payments

Cash, MoMo, card, split

Manual mobile money that works offline, or a payment link with a QR that confirms itself through Paystack.

QR linksSplit pay
Credit

Balances you can trust

Leave part of a sale on balance with credit limits, debtor ageing, and payment links sent over WhatsApp.

Credit limitAgeing
Purchasing

Suppliers & deliveries

Purchase orders, goods received against them, supplier balances and expenses, all kept by branch.

PO → GRNExpenses
Reports

An owner dashboard that tells the truth

Sales, gross profit at the cost on the day of sale, VAT / NHIL / GETFund for filing, debtors, shift cash differences, and a fraud watch for voids, refunds and discounts.

Tax reportShift cashFraud watchPer branch
Shifts

Cash-up without the argument

Open with a float and close with a count. Expected cash and the difference are logged for each cashier.

FloatZ-report
Control

Roles, PINs & audit

Fast cashier PIN switching, manager approval for voids, an audit trail for every price change, and your own brand colours in light or dark mode.

Manager PINAudit logTheme coloursLight / dark
02 / Offline-first

Cut the internet. Watch nothing break.

Each till keeps its own copy of products, prices and staff. Sales queue on the device with their own IDs and post to the server once the line comes back, with no duplicates and nothing lost. Try it below.

Network online Africa/Accra · —
Drag to rotate

3D preview needs WebGL. Every sale still queues on the device and syncs when the line returns.

Client UUIDs

Sales, payments and stock moves get their IDs on the device, so two offline tills never clash.

Snapshots

Each sale line keeps its name, price, cost and tax as they were. Later edits never rewrite history.

Negative stock

A sale that already happened is never blocked. It is flagged for review after the sync.

Two clocks

Device time and server time are both stored in UTC and shown in Africa/Accra.

03 / Try the till

Ring up a sale. Right here.

Tap products to build a cart, then pay with cash, a mobile money link or a balance. The maths uses whole pesewas, never floats, the same way the real till does.

Till 01 · Accra Central · Ama K. Online
Current sale
Subtotal₵0.00
Discount₵0.00
Incl. VAT, NHIL & GETFund₵0.00
Total₵0.00
04 / Mobile money, done properly

The browser never gets to say "paid".

A payment link is confirmed only by a verified gateway callback or a server-side check. Callbacks are stored first and processed once. A late payment on an expired link is still recorded and flagged for the manager.

01 · Till

Link for the exact amount

The sale waits for payment. No stock is posted yet, and the link expires in 15 minutes.

02 · Customer

Scans the QR and pays

The customer pays on their own phone. The amount is locked to the link.

03 · Gateway

Calls your server

The signature is checked, then a verify request goes to Paystack.

04 · Server

Confirms once

The callback is idempotent, so a repeated call never creates a second payment.

05 · Till

Sale completes itself

Stock posts, the receipt prints and the cashier moves to the next customer.

CashOffline

Change in one tap

Cash received, change due, and the amount feeds the shift's expected cash.

MoMo manualOffline

Reference entry

Taken offline as pending. A manager later confirms it against the statement.

MoMo linkOnline

QR + WhatsApp share

Your own Paystack keys, so the money goes straight to your account.

BalanceOffline

Part pay, rest owed

Checked against the credit limit. Going over the limit needs a manager's PIN.

05 / Inventory

Stock you can audit, line by line.

Movements are never edited or deleted. A mistake is corrected with a new movement, and the stock level updates in the same database transaction.

  • OpeningLoad opening stock when you onboard, by CSV or Excel with a preview of any errors.
  • AdjustDamage, loss, theft, found or correction. A reason is required, and large changes need approval.
  • CountExpected quantities are frozen when the count starts. Variances are valued at cost.
  • UnitsDecimal quantities for kg, litre and metre. Whole numbers for pieces and packs.
Ledger · Jasmine rice 5kg · ACC On hand148
TimeTypeRefQtyBalance
Append-onlyValued at cost0 movements
06 / Permissions

Everyone gets exactly the keys they need.

Sensible defaults that the owner can edit. Permissions are enforced on the server, not just hidden in the interface.

CapabilityOwnerManagerCashierStock keeper
Make sales, hold and resume
Apply discounts (up to limit)Small limit
Void, refundApproval
Leave balance (credit sale)Within limit
Confirm pending mobile money
Edit products and prices
Stock adjustments and counts
Purchase orders and receiving
ReportsOwn branchOwn shiftStock only
Users, roles, settings, licence
Search

0ms

Product lookup runs on the device, even with no signal.

Catalogue

0

Products stay smooth on a mid-range tablet.

Lost sales

0

A sale is saved on the device before anything else happens.

Installs

1/client

Your own server, your own database, and your own gateway keys.

07 / Pricing

One payment. Every feature.

There are no tiers and no feature locks. You pay once for the licence and get the whole system. Support and maintenance is the only ongoing cost, it is optional, and you choose monthly or yearly.

The licence

One-time payment

Your own install on your own server, set up and loaded with your products before the first sale. No subscription to keep selling.

Ask for your quote

Everything included

  • Offline-first POS and sync
  • Inventory ledger and stocktakes
  • Cash, MoMo, card and split pay
  • Mobile money payment links
  • Customer credit and debtors
  • Suppliers, purchase orders, expenses
  • Receipts, barcode labels, CSV import
  • Shifts and cash-up
  • Owner dashboard and tax reports
  • Roles, PINs and audit log
  • Several branches on one install
  • Your colours, light and dark mode
  • Scheduled backups with restore
  • Setup, training and opening stock
Optional · Support & maintenance

Pay for help only when you want it.

Updates, fixes, backup and restore checks, and help over WhatsApp and phone. Billed monthly or yearly. Stop whenever you like: your system keeps working exactly as it is.

MonthlyYearly

The licence is paid once and never renews. Only support and maintenance is monthly or yearly.

08 / Questions

Asked at every counter.

01Does it really work with no internet?

Yes. Once a till has opened online one time, it keeps products, prices and staff on the device. Sales, cash, manual mobile money and balance sales all work offline, and they sync automatically when the connection returns. Only payment links need the internet.

02What devices do I need?

Any tablet or laptop with a modern browser. Opti Shop installs as an app from the browser (a PWA). Receipt printers and barcode scanners plug straight in.

03Where is my data kept?

Every client gets their own install and their own database. Nobody else's shop shares it. Scheduled backups go to cloud storage, and we test a restore with you before you go live. We follow Ghana's Data Protection Act and collect only the customer data you need.

04How are VAT, NHIL and GETFund handled?

Tax rates are settings, not code. Prices can include or exclude tax, and each product carries its rate. The tax report splits out each levy for filing.

05Can a cashier steal with discounts or voids?

Discounts have limits for each role. Voids, refunds, large discounts and price overrides ask for a manager PIN. Every sensitive action goes to the audit log, and the fraud watch report highlights patterns.

06Do I pay monthly or yearly?

Only for support and maintenance, and only if you want it. The licence itself is a single payment with no renewal. Support covers updates, fixes, backup checks and help, billed monthly or yearly. If you stop, nothing breaks: the system keeps working, you just stop getting updates and help until you restart.

Book a demo

Open your first till this week.

We'll show you a full day of trading in 20 minutes: open a shift, sell offline, take a MoMo link, then cash up. Bring your product list and we'll load it during the call.

WhatsApp opened. Send the message and we'll reply with a time.

From call to first sale

  1. Day 1Demo call. We confirm your branches, tills, tax setup and printers.
  2. Day 2Your install goes live on its own address with HTTPS.
  3. Day 3Products and opening stock are imported from your spreadsheet.
  4. Day 4Staff training: PINs, shifts, MoMo and cash-up.
  5. Day 5First sale. We stay on WhatsApp for the first week.