The operating system for retail & wholesale

Every movement.
Accounted for.

Track inventory, purchasing, sales, transfers, and finance from a single operating system — where every transaction posts its own accounting the moment it happens.

Command center
Live · sample workspace

Revenue today

AED 18,430

+12.4%

Orders fulfilled

247

+6.1%

Stock value

AED 1.24M

+8.4%

Gross margin

34.2%

+2.1%

Revenue · rolling

live

Live activity

auto-posting
  • Sale SL2026060044 posted · stock −3

    Dubai Mall Branch

  • Stock received against PO-0182

    Main Warehouse · WAC updated

  • Transfer TRF-0091 completed

    Warehouse → Deira Branch

  • Payment AED 4,200 allocated

    INV-002841 marked paid

Sample workspace · live demo data · 55+ modules · double-entry accounting · UAE 5% VAT

Runs live at retail & wholesale businesses across the UAE

CUSTOMER LOGO 1
CUSTOMER LOGO 2
CUSTOMER LOGO 3
CUSTOMER LOGO 4
CUSTOMER LOGO 5

0+

business modules

0

financial reports

0

pre-built GL accounts

0

permission controls

The actual product

Not a mockup. The real interface.

The same StockFlow your team runs on the back-office desktop and carries on the shop floor — multi-branch sales, VAT, gross profit and inventory, live on every screen.

StockFlow dashboard on desktop — multi-branch sales, VAT, gross profit and inventory
9:41
StockFlow on mobile — the dashboard on a phone with bottom navigation
Books balanced3 branches live

See it move

Understand StockFlow in five seconds.

Stock flows from supplier to customer. Every hop is counted, costed, and posted — so the number on the shelf and the number in the books are never two different things.

SupplierPO raised
Purchase
Warehouse1,240 units
Transfer
Store380 units
Sale
CustomerSale posted
Purchase adds stockTransfer moves itSale subtracts itReturn adds it back

Before StockFlow

Your business runs on tools that don't talk to each other.

The POS knows what you sold. A spreadsheet thinks it knows the stock. WhatsApp holds half the orders. And the books? They'll catch up in three weeks — if the re-typing goes well.

It was never a people problem. It's what happens when stock, sales, and accounting live in different places.

Excel sheetsWhatsApp ordersManual stock countsPaper invoicesTally exportsA notebookAnother spreadsheet

The workflow

From purchase order to balanced books.

Six steps, one system. Every stage feeds the next — and posts its own accounting as it happens, so the last step is already done.

  1. Step 1 · Purchase

    Raise the order.

    Create purchase orders to suppliers with payment terms, expected costs, and the receiving location set up front.

    38 open POs
  2. Step 2 · Receive

    Take it in.

    Receive against the PO. Weighted-average cost recalculates automatically, so every unit knows what it actually cost you.

    WAC auto-updated
  3. Step 3 · Store

    Shelve it, anywhere.

    Stock lands per location with batch numbers and expiry dates. Transfer between branches without losing the trail.

    12 warehouses
  4. Step 4 · Sell

    Sell everywhere.

    At the counter, on Shopify, or through the customer portal. Scan, pick the customer, done — stock deducts instantly.

    247 orders today
  5. Step 5 · Ship

    Get it out.

    Pick, pack, and dispatch with delivery notes and cargo-company tracking, so fulfilment stays accountable.

    Delivery tracked
  6. Step 6 · Reconcile

    The books are already done.

    Every step above posted double-entry GL as it happened — COGS, revenue, VAT. Trial balance, P&L, and VAT report are current to this second.

    Trial balance: balanced

What you get

Six jobs your current setup makes hard. Handled.

Accounting

Books that write themselves.

Every sale, purchase, payment, and expense posts double-entry GL automatically against 109 UAE-retail accounts.

8 reports, always current

SL2026060042 · Dubai Mall Branch

Sale — AED 2,572.50 (incl. 5% VAT)

Recorded
Posted to General Ledger automatically — same request, no export
AccountDebitCredit
5110 — Cost of Goods Sold1,240.00
1140 — Stock In Hand1,240.00
1120 — Accounts Receivable2,572.50
4110 — Sales Revenue2,450.00
2150 — VAT Output Payable (5%)122.50
Balanced3,812.503,812.50

Inventory

Every branch's shelf, live.

Stock per product per location, with batch numbers, expiry dates, and documented transfers between branches.

Per-location · batch & expiry
ProductLocationQtyStatus
Rose Water Toner 200mlRWT-200Dubai Mall BranchShop142Normal
Argan Hair Serum 50mlAHS-050Deira BranchShop4Low stock
Vitamin C Cream 30gVCC-030Main WarehouseWarehouse86Expiring soon
Shea Body Butter 250mlSBB-250Main WarehouseWarehouse310Normal
Collagen Mask (Pack of 5)CLM-005Dubai Mall BranchShop57Normal

UAE VAT

Filing in minutes.

The 5% engine is built into every transaction. When the quarter closes, the report is one click.

Output / input split · export-ready

VAT Report — Q2 2026

01 Apr 2026 – 30 Jun 2026 · UAE 5%

Export for filing ↓

Output VAT (sales)

AED 27,418

1,284 taxable invoices

Input VAT (purchases)

AED 11,062

312 supplier invoices

Net VAT payable

AED 16,356

Ready to file

Every line traces back to a tax invoice in the ledger — built transaction by transaction, not reconstructed at quarter end.

Stock counts

Count a shop in an afternoon.

Scan with a phone camera or hardware scanner; variance shows live and reconciliation posts on submit.

Camera + hardware scanners

Stock Count — Deira Branch

Session SC-0042 · scanning live

Scanner connected

Rose Water Toner 200ml

6291041500213

Matched

Shea Body Butter 250ml

6291041500312

Short −2

Collagen Mask (Pack of 5)

6291041500455

Over +2

Argan Hair Serum 50ml

6291041500528

Matched
Variance: 2 matched · 1 over · 1 shortSubmit → posts reconciliation

Channels

Sell everywhere. Count it once.

Shopify orders become sales on their own — stock deducted, accounting posted, levels pushed back in sync — and B2B wholesale customers get their own self-service ordering portal.

Bi-directional Shopify sync · B2B portal

Shopify Store

Order #1067 · paid

StockFlow

source of truth

10:42:03Order #1067 received — HMAC verified
10:42:03Sale SL2026060044 created · stock −3 @ Main Warehouse
10:42:03GL posted: COGS, revenue, VAT output
10:42:04Shopify inventory_levels updated → 83
10:42:04Mismatch audit: Shopify 83 = StockFlow 83 ✓

Security & control

Control who sees what.

173 permission codes compose into custom roles. Scope staff to their own branch — selling without ever seeing margins, payroll, or other locations — and every action is logged with user, time, and IP.

173 permissions · full audit trail

Salesperson · Dubai Mall

Custom role · scoped to one branch

173 permissions
Create & edit salesAllowed
View own-branch stockAllowed
Issue refundsAllowed
View margins & cost pricesHidden
Payroll & HRHidden
Other branchesHidden
Every action audit-logged — user · timestamp · IP address

One platform

Everything that moves. Tracked.

No bolt-ons, no exports between tools. Each module writes to the same ledger and the same stock the moment something happens.

Purchasing

POs, receipts, supplier terms.

Receive against PO with weighted-average costing.

Sales

Counter, online, and portal.

Transfers

Move stock between branches.

Returns

Credit & debit notes.

Payments

Collect, allocate, reconcile.

Analytics

Reports current to the second.

P&L, balance sheet, cash flow, aging, VAT.

Payroll & HRPost-dated chequesPrepaid expensesFixed assetsPrice listsBulk importAudit logRole-based access

Why StockFlow

ERP-grade accounting. Without the ERP project.

StockFlow

One system, running in days.

  • Live stock per product, per branch
  • Double-entry GL on every transaction
  • One-click UAE VAT report
  • 173 permission controls, full audit log

ERP-grade details we didn't skip:

Post-dated cheque lifecyclePrepaid-expense amortizationFixed-asset depreciationPeriod closingWeighted-average costingAudit log on every record

What operators say after the switch.

  • [Placeholder — Outcome quote: time saved on month-end / VAT filing. Replace with a real, permissioned customer quote before launch.]
    ?

    [Name]

    Owner, multi-branch retailer

  • [Placeholder — Outcome quote: books always current, no re-keying. Replace with a real, permissioned customer quote before launch.]
    ?

    [Name]

    Finance manager / accountant

  • [Placeholder — Outcome quote: stock accuracy across branches. Replace with a real, permissioned customer quote before launch.]
    ?

    [Name]

    Store / operations manager

Pricing

Pays for itself before the next VAT quarter.

  • 1 location
  • Up to 3 staff users
  • Sales, inventory & VAT reports
  • Daily backups
Book a demo
  • Up to 5 locations
  • Unlimited staff with custom roles
  • Full accounting suite + bank reconciliation
  • Barcode stock counts
  • Customer portal
Book a demo
  • Unlimited locations
  • Shopify sync
  • Payroll & HR module
  • Priority support & onboarding
Book a demo

Prices in AED per month, excluding 5% VAT. Annual billing and enterprise plans available on request.

FAQ

The questions everyone asks before switching.

Less than you expect. StockFlow imports opening balances from CSV and products, stock, customers, and suppliers from Excel. The same migration tooling has moved a full year of live trading data — sales, purchases, returns, and bank statements — into a production deployment. You start from your own numbers, not from zero.

Yes. 5% VAT is calculated on every transaction, invoices issue as Tax Invoices or Simple Invoices, and the VAT report splits output VAT on sales from input VAT on purchases with net payable — the numbers your FTA return needs, exportable for filing.

Multi-location is the default, not an add-on. Stock is tracked per product per location, transfers between branches are documented and tracked, staff can be scoped to their own branch, and every report rolls up across all locations.

Granularly. StockFlow ships 173 permission codes you can compose into custom roles — a salesperson can sell at their branch without ever seeing margins, payroll, or other branches. Every action is audit-logged with user, timestamp, and IP address.

It keeps running — StockFlow becomes its source of truth. Paid Shopify orders flow in as sales automatically (stock deducted, accounting posted), stock levels flow back out to Shopify, and a built-in mismatch audit proves both systems agree. Failed syncs queue for one-click retry.

Your data lives in your own deployment with daily automated backups, soft-delete protection (records are never destroyed by accident), and a complete audit trail of every change. Role-based access keeps each user inside their lane.

Run the whole business from one screen.

Books that are never behind. Stock you can trust. VAT without the fire drill. See StockFlow on your own products and locations — a demo takes 30 minutes.

Explore the real app with sample data — no signup. Or bring your messiest stock question to a guided demo.