CloudPOS.vu — Complete Manual

Everything in one document: configuration, selling, purchasing, POS operations, inventory, accounting and administration. Use the sidebar to jump to any chapter or section — installation and product configuration live in their own guides below.

Chapter 1

Settings

Business identity, currencies, taxes, VSMS fiscalization, payments, integrations and system tools

🏢
Business

The Business tab holds your company's identity — the information that appears on invoices, quotations, and receipts.

Business settings tab
Business tab — logo, company details, and tax registration
📸 Business Logo

Upload a logo that appears on all printed documents. Supports PNG, JPG up to 2 MB.

📝 Business Name

The legal trading name shown on tax invoices and quotations.

📧 Email & Phone

Contact details displayed on customer-facing documents.

🔢 TIN Number

Your Tax Identification Number — required for VAT returns and customs.

💡
Non-taxable businesses: Toggle "Is this business not taxable?" to disable all tax calculations. This is useful for small exempt businesses or internal cost centres.
⚙️
General

The General tab controls how numbers, currencies, and dates appear throughout the application.

General settings tab
General tab — decimal places, currency symbol, and date format
🔢 Decimal Places

Number of decimal places for monetary values. Set to 0 for Vanuatu Vatu (whole numbers only).

💲 Currency Symbol

The symbol displayed next to amounts — e.g. VT for Vatu, $ for USD.

📅 Date Format

Choose between DD/MM/YYYY, MM/DD/YYYY, or YYYY-MM-DD.

⚠️
Changing decimal places affects how existing values are displayed, not stored. The database always keeps full precision.
💱
Currencies New

The Currencies tab manages which currencies your business can bill in, and their exchange rates. The base currency (e.g. VUV) is fixed; any currency already used on a document can only be deactivated, not deleted.

Currencies settings tab
Currencies tab — currency list with per-currency activation, and exchange rates
💱 Currency List

Add, rename, activate or deactivate currencies with the + Add button. Active currencies appear in every currency picker (invoices, bills, purchase orders, POS).

📈 Exchange Rates

Set the rate used when a bill or PO picks a foreign currency — the latest rate on or before the document date applies. Without a rate, foreign documents need a manual rate.

🧾
Sales

The Sales tab configures how prices and stock warnings behave when creating invoices, quotations, and proforma invoices.

Sales settings tab
Sales tab — tax-inclusive pricing and low-stock warnings
💲 Prices Inclusive of Tax

When enabled, the sell price you enter for products includes VAT. The system automatically calculates the net amount and tax split on invoices.

⚠️ Warn When No Stock

Shows a warning when adding a product to an invoice that has zero or negative available stock.

💡
In Vanuatu, most retail prices are tax-inclusive by law. Enable this toggle to ensure customer-facing prices include 15% VAT.
📦
Stock

The Stock tab lets you choose how the cost of goods is calculated when inventory is sold.

Stock settings tab
Stock tab — costing method selection
📊 Costing Method

Last Cost — uses the most recent purchase price as the cost of goods sold.

📊 Average Cost

Calculates a weighted average of all purchase costs. More accurate for volatile pricing.

⚠️
The costing method affects COGS (Cost of Goods Sold) calculations and gross profit reporting. Changing this setting does not recalculate historical transactions.
🚀
Initial Setup

The Initial Setup tab is used once when onboarding a new business. It lets you record opening stock quantities and opening accounting balances before you start trading.

Initial Setup tab
Initial Setup — opening stock and accounting configuration
  1. Opening Stock — Enter the quantity and value of inventory you already have on hand. This creates the initial inventory journal entry.
  2. Opening Accounting — Enter opening balances for all accounts (bank, receivables, payables, etc.) to match your previous accounting system.
🔒
Once completed, both sections are locked and cannot be edited again. Verify all numbers carefully before confirming.
🏛️
Tax

The Tax tab manages tax rates applied to products and services. Each product references a tax rate for invoice calculations.

Tax settings tab
Tax tab — tax rate management with SDC label mapping and default selection
📋 Tax Rate Table

View all configured tax rates with name, percentage, SDC label, and default status.

⭐ Default Rate

One rate can be marked as default — new products automatically inherit this rate.

🏷️ SDC Labels

Each tax rate has a label (A, E, F, etc.) received from the SDC. Labels appear on fiscal receipts next to the tax value (e.g. A = 15%). New labels are added automatically when the SDC configuration changes.

💡
Common setup in Vanuatu: VAT 15% (default for taxable items) and No Tax 0% (for exempt items or services). Tax labels are assigned by the SDC and mapped to POS tax rates during the Test Connection step. The SDC defines what rate each label/category has. All tax amounts are rounded to whole Vatu (no decimals) using standard rounding rules.
💳
Payments

The Payments tab manages the payment methods available when recording customer payments. All configured payment types are registered and sent to the SDC during fiscalization.

Payments settings tab
Payments tab — manage, reorder, and activate payment types
  1. Add payment types — Cash, Card, Bank Transfer, Cheque, Mobile Money, etc.
  2. Reorder — Drag payment types to change the order they appear in the payment dialog.
  3. Deactivate — Disable payment types you don't use instead of deleting them.
🔐
VSMS (Vanuatu Sales Management System)

The VSMS tab configures the connection to the V-SDC (Virtual Sales Data Controller) or E-SDC for fiscal invoice verification as required by Vanuatu tax regulations.

VSMS settings — SDC connection
VSMS Settings — ESDC URL, ESDC Token, PIN, and Test Connection for mutual authentication
🌐 ESDC URL

The URL of the E-SDC or V-SDC endpoint (found on the TaxCore control panel). The POS uses HTTP for E-SDC (local) and HTTPS for V-SDC (cloud).

🔑 ESDC Token

The authentication token for the E-SDC, available on the TaxCore control panel.

📋 Accreditation Number

The POS accreditation number assigned during the TaxCore accreditation process (also shown on the TaxCore control panel).

🔐 PIN

The smartcard access PIN used to identify against the SDC. Found on the TaxCore control panel. ⚠️ Maximum 5 attempts — entering the wrong PIN too many times will lock the smartcard. If locked, you can unlock it from the TaxCore control panel.

🔗 Test Connection

Verifies mutual authentication between the POS and the SDC using the PIN. On success, the POS receives configuration parameters including available tax rates and labels.

🏷️ Tax Rate Mapping

After a successful connection, the SDC tax rates are auto-detected and mapped to local tax configuration. Tax labels (A, E, F, etc.) come directly from the SDC.

VSMS settings — SDC tax rate mapping
SDC Tax Rate Mapping — tax rates and labels received from the SDC after successful authentication
💡
Configuration source: All VSMS settings (ESDC URL, ESDC Token, Accreditation Number, and PIN) are available on the TaxCore control panel. Enter them exactly as shown. Tax labels are mapped from POS tax rates to SDC categories — the POS never uses tax rates other than those defined by the SDC for each category.
ℹ️
System Information

Click the application logo in the sidebar to access System Information. This screen displays:

System Information screen
System Information — manufacturer, software version, serial number, and VSMS status
🏢 Developer

ReefStack Technologies — the software developer.

📦 Software Version

Application version and build number for support and audit purposes.

🔢 Serial Number

Unique device/installation identifier.

🔐 VSMS Status

SDC connection status and registered TIN.

🤖
AI

The AI tab configures integration with OpenAI for intelligent features like product descriptions, categorization, and smart suggestions.

AI settings tab
AI tab — OpenAI API configuration and model selection
🔑
Enter your OpenAI API key to enable AI-powered features. The key is stored securely and only used for your business's requests.
🔌
API

The API tab manages API keys for programmatic access and webhook endpoints for real-time notifications.

API settings tab
API tab — key management and webhook configuration
🔑 API Keys

Generate and revoke API keys for external integrations. Keys are scoped to your business.

🔗 Webhooks

Configure webhook URLs to receive real-time notifications for events like new invoices or payments.

🔗
Connectors New

The Connectors tab links CloudPOS.vu to external systems. Importing data from a connector is done from the relevant module (e.g. Inventory); this tab stores the credentials and connection state.

Connectors settings tab
Connectors tab — LightSpeed Retail (X-Series), Lightpeed X, Xero and Loyverse
🛍️ LightSpeed Retail (X-Series)

Enter the Client ID, Client Secret and Account ID, then Save & Connect and Test Connection. Once authorized, products and customers can be imported from LightSpeed.

Xero: scheduled sales and payments

Connect your Xero organisation, then map sales accounts, tax types and payment methods. Enable automatic posting and choose a daily posting time. The built-in schedule runs even when the app is closed.

Each closed POS Z-report posts as a separate Xero sales invoice. Backoffice B2B sales are grouped into one daily invoice. Recorded payments are applied through the mapped Xero bank accounts, with later B2B payments picked up on subsequent scheduled runs. Unpaid balances remain outstanding.

For separate revenue accounts, enable Post POS to different accounts and select an account for each POS and backoffice. Any source without an override keeps its existing sales mapping.

🔌 Other Connectors

LightSpeed X (OnSite) and Loyverse connectors follow the same pattern — configure credentials, save, test.

💡
The access token is held in our secure proxy — this device never sees the provider data or token. Use Test Connection after authorizing to confirm the link.
🖨️
Printers

The Printers tab configures POS receipt printers and label printers connected to your terminal.

Printers settings tab
Printers tab — POS printer and label printer configuration
  1. Receipt Printer — Configure ESC/POS-compatible thermal printer (USB, Bluetooth, or network).
  2. Label Printer — Set up a barcode/price label printer for shelf labeling.
  3. Paper Size — Choose 58mm or 80mm receipt width.
✉️
Email Template

The Email Template tab customizes the default email sent when you email invoices, quotations, or receipts to customers.

Email Template settings tab
Email Template tab — subject line and body editor with variables
  1. Subject Line — Customizable with variables like {{invoice_number}}, {{customer_name}}, {{total}}.
  2. Email Body — Rich text editor with dynamic placeholders for personalized messages.
🗄️
Database

The Database tab provides low-level database management tools — migrations, backups, and maintenance.

Database settings tab
Database tab — migration status and backup controls
🚨
This tab is intended for advanced users and administrators only. Running migrations or modifying the database schema can cause data loss if used incorrectly.
📥
Import / Export

The Import / Export tab lets you bulk-import products, customers, and transaction data from CSV files, or export your catalog for backup or migration.

Import tab
Import — upload CSV or ZIP files with product and transaction data
Export tab
Export — download product catalog as CSV or ZIP
📤 Export Catalog

Download products, customers, invoices, or chart of accounts as CSV files.

📥 Import Catalog

Upload CSV files to bulk-create products, customers, or inventory. Includes preview and validation before committing.

📂 Transaction Data Import

Import transaction line items from CSV files containing article ID, price, quantity, and other necessary information. Items are matched to the product catalog automatically.

📊 Import History

View all past imports with the option to undo. Ensures data integrity for bulk operations.

📋
Import CSV files using the column headers expected by the system. The import wizard will validate your data and show a preview before committing any changes.
📅
Scheduled Reports

The Scheduled Reports tab lets you configure recurring reports that are automatically generated and sent by email at scheduled times.

Scheduled Reports tab
Scheduled Reports — list of configured reports with frequency, period, send time, and recipients

Each report card shows the report type, frequency, period, send time, and recipient emails. Use the toggle switch to enable or disable a report without deleting it.

Creating a Report

Click ADD REPORT to open the configuration dialog:

Add Scheduled Report dialog
New Scheduled Report dialog — configure report type, frequency, period, send time, and recipients
📊 Report Type

Sales Summary — total sales, tax, and payment breakdown.
Sales by Product — sales grouped by product.
Sales by Category — sales grouped by category.
Customer Balance — point-in-time snapshot of outstanding customer balances (no period selection).
Payment Received — all payments received in the period.

🔁 Frequency

Daily — sent every day at the configured time.
Weekly — sent on the selected day of the week (Mon–Sun).
Monthly — sent on the selected day of the month (1–31).

📅 Period

Previous — covers the completed period (yesterday, last week, last month).
Current — covers the ongoing period so far (today, this week, this month).

🕐 Send Time

The time the report is generated and emailed, in GMT+11 (Vanuatu time).

📧 Recipient Emails

One or more email addresses separated by commas. Reports are sent as HTML emails.

💡
Reports are generated server-side and delivered as HTML emails. You can create multiple reports with different types, frequencies, and recipients.
Chapter 2

Sales

Tax invoices, quotations, proforma invoices, layby advance sales, credit notes and the payment desk

🔄
Sales Document Flow

CloudPOS.vu supports two main sales flows:

📦 Flow 1 — Standard Sale
📝 Quotation → 🧾 Tax Invoice → 💰 Payment

Create a quotation, then convert directly to a tax invoice. Or create the tax invoice directly.

💳 Flow 2 — Layby (Installment / Advance Sale)
📋 Proforma Invoice → 💳 Advance Sale (repeat) → 🧾 Final Tax Invoice

Create a Proforma Invoice for the layby. Collect payments via Advance Sales. When fully paid, use Complete Sale — all advances are refunded via SDC and one final Tax Invoice is created.

Each document type has its own number prefix: Q- for quotations, PI- for proforma invoices, AS- for advance sales, INV- for tax invoices, and CCN- for credit notes.

💡
You can convert a quotation directly to an invoice (skip PI), or quote → PI → invoice step by step. For layaway/installment sales, create advance sales from a PI — the system tracks payments and creates the final tax invoice when fully paid.
🧾
Tax Invoices

The Invoices tab shows all your tax invoices with their current status. This serves as the electronic journal — you can search and filter invoices on demand.

Invoice list
Tax Invoice list — showing all invoices with status, customer, amount, and due date
Invoice search
Electronic journal — search invoices by number, customer name, or amount

Each row displays the invoice number, SDC invoice number, customer name, date, total amount, amount paid, balance due, and status. Click any invoice to view its full details. Use the search bar to find specific invoices, or filter by:

  • Date range — All, Month, Last, Custom.
  • Source — BO (back office) or POS (terminal sales).
  • Status — All, Paid, Recurrent, Part paid, Refunded, Unpaid, Clearing, Cancelled, Voided.

Use the ⋯ button on each row for the action menu (View, Edit content only, Print, Receipt PDF, Print Copy SDC, Email, Change comment, Add recurrence, Make Credit Note, Payment Information, Cancel Payment, Cancel Invoice), and the toolbar buttons to export the list to PDF/CSV or create a new tax invoice.

Statuses

🟡 Unpaid

Invoice issued but not yet paid — balance due equals total. Actions: Record Payment, Make Credit Note, Send, Print, Email, Cancel.

🔵 Sent

Invoice has been emailed to the customer — awaiting payment. Actions: Record Payment, Make Credit Note, Send, Print, Email, Cancel.

🔄 In Clearing

Payment received by cheque — clearing in progress. Automatically changes to Paid once cleared. Actions: Make Credit Note, Print, Email.

🟢 Paid

Invoice fully paid — balance is zero. Actions: Payment Information, Cancel Payment (admin only), Make Credit Note, Print, Email.

🔴 Overdue

Computed automatically — a Sent invoice becomes Overdue after 30 days. Shown with a red badge in the list. Actions: Same as Sent.

⚫ Cancelled

Only for unpaid invoices (no payment received). Issues a Normal Refund via SDC, reverses accounting entries, and stores the refund receipt on the same invoice. Cancel is greyed out for paid invoices — create a Credit Note instead. Blocked when VAT period is locked.

🔒
VAT Period Lock: When VAT is paid for a period, all invoices and purchases in that period are locked. You cannot edit, cancel, or void invoices in a locked period. VAT period statuses: Open (editable) → Locked (VAT calculated, expense created) → Declared (VAT return submitted) → Paid (VAT payment posted).
💡
Cancel vs Credit Note: Per VSMS rules, Cancel is only for unpaid invoices (no money exchanged — error correction). When an invoice has been paid, Cancel is greyed out and you must create a Credit Note (CCN-xxxx) to issue the refund. Both produce a Normal Refund via SDC, but Credit Notes are tracked as separate documents.
➕
Create a Tax Invoice

Click the + button on the Invoices tab to open a new blank invoice form:

Empty invoice form
New invoice form — empty and ready to fill in

Fill in the invoice by selecting a customer, adding line items, and reviewing totals:

Filled invoice form
Invoice form — customer, currency, payment terms, line items with template chips, fiscal information and live summary
  1. Select a customer — Choose from your customer list or create a new one on the fly.
  2. Set the date — Defaults to today; adjust as needed.
  3. Add line items — Search products by name or SKU, or enter a manual line. Quantity, unit price, and tax are calculated automatically.
  4. Review totals — Subtotal, VAT, and total are computed in real time.
  5. Save — The invoice is posted with status Unpaid and the next invoice number is auto-generated (e.g. INV-0009).
Invoice list with new invoice
Invoice list after saving — the new invoice appears as Unpaid

Recurring Invoices

Turn on Set recurrence on the invoice form to make the invoice repeat automatically. Choose a frequency — Every week, Every month, Every year — and the invoice gets a Recurring badge; a Recurrent filter in the list shows all recurring invoices.

Invoice recurrence options
Set recurrence — the invoice header shows a Recurring badge and the frequency picker

Line items support template variables that are replaced with the issue-date values each time the invoice recurs:

  • {(month)} — month name (e.g. September)
  • {(year)} — current year (e.g. 2026)
  • {(year+1)} — next year (e.g. 2027)
  • {(date)} — the invoice date

You can also add or change recurrence later from the invoice row's ⋯ → Add recurrence action.

📝
Quotations

Quotations let you provide a price estimate to a customer before confirming a sale. They have no accounting or inventory impact until converted.

Quotation list with statuses
Quotation list — showing Draft, Sent, Converted, and Voided quotations

Click + to create a new quotation. The form is identical to an invoice but uses the Q- prefix:

Filled quotation form
Creating a quotation — same line-item interface as invoices

After saving, the quotation appears in the list:

Quotation list with new
Quotation list updated with the new draft quotation

Statuses

⚪ Draft

Quotation created but not yet sent. Actions: Edit, Mark as Sent, Convert to PI, Convert to Invoice, Print, Email, Void.

🔵 Sent

Quotation has been sent to the customer — awaiting response. Actions: Edit, Convert to PI, Convert to Invoice, Print, Email, Void.

🟣 Converted

Quotation has been converted to a Proforma Invoice or Tax Invoice — the original quotation is no longer editable.

🔘 Voided

Quotation has been voided — no longer valid. No accounting impact since quotations are not fiscal documents.

💡
Quotations start as Draft and can be converted to a Proforma Invoice or directly to a Tax Invoice using the action menu.
📋
Proforma Invoices

Proforma Invoices are formal price quotes often required for import/export or customs purposes. Like quotations, they have no accounting impact until converted. They are also the starting point for layby/installment sales (Advance Sales).

Proforma Invoice list with statuses
Proforma Invoice list — showing Draft, Sent, Converted, and Cancelled proformas

Create a new PI directly by clicking +:

Filled Proforma Invoice
Proforma Invoice form — uses PI- prefix, valid for 30 days by default

Statuses

⚪ Draft

PI created but not yet fiscalized or sent. Actions: Edit, Mark as Sent, Convert to Invoice, Print, Email, Void.

🔵 Sent

PI has been sent to the customer. If fiscalized, additional actions become available. Actions: Edit, Convert to Invoice, Create Advance Sale, Show Advance Sales, Complete Sale, Print, Email, Cancel Proforma.

🟣 Converted

PI has been converted to a Tax Invoice — either directly or via Complete Sale (all advances settled into final invoice).

⚫ Cancelled

PI has been cancelled via SDC. For fiscalized PIs, a Proforma Refund is issued. No accounting reversal needed.

🔘 Voided

PI has been voided — not a fiscal document, no SDC action required.

💡
Proforma Invoices can be created from scratch or converted from a quotation. When converted from a quotation, the original quotation is marked as Converted. PIs are the starting point for layby sales — use Create Advance Sale to collect installment payments.
💳
Advance Sales

Advance Sales are fiscal invoices used for layaway or installment payments. A customer pays in multiple installments before receiving the goods. Each payment is recorded as a separate Advance Sale (AS) that is signed by the SDC.

Advance Sales list with statuses
Advance Sales list — showing Paid, Cancelled, and Converted advance sales

Each row displays the advance sale number (AS- prefix), customer name, date, amount, payment method, and status. The ⋯ menu provides actions depending on the status.

🟢 Paid

Advance payment received and signed by SDC — increases tax liability.

🔴 Cancelled

Advance has been refunded via SDC — an Advance Refund was issued.

⚫ Converted

Advance was moved to a Tax Invoice as part of the settlement flow.

⚠️
Advance Sales are fiscal documents. Each one is signed by the SDC and immediately increases your tax liability. The revenue is recorded as a customer deposit (liability) — not as sales revenue — until the final Tax Invoice is created.

💳 Advance Sale Actions (Paid)

Advance Sale action menu
Action menu for a Paid advance sale — View, Edit, Print, Receipt PDF, Print Copy (SDC), Email, Change Comment, Cancel Advance Sale, Move as Invoice, Cancel Invoice
👁️ View

Open the advance sale in read-only mode.

✏️ Edit

Open the advance sale for editing.

🖨️ Print / Receipt PDF

Print the advance sale receipt or generate a PDF.

📄 Print Copy (SDC)

Print a verified copy with SDC data (QR code, SDC number).

📧 Email

Send the advance sale receipt to the customer by email.

💬 Change Comment

Edit the comment or description on the advance sale.

❌ Cancel Advance Sale

Issue an Advance Refund via SDC. Reverses the deposit.

🧾 Move as Invoice

Create a Tax Invoice for the remaining balance. The advance is marked Converted.

💳 Advance Sale Actions (Cancelled)

Cancelled advance actions
Action menu for a Cancelled advance sale — limited to viewing and printing

Cancelled advances can only be Viewed, Edited, Printed, Emailed — no further financial actions are available.

➕
Create an Advance Sale

Advance Sales are created from a Proforma Invoice. Open the PI action menu and select Create Advance Sale:

Proforma Invoice list
Proforma Invoice list — the starting point for creating advance sales
PI action menu with Create Advance Sale
PI action menu — select "Create Advance Sale" to start the process

The Create Advance Sale dialog appears:

Create Advance Sale dialog
Create Advance Sale dialog — enter amount, payment method, and optional description
  1. Invoice — Shows the PI number this advance is linked to.
  2. Total — The full PI amount.
  3. Remaining — The unpaid balance (total minus previous advances).
  4. Amount Received — Enter the advance payment amount. Defaults to the remaining balance.
  5. Payment Method — Select Cash, Card, or Bank Transfer.
  6. Description (Optional) — Add a note, e.g. "50% deposit for Project X".
  7. Confirm — The advance is fiscalized via SDC and saved.
⚠️
This increases tax liability immediately. Each advance sale is a fiscal invoice signed by the SDC. It increases your tax liability at the time of payment, not at delivery.

After confirmation, the SDC signs the advance and a "Advance Sale Signed" confirmation appears:

Advance Sale Signed
Advance Sale Signed — confirmation showing SDC invoice number, counter, and date/time

📋 Tracking Advance Sales on a PI

To see all advances for a PI, open the PI action menu and select Show Advance Sales:

Show Advance Sales dialog
Show Advance Sales — payment progress, individual advances, and settlement button

The dialog displays:

  • Donut chart — Visual progress of payments toward the PI total.
  • Summary — Total Paid, Remaining balance, and Progress percentage.
  • Advance rows — Each advance with number, date, amount, status, and SDC verification badge.
  • Cancelled advances — Shown in red with strikethrough.
  • COMPLETE SALE button — Appears when 100% is reached.
💡
You can create multiple advance sales for the same PI. Each one is a separate fiscal document with its own AS- number. The system tracks cumulative payments against the PI total.
✅
Complete Sale (Move as Invoice)

When the customer has finished paying (or at any point during the advance process), you can convert the advance into a final Tax Invoice. This is called settlement or Move as Invoice.

How Settlement Works

  1. All advance sales are refunded via SDC as Advance Refunds — this reverses the tax liability.
  2. One final Normal Sale is created via SDC — this is the legal tax invoice with stock movement and revenue recognition.
  3. All advance sales are marked Converted.
  4. The original PI is marked Converted.
💡
Fiscal net effect: All Advance Sale / Advance Refund pairs cancel out in the SDC. One Normal Sale remains as the legal record. The tax authority sees a clean sale with the correct VAT.

Triggering Settlement

There are two ways to trigger the settlement:

  • From the Advance Sale action menu — Click Move as Invoice on any paid advance sale.
  • From the Show Advance Sales dialog — Click COMPLETE SALE when 100% is reached.

After the settlement is processed, a Normal Sale Signed confirmation confirms the final invoice was created and signed by SDC.

The advance sale list now shows the advance as Converted:

Advance Sales list with converted entry
Advance Sales list — the converted advance is marked with a Converted status badge
⚠️
Convert to Invoice is blocked when a PI has active advance sales. You must use Move as Invoice or Complete Sale to finalize — this ensures the advance refunds are properly issued via SDC.
🎁
Gift Vouchers New

Gift vouchers are sold from the Advances / Vouchers tab: click + New Voucher, enter the value and optional recipient, choose the validity (12 months by default), take the payment, and hand over the printed ticket with its code (e.g. 74ZK5N). Selling a voucher is fiscal — it creates a signed advance sale (AS-) like a layby instalment.

Sell gift voucher
New Voucher — value, recipient, validity, then the payment step

The customer redeems the code as payment on the POS: PAY → SPLIT / VOUCHER tab → REDEEM A VOUCHER → scan/type the code → CHECK. If the voucher is worth more than the sale, the POS requires agreement that no change is given for the remainder.

Voucher redeemed on POS
Redeeming a voucher on the POS — applied to the sale, allocated total updates

Full details — statuses, expiry, cancellation, the no-change rule and FAQ — are in the Gift Vouchers Guide (vouchers-guide.html).

↩️
Credit Notes

Credit Notes are used to refund or credit a customer — for returned goods, pricing corrections, or partial refunds. They are required when a paid invoice needs to be reversed (Cancel is not available for paid invoices).

Credit Note list with statuses
Credit Note list — showing Open, Partial Use, Closed, and Cancelled credit notes

Click + to create a new credit note, or use Make Credit Note from a paid Tax Invoice action menu:

Filled credit note
Credit Note form — select customer, add returned items, and apply credit
  1. Select the customer — Must match the original invoice customer.
  2. Add credit lines — Enter the items or amounts being credited back.
  3. Reference the original invoice — Link the credit note to the invoice it relates to.
  4. Save — The credit note is fiscalized via SDC and reduces the customer's outstanding balance.

Statuses

⚪ Draft

Credit note created but not yet posted. Actions: Edit, Mark as Sent, Print, Email, Cancel.

🔵 Open

Posted and fiscalized via SDC — full credit available. Actions: Apply to Invoice, Refund Customer, Print, Email.

🔵 Partial Use

Partially applied to invoices — some credit remains. Actions: Apply to Invoice, Refund Customer, Print, Email.

🟢 Closed

Fully applied — balance is zero, no further action needed.

⚫ Cancelled

Cancelled — only if no refund has been issued. If the credit note has been partially or fully applied, it cannot be cancelled.

⚠️
Credit notes create journal entries that reverse the original revenue and VAT. Post them carefully — they directly affect your accounting and VAT returns.
🧾
VSMS Fiscalization: Credit notes are sent to the SDC as a Normal Refund — same SDC transaction type as a cancelled invoice. The SDC receives the original invoice number as the referentDocumentNumber, and the transaction type is automatically set to Refund. If SDC signing fails, the credit note cannot be saved — it must be signed successfully.
💡
Cancel vs Credit Note: Per VSMS rules, Cancel is only for unpaid invoices (no money exchanged — error correction). When an invoice has been paid, Cancel is greyed out and you must create a Credit Note to issue the refund. Both produce a Normal Refund via SDC, but Credit Notes are tracked as separate documents (CCN-xxxx).
💰
Receive Payment

To record a customer payment, open the invoice action menu and select Pay Invoice:

Payment dialog
Payment dialog — enter amount, method, date, and reference
  1. Amount — Defaults to the full balance due. Partial payments are supported.
  2. Payment Method — Cash, Card, Bank Transfer, or Cheque (configured in Settings → Payments).
  3. Payment Date — When the payment was received.
  4. Reference — Optional transaction reference or cheque number.
  5. Receipt Number — Auto-generated for your records.

After recording the payment, you can optionally send a receipt to the customer:

Payment recorded dialog
Payment recorded — option to email the receipt to the customer

Payments Tab

The Payments tab in the Sales module is a standalone payment desk with two views:

  • Record payment — record a payment without opening an invoice: search by invoice #, PO # or customer, then enter amount, currency + exchange rate, method and date, plus optional reference and notes.
  • History — every payment received, filterable by period (All, Last 7 Days, Today, This Month, Custom) and source (All / Customer / POS). Summary shows the total received with a per-method breakdown.
Sales Payments tab — record payment
Payments tab — Record payment form (invoice lookup, amount, currency, method, date)
Payment history
Payments tab — History list view with period and source filters
Payment summary
Payments tab — Summary view with total received and payment-method breakdown
⚙️
Action Menus

Every document type has a ⋯ action menu with context-sensitive options. Here's what's available for each type:

🧾 Invoice Actions

Invoice action menu
Invoice action menu — Pay, Send, Print, Duplicate, Cancel
💰 Pay Invoice

Record a payment against this invoice. Opens the payment dialog.

📧 Send

Email the invoice to the customer as a PDF attachment.

🖨️ Print

Generate a printable PDF of the invoice.

📋 Duplicate

Create a copy of this invoice with new line items and number.

❌ Cancel

Only available for unpaid invoices — issues a Normal Refund via SDC. For paid invoices, Cancel is greyed out and you must create a Credit Note (separate CCN document) to refund the customer instead.

🔒
Invoices cannot be deleted. Once created, they become part of your financial record. Use Cancel (unpaid only) to void an invoice via SDC. For paid invoices, create a Credit Note to refund the customer — Cancel is greyed out.

📝 Quotation Actions

Quotation action menu
Quotation action menu — Convert to PI, Convert to Invoice, Send, Print, Duplicate, Cancel, Delete
📋 Convert to PI

Create a Proforma Invoice from this quotation. The quotation is marked Converted.

🧾 Convert to Invoice

Create a Tax Invoice directly from this quotation, skipping the PI step.

📋 Proforma Invoice Actions

PI action menu
Proforma Invoice action menu — View, Edit, Print, Receipt PDF, Print Copy (SDC), Email, Change Comment, Mark as Sent, Create Advance Sale, Show Advance Sales, Complete Sale, Convert to Invoice, Cancel Proforma, Delete
👁️ View / ✏️ Edit

Open the PI in read-only or edit mode.

🖨️ Print / Receipt PDF / Print Copy (SDC)

Print or export the PI. Print Copy includes SDC verification data.

📧 Email

Send the PI to the customer by email.

💬 Change Comment

Edit the comment or internal notes on the PI.

📤 Mark as Sent

Change the PI status to Sent, indicating it has been delivered to the customer.

💳 Create Advance Sale

Create a fiscal advance payment linked to this PI. Opens the advance sale dialog.

📋 Show Advance Sales

View all advance sales for this PI with payment progress and settlement button.

✅ Complete Sale

Settle all advances and create the final Tax Invoice. Available when advances exist.

🧾 Convert to Invoice

Create a Tax Invoice directly. Blocked when the PI has active advance sales.

❌ Cancel Proforma

Cancel the PI. If signed by SDC, a Proforma Refund is issued.

🗑️ Delete

Delete the PI. Only available for unsigned/draft PIs.

🔒
Tax Invoices cannot be deleted — they are permanent financial records. Use Cancel to void an invoice. Delete is only available on Quotations and Proforma Invoices that haven't been signed by SDC.
Chapter 3

Gift Vouchers

Sell vouchers with codes and expiry — and redeem them as payment on the POS

🎁
How Vouchers Work

A gift voucher is a prepaid amount a customer buys (usually as a gift). The customer receives a printed or emailed ticket with a short code (e.g. 74ZK5N). The code can later be used as payment for any sale.

🏷️ Sell voucher (paid in cash/card/…) → 🎫 Customer gets a code → ✅ Redeem on POS as payment
🧾 Fiscal at issue

Selling a voucher creates a signed Advance Sale (AS-) — tax liability is recorded immediately, exactly like a layby instalment. The amount is real money received.

🏪 Per business

Vouchers belong to the business that issued them — a code only redeems in the same business.

⏳ Expiry

Choose the validity when selling (default 12 months). The ticket and the system both show the expiry date. Expired vouchers can no longer be redeemed.

🔁 Full or partial use

A voucher can cover a whole sale or be tendered as part of a split payment. The system tracks redemption on the voucher record.

🏷️
Selling a Voucher

Go to Sales → Advances / Vouchers and click + New Voucher (or the + button). Selling works as a two-step wizard:

Step 1 — Voucher details

New voucher dialog
New Voucher — step 1: value, optional recipient (printed on the ticket), and validity
  1. Voucher value (VT) — the amount the customer pays, e.g. 5000.
  2. Recipient (optional) — a name printed on the ticket, e.g. the gift recipient.
  3. Valid for — 12 months by default; the expiry date is shown before you continue.
Voucher details filled
Value VT 5,000 — valid for 12 months, expiring 30/09/2027

Step 2 — Payment

Voucher payment step
Payment — split the paid amount across Cash, Cheque, Card, Transfer and Credit

Enter how the customer pays — one method or a split (e.g. VT 3,000 cash + VT 2,000 card). When the paid total matches the voucher value, click SELL VOUCHER.

💡
The voucher sale is signed by the SDC like any advance sale, and the voucher receives its unique code (e.g. FP5GHA). The code is printed on the ticket and can be emailed to the customer with the Email receipt option.

Vouchers can also be sold at the POS the same way — the ticket prints with the code for the customer.

📜
Voucher List & Statuses

Vouchers live in the Advances / Vouchers tab next to layby advance sales. Gift vouchers show Gift voucher in the Linked PI column, with the payment received and the remaining balance per row.

Advances / Vouchers list
Advances / Vouchers — gift vouchers and layby advances in one list (ACTIVE, REDEEMED, CANCELLED, PAID)
🟢 ACTIVE

Voucher paid and signed — ready to redeem until it expires.

✅ REDEEMED

Fully used as payment — the invoice that used it is referenced on the voucher.

🔴 CANCELLED

Cancelled before use (see Cancelling a Voucher).

Use the row's ⋯ menu for View, Print Ticket, Receipt PDF, Print Copy (SDC), Email, Change comment and Cancel Voucher.

✅
Redeeming a Voucher on the POS

Vouchers are redeemed as payment during a sale:

  1. Ring up the items, then tap PAY (F1).
  2. Switch to the SPLIT / VOUCHER tab.
  3. Scroll to REDEEM A VOUCHER — scan or type its code, enter or scan the code (e.g. 74ZK5N) and tap CHECK.
SPLIT / VOUCHER tab with redeem field
SPLIT / VOUCHER tab — method rows (Cash, Cheque, Card, Transfer, Voucher) plus the REDEEM A VOUCHER code field

The voucher is looked up and applied automatically — the section shows the voucher number, value and recipient, how much was applied to this sale, and the ALLOCATED total updates:

Voucher applied to a sale
Voucher AS-0029 (VT 5,500) applied to a VT 3,900 sale — allocated in full; the VT 1,600 remainder is subject to the no-change rule

Complete the sale with VALID (or VALID (TKT) for a ticket-style receipt). The receipt shows the voucher as a payment line, exactly like cash or card.

⚠️
Redeeming only marks the voucher when the sale is completed. If you void the sale afterwards, the voucher stays usable.
⚖️
The No-Change Rule

A voucher is not cash: no change is given when the voucher is worth more than the sale. If the voucher covers more than the total, the POS asks for explicit agreement:

No change is given confirmation
VT 5,500 voucher on a VT 3,900 sale — tick “No change is given” to accept that the VT 1,600 remainder is kept by the store
  • Tick the box — the sale is paid entirely by the voucher; the unused remainder (VT 1,600 above) is kept by the store and the voucher is fully used.
  • Don't tick — the voucher is not accepted; pay the sale with another method and keep the voucher for a bigger purchase.
💡
Best practice at the counter: tell the customer before redeeming that leftover value on a voucher is forfeited. For large vouchers, ring up enough items to use the full value.
🧾
Manual Voucher Line

Beside the code lookup, the SPLIT / VOUCHER tab has a plain VOUCHER payment row (Amount + Reference number). Use it for paper vouchers or third-party vouchers that are not in the system: enter the amount tendered and the reference — it counts towards the sale like any other method. System voucher codes should always go through REDEEM A VOUCHER so balances are tracked automatically.

❌
Cancelling a Voucher

An unused voucher can be cancelled from the list: Advances / Vouchers → row ⋯ → Cancel Voucher. Cancellation reverses the advance sale via the SDC (like any advance-sale cancellation), so it should be done by a manager. Once a voucher has been redeemed it can no longer be cancelled — use a Credit Note on the sale that used it instead.

📌
Rules & FAQ

Can a voucher be used partly and keep the rest for later?

No — a voucher redeems in one go: it covers the sale up to its value, and any leftover is forfeited under the no-change rule (or the voucher isn't accepted). Plan the sale to use the full value.

Can a voucher be redeemed in another shop (business)?

No — vouchers are per business. The POS only finds codes issued by the business you are logged into.

What if the customer lost the code?

Find the voucher in Advances / Vouchers (search by value or date), open it with View and re-print or re-email the ticket from the ⋯ menu.

Do vouchers appear in reports and accounting?

Yes. Selling the voucher is an advance sale (shows in Sales → Advances / Vouchers, the Payment Received report, and VAT figures at issue). The redemption is a payment line on the invoice where it was used.

Can a voucher be paid partly with cash and partly on credit?

The payment step accepts a split across Cash, Cheque, Card, Transfer and Credit — but the voucher is only issued once it is fully paid.

Chapter 4

Purchases

Supplier bills, purchase orders, import costing, expenses, credit notes, payments and fixed assets

🔄
Purchase Workflow

CloudPOS.vu supports the full purchase lifecycle. The Purchases page contains 8 tabs for managing all aspects of your procurement:

Purchases tabs overview
Purchases page — all tabs accessible from the top bar
🛒 Purchase Order → 🧾 Supplier Invoice → 📝 Post to Accounts → 💰 Make Payment

Purchase invoices start as Draft — no accounting impact. Once reviewed, you Post to Accounts to create journal entries and change the status to Unpaid. Then record payments to mark them as Paid.

🧾
Purchase Invoices

The Purchase Invoices tab shows all your local supplier bills with their current status — Draft, Unpaid, Partially Paid, Paid, Overdue, or Cancelled.

Purchase Invoice list
Purchase Invoice list — showing all supplier bills with status, supplier, amount, and due date

Each row displays the bill number, supplier name, supplier invoice number, PO number, dates, total amount, paid amount, balance due, and status. Click any invoice to view its full details.

📝 Draft

Newly created invoice — no accounting entries yet. Can be freely edited or deleted.

🟡 Unpaid

Posted to accounts — journal entries created. Awaiting payment.

🟠 Partially Paid

Part of the invoice has been paid — remaining balance is still due.

🟢 Paid

Invoice fully paid — balance due is zero.

🔴 Overdue

Payment is past the due date — follow up with the supplier.

⚫ Cancelled

Invoice has been cancelled — journal entries reversed.

➕
Create a Purchase Invoice

Click the + button on the Purchase Invoices tab to open a new blank invoice form:

Create purchase invoice form
New purchase invoice form — fill in supplier, dates, and line items
  1. Bill No — Auto-generated (read-only). Each bill gets a sequential number.
  2. Supplier — Select from your supplier list. Required field.
  3. Supplier Invoice No — Enter the supplier's own invoice number for cross-referencing. This is the reference number printed on the supplier's document.
  4. PO Number — Link to an existing Purchase Order (e.g. PO-0001). Optional — for tracking which PO this invoice relates to.
  5. Invoice Date — The date on the supplier's invoice. Defaults to today.
  6. Due Date — When payment is due to the supplier. Used for overdue tracking.
  7. Status — New invoices default to Draft. You can also set to Unpaid to post immediately.
💡
Supplier Invoice No is the reference number from your supplier's invoice (e.g. "INV-2026-042"). PO Number links back to a Purchase Order you created in CloudPOS.vu. Both are optional but recommended for record-keeping.

Add line items by selecting products from your stock catalog or entering manual lines. Subtotal, VAT, and total are computed in real time. Save when ready — the invoice starts as Draft.

📝
Draft & Post to Accounts

New purchase invoices start as Draft. In this state, you can freely edit items, change amounts, or even delete the invoice — nothing has been posted to accounting yet.

Draft invoice action menu
Draft invoice action menu — View, Edit, Post in Accounts, Upload Original, Delete Invoice

Once you've verified the invoice is correct, click Post in Accounts to create the journal entries:

Post to accounts confirmation
Post Invoice confirmation — changes status from Draft to Unpaid and creates journal entries
  1. Validate — The system checks that all items are linked to stock products.
  2. Confirm — Click "Create Invoice" to post.
  3. Journal entries created — DR Purchases/Expenses + DR VAT Input → CR Accounts Payable.
  4. Status changes — From Draft to Unpaid.
⚠️
Once posted, the invoice cannot be deleted. Posted invoices are permanent accounting records. If a posted invoice has an error, you must cancel it (which reverses the journal entries) and create a new one.

After posting, the invoice appears in the list as Unpaid:

Unpaid invoice in list
Invoice list after posting — status changed to Unpaid, journal entries created
💰
Make Payment

To pay a supplier invoice, open the action menu on an Unpaid invoice and select Make Payment:

Unpaid invoice action menu
Unpaid invoice action menu — View, Edit Items, Make Payment, Create Credit Note, Upload Original, Cancel Invoice

The payment dialog appears:

Payment dialog
Payment dialog — enter amount, payment method, date, and reference
  1. Amount — Defaults to the full balance due. Partial payments are supported.
  2. Payment Method — Cash, Card, Bank Transfer, or Cheque.
  3. Payment Date — When the payment was made.
  4. Reference — Optional transaction reference or cheque number.

After recording the payment, the invoice status changes to Paid:

Paid invoice in list
Invoice list after payment — status changed to Paid, balance due is zero
💡
Partial payments are supported. If you pay less than the full amount, the status changes to Partially Paid and the remaining balance stays due.
✈️
Foreign Invoices

The Foreign Invoices tab manages import purchases from overseas suppliers. These invoices may involve foreign currency, shipping costs, and customs duties.

Foreign Invoices tab
Foreign Invoices — manage import purchases with foreign currency and shipping
💡
Foreign invoices are used for goods imported from outside Vanuatu. They integrate with the Import Costing tab to calculate the full landed cost including freight, insurance, and customs duties.
📦
Import Costing

Import Costing calculates the full landed cost of imported goods, including the purchase price, freight, insurance, customs duties, and other charges.

Import Costing tab
Import Costing — calculate the full landed cost of imported goods

Import costing links to a Foreign Invoice and allocates all additional costs across the imported items, giving you an accurate unit cost for inventory valuation.

💸
Expenses

The Expenses tab records operational expenses such as rent, utilities, office supplies, and other non-inventory purchases.

Expenses tab
Expenses — record operational and non-inventory expenses

Each expense can be categorized, linked to an expense account, and posted to accounting. Expenses follow the same draft → post → pay workflow as purchase invoices.

↩️
Credit Notes

Credit Notes are used when a supplier issues a refund or credit — for returned goods, pricing corrections, or overpayments.

Credit Notes tab
Credit Notes — track supplier refunds and credits

Credit notes can be created from an existing purchase invoice (via the action menu) or independently. They reduce the amount owed to the supplier and create reversing journal entries.

⚠️
Credit notes create journal entries that reverse the original purchase and VAT input. Post them carefully — they directly affect your accounting and VAT returns.
🛒
Purchase Orders

Purchase Orders are documents sent to suppliers to request goods or services. They are non-financial until converted to a purchase invoice.

Create a PO to:

  • Request a quote or formalize an order with a supplier
  • Track expected deliveries
  • Link purchase invoices back to the original order via the PO Number field
💡
Purchase Orders have no accounting impact. They serve as internal tracking documents. When goods arrive, create a Purchase Invoice and link it to the PO.
Purchase Orders list
Purchase Orders tab — filter by status (Draft, Submitted, Approved, Partial, Received, Cancelled), period and supplier
New Purchase Order form
New Purchase Order — supplier, expected date, and line items
💳
Payments

The Payments tab provides two sub-tabs: Make Payment and History.

Payments history
Payments History — view all supplier payments made
💳 Make Payment

Record a new payment to a supplier — select the supplier, invoice, amount, and method.

📋 History

View all past payments with date, supplier, amount, method, and reference.

🏢
Fixed Assets

The Fixed Assets tab manages long-term assets such as equipment, furniture, vehicles, and machinery.

Fixed Assets tab
Fixed Assets — manage long-term assets with depreciation tracking

Fixed assets can be created from scratch or converted from a purchase invoice. Each asset tracks its purchase cost, depreciation method, useful life, and current book value.

⚙️
Action Menus

Every purchase document has a ⋯ action menu with context-sensitive options. Available actions change based on the document's status.

🧾 Draft Invoice Actions

Draft invoice action menu
Draft invoice — View, Edit, Post in Accounts, Upload Original, Delete Invoice
👁️ View

Open the invoice in read-only mode.

✏️ Edit

Open the invoice for editing. Full editing is available — change items, amounts, supplier.

📝 Post in Accounts

Create journal entries and change status to Unpaid. All items must be linked to stock products.

📎 Upload Original

Upload a scan or photo of the supplier's original invoice document.

🗑️ Delete Invoice

Delete the draft. Only available while status is Draft — posted invoices cannot be deleted.

🟡 Unpaid Invoice Actions

Unpaid invoice action menu
Unpaid invoice — View, Edit Items (Amount Locked), Make Payment, Create Credit Note, Upload Original, Cancel Invoice
👁️ View

Open the invoice in read-only mode.

✏️ Edit Items (Amount Locked)

Edit product assignments only. Amounts are locked because journal entries have been posted.

💰 Make Payment

Record a payment against this invoice. Opens the payment dialog.

↩️ Create Credit Note

Issue a credit note for this invoice — for returns or corrections.

📎 Upload Original

Upload the supplier's original invoice document.

❌ Cancel Invoice

Cancel the invoice and reverse journal entries. Requires admin privileges for posted invoices.

🔒
Posted invoices cannot be deleted. Once a purchase invoice is posted to accounts, it becomes a permanent financial record. Use Cancel Invoice to reverse it (requires admin privileges). Draft invoices can be freely deleted.
Chapter 5

Point of Sale

Terminals, selling, cart, split & voucher payments, layby, refunds, fiscal and sessions

🔄
POS Daily Workflow

The POS follows a structured daily workflow designed for accountability and financial tracking:

📱 Pair Device → 🔑 Cashier Login → 📂 Open Shift → 🛒 Sell → 💰 Payment → 📋 Close Shift → 📊 Z-Report
💡
Shift vs Fiscal Period: A shift is one cashier's working session (open → close). A fiscal period spans one or more shifts and is closed by running the Z-Report (End Day). Multiple cashiers can work consecutive shifts within the same fiscal day.
🖥️
POS Terminals

The POS Management screen lists all your POS terminals with their real-time status. Each terminal card shows:

POS Terminal Management
POS Management — terminal list with status badges, assigned staff, and printer info

Status Badges

🟢 Active / ⚫ Inactive

Whether the terminal is enabled for use. Inactive terminals cannot open shifts.

🟢 Shift Open / 🔴 Shift Closed

Whether a cashier shift is currently running. A ⚠️ warning appears if a shift has been open for more than 24 hours.

🔵 Fiscal Open / 🟣 Fiscal Closed

Whether the fiscal period is open. The fiscal period closes when you run the Z-Report (End Day). A new fiscal period opens automatically with the next shift.

Printer Information

Each terminal card also shows which printers are assigned:

🧾 Receipt Printer

The printer used for customer receipts. Shown in purple with the printer name. If none is assigned, "No receipt printer" is displayed.

🍽️ Order Printers

Kitchen or bar printers that receive order tickets when items are sold. Shown in orange. Multiple order printers are separated by •.

💡
Printers are shown on the terminal card so you can verify at a glance that each terminal has the correct receipt and order printers configured — critical for operations before opening a shift.

Terminal Actions Menu

Terminal actions menu
Terminal actions menu — Edit, Assign Cashier, Edit POS Products, Display Settings, Activate/Deactivate, Delete
⚙️
Terminal Settings

Click Edit from the terminal menu to configure all terminal parameters:

Edit POS Terminal
Edit POS Terminal — configure name, code, location, device type, printers, and pairing

Parameters

POS Name *

Display name for the terminal (e.g., "Main Counter POS #1").

POS Code *

Unique 3–6 character identifier for system tracking. Cannot be changed while a fiscal shift is active.

Location / Branch

Physical location (e.g., "Store 1", "Department A").

Device Type *

Tablet, PC, Mobile, or Cloud POS — determines the icon shown in the terminal list.

Status

Active/Inactive toggle. Inactive terminals cannot be used.

Local IP Address

Auto-detected or manual. Used for customer display connection.

Display Connection

Token + IP for connecting a second-screen customer display. Can be regenerated.

Printer Assignments

Assign receipt and order printers to this terminal.

Device Pairing Code

Auto-generated code used to link a physical device to this terminal. Can be regenerated.

⚠️
The POS Code cannot be changed while a fiscal shift is active. Close the fiscal day (Z-Report) first, then change the code.

Device Pairing Flow

The info card at the bottom explains how to link a device:

  1. Create the terminal — a pairing code is auto-generated.
  2. Open the POS on the target device.
  3. Tap POS LOGIN on the login screen → enter the pairing code.
  4. The device is now linked to this terminal and business.
  5. Cashiers log in with POS ID + PIN for daily use.
👥
Assign Cashiers

Click Assign Cashier to control which staff members can log into this terminal using POS ID + PIN:

Manage Staff panel
Manage Staff — add and remove cashiers authorized to use this terminal

Add Staff

Select a user from the dropdown (shows all business users with their POS ID) and click ADD STAFF.

Assigned Staff List

Each assigned staff member shows their avatar, name, email, POS ID badge, and terminal code badge. Click the 🗑️ icon to remove a staff member.

💡
Only assigned staff can use the POS Login (POS ID + PIN) on this terminal. Users must have a POS ID set in their profile to appear with their POS ID badge.
📦
POS Products Grid

Click Edit POS Products to configure the button layout on the POS selling screen. The grid is 7 columns × 4 rows (28 buttons per page).

Edit POS Products grid
POS Products Grid — 7×4 grid with product buttons, category buttons, and empty slots

Button Types

📦 Product

Linked to a product. Tapping it in selling mode adds the product to the cart.

📁 Category

Opens a submenu grid. Use categories to organize products into groups (Drinks, Food, etc.).

Moving Buttons

To rearrange buttons on the grid:

  1. Long-press a button to select it for moving (highlighted).
  2. Tap the destination slot to move or swap.
  3. If the destination has a button, they swap positions.
  4. Tap the selected button again to cancel the move.

Adding a Button

Add Shortcut Button — Product
Add Shortcut Button — Product type: search products, set label, choose color

Tap an empty slot (or use the + button) to open the Add Shortcut Button dialog:

  • Button Type: Product or Category (segmented toggle).
  • Button Label: Text displayed on the grid button.
  • Select Product: Search by name or SKU (Product type only). Usage indicators show if a product is already on other buttons.
  • Button Color: 8 color options for visual organization.
Add Shortcut Button — Category
Add Shortcut Button — Category type: only label and color, no product link

Product Usage Indicators

🟠 New

Product is not on any button — good candidate to add.

🟢 In use

Product is already on one button.

🔴 x2+

Product is on multiple buttons — may be intentional or a duplicate.

Copy from Another Terminal

Use the Copy POS Products button in the header to clone the entire grid layout from another terminal. This replaces all buttons on the current terminal — use with caution.

🖥️
Display Settings

Click Display Settings to configure the second-screen customer display:

Display Settings
Display Settings — WebSocket server, customer display options, and idle content

WebSocket Server

Enables a local WebSocket server that customer/kitchen displays connect to. Requires the desktop or mobile app (not available on web).

  • Enable display server — start/stop the WebSocket server.
  • Server port — must be unique per terminal (default: 8080).
  • Server status — shows Running/Stopped in real time.

Customer Display

  • Enable customer display — show cart totals and payment info on the second screen.
  • Show live cart updates — display items as they are added to the cart.
  • Show ads during sale — display promotional content during an active sale.
  • Idle slide interval — seconds between image/video transitions when idle.

Idle Content

Configure images and videos to display when the POS is idle. Add URLs (one per line) for images or videos to show as a slideshow on the customer display.

🔐
Login & Device Pairing

CloudPOS.vu has two login paths from the login screen:

Login screen with POS LOGIN button
Login screen — email/password for admin, POS LOGIN for cashiers (always visible)
📧 Email + Password

Admin/back-office login. Full access to all modules including POS Management, Settings, Reports.

🏪 POS LOGIN

Cashier quick login using POS ID + PIN. Always visible — handles pairing automatically if device is not yet linked.

First-Time Device Pairing

When POS LOGIN is tapped on an unpaired device, the Pair Device dialog appears:

Pair Device dialog
Pair Device — enter the 6-character pairing code from POS Management → Edit Terminal
  1. Get the pairing code from POS Management → Edit Terminal → Device Pairing Code.
  2. Enter the code on the POS device.
  3. The code is unique per database — it automatically links the device to the correct business and terminal.
  4. On success, the device stores the binding and proceeds to the POS Login.
💡
The pairing code is unique across all businesses in the database. One code links the device to exactly one terminal in one business — no ambiguity.

Cashier Login (POS ID + PIN)

After pairing (or if already paired), the POS Login dialog appears:

POS Login dialog
POS Login — enter POS ID and PIN to access the selling screen

The cashier enters their POS ID (numeric) and PIN to authenticate. Only staff assigned to this terminal can log in.

🖥️
Opening the POS

When accessing POS from the back office (sidebar → Open POS), you first select a terminal:

Select POS Terminal
Select POS Terminal — choose which terminal to open
⚠️
Back-office "Open POS" is for administrators to verify flow and behaviour, not for actual sales. Real sales should be done from the POS Login (POS ID + PIN) on a paired device.

After selecting a terminal, POS authentication is required:

POS Authentication
POS Authentication — enter credentials to access the terminal

If no shift is open, the Open Shift dialog appears:

Open Shift dialog
Open Shift — enter opening cash float to start a cashier shift

The Opening Cash is the amount of money in the cash drawer at the start of the shift. This is used for cash variance reporting in the Z-Report.

🛒
Selling Screen

The main POS selling screen is divided into two areas: the product grid (left) and the cart panel (right):

POS main selling screen
POS Selling Screen — product grid on the left, empty cart panel on the right

Adding Products

Tap a product button on the grid to add it to the cart. The cart updates in real time with quantity, price, and tax. You can also find products by searching by name or by scanning a barcode (GTIN) with a USB or Bluetooth barcode scanner.

Product search by name
Product search — type a name in the search field to filter products, or scan a barcode for instant GTIN lookup
💡
Barcode scanning: USB and Bluetooth barcode scanners work as keyboard-wedge devices. Scanning a barcode enters the GTIN into the search field and adds the matching product to the cart automatically. Connected devices (barcode readers, scales) do not interfere with standard POS operations.
Cart with items and item note
Cart with 2 items — item note dialog open to add "ketchup" to a product

Item Notes

Double-click on a cart item to add an item note. Notes are printed on:

  • The customer receipt
  • The kitchen/order ticket (if the product is set to print to an order printer)
💡
Use item notes for special instructions like "no onion", "extra sauce", "well done" — anything the kitchen or customer needs to know.
📝
Cart Actions

Remove Item from Cart (Void Function)

Tap the ✕ button on any cart item to instantly remove it before issuing the fiscal invoice. This is the Void Function — individual items can be removed without cancelling the entire sale.

Cart with items — each has a ✕ remove button
Cart with items — each line has a ✕ button to remove it
Cart after removing an item
After tapping ✕ — item removed instantly

Change Quantity

Quantity dialog
Enter Quantity — numpad to change the quantity of a cart item

Tap the qty button on a cart item to open the quantity dialog. Use the numpad to set the exact quantity.

Apply Discount

Discount dialog
Enter Discount % — apply a percentage discount to a cart item

Apply a discount percentage to an individual cart item. The discount is reflected in the line total immediately.

💰
Payment

Tap Pay to open the payment dialog:

Payment dialog
Payment dialog — select customer, payment method, and process the sale

Payment Features

👤 Customer Selection

Optionally link the sale to a customer. Search by name or create a new customer on the fly.

💵 Payment Methods

Cash, Card, Bank Transfer, Cheque, Mobile Payment — configured in Settings → Payments.

✂️ Split Payment

Combine multiple payment methods for one sale. Add amounts until balance reaches zero.

❌ Void Sale

Cancel the sale. Records it as a voided invoice (status: "voided", amount: 0) with all original products visible — used to track staff cancellations.

🔒
Void Sale does NOT delete the transaction. It creates a voided invoice with all original line items preserved (but amounts zeroed). This ensures every cancelled sale is auditable — you can see who voided what, when, and why. The void reason is recorded along with the staff member who performed it.

Split Payment

Split payment
Split Payment — multiple payment methods (Cash, Cheque, Card) available on the same invoice
Split Payment — cash and card combined, balance at zero

Split payment lets you divide the total across multiple payment methods. Add each method with its amount — the remaining balance updates in real time. When the balance reaches zero, you can complete the payment.

🎛️
POS Buttons Reference

The POS top bar and cart panel provide quick access to all common actions. Here's what each button does:

Top Bar Buttons

🔄 Refresh / Resync

Reloads products and syncs pending offline data with the server. Use when products were updated in back office and need to appear on the POS.

🔓 Lock / Lock Open

Locks the POS screen. No sales or actions can be performed while locked. Requires re-authentication (POS ID + PIN) to unlock. Use when stepping away briefly.

💰 Open Cash Drawer

Opens the physical cash drawer connected to the receipt printer. Disabled when POS is locked.

🛡️ Admin Toggle

Switches admin mode on/off. Enables grid editing, price changes, and access to the admin menu (⋯).

🚪 Sign Out

Signs out the current cashier and returns to the login screen.

⬅️ Back

Returns to the back office (admin only — hidden for cashiers).

Cart Panel Buttons

🗑️ Clear Sale

Empties the entire cart. Only visible when items are in the cart.

✂️ Discount

Opens the discount dialog for an individual cart item. Enter a percentage to apply.

💰 Pay

Opens the payment dialog to complete the sale. Only active when items are in the cart.

🖨️ Reprint

Reprints the last receipt. Useful when the customer requests a copy or the printer jammed.

↩️ Refund

Opens the refund dialog to process a return. Search for a past invoice and select items to refund. A Reference Number linking to the original SDC Invoice Number is mandatory for all refunds.

💳 Pay Account

Opens a dialog to record a payment against a customer's outstanding account balance (on-account sales).

Admin Menu (⋯)

Only visible when Admin mode is toggled on. Additional options:

🖥️ Select Terminal ID

Switch to a different POS terminal without signing out.

🔗 Activate Device

Enter a pairing code to link this device to a terminal.

🗑️ Clear All Buttons

Removes all shortcut buttons from the current grid page. Use before reorganizing.

✨ Auto-add Categories & Products

Automatically populates the grid with categories and products from your inventory.

↔️ Swap Cart Side

Moves the cart panel from right to left (or vice versa).

🖼️ Show Only Products with Images

Filters the product grid to show only products that have an image assigned.

⏻ Close POS & Print Z Report

Closes the POS screen and prints the Z-Report in one action. Used at end of day.

🛡️
Admin Mode

Toggle the Admin switch in the top bar to enter supervisor mode. This enables grid editing and administrative actions directly from the POS screen.

Admin mode
Admin Mode — product grid in edit mode, admin toggle highlighted
💡
Admin Mode is for supervisors to modify the product grid, change prices, and access management functions without leaving the POS screen. Regular cashiers cannot toggle Admin Mode.

Admin Menu

Admin menu
Admin menu — X-Report, Z-Report, Close Shift, Edit Button, Edit Price, and more

Edit Shortcut Button

Edit shortcut button
Edit Shortcut Button — change label, product, and color of an existing button

Edit Sell Price

Edit sell price
Edit Sell Price — change the selling price of a product directly from the POS
⚠️
Editing the sell price from Admin Mode updates the product's actual sell price in the database — not just for this session. This affects all terminals and future sales.
📂
Shift Management

Close Shift

Close shift dialog
Close Shift — review totals and close the cashier's shift

Shift Closed

Shift closed confirmation
Shift Closed — with option to print the X-Report for this shift

After closing a shift, you can print an X-Report — a summary of sales during that shift without closing the fiscal period.

Post-Shift Options

Shift closed screen
After shift close — Open New Shift or End Day (Z-Report)
📂 Open New Shift

Start a new cashier shift. The fiscal period remains open — sales continue accumulating for the Z-Report.

📊 End Day

Run the Z-Report and close the fiscal period. This is typically done at the end of the business day.

Z-Report (Fiscal Close)

Z-Report
Z-Report — end-of-day financial summary with all payment breakdowns

The Z-Report shows the complete financial summary for the fiscal period: total sales, tax collected, payment method breakdowns, cash variance, and discounts. Click Close Z Report to finalize.

⚠️
Closing the Z-Report is irreversible. The fiscal period is closed and a new one opens with the next shift. This is required for accurate VAT and accounting reporting.

Stock Sales Report

Stock Sales Report
Stock Sales Report — product-level breakdown of quantities sold

After closing the Z-Report, the Stock Sales Report shows exactly which products were sold and in what quantities — useful for inventory reconciliation.

↩️
Refunds

Tap the Refund button in the cart panel to process a return. The refund dialog shows past invoices — select the original invoice, then choose items to refund. A Reference Number (the original SDC Invoice Number) is mandatory for all refund transactions.

Refund dialog — select invoice
Refund dialog — select the original invoice to refund
Refund confirmation with payment method
Refund confirmation — select payment method for the refund
💡
Fiscal refunds: Refunds are fiscalized through the SDC with a Reference Number linking to the original sale. The SDC issues a Refund Invoice (NR) that reverses the tax liability of the original transaction.
🖨️
POS Printers

Navigate to Settings → Printers to manage receipt and order printers:

POS Printers list
POS Printers — list of configured printers with connection type and status

Add Printer

Add Printer form
Add Printer — configure name, connection type, printer type, and paper size

Printer Configuration

Printer Name

Display name (e.g., "Main Receipt", "Kitchen Ticket").

Connection Type

Network (IP/port), Bluetooth (MAC address), or USB (Vendor/Product ID).

Printer Type

Printer protocol — Custom, Epson, Star, etc.

Paper Size

58mm or 80mm — must match the physical printer.

💡
After creating a printer, assign it to a terminal via POS Management → Edit Terminal → Printer Assignments. You can designate one printer as the receipt printer and others as order printers (kitchen/bar tickets).
🧾
Fiscal Invoices

Every completed sale is fiscalized through the SDC and can be issued in printed or electronic form:

🧾 Thermal Receipt

Printed directly on the connected receipt printer (58mm or 80mm). Includes SDC header (TIN, Company, Store, Address, District), items with tax labels, tax breakdown, QR code, and SDC metadata.

📄 Receipt PDF (A4)

Full-page fiscal receipt PDF with all SDC data, QR code, and tax labels. Available from the invoice action menu → "Receipt PDF".

✉️ Email Fiscal Invoice

Send the fiscal invoice as a PDF attachment via email. Includes a clickable "SDC Invoice Verification" hyperlink, replacing the QR code for electronic delivery per TaxCore specification.

📋 Copy Invoice

Print a verified copy with SDC data via "Print Copy (SDC)" in the action menu. Requires the original SDC Invoice Number as reference.

Fiscal receipt PDF
Fiscal receipt PDF — showing SDC header, items with tax labels, tax breakdown, and SDC metadata
Email fiscal invoice dialog
Send Invoice by Email — fiscal invoice PDF attached with SDC verification link in the email body
💡
Price & tax rounding: All monetary values are rounded to whole Vatu (no decimals) using standard rounding (round down if < 5, round up if ≥ 5). Tax amounts are calculated per line item and summed. The POS uses only tax rates received from the SDC — no manual rate overrides are possible for fiscalized invoices.
🕒
POS Sessions New

The POS Sessions tab in POS Management shows every cashier shift across all terminals — open and closed — with cash-drawer figures and variances.

POS Sessions
POS Sessions — shift, terminal, cashier, sales, status, fiscal state, opening/closing cash and variance

Filter by terminal and date range (Today by default). Chips at the top show how many sessions are Active, Closed and the Total. This is the fastest way to audit who opened a shift, when, and whether the counted cash matched.

🧾
POS Reports (X/Z) New

The POS Reports (X/Z) tab lets the back office print an X-Report (mid-shift snapshot) or review the Z-Report (end-of-day fiscal close) for any terminal — without walking to the device.

POS X/Z Reports
POS Reports (X/Z) — pick a terminal, then open the X-Report or Z-Report view
Chapter 6

Shift & Day Close

Shifts, X-Report, Z-Report and end of day

🔄
Quick Reference
📂 Open Shift → 🛒 Sell → 📂 Close Shift → 📊 End Day (Z-Report)
📂 Shift

One cashier's working session. A cashier opens a shift, processes sales, then closes it. Multiple shifts can run in one day.

📊 Fiscal Day

Spans one or more shifts. Closed by running the Z-Report (End Day). A new fiscal period opens with the next shift automatically.

💡
Typical day: Cashier 1 opens shift → sells → closes shift → Cashier 2 opens shift → sells → closes shift → Manager runs End Day (Z-Report) to close the fiscal period.
📂
Open Shift

When a cashier logs in and no shift is open on the terminal, the Open Shift dialog appears automatically.

Open Shift dialog
Open Shift — enter the opening cash float to start the shift

Steps

1

Count the cash in the drawer at the start of your shift.

2

Enter the amount in the Opening Cash field.

3

Click OPEN SHIFT — the shift is now active and you can start selling.

💡
The opening cash amount is used to calculate cash variance in the Z-Report (expected cash vs actual cash). Always count and enter the correct amount.

After opening, the POS selling screen is ready to use. The shift status badge on the terminal card changes to SHIFT OPEN.

📂
Close Shift

When the cashier finishes their session, click Close Shift in the POS top bar.

Close Shift dialog
Close Shift — count the cash in the till and enter the amount

Steps

1

Count the cash in the till.

2

Enter the counted amount in the dialog. The difference (vs expected cash) is calculated automatically.

3

If there is a difference, provide a reason (required when cash doesn't match).

4

Click CLOSE SHIFT to end the shift.

Shift Closed
Shift Closed — with option to print the X-Report

After closing, you can print the X-Report — a summary of the shift's sales without closing the fiscal period.

💡
The X-Report is a mid-day report. It shows sales totals but does not close the fiscal period. You can print it anytime without affecting the day.
🔀
After Shift Close — What Next?

After closing a shift, the POS shows two options:

Shift closed options
After shift close — Open New Shift or End Day
📂 Open New Shift

Start a new cashier shift. The fiscal period remains open. Choose this when another cashier is taking over, or when you're continuing sales.

📊 End Day

Run the Z-Report and close the fiscal period. Choose this at the end of the business day when all sales are done.

⚠️
End Day should only be done once per day, after all cashiers have closed their shifts. It closes the fiscal period and generates the final Z-Report for accounting.
📊
End Day — Z-Report

Click End Day to open the Fiscal Period Report (Z-Report). This is the final report of the day.

Z-Report
Z-Report — complete financial summary for the fiscal period

What the Z-Report Shows

💰 Total Sales

Gross sales for the entire fiscal period (all shifts combined).

🧾 Tax Collected

VAT breakdown by rate — needed for VAT returns.

💵 Payment Breakdown

Total per payment method: cash, card, bank transfer, etc.

📊 Cash Variance

Expected cash vs actual cash — based on opening cash, sales, and closing cash.

Steps

1

Review the report — verify sales totals, tax, and payment breakdowns.

2

Click CLOSE Z REPORT to finalize the fiscal period.

🔒
Closing the Z-Report is irreversible. The fiscal period is permanently closed. A new fiscal period opens automatically with the next shift. This is required for accurate VAT and accounting reporting.

Stock Sales Report

After closing the Z-Report, the Stock Sales Report appears showing exactly which products were sold and in what quantities:

Stock Sales Report
Stock Sales Report — product-level breakdown for inventory reconciliation

Use this report to reconcile inventory and verify stock levels before the next business day.

❓
Common Questions

Can I open multiple shifts in one day?

Yes. Each cashier opens and closes their own shift. The fiscal period spans all shifts until you run End Day.

What happens if I forget to close a shift?

A ⚠️ warning appears on the terminal card after 24 hours. The shift can still be closed normally. The next shift cannot open until the current one is closed.

Can I print the X-Report without closing the shift?

Yes. The X-Report can be printed at any time from Admin Mode. It shows current totals without closing anything.

What's the difference between X-Report and Z-Report?

📊 X-Report

Mid-day snapshot. Can be printed anytime. Does not close anything. Resets nothing.

📊 Z-Report

End-of-day final report. Closes the fiscal period. Irreversible. Required for VAT reporting.

Do I need to close all shifts before running End Day?

Yes. All shifts must be closed before you can run the Z-Report. Close each cashier's shift first, then End Day.

Chapter 7

Receipt & Order Printing

Printer connections, routing rules and real-world setups

🖨️
1 · Two kinds of printing

CloudPOS prints two different kinds of tickets, configured in different places:

Customer receiptOrder chit (kitchen/bar)
WhatThe fiscal/sales receipt handed to the customer at payment. A short preparation ticket (items + quantities + notes) for kitchen or bar staff.
Printed onThe terminal's Receipt Printer — assigned per POS in POS Management. The printer assigned to each product ("On-order printer"), constrained by the terminal's Order Printers list.
WhenAt payment (and reprints / fiscal copies). At payment, and for restaurant held orders (ORDER / ADD-ON chits).
ℹ️
Printers themselves are defined once per business in Settings → Printers and are then available to every POS terminal. Assigning them to terminals decides who prints what.
📇
2 · The printer list — Settings → Printers

All printers of the business live here. Each row shows its name and connection: USB (Vendor/Product ID), Network (IP : port) or CloudPOS Print Proxy.

Settings → Printers — the business-wide printer list (POS Printers tab).
Settings → Printers — the business-wide printer list (POS Printers tab).

Use + Add Printer to register a new one:

Add Printer — name, connection type, printer type (grouping label), paper size and network address.
Add Printer — name, connection type, printer type (grouping label), paper size and network address.

Connection types

TypeUse it whenNotes
Network (IP Address)The printer is a WiFi/Ethernet thermal printer on the same network as the POS device. Port is almost always 9100. Recommended type for kitchen/bar printers shared between POS.
USB (for desktop/mobile app)The printer is plugged into the POS device itself. On the web version no device fields are needed — printing goes through the CloudPOS Print Proxy, which uses the printer selected in its own config page.
CloudPOS Print ProxyWeb POS printing to a printer attached to (or reachable from) the PC running the local proxy app.The proxy token must equal the terminal name.

Editing a printer

Click a row to edit it. Network printers expose their IP/port; USB printers on the web show the "USB via printing proxy" notice instead of device fields:

Network printer — IP address and port (9100).
Network printer — IP address and port (9100).
USB printer on web — the proxy owns the device connection.
USB printer on web — the proxy owns the device connection.
⚠️
The Printer Type field (Receipt / Kitchen / Label…) is for grouping and labels only — routing is decided by the terminal and product assignments described below.
🧾
3 · Receipt printing — assign a receipt printer to each POS

Open POS Management (sidebar → POS). Every terminal card shows which printers are assigned to it — the purple Receipt: badge and the orange order-printer chips:

POS Management — each terminal shows its Receipt printer badge and order-printer chips.
POS Management — each terminal shows its Receipt printer badge and order-printer chips.

Open the terminal's ⋮ menu → Edit:

Terminal ⋮ menu — Edit, Assign Cashier, Edit POS Products, Display Settings…
Terminal ⋮ menu — Edit, Assign Cashier, Edit POS Products, Display Settings…

The Edit panel contains everything printing-related for this POS:

Edit POS Terminal — Receipt Printer section (with logo toggle) and Order Printers (Kitchen/Bar).
Edit POS Terminal — Receipt Printer section (with logo toggle) and Order Printers (Kitchen/Bar).
  • Receipt Printer — the customer-receipt printer for this POS. The "Print business logo on receipts" toggle sits right under it.
  • Print Proxy (web) — for the web version: prints are forwarded to the local CloudPOS Printing app on that machine (the proxy token is the terminal name). Native Android/Windows POS print directly.
  • Order Printers (Kitchen/Bar) — see the next chapter.
ℹ️
The receipt template itself (header/footer lines, what appears on the ticket) is edited in Settings → Printers → POS Receipt Template tab.
🍳
4 · Order printing (kitchen / bar)

Order chits are driven by two settings that must agree:

a) The product — open the product in Inventory and set On-order printer (Classification & availability section). Products set to No printing never produce order chits:

Product form — the On-order printer field. Each product can target its own kitchen/bar printer.
Product form — the On-order printer field. Each product can target its own kitchen/bar printer.

b) The selling terminal — the product's printer must also be in the selling POS's Order Printers (Kitchen/Bar) list (screenshot in chapter 3). This list is the terminal's allow-list: an item whose product printer is not on it is skipped for order printing.

⚠️
Rule of thumb: the product decides where a chit goes; the terminal decides whether that destination is allowed. A product assigned to the Bar printer only produces a chit on POS whose Order Printers list contains the Bar printer.

At payment, items are grouped per printer (one chit each, with quantities and item notes). For restaurant held orders the chit is titled ORDER / ADD-ON and shows the table reference instead of the invoice number.

🏪
5 · Common setups

Small shop — one printer does everything

Assign the same printer to the terminal as Receipt Printer and add it as an Order Printer. Receipts and order chits both print on it; assign "On-order printer" only on products that actually need a preparation ticket.

Restaurant with a bar

The bar's receipt printer is a normal printer in the list. Assign it as an Order Printer on every POS in the restaurant, and set On-order printer = Bar printer on the drinks products. Drinks chits print at the bar from any POS that sells them; food can route to a kitchen printer the same way.

Two POS, no kitchen printer — "each POS prints its own orders"

Use the per-terminal switch in the terminal form: Redirect any print order to this printer (v1.3.56+). When enabled on a POS, every order chit from that POS — whatever the products say — prints as one ticket on that POS's default receipt printer. Enable it on both POS and each prints its own orders locally. Requires a default receipt printer; otherwise the terminal falls back to normal routing.

ℹ️
The redirect switch lives in POS Management → terminal → Edit, right under Print Proxy (web).
🛠️
6 · Troubleshooting
SymptomCheck
No order chit for an itemProduct's On-order printer set? Is that printer in the selling terminal's Order Printers list? (Items with an unassigned printer are skipped.)
Receipt doesn't print on webTerminal's Print Proxy (web) on? Proxy app running, and its token equals the terminal name?
Network printer unreachablePrinter and POS on the same network, correct IP, port 9100 not blocked.
USB printer prints on one device onlyNormal — USB is local to the machine the proxy app runs on. For shared printing use a network printer.
Wrong printer after changing an IPPrinter edits invalidate cached assignments within 5 minutes — restart the POS or wait for the cache to refresh.
Chapter 8

Importing Data

Chart of accounts, customers, suppliers, sales invoices and supplier bills from CSV

🧭
Overview

Go to Settings → Import/Export, then pick a data type. Stock/Products has been importable for a while — Customers and Suppliers use the exact same pattern: paste or upload a CSV, match its columns to CloudPOS fields, review a preview, then import.

Data Type selector: Stock/Products, Customers, Suppliers
Settings → Import/Export — choose the data type first, then the Import tab
📎 Paste or upload

Paste CSV text directly, or use Open File to load a .csv/.txt file from disk.

🔀 Smart column mapping

Your CSV's headers are auto-matched to the right field. Nothing is ever silently dropped — unmatched columns show as "— none —" for you to assign.

👁️ Preview before writing

See exactly which rows are new and which will be skipped before anything touches the database.

🛡️ Never overwrites

A row that matches an existing customer or supplier is skipped, not updated — your manually-edited records are never silently changed by an import.

📒
Importing Chart of Accounts

This is the first import step — before Customers, Suppliers, or anything else — because every other importer's optional account-code fields (AR, AP, Expense) reference codes from this chart. Only available before the business has recorded any sales or purchases.

⚠️
This reconciles, not deletes-and-replaces. A literal delete-then-insert isn't possible — too many other tables reference accounts. Instead: existing accounts whose code matches a row are updated in place, new codes are added, and existing accounts not in your file are removed (or kept-but-deactivated if something still references them). All 20 of CloudPOS's built-in default account codes must be present with the correct type, or the import is blocked with the exact list of what's missing.
🏗️ Hierarchy via Parent Account Code

Map a parent_code column to build the account tree. If your source export doesn't have an explicit parent-code column (only implies hierarchy through code-number ranges), accounts still import correctly — they just come in flat, without the grouping.

💰 Opening balances, reviewed separately

Add an optional balance column to post an opening trial balance in the same file. This is a distinct, second confirmation step shown after accounts are created — you see the computed Total Debits, Total Credits, and Owner's Equity plug before anything is posted, and it can only be done once per business (same one-shot rule as the manual Opening Balances screen, which this reuses).

📊 Header rows are structure only

If your source system marks rollup/summary rows (e.g. "Assets", "Current Assets") with a Header flag, map that column to is_header and mark those rows H. They still import as accounts for the hierarchy, but their balance is never posted — it's a subtotal of the accounts underneath, not an independent balance.

➕➖ Sign convention

Positive = debit, negative = credit. This is an assumption, stated plainly in the balance-posting step — review the computed Debit/Credit/plug totals before confirming, since an implausible plug (e.g. assets showing mostly as credits) is the signal that a source export uses a different convention.

👥
Importing Customers

Click the Customers chip. Only name is required — every other column is optional and assigned in the mapping step. Use LOAD SAMPLE to see a working example, or paste your own file's data straight in.

Customers import — CSV format instructions and data input
Customers → Import — CSV format card, paste box, and file actions
  1. Paste or load your CSVPaste your data (with a header row) into the box, or click OPEN FILE. Click LOAD SAMPLE to try it with example data first.
  2. Click PARSE CSVCloudPOS reads the header row and auto-guesses which column fills which field.
  3. Review the column mappingConfirm or correct each field's assigned column (see Column Mapping Explained below). Name is the only field that must be resolved before continuing.
  4. Check the previewEvery row is shown with a status — New or Skip (exists) — before you commit anything.
  5. Click IMPORT ALL NOWOnly the New rows are written. Existing customers are left untouched.
Customer column mapping step
Map CSV Columns to Fields — every CloudPOS customer field, with the auto-detected CSV column
Customer preview showing 3 new rows ready to import
Preview — 3 new customers, ready to import
Customer import completed successfully
Import Completed Successfully — counts confirm what was written
💡
Opening Balance is an explicit, optional field. If mapped, it writes straight to the customer's balance — it is not backed by a journal entry, so accounting reports won't reconcile against it until a manual opening entry is posted. Leave it unmapped to start every imported customer at VT 0.
🏭
Importing Suppliers

Suppliers import works identically to Customers — same paste/upload, mapping, preview, and skip-on-duplicate behaviour — just with supplier-specific fields (supplier_code instead of client_code, no loyalty/pricing fields).

Suppliers import — CSV format instructions and data input
Suppliers → Import — same flow, supplier-specific format hints
Supplier column mapping step
Map CSV Columns to Fields — Supplier Code, Business Number, Active, Credit Limit, etc.
Supplier preview showing new rows ready to import
Preview — new suppliers ready to import
Supplier import completed successfully
Import Completed Successfully
🔀
Column Mapping Explained

Every exporter names its columns differently. Instead of forcing an exact header format, CloudPOS lists every importable field and lets you assign a CSV column to each one — field-first, not column-first, so a required field that's missing from your file is always visible, never silently skipped.

How auto-matching works

When you click PARSE CSV, each of your CSV's headers is matched in three passes:

  1. Exact / known alias — e.g. client code, code, and account code all match Client Code.
  2. Fuzzy match — close spelling or wording variants are matched if the confidence is high enough.
  3. Unmatched — anything left is shown as — none —. Nothing is dropped without you seeing it.

Fixing the mapping

Each field row has a dropdown listing your CSV's columns. Pick a different column, or — none — to leave a field unmapped. Assigning a column to a field automatically un-assigns it from wherever it was before — one CSV column can only ever fill one field at a time.

⚠️
Name is the only required field. The green banner at the bottom of the mapping step confirms when you're ready to continue; a red banner lists exactly what's still missing.

Use Reset to auto-guess to discard manual changes and re-run the automatic matching, or Back to pick a different file entirely.

🛡️
Duplicate Protection

Re-importing a file — on purpose or by accident — never creates duplicates and never silently overwrites data you've already edited in the app. Every row is matched against existing records before anything is written:

1️⃣ By code, if present

If the row has a client_code / supplier_code, that's matched against existing records first.

2️⃣ By name + email, if not

Rows with no code fall back to matching on Name and Email together.

A match means the row is skipped — never updated — and counted separately in both the preview and the final result.

Preview showing all rows skipped as existing
Re-importing the same file — every row correctly detected as already existing and skipped
✅
This makes it safe to re-run an import if you're not sure whether it already went through — nothing gets duplicated or clobbered.
🧾
Importing Sales Invoices

Import your old system's sales invoices as historical records — searchable, printable, and correctly reflected in each customer's balance, but not re-posted as live sales. Import your Chart of Accounts and Customers first — a warning banner reminds you if either looks incomplete, but it won't block the import; any row referencing a customer that doesn't exist yet will simply fail with a clear message.

⚠️
One row per line item. Unlike Customers/Suppliers, an invoice can have several products or services on it — put one CSV row per line item, and repeat the same invoice_number on every row that belongs to the same invoice. Rows with no invoice_number are each treated as their own single-line invoice.
🧮 Real tax math, no accounting entries at import time

VAT and discounts are calculated the exact same way a manually-entered invoice is — but no journal entry is posted to the books at import time, and no fiscal (VSMS) signature is ever requested. If you later run Repost Accounting (Settings → Database), imported invoices are included like any other invoice and get real journal entries built from them, recomputing your books from the full invoice history.

💰 Customer balances stay accurate

Each affected customer's balance is recalculated from the imported invoices' unpaid amounts. If you already set an Opening Balance for that customer via Customer import, this supersedes it — the invoices become the source of truth.

🔢 Invoice numbers are preserved

Give a row your old system's invoice number to keep it on the printed invoice and in reports; leave it blank to auto-generate a new one. Re-importing a file that includes a number already in CloudPOS skips that invoice — never overwrites.

📦 Stock is never touched

Imported line items are never linked to a product record, so importing historical invoices can't change today's on-hand stock counts.

📥
Importing Supplier Bills

Same idea as Sales Invoices, for what you owe instead of what you're owed. Local supplier bills only — VAT-registered domestic vendors. This is not for foreign/import purchases (customs duty, landed cost, dual-currency import costing) — that has its own dedicated flow elsewhere in the app. Import your Chart of Accounts and Suppliers first — a warning banner reminds you if either looks incomplete, but it won't block the import.

⚠️
One row per line item. Put one CSV row per line item, and repeat the same bill_no on every row that belongs to the same bill. Rows with no bill_no are each treated as their own single-line bill.
🧮 Real tax math, no accounting entries at import time

VAT and discounts are calculated using the bill's own "unit price includes tax" setting — but no journal entry is posted at import time. If you later run Repost Accounting, imported bills are included like any other and get real journal entries built from them.

🏷️ Expense accounts are resolved up front

Each line's expense account is resolved at import time — from an explicit expense_account_code column, else the supplier's own default, else the business default purchase account — so a future Repost Accounting run has a real account to post to, not just at repost time.

💰 Supplier balances stay accurate

Each affected supplier's balance is recalculated from the imported bills' unpaid amounts.

🔢 Bill numbers are preserved

Give a row your old system's bill number to keep it on record; leave it blank to auto-generate a new one (BILL-####). Re-importing a file that includes a number already in CloudPOS skips that bill — never overwrites.

📋
Field Reference

The mapping step's "Sample header" box always shows the full, current list for copy-paste — this table is a readable version of the same fields.

Chart of Accounts

FieldCSV keyNotes
Account CodecodeRequired Reconcile-match key. Up to 50 characters — plenty of room for long numeric codes.
Account NamenameRequired
Account Typeaccount_typeRequired asset / liability / equity / income / expense
Parent Account Codeparent_codeBuilds the account hierarchy
Tax Typetax_type
Activeis_activeT/F — defaults to Active if unmapped
Header Rowis_headerMark H for rollup/summary rows — imported for structure, balance never posted
Opening BalancebalancePositive = debit, negative = credit. Posted as a separate, reviewed step after accounts are created — Asset/Liability rows only, one-shot per business.

Customers

FieldCSV keyNotes
NamenameRequired
Client Codeclient_codePrimary duplicate-match key
EmailemailUsed as a fallback match key
Phone / Mobile / Faxphone / mobile / fax
Address / Delivery Addressaddress / delivery_address
City / State / Countrycity / state / country
Business Numberbusiness_no
Contact Person / Websitecontact_person / website
Client Typeclient_typeDefaults to "Business" if unmapped
Group / Salesmangroup_name / salesman
Pricing LevelpricingDefaults to "Retail" if unmapped
Tax Inclusivetax_inclusiveT/F, true/false, 1/0, yes/no
Discount %discount_percentageNumber
Payment Termspayment_termse.g. COD, Net 30, Net 60
Credit Limitcredit_limitNumber
AR Account Codear_account_codeChart of Accounts code. Blank = use the business default AR account; a code that doesn't exist is left blank with a warning, never guessed.
Join Loyalty / No Bulk Emailjoin_loyalty / no_bulk_emailT/F
Opening BalancebalanceWrites directly — no journal entry
Notesnotes

Suppliers

FieldCSV keyNotes
NamenameRequired
Supplier Codesupplier_codePrimary duplicate-match key
EmailemailUsed as a fallback match key
Phone / Mobile / Faxphone / mobile / fax
Address / City / State / Countryaddress / city / state / country
Business Numberbusiness_no
Contact Person / Websitecontact_person / website
Activeis_activeT/F — defaults to Active if unmapped
Payment Termspayment_termse.g. COD, Net 30, Net 60
Credit Limitcredit_limitNumber
AP Account Codeap_account_codeChart of Accounts code. Blank = use the business default AP account; a code that doesn't exist is left blank with a warning, never guessed.
Expense Account Codeexpense_account_codeChart of Accounts code. Blank = use the business default purchase account.
Opening BalancebalanceWrites directly — no journal entry
Notesnotes

Sales Invoices

Invoice-level fields (repeat the same value on every row of one invoice) and line-item fields (one value per row).

FieldCSV keyNotes
Customer Namecustomer_nameRequired Or use Customer Code — must already exist
DatedateRequired DD/MM/YYYY or YYYY-MM-DD
Item DescriptiondescriptionRequired Per line
Unit Priceunit_priceRequired Per line
Invoice Numberinvoice_numberBlank = auto-generate. Duplicate-match key.
Customer Codecustomer_codePreferred over Customer Name when given
Payment Termspayment_termse.g. COD, Net 30, Net 60
PO Numberpo_number
Currency Code / Exchange Ratecurrency_code / exchange_rateBlank = business default currency / 1.0
Amount Already Paidamount_paidSet directly on the invoice — no separate payment record is created
Expected Totalexpected_totalValidation only — warns if it disagrees with the computed total, doesn't override it
SKU / Barcodesku / barcodeFree-text snapshot — never linked to a real product
QuantityquantityPer line, default 1
Discount %discount_percentagePer line, default 0
VAT %vat_ratePer line, default 0 — e.g. 15 for 15%

Supplier Bills

Bill-level fields (repeat the same value on every row of one bill) and line-item fields (one value per row).

FieldCSV keyNotes
Supplier Namesupplier_nameRequired Or use Supplier Code — must already exist
Bill Datebill_dateRequired DD/MM/YYYY or YYYY-MM-DD
Item DescriptiondescriptionRequired Per line
Unit Priceunit_priceRequired Per line
Bill Numberbill_noBlank = auto-generate (BILL-####). Duplicate-match key.
Supplier Codesupplier_codePreferred over Supplier Name when given
Supplier's Invoice Numbersupplier_invoice_noThe vendor's own reference number, for your records
Due Datedue_dateBlank = derived from the supplier's payment terms
Currency Code / Exchange Ratecurrency_code / exchange_rateBlank = business default currency / 1.0
Amount Already Paidpaid_amountSet directly on the bill — no separate payment record is created
Unit Price Includes Taxunit_price_includes_taxT/F — this bill's own setting, not the business-wide default
Expected Totalexpected_totalValidation only — warns if it disagrees with the computed total, doesn't override it
QuantityquantityPer line, default 1
Discount %discount_percentagePer line, default 0
VAT %vat_ratePer line, default 0 — e.g. 15 for 15%
Expense Account Codeexpense_account_codeChart of Accounts code, per line. Blank = the supplier's own default, else the business default purchase account.
💡
Tips & Troubleshooting
📝 First row must be headers

Unlike Stock import, Customers/Suppliers always require a header row — there's no legacy positional-column fallback.

🔢 Bad numbers don't block the row

An unparseable number (e.g. text in Credit Limit) shows a warning on that row and leaves the field unset — it doesn't fail the whole import.

♻️ Nothing is ever updated

If you need to change details on an existing customer or supplier, edit it directly in Customers / Suppliers — import only ever creates new records.

🏦 Unknown account code? You'll see it

If AR/AP/Expense Account Code is mapped but the code doesn't match anything in your chart of accounts, that row still imports — the account is left blank (business default applies) and a warning names the missing code, in the result screen after import.

📤 Export & Import History

Not yet available for Customers/Suppliers in this release — only Import is supported today.

🚫
"Continue to preview" stays disabled? Check the validation bar at the bottom of the mapping step — it names exactly which required field (always just Name) still needs a column assigned.
Chapter 9

Dashboard

Your daily overview — sales, receivables, payables, VAT, inventory and cash

📊
Overview

The Dashboard is the first screen after login. It shows the current date, open POS shifts, and quick-action buttons (+ Invoice, Quotation, Proforma, Payment) in the top bar.

Dashboard overview
Dashboard — KPI cards, inventory health, overdue lists, 12-month chart and payout/clearing
💰 KPI Cards

Monthly Sales, Income (YTD), Receivables, Payables and Monthly VAT — each with trend vs. last month and overdue amounts where relevant.

📦 Inventory Panel

Stock health donut (in stock / low / out / negative), item counts and stock value at last cost. Click View products to open Inventory.

⚠️ Overdue Receivables / Payables

Customers and suppliers with overdue balances, with days overdue. Click a row to open the statement; use the ✉️ icon to send a payment reminder.

📈 Sales Chart

Last 7 Days / 30 Days / 12 Months of sales collected vs. open, and expenses paid vs. unpaid.

🏦 Payout / Clearing

Incoming vs. outgoing money and net position — click to open the Banking module's Payment Clearing tab.

🗄️ Database Status

Bar at the top shows database health with an Accounting check shortcut and backup status.

Dashboard chart range
Sales chart period selector — Last 7 Days, Last 30 Days, Last 12 Months
Chapter 10

Inventory

Products & services, movements, valuation, stock take, bulk changes and categories

🗂️
Products & Services

The Products & Services tab lists every item you sell or stock, with retail price, cost price, margin, benefit and per-location stock.

Products list
Products & Services — search, category/type filters, Active-only toggle and row actions

Each row shows SKU, barcode, description, category, prices, margin %, benefit and stock at each location (MAIN, TGB…). Use the ✏️ action to edit, 🗑️ to deactivate, and the 🖼️ icon shows items with images. Filter by category or item type, and toggle Active only to hide archived items.

🧰
Product Form

Open a product to edit everything about it in one scrollable page: identity & barcodes, classification & availability, variants, pricing & tax, tiers, inventory, sales behaviour, accounting mapping and purchase/sales history. See the Product Configuration guide for a field-by-field reference.

Product form — identity and classification
Product form (top) — identity & barcode, classification & availability, variants, live preview card
Product form — pricing and inventory
Product form (middle) — pricing & tax, tiers, inventory, sales behaviour & tracking, accounting mapping
🧬 Variants

Define characteristics (size, colour, material…) and values to build independently sellable combinations.

🏷️ Tiers & Special Pricing

Trade / Wholesale / Reseller tier percentages plus a dated special price.

⚙️ Sales Behaviour

Whole units only, block discount, ask quantity/price/description, serial-number and expiry tracking, custom till prompt.

🔄
Movements

Every stock in/out movement with date, product, movement type, batch, quantity, unit/total cost and the referencing document (sale, purchase, adjustment).

Stock movements
Movements — filter by date (Today, Yesterday, This/Last Week/Month, Custom) or show non-stock items
📊
Valuation

Stock value as of a chosen date, valued at last cost (Settings → Stock controls the costing method). Export to PDF/Excel or email the report.

Inventory valuation
Valuation — per-product qty, cost, value and share of total stock value
✅
Stock Take

Count physical stock and post the differences as adjustments. Pick the category, tag, count date and stock location, then enter counted quantities.

Stock take
Stock Take — All / To count / Counted / Discrepancies filters, “Mark shown as matching”, and Post adjustments
  • Drafts & history — save a count as a draft and resume later.
  • Post adjustments — applies all counted differences to stock in one action.
🌐
Global Changes

Apply bulk edits to a whole category (optionally including subcategories): VAT rate, show in POS / online, custom QR codes, copy description to POS description, brand, on-order printer, tags and accounting mapping.

Global changes
Global Changes — pick a product group, enable only the settings you want to change
🏷️
Categories

Hierarchical product categories with codes, parent/level filters and per-category product counts.

Categories
Categories — search, filter by parent or level, add subcategories with +
Chapter 11

Customers & Suppliers

Customer and supplier records, statements, aging and transactions

👥
Customers

The Customers module (green theme) holds your client list with live balance and credit per customer. Filter by All / Business / Individual / Stopped.

Customers list
Customers — cards with balance and credit; ⋯ menu for statement, edit and more

Alongside the list, five tabs give the full receivables picture:

  • Client Statement — Customer Balance Report with aging buckets (Current → 90+ days), per-customer drill-down (👁️) and Print PDF / Excel / Export PDF / Email List. Select several customers to email statements in bulk.
  • Client PI — open proforma invoices per customer with totals and balance due.
  • Advance Sales — layby progress per PI: advances, total paid, remaining and a progress ring.
  • Aged Client — aged balances by bucket with exports.
  • Transactions — every invoice and payment in one ledger, filterable by period.
Customer balance report
Client Statement — Customer Balance Report with aging buckets and statement actions
Advance sales per customer
Advance Sales — layby progress per proforma invoice
🏢
Suppliers

The Suppliers module (blue theme) mirrors customers for your payables: supplier cards with balance, plus Supplier Statement (Supplier Balance Report) and Aged Supplier tabs with the same export options.

Suppliers list
Suppliers & Payables — supplier list with balances
Chapter 12

Payments

Receive customer payments, pay suppliers and reconcile

💳
Payments Module

The Payments module combines three tabs:

  • Receive Customer Payment — record a payment against any invoice or customer, with currency + exchange rate, method, date, reference and notes.
  • Issue Supplier Payment — the same form for paying supplier bills.
  • Payment Allocation / Reconciliation — pick a bank account, then tick unallocated customer payments, supplier payments and expenses and clear them in bulk.
Receive customer payment
Receive Customer Payment — invoice lookup, amount, currency, method, date
Payment allocation
Payment Allocation / Reconciliation — select payments and clear them against a bank account
Chapter 13

Reports

35+ reports in seven categories, each with PDF, Excel and email exports

📈
Report Library

The Reports module has its own sidebar with seven categories. Every report has a period selector (All, Today, Yesterday, This/Last Week/Month/Year, Custom), report-type options where relevant, and export buttons (Print PDF, Excel, Export PDF, Email).

Reports module
Reports — Sales & Invoicing category with the full report list
🧾 Sales & Invoicing

Sales Summary, Invoice List/Register, Customer Balance, Sales by Customer/Product/Category/Tag, Tax (VAT), Payment Received, Outstanding/Aging, Sales Graphics.

📦 Inventory & Stock

Stock Level, Low Stock/Reorder, Stock Movement, Item Valuation, Product Price List, Inventory Aging, Product Performance. (Stock Adjustment report: coming soon.)

🛒 Purchasing & Supplier

Purchase register, supplier balances and aged payables.

🏦 Financial & Accounting

Profit & Loss, Balance Sheet, Trial Balance, General Ledger, General Journal, Gross Margin, Cash Flow, Credit Notes/Refunds, Advance Sales Register, Revenue Forecast.

👥 Customer & Supplier

Aging and balance reports for both sides of the ledger.

⚡ Performance & Operational / 🛡️ Compliance & Audit

Employee/Salesperson performance, service delivery, job costing and turnaround-time reports (rolling out); audit and fiscal compliance reports.

Financial and accounting reports
Financial & Accounting reports — P&L, Balance Sheet, Trial Balance, Ledger, Journal and more
Sales summary report
Sales Summary report — period selector, Daily/Invoices/Detailed modes, KPI cards and daily breakdown
Chapter 14

Accounting & Banking

Chart of accounts, periods, VAT, year end — plus bank accounts and reconciliation

🏛️
Accounting

The Accounting module (dark-green theme) has six tabs:

  • Chart of Accounts — your full account tree (Assets, Liabilities, Equity, Income, Cost of Sales, Expenses) with codes, search and per-type filters.
  • Accounting Periods — open/close periods to protect reported figures.
  • Correct Entry — post a correcting journal without editing source documents.
  • Pay VAT — calculate and pay VAT for a period (locks the period once paid).
  • Year End — run year-end close and roll retained earnings.
  • Settings — accounting defaults and locking behaviour.
Chart of accounts
Chart of Accounts — grouped by type with codes, search and filters
🏦
Banking

The Banking module has four tabs:

  • Bank Accounts — manage bank accounts, each linked to a GL account (e.g. 1100 · Bank Account). Mark one as the default for payments; the card shows Book Balance (GL) vs. Statement Balance with a warning when they differ.
  • Bank Transactions — every bank movement across accounts.
  • Reconciliation — pick an account and run Check Reconciliation to scan imported statement lines against invoices, payments and bills.
  • Payment Clearing — clear cheque and transfer payments against a bank account in bulk.
Bank accounts
Bank Accounts — book balance vs. statement balance with edit/delete actions
Bank reconciliation
Reconciliation — select an account and check statement lines against your books
Chapter 15

Administration

Users & cashiers, head offices, businesses and the business switcher

👤
User Management

Manage back-office users and POS cashiers. The Users tab lists every user with role, PIN and status — search by name or email, filter by role, and use Roles and access information for what each role can do. The POS Cashiers section manages cashier IDs and PINs for terminal login, with the shared POS service-account email shown at the top. The Invitations tab tracks pending email invitations.

User management
User Management — users with roles/PINs and the POS Cashiers section
🏬
Head Office & Business Management Super Admin

These two modules appear for Super Admin accounts and manage the multi-tenant setup:

  • Head Office Management — the head-office groups (each backed by its own database), the businesses inside them, and switching the working head office.
  • Business Management — every business across head offices with licence expiry, POS/user counts and Accounting/Stock flags. Switch business, restore a backup snapshot or move a business between head offices from the row menu.
Head office management
Head Office Management — head-office groups with business counts and database URLs
Business management
Business Management — all businesses with licence, POS/user counts and quick switch

Use the business switcher at the top of the sidebar to jump between the businesses you have access to; everything (data, settings, POS terminals) is scoped per business.

Business switcher
Business switcher — pick the business you want to work in