POS billing
Ring up a counter sale end to end — find or scan products, pick a customer, apply discounts, coupons and loyalty points, take split payments or credit, park bills and print receipts.
Point of Sale (/app/pos) is the counter billing screen. It creates a normal tax invoice in one step: stock is deducted, payments are recorded, any unpaid amount goes on the customer's ledger, and the receipt is ready to print.
All prices in POS include GST — the price on the tile is what the customer pays.
The screen#
- Left: product search, the Scan button, and product tiles showing name, price and stock (N in stock or Out of stock).
- Right: the customer picker, the cart, totals, payment and the Complete sale button.
- Header: Park bill, Held bills (with a count badge) and Shortcuts.
The sidebar collapses to icons on this screen to give the cart room.
Ring up a sale#
-
Add products
Type in Search name, SKU or scan barcode… (F2) and tap a tile, or scan. Each tap adds one unit; tapping the same product again increases the quantity. Out-of-stock products cannot be added, and a line's quantity cannot go above the stock on hand. Quantities are whole numbers.
-
Choose the customer (optional)
Search by name or phone in Search name or phone — blank = walk-in. Leave it blank for a walk-in. The picker shows each customer's outstanding balance (for example ₹2,400 due) and loyalty points. A customer is required for credit sales and for redeeming points.
-
Adjust lines
For each line you can change Qty, the Rate ₹ (to give a negotiated price) and a Disc ₹ amount off that line, or Remove it.
-
Apply discounts
- Bill discount — in ₹ or %, taken off the GST-inclusive total. You cannot enter more than the bill is worth.
- Coupon — type the code and press Apply (or Enter). See Offers & promotions.
- Loyalty points — if the customer has points, choose how many to redeem. 1 point = ₹1.
-
Check the totals
The panel shows item discounts, Taxable value, GST, any bill discount or coupon, points redeemed, and the Total incl. GST.
-
Take payment
See Payment below.
-
Complete sale
Press Complete sale · ₹total (or F9). A confirmation shows the invoice number and total, plus any change to return, amount put on credit, and points earned or redeemed.
Payment#
Single payment#
Choose the method — CASH, UPI or CARD — and enter the amount. Exact ₹total fills in the full amount. For UPI enter the transaction reference in Txn ref; for a card, the Last 4 digits (both optional, up to 60 characters).
If more cash is handed over than is owed, Change to return is shown. Only the amount owed is recorded as paid.
Split payment#
Click + Split payment to add another row — for example ₹1,000 cash and the rest by UPI. A new row defaults to whatever is still owed. Remove a row with its bin icon. Non-cash rows cannot exceed what is still owed.
Part-payment and credit (udhaar)#
- Collect less than the total and the remainder appears as On credit — it is added to the customer's ledger.
- Tick Put the whole bill on credit (udhaar) to collect nothing now.
- Walk-ins need full payment — pick a customer for credit sales. The Complete sale button stays disabled until a customer is chosen or the bill is fully paid.
Credit limits#
If the customer has a credit limit and this sale would push their outstanding balance over it, a red warning shows the projected balance and the amount over. A Manager cannot complete the sale — collect more, raise the limit on the customer, or ask an admin. An Admin or the Owner can proceed: they are asked to confirm Over credit limit → Override and bill, and the override is recorded on the invoice. See Payments & credit.
GST on the bill#
Charge GST is on by default: GST is split out of each line using the product's rate, as CGST + SGST or IGST depending on the customer's GSTIN. Untick it to issue a non-GST bill — the customer pays the same total but no tax is broken out. Read GST basics before using non-GST bills.
Loyalty points#
When a loyalty earn rate is set in Settings, a customer on the sale earns floor(total ÷ 100 × earn rate) points. For example, with an earn rate of 1, a ₹2,450 bill earns 24 points. Walk-in sales earn nothing. Points redeemed come off the total before payment.
Park and resume a bill#
When a customer steps away mid-bill:
- Click Park bill (or F6). The cart, customer, bill discount, GST setting and coupon code are saved under a label such as 3 items · ₹1,250 · Asif, and the screen clears.
- Serve the next customer.
- Open Held bills (or F7) and click Resume. If a bill is already in progress you are asked to Discard and resume. The coupon must be re-applied because prices may have changed.
Held bills belong to the member who parked them — each person sees only their own list under Held bills.
Scan barcodes#
- Scanner gun: click into the search box (or press F2) and scan. The product whose barcode or SKU matches is added: Scanned: name added to cart.
- Camera: click Scan (or press F3) and point a phone or webcam at the barcode. Allow camera access when the browser asks.
- If nothing matches you see No product matches barcode ….
See Barcodes & labels.
Print the receipt#
After a sale, a bar reads Last sale completed — print the receipt with three buttons:
| Button | What it does |
|---|---|
| PDF receipt | Downloads a PDF receipt to print on any printer or share. |
| Thermal preview | Downloads a preview of the 80 mm receipt. |
| Print thermal | Sends the receipt straight to a USB/serial ESC/POS printer. |
Print thermal uses the browser's Web Serial feature (desktop Chrome or Edge). The first time, the browser asks you to choose the printer's port. If the browser does not support it you see Web Serial not supported in this browser — use the PDF receipt instead. Full setup and the receipt layout are in Printing & PDF.
When a UPI ID is set in Invoicing settings, receipts carry a Scan to pay via UPI QR code for the invoice amount.
Keyboard shortcuts#
Press ? (outside a text box) to see them on screen.
| Key | Action |
|---|---|
| F2 | Focus product search |
| F3 | Scan barcode with camera |
| F4 | Jump to the payment amount |
| F6 | Park (hold) this bill |
| F7 | Open held bills |
| F8 | Toggle credit (udhaar) |
| F9 | Complete the sale |
| Esc | Close the scanner, held bills or shortcuts panel; otherwise clear the search |
Billing a quotation#
From Quotations you can send an accepted quote to POS. The cart opens with the quoted items at the quoted rates and the quote's customer; items no longer in the catalogue are skipped with a warning. See Quotations.
When the internet drops#
A sale that cannot reach the server is saved on the device and synced later. See Offline mode & sync.
Limits and rules#
- Up to 200 lines per sale; quantities must be positive whole numbers.
- Every sale counts towards your plan's monthly invoice limit. At the limit, checkout is refused — see Plan limit errors.
- A member can create at most 30 invoices per minute (a safety limit).
Error messages#
| Message | What to do |
|---|---|
| Cart is empty | Add at least one product. |
| Insufficient stock for item: N available, M requested | Someone sold the stock first. Reduce the quantity or adjust stock. |
| Credit sales require a customer — collect full payment for walk-ins | Pick a customer or collect the full amount. |
| Payments exceed the invoice total | Reduce a non-cash payment row. |
| Only an admin can bill past a customer's credit limit | Ask an Admin to complete the sale. |
| Customer has only N loyalty points | Redeem fewer points. |
| Redeemed points cannot exceed the bill total | Redeem fewer points. |
| Loyalty points need a customer on the sale | Choose the customer first. |
| Coupon messages (for example Invalid coupon) | See Offers & promotions. |
| Plan limit reached: your … plan allows N invoices … | Upgrade, or wait for next month. |
Related#
Last updated 15/09/2026