Every screen, every function, explained.
The dashboard is the owner's and manager's home page — a live snapshot of the business.
Products, customers, staff and terminal counts, each with your plan's limit, plus a red low-stock counter. Tap Manage links to jump to the relevant page.
Gold bars show revenue per day for the last 14 days, with today's figure called out above. Void sales are excluded.
The doughnut splits this month's takings by tender: cash, card, store credit and on-account. Use it to spot how your customers actually pay.
The best sellers of the last 7 days by revenue — a quick read on what to restock first.
The register screen is built for speed: everything a cashier needs in one page, working with or without internet.
On a claimed register the device opens straight to the PIN pad. The cashier picks their name and enters their 4–6 digit PIN. On a new device, enter the store code first (found in Manage → Terminals), pick the terminal, then PIN.
Three ways: scan a barcode (exact barcode or SKU match adds the item straight to the cart), type in the search box (the tile grid filters as you type, matching English and Arabic names, SKU and barcode), or tap a category chip and pick from the tiles. Tiles show the photo, price, and stock (or "Service").
Any USB or Bluetooth scanner works — they act as keyboards, no drivers or settings in BB Retail. Scans are captured even if the cursor wandered off the search box. Configure the scanner itself (from its manual) to send Enter after each scan — that's the factory default on nearly all models. Test any scanner in Manage → Terminals → scanner test box.
Tap a cart line to open it: change the quantity, apply a line discount, or remove the line. Line totals and the tax recompute instantly.
Tap the customer strip above the cart to search and attach a customer. This unlocks store-credit and on-account tenders Business, and records the sale to their history.
Active promotions apply automatically when the cart qualifies (minimum purchase, date window). Coupon-code promotions are entered at the payment screen; percentage promos respect their maximum-discount cap.
Tap PAY. Tap a payment method to tender the full remaining amount, or type a partial amount to split across methods (e.g. half cash, half card). Cash tenders compute change automatically. The sale completes when tendered ≥ total.
If the attached customer holds store credit (from a refund), a quick button tenders from that balance first.
With a customer attached, "Complete on Account" books the unpaid balance to their receivable, capped server-side at their credit limit. The balance appears in Customers and in Finance → receivables.
If you saved your Stripe or Moyasar keys in Settings, a 💳 button appears per gateway. It creates a payment for the remaining amount in your gateway account, shows a QR the customer scans and pays on their phone (cards worldwide via Stripe; mada, Apple Pay and cards in Saudi via Moyasar), and the register detects payment within seconds and adds the tender automatically. Requires internet.
With a Stripe key saved, a 🖥️ Pay with Terminal button lets the customer tap or insert a physical card on a Stripe reader (WisePad 3 / S700) connected over the internet. The register creates the charge, the reader collects the card, and the payment is verified on our server before it is recorded — so a tap that does not actually clear is never counted. A built-in simulated reader lets you test the whole flow with no hardware. Card-present payments require internet and Terminal enabled on your Stripe account.
Sell a gift card from the 🎁 Gift button in the top bar: enter a load amount and BB Retail generates a unique code (GC-XXXX-XXXX-XXXX) with that balance. To redeem, tap 🎁 Gift Card at payment, enter the code, and the card balance is applied as a tender — partial redemptions leave the remainder on the card. Balances and every load/redeem are tracked per store. Redeeming needs internet (the balance is checked live).
If the connection drops, keep selling — sales queue on the device and sync automatically when you're back online. Offline receipts carry a temporary REF number; the permanent sale number is assigned at sync. Card-by-QR is the only tender that needs internet.
Every completed sale shows the receipt: localized to the store language, with a scannable barcode of the receipt number. Saudi stores with a VAT number configured also get the ZATCA Phase 1 QR automatically. Print it, start a new sale, or tap Invoice to open the formal A4 tax invoice.
Everything sold, searchable, with a controlled refund flow.
Sales ▾ → Sales History lists recent sales with date, customer, items, payment and status. Filter by date or search by sale number / customer name.
Open a sale to see its lines, taxes, tenders and any prior returns, with buttons for Invoice and Return / Refund.
Choose the quantity to return per line (already-returned quantities are shown and can't be exceeded), tick Restock to put items back into inventory (leave unticked for damaged goods), pick the refund method — cash back or store credit to the customer's account Business — add a reason, and process. Stock, reports and the customer ledger all update immediately.
You can also refund right at the POS: tap ↩ Refund in the top bar, then type the sale number or scan the receipt barcode. The original items appear with quantity steppers and a Restock toggle; the refund total is calculated live. Pick Cash, Card or Store Credit and process — it creates the same return record, restocks, updates the sale status and (for store credit) the customer ledger, exactly like a back-office return. Needs internet.
Formal A4 tax invoices — from any sale, or built from scratch.
From a sale's detail page or straight from the POS receipt, tap Invoice. The first open assigns a permanent INV-number; every later open shows the same invoice. Saudi + VAT workspaces get the ZATCA QR rendered and stored on the invoice record.
Sales ▾ → Invoices → New Invoice. Use Browse customers to autofill name, phone, address and tax number from your customer book (or type freely for one-offs), and + Add from products to pull real products with their price and correct tax rate — or add blank lines for anything else. Totals compute live; Save assigns the number and opens the invoice.
Shows your logo, business details and tax registration, the customer block, due date, line items with per-line tax, totals with paid/balance due, your terms & conditions, the invoice-number barcode, and the ZATCA QR where applicable — all in the workspace language, RTL included.
🖨 Print produces a pixel-exact single page on any paper size. 💾 Save as PDF downloads a real PDF file named after the invoice number — Arabic renders perfectly in both. Tip: if a print preview ever looks blank on some computer, set the print dialog's Scale to "Default".
Settings → Invoice Options: default due days (prefills the builder), terms & conditions text printed on every invoice, and toggles for the logo and the number barcode. Upload the logo itself at the top of Settings.
Your catalog, stock control, and the audit trail behind every unit.
Inventory ▾ → Products → Add. Name in English and Arabic (the store language decides which shows), SKU and barcode (scan into the field or type), cost and selling price, tax setting, unit, category, minimum stock level, and a photo that appears on the POS tile. The barcode preview renders as you type.
Tick "This is a service (no stock tracking)" for labor, delivery fees, repairs. Services never appear in low-stock alerts, skip stock movements when sold, but still carry a cost so your profit reports stay honest.
From a product, open Stock Adjustment: In for received goods, Out for damage/loss/transfer, Set for a physical count. Every adjustment records who, when, before → after, and a reference — the same audit trail sales write to.
Inventory ▾ → Categories: name (EN/AR) and a color used on the POS category chips. Deleting is blocked while products use the category.
Inventory ▾ → Import / Export. Download the template, fill it (one row per product), and upload: rows match existing products by SKU and update them; new SKUs are created; unknown categories are auto-created. Up to 2,000 rows per file with per-row error reporting. Export produces the full catalog including stock, ready for Excel.
Inventory ▾ → Inventory Report: valuation at cost and at retail with the potential margin sitting on your shelves, a category rollup, the full stock listing with status badges (OK / Low / Out / Negative — negative means a data problem to investigate), the last 60 stock movements, CSV export and a printable valuation.
The customer book, and the آجل machinery behind it.
Customers → Add: names (EN/AR), company, mobile/phone, email, address, tax number (used by the invoice builder), a credit limit Business and notes.
With a credit limit set, the POS can complete sales on account up to that limit. The customer's balance ("Owes us") shows on their card in red when positive.
Open the customer → Receive Payment: amount and method. The balance drops and the payment lands in the ledger and in your accounting journal as cash against receivables.
Refunds issued "to store credit" accumulate on the customer and can be spent at the POS with one tap.
Every credit event — sale on account, payment, store credit issued or redeemed — appears in the customer's ledger with amount, balance-after, reference and who recorded it.
Automatic discounts and coupon codes, applied consistently at the register.
Sales ▾ → Promotions: name (EN/AR), type — Percentage or Fixed Amount — the value, an optional minimum purchase, a maximum discount cap (for %), start/end dates, a total usage limit, and optionally a coupon code. No code = the promo applies automatically when the cart qualifies; with a code, the cashier enters it at payment.
The discount spreads proportionally across eligible cart lines, so line totals, taxes and reports stay accurate.
Enable/disable promos anytime; the Used column tracks redemptions against the limit.
Cash accountability from drawer open to end-of-day.
Sales ▾ → Shifts → Open with the starting cash float. Sales can only be rung with an open shift on the terminal.
Record non-sale drawer movements — change from the bank, a supplier paid in cash — with a reason. They're factored into the expected drawer count.
Count the drawer, enter the actual cash, close. The Z-report shows sales by tender, cash in/out, expected vs actual and the difference — print it for the till roll.
A manager runs Day Close once all shifts are closed. It writes an immutable end-of-day record (one per date) with a printable summary — your daily anchor for accounting. It refuses to run while a shift is still open.
From quick KPIs to a general ledger your accountant can import.
KPIs for the period (revenue, transactions, average sale, tax, discounts, refunds), top products, breakdowns by category / payment method / staff, and the low-stock list. The Free plan sees the last 30 days; paid plans are unlimited.
The management view: revenue, cost of goods, gross profit and margin, tax collected, refunds, net — plus daily and per-category profit and outstanding receivables.
A formal P&L (Gross Sales, less Returns, Net Sales, COGS, Gross Profit with margin) and a General Ledger journal on a fixed 9-account chart (Cash, AR, Inventory, Tax Payable, Store Credit, Revenue, Discounts, Returns, COGS). A badge confirms debits equal credits, and Export Journal (CSV) produces a file QuickBooks or Xero can import. Note: operating expenses aren't tracked in BB Retail — the journal export is how the full P&L completes in your accounting system.
Who can do what, and the devices they do it on.
Owner — everything, including Settings, Stores and plan-level pages; signs in via the portal. Manager — daily operations: products, promotions, day close, reports, staff. Cashier — the POS, shifts and sales.
Manage ▾ → Staff: add people with a display name, role and PIN; deactivate anyone instantly (their PIN stops working on the next screen). Plan limits apply (2 staff on Free, 5 on Pro).
Manage ▾ → Terminals: claim the current device as a register (it then boots to the PIN pad), see and regenerate the store code cashiers use on new devices, and test barcode scanners in the test box — a real scanner gets a green verdict, keyboard typing gets a red one.
Where stock comes from — and where each product's real cost comes from.
Inventory ▸ Suppliers holds your vendors: names in English and Arabic, contact, tax number and payment terms. Suppliers are disabled rather than deleted, so an old purchase order always keeps the name it was raised against.
Inventory ▸ Purchase orders walks Draft → Ordered → Received. Add lines by supplier code or by searching your catalogue, set quantities and unit costs, and record the supplier's invoice number.
Every line must point at a product before the order can be received — receiving stock against nothing would silently lose it. Search your catalogue in the Linked product box, or use Create & link on a line for something you have never stocked. The supplier's own item code is kept separately and is never overwritten.
The first time you link a supplier's code to one of your products, BB Retail remembers it. The next invoice from that supplier links those lines automatically — so the first order is the only slow one.
Receive updates each product's stock and recalculates its cost as a weighted average of what you already held and what just arrived. That is what makes your gross-profit figures honest: cost stops being whatever number was typed once when the product was created.
Each received line writes a stock movement of type In, referencing the PO number, so Inventory ▸ Movements shows exactly where stock came from.
Three assistants that save typing. Every suggestion is reviewed before it is saved — AI never changes stock, prices or your catalogue on its own.
The 🤖 AI page in the main menu lists all three with your usage for the month. Each one also sits where you would naturally use it: on the product form, on Reports, and on Purchase orders.
AI messages are shared across all three tools: 5 a month on Free, 25 on Pro, 100 on Business. Only a successful request is counted — a failed read costs you nothing. The allowance resets at the start of each calendar month.
AI features (invoice import, product fill, ask-your-sales) are included in your plan up to a monthly allowance — Free 5, Pro 25, Business 100 requests per month, resetting at the start of each month. No key setup is required.
On a new product, scan the barcode or type a rough name, then press Fill with AI. It suggests the English and Arabic shelf names, a category taken from your own category list, and a one-line description. It fills only the fields you left empty, so it can never overwrite what you typed. A barcode it cannot identify returns nothing rather than an invention — local and store-brand goods often fall into that group, and adding a rough name alongside the barcode improves the result considerably.
On Reports, type a question the way you would say it: which five products sold slowest this month, who is my best customer, how much cash did I take on Friday. You get a table back, and you can expand the query it ran if you want to check the numbers yourself. It reads only your own store's data, only sales information, and it can never change anything — the query is validated and rejected unless it is read-only.
Purchase orders ▸ Import from an invoice. Upload a PDF or a photo of a delivery note and the line items come back as a draft purchase order: descriptions, quantities, unit costs, the supplier and the invoice number. Where the invoice prints only a line total, the unit cost is worked out from the quantity. Subtotal, tax, shipping and total rows are ignored. You review every line on a check screen before the draft is created, and nothing reaches your stock until you link the lines and press Receive.
Extraction is good but not perfect. Quantities and unit costs are the two fields worth reading carefully on every import — a wrong cost quietly distorts your margin on every later sale of that product.
Everything configurable, in one page (owner and manager).
Legal/display names (EN/AR), address, contact details and the logo (PNG/JPG/WebP/SVG up to 1 MB) — all printed on receipts and invoices.
Country, currency and decimals come from the region; the default tax rate and your tax registration label/number are set here. Setting the region to Saudi Arabia plus a VAT number is what activates the ZATCA QR on receipts and invoices.
Default due days, printed terms & conditions, and logo / barcode toggles — see the Invoices chapter.
Paste your own Stripe secret key and/or Moyasar secret key. Payments go directly to your gateway account — BinaryBridge never touches the money. Keys are stored per store, and the store name is shown so you always know which store you're editing. The same saved Stripe key powers the QR payment, the physical Terminal reader, and gift cards.
Owners can change the store's language (with a confirmation warning). It changes the interface, receipts and invoices for the whole store — staff see it on their next page load.
Custom thank-you lines (EN/AR) printed at the bottom of receipts and used on invoices when set.
Create a full backup of your store at any time — it downloads a single file containing your products, customers, sales, settings and more (payment gateway secret keys are deliberately excluded). A progress bar shows the upload; large stores are handled in one atomic operation. Backups are per store, so each branch backs up and restores independently.
Restoring loads a backup back into the store. It runs as one all-or-nothing transaction: if anything fails partway, nothing changes — you are never left with half-restored data. Existing records are matched and skipped rather than duplicated, so a restore can't create double entries. Because restore replaces data, take a fresh backup first — that backup is your undo: if a restore isn't what you wanted, restore the earlier backup to roll back.
Run every branch under one login — isolated where it matters, combined where it helps.
The 🏬 Stores page (Manage ▾) lists your stores with today's sales. Create up to 10; each new store inherits your plan and runs its own first-time setup — so a Riyadh branch can be Arabic/SAR while Mississauga stays English/CAD.
Switch instantly from the Stores page; BB Retail remembers your last-used store at next sign-in. Each store's products, staff, settings and numbering are fully separate.
All Stores — Consolidated shows per-store revenue, transactions, gross profit, tax and receivables for any date range, with totals grouped by currency — amounts in different currencies are never converted or mixed.
Email support@binarybridge.ca — we answer in English and Arabic.