Markdown for agents

This page, as an agent reads it

---
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)