Markdown for agents
---
title: "POS Features for Checkout, Inventory and Accounting | Sandooq"
description: "Every capability in Sandooq — offline-first checkout, dual-currency payments, accounts receivable, inventory, purchasing and a double-entry ledger — with the plan each one is available on."
canonical: "https://sandooq.app/features"
locale: "en"
---
# Features
Everything Sandooq does, grouped by the part of the business it touches.
Explore checkout, product management, stock, purchasing and accounts in one place. Plan badges show availability; staff roles determine who can use each tool.
10 areas · 76 capabilities
Capabilities without a plan badge are on every published plan. Where a capability is limited, the plans that include it are named.
## Selling
What happens at the till, from the first scan to the printed receipt.
### Offline-first checkout
The till keeps taking sales when the connection drops. Transactions queue on the device and sync once the network returns.
### Barcode scanning
Scan EAN-8, EAN-13, UPC and GS1 codes straight into the cart, with check-digit validation and conversion handled for you.
### Held orders
Park a cart mid-sale, serve the next customer, and pick the parked cart back up on the same till.
### Line and cart discounts
Discount a single line or the whole cart, as an amount or a percentage, within the limits set for the cashier's role.
### Modifiers at the till
Add options and extras to a line — sizes, add-ons, preparation notes — each one priced and printed on the receipt.
### Receipts and reprints
Print or reprint the receipt for any transaction, with store details, the tax breakdown and every payment line.
### Returns and exchanges
Take a return against the original sale, or exchange for another item, with stock and the ledger reversed in the same step.
### Voids
Cancel a transaction before or after it is tendered. Every void reverses through the ledger and is recorded against the cashier.
### Manager approval
Discounts, voids and returns past a threshold stop and ask for a manager PIN before they commit.
### Multiple tills per store
Register more than one till to a store and run them at the same time. The device ceiling is set by your plan.
## Payments
How money is taken, in one currency or two, now or later.
### Split payment
Settle one sale across several payment lines — part cash, part card, part on account — until the balance reaches zero.
### Cash drawer control
Open, count and close the drawer against declared amounts, so an over or short is attributed to the cashier who held it.
### Dual-currency selling
Price in one currency and accept another on the same sale. Each payment line carries its own currency, and nothing is silently converted.
### Merchant-set rates
You enter the rate you trade at. Every sale books against the rate in force when it was rung, not the rate you use today.
### Accounts receivable
Create on-account invoices, track customer balances and credit limits, and allocate received payments against open invoices.
### Online card payments (Professional · Enterprise)
Take card payments through a hosted payment page, with the charge reconciled back to the sale it belongs to.
### Configurable payment methods
Define which tenders each store accepts, and how each one posts to the ledger.
### Settlements
Match what a processor actually paid out against what the till recorded, and see the gap before it reaches the accounts.
### Disputes
Record a chargeback or disputed payment against its original sale and follow it through to resolution.
## Catalog
The products, categories and units everything else is built on.
### Product catalog
Products with codes, barcodes, cost and selling price, tax treatment and per-store availability. The product ceiling is set by your plan.
### Product variants
Manage sizes, colours and other product options with their own codes, barcodes and price overrides, and select the variant at checkout.
### Categories
Group products into a category tree that drives till layout, stock views and reporting.
### Units and packaging
Buy and sell by piece, weight, volume or pack, with conversion to the product's base unit and separate barcodes and prices for its selling units.
### Modifier groups
Build reusable option sets once — required or optional, single or multiple choice — and attach them to any product.
### Barcode management
Manage product, variant and unit barcodes, validate them on entry, and generate shop-made codes for products or packs without one.
### Barcode label printing
Choose the label size and number of copies, preview product, variant and pack labels, then print them from your browser.
### Product import and export
Import products from CSV with column mapping, validation and row results, or export your product catalog for review outside Sandooq.
### Bulk product editing
Update product prices, costs and other catalog fields in a grid, including variant price overrides, then save the changes together.
### Recipes and ingredient stock
Define ingredients for a product or variant and additions or removals for its add-ons. Selling the prepared product deducts its ingredients from stock.
### Cost and margin
Every product carries its cost, so margin is available on the sale line and in reporting without exporting anything.
## Inventory
Knowing what you hold, what moved, and why it moved.
### Stock on hand
Live quantity per product per store, moved by every sale, return, receipt and adjustment.
### Stock counts
Count a store or a section, enter what you counted, and post the variance as an adjustment with a reason.
### Stock adjustments
Write stock up or down against a reason code, with the value of the change posted to the ledger.
### Movement history
Every quantity change with the document that caused it, so you can answer where a unit went without guessing.
### Batch and expiry tracking
Track stock in batches with expiry dates, and see what is close to expiring while you can still act on it.
### Disposal and write-off
Record damaged or expired stock as a disposal, with the loss posted to the expense account you chose.
### Reason codes
Define your own reasons for adjustments, disposals and returns, so reporting groups them the way you think about them.
### Inventory approvals
Route stock changes above a threshold to a manager before they take effect.
### Stock transfers
Move stock between your stores and follow incoming and outgoing transfers, with quantities, status and a history for each transfer.
## Purchasing
Ordering from suppliers and knowing what the goods really cost.
### Suppliers
Supplier records with contact details, terms, and the running balance you owe them.
### Purchase orders
Raise an order against a supplier, track what is still outstanding, and receive against it.
### Goods received
Receive a delivery in full or in part. Stock and cost update from what actually arrived, not what was ordered.
### Purchase corrections
Review supported corrections to received quantities, unit costs or the supplier before posting, with a reason and history that preserves the original purchase.
### Supplier bills
Record the supplier's invoice against the receipt.
### Supplier payments
Pay a supplier in part or in full, from the till or the dashboard, settled against their open bills.
## Customers
Who buys from you, what they owe, and on what terms.
### Customer records
Customers with contact details, purchase history and balance, reachable from the till and the dashboard.
### Customer groups
Group customers so terms and reporting can be set once for the whole group instead of per person.
### Balances and credit limits
See what a customer owes and what they are allowed to owe, checked at the till before the sale completes.
### Opening balances
Carry a customer's existing debt in from your previous system, recorded with who approved it.
## Finance
The ledger behind the trading, kept as you go rather than at month end.
### Double-entry general ledger
Every sale, return, receipt, payment and adjustment books a balanced journal entry, so the accounts are a consequence of trading rather than a re-keying job.
### Account mappings
Decide which ledger account each kind of movement posts to, per business.
### Expenses
Record an expense against a category and a store, paid from the till or from the bank.
### Expense approvals
Expenses over a threshold wait for approval, and the approval is recorded against the person who gave it.
### Tax payable
Tax charged on sales accumulates in its own account, so the position is visible at any point.
### Fiscal periods
Close a period so nothing can be posted back into it, and open the next one.
### Reconciliation
Match till, bank and ledger against each other, and see the differences that still need explaining.
## Insights
Reporting on what the business actually did.
### Sales analytics
Revenue, margin, basket size and product mix, broken out by store and by period.
### Reports
Explore sales, stock and purchasing reports, financial statements and trial balances, plus customer balances, aging and account statements, with store and date filters.
### Cashier performance
Takings, voids and returns per cashier, so an outlier is visible without running an audit.
### Day-end Z-read
Close the trading day and draw a Z-read with takings by tender and the drawer position.
## Store operations
Running the trading day, the drawer and the store itself.
### Business days
Open and close the trading day per store, so every transaction belongs to a day that can be reported and closed.
### Cash sessions
A session per cashier per till, opened with a float and closed with a count.
### Safe and float management
Move cash between the drawer and the safe, and keep the safe balance as a tracked figure rather than a note.
### Cashier handover
Hand a live till from one cashier to the next without closing the day, with both sessions recorded.
### Per-store settings
Tax treatment, receipt details, rounding and till behaviour set per store rather than once for the whole business.
### Return policies
Set the window, the conditions and the approval a return needs, per store.
### Multiple stores
Run several stores on one account, with stock, staff and reporting separated by store. The store ceiling is set by your plan.
## Platform
The account, the people on it, and the guarantees underneath.
### Shared data across tills
Every till reads the same products, prices and stock, and open carts are shared live between a store's devices.
### Tenant isolation
Every row carries its business and is enforced at the database with row-level security, not by application code alone.
### Role-based access
Admin, manager, cashier, inventory clerk and accountant each see and do a defined set of things.
### Team accounts
Invite staff, set their role and their stores, and revoke access in one place. The user ceiling is set by your plan.
### Device PIN lock
The till locks behind a per-user PIN, with failed attempts counted on the server and a lockout after repeated failures.
### Audit trail
Voids, large discounts, returns, session opens and failed sign-ins are written server-side and cannot be edited afterwards.
### Error tracking
Errors and slow operations are reported with the context needed to reproduce them, so a till problem stays diagnosable after the fact.
### Arabic and English
Both apps ship in Arabic and English, with the interface mirrored for Arabic rather than translated in place.
### Plan-based feature gating
Capabilities are switched on per plan and can be overridden per business, so entitlement is data rather than a separate build.
## Want to see it on your own products?
Tell us what you sell and where, and we will walk you through the parts that matter to you.
[Talk to us](https://sandooq.app/contact)
[See plans and pricing](https://sandooq.app/pricing)