English · Bahasa Melayu · Home

LekasPOS user guide

For LekasPOS 1.20.1 · Last updated 14 October 2026

LekasPOS is a free point-of-sale app for small grocery shops and mini markets. It runs on an Android phone or tablet and works fully offline. This guide explains everything it does, for the owner, managers and cashiers. New here? Read Getting started; cashiers can start with the Quick guide for cashiers. Words in bold are the words you see in the app.

1. Getting started

What you need

Install and update

  1. On the phone or tablet, open faizoken.github.io/LekasPOS and tap Download LekasPOS.
  2. Open the downloaded LekasPOS.apk. On Android 8 and newer, allow your browser to install unknown apps if Android asks. On Android 5–7, first turn on Settings → Security → Unknown sources.
  3. If Play Protect warns about an unknown app, tap More details → Install anyway. This is normal for apps that are not installed from Google Play.

After that the app updates itself: when a new version is out, an Update button appears at the top of the selling screen for the owner — see App updates. Your products, sales and settings always stay.

The welcome screen (first start)

The welcome screen
The welcome screen appears once, on a new phone.

The first time LekasPOS opens on a new phone it shows Welcome to LekasPOS. Everything on it can be changed later in Settings.

  1. App language: Phone's language, English or Bahasa Melayu.
  2. Your shop: the Store name (needed), Phone and Address. They are printed at the top of receipts.
  3. Protect your shop's data: Back up to Google Drive (recommended) or Daily copy to SD card or USB. Please do one of them — see Keeping your data safe.
  4. Optional: Set up a receipt printer and Staff and PINs.
  5. Already using LekasPOS on another till of this shop, or replacing a lost phone? Tap Restore or join my shop from Google Drive and turn on Google Drive backup with the shop's Google account: everything comes back. Have a backup file or a copy on an SD card or USB drive instead? Type the shop's name, tap Start selling, then see Restoring a backup.
  6. Tap Start selling.

Setting up a new shop — a checklist

  1. Protect the data: Google Drive backup, or a daily copy to an SD card / USB drive (how).
  2. Shop details for the receipt: Settings → Store & receipt (registration numbers, receipt text, logo) — details.
  3. Printer and cash drawer: pair the printer in Android's Bluetooth settings, then Settings → Printer & cash drawer → Choose a paired printer → Print a test page (details).
  4. Products: scan each product at the till and add it, or enter them in Products, or import a spreadsheet (details). Type How many do you have now? for each (shelf and storeroom together) if you want the app to count stock (details). Add categories, colours and pictures to make the item list easy to use.
  5. Payment methods you accept, such as DuitNow or Touch ’n Go (details).
  6. Staff: give the owner a PIN first and write down the recovery code, then add your cashiers (details).
  7. With staff, use shifts so each person counts the cash drawer (details).
  8. Make a test sale, check the receipt, then void it so it does not count in the reports.

Who can do what

Until the owner sets a PIN, everyone using the app is the owner and can do everything. A one-person shop can work like that. Once PINs are set, each person signs in and sees only the buttons their role allows: Owner (everything), Manager (almost everything except settings and staff) and Cashier (selling). When a cashier needs something more, a manager types their PIN. See Staff, PINs and roles.

↑ Contents

2. Quick guide for cashiers

Everything a cashier needs, on one page.

To…Do this
Sign inTap your name, type your PIN, tap OK. Not your name? Tap Not you?
Start the dayIf the till asks Start the shift, count the cash in the drawer and tap OK.
Add an itemScan its barcode. Or tap Search, type its name and tap it. Or tap Items (or a category) and tap the item.
Item without a barcode (vegetables, kuih)Tap Items (or search), tap it, then type the weight or the price if asked.
Barcode not foundThe till says Barcode not found. Call a manager: they tap Add product, type their PIN, the name and the price.
Change how manyTap the line, then + or −, or tap the number and type it.
Take an item offTap the line, then Remove.
Throw away the whole billMenu → Clear bill.
Customer forgot somethingHold the bill (type a name if you like), serve the next customer, then tap Held bills (1) (where Hold was) or the 1 held button at the top to bring it back.
Take cashPay → tap the note the customer gave (e.g. RM50). Another amount: Other amount, type it (5 0 0 0 = RM50.00), Done.
Card, e-wallet, QRTake the payment on your terminal or QR first, then Pay → tap Card or E-wallet / QR.
Part cash, part cardPay → Split payment → type the first part → tap its method → pay the rest.
Give changeThe big Change amount is what to give back. Scan the next customer's first item to start again.
Customer asks for the change againThe empty bill shows the Last sale with its change.
Print the receipt againPrint a copy under the last sale (Print receipt when it was not printed yet), or Menu → Sales & refunds.
Customer brings an item backMenu → Sales & refunds → find the sale (type the receipt number) → Refund / return → choose the items, type the Reason → Refund. Give the money back — details.
Wrong payment method or wrong items, just paidMenu → Sales & refunds → the top sale → Void → type why. Only your own last sale, within 5 minutes; then sell it again the right way — details.
Check a price without sellingPrice check → scan or type.
A discount or a new priceAsk a manager: Menu → Manager PIN, then Menu → Bill discount or Item discount.
Leave the tillTap your name at the top → Lock / switch user (or Menu → Lock / switch user). If your shift is open, the till asks Close the shift?: Close shift when you go home or someone else takes over, Lock only for a short break.
End of the dayMenu → Close shift (or Close shift when the till reminds you at closing time) → count all the cash → say how much stays in the drawer → take the rest out for the owner.

Everything you take off a bill is written in the activity log, especially after the customer has seen the total. That is normal — a wrong item is taken off every day — and protects you as much as the shop.

↑ Contents

3. The selling screen

The selling screen opens when you start the app. Everything about one customer happens here.

The selling screen on a phone
On a phone: the bill, with the last item's buttons.
An empty bill with the last sale
An empty bill shows the last sale (the change to give, Print receipt) and how to start.
The selling screen on a tablet
On a tablet (or a phone held sideways): the items on the left from the top of the screen, the bill on the right under the top bar.

What is on the screen

The pills in the top bar

Pills appear only when there is something to see. Tap one for what it means.

PillMeaning
2 heldBills on hold. Tap to bring one back.
Not backed upThe shop's data has not been copied off this phone for 3 days (or Google Drive backup has not worked for a day). See Keeping your data safe.
Backup: sign inGoogle wants the shop's account to sign in again for Google Drive backup.
Data problemThe daily check found damage in the database. See Data problem.
Storage almost fullThe phone is nearly full. Sales cannot be saved on a full phone: delete photos, videos or apps.
Printing…A receipt is printing now.
3 to print3 receipts are waiting to print.
Printer offline (3)The printer cannot be reached and 3 receipts are waiting. Tap any printer pill for the printer settings.
Manager: Aminah ✕A manager is helping with this bill. Tap to end the help.
Update 1.14.0A new version of LekasPOS is ready (owner only).

A cashier who taps a pill about the data sees “Please tell the shop owner…”: the owner fixes it in Menu → Manage shop → Settings.

Adding items

Barcode scanner
Just scan — nothing needs to be tapped first. USB and Bluetooth scanners in “keyboard” mode work without any setup. You hear a short beep when the item is added and a low tone when something is wrong.
Camera
Tap Camera (on a phone held upright: tap Search, then the camera in the box). Hold each barcode inside the frame: each item is added with a beep (Added: …). An item that needs a weight or a price, or a barcode the till does not know, closes the camera and the till asks you. Torch turns on the light. Go back when done.
Search
Tap Search, then type part of the name (milo 1k finds “Milo 1kg”), or the first digits of a barcode. Tap the item. Typing a whole barcode or SKU and pressing Enter adds it directly.
Items (the item list)
On a phone tap Items or a category tab (Bill in its place, or a scan, shows the bill again); on a tablet it is always on the left. The tabs, beside Search, are All (shown when the till opens), Popular (your best sellers of the last 30 days), and one per category. Tap a tile to add it. A tile already on the bill shows ×2. A tile shows the price and, for counted products, the stock beside it: 5 left, or None left (it still sells).

Weighed items, items priced at the till, packs and scale labels

A barcode the till does not know

The till beeps low and shows Barcode not found. Tap Add product, type the name and the price, and save: the product is kept for next time and goes on this bill. A cashier who may not add products is asked for a manager's PIN first; the manager then adds it. Tap Cancel to leave it off.

Only products in the list can be sold. For things without a barcode (loose vegetables, kuih, bags), add a product once — sold by Weight or with the Price entered at the till — and pick it from Items.

Changing the bill

Every item taken off and every quantity lowered is written in the Activity log with its value — marked specially when it happens after the payment screen showed the customer the total.

Holding a bill

  1. Tap Hold. Type a name if you like (e.g. the customer's) and tap OK. The screen is free for the next customer.
  2. To bring it back, with the bill empty tap Held bills (1) where Hold was (or the 1 held pill, or Menu → Held bills) and tap the bill. A bill already on the screen is held in its place.
  3. To delete a held bill: Delete a bill… in the list (or hold your finger on it).

Held bills stay on this till (they are not shared with other tills) and survive a restart.

Discounts and price changes

Two buttons in the Menu, shown to those allowed to give discounts or change prices:

A cashier without these permissions does not see them. A manager can help: Menu → Manager PIN → the manager types their PIN → Bill discount and Item discount appear for this bill (until it is paid, held or cleared, or for 5 minutes). Discounts and price changes are in the Activity log with who approved them. An item with a hand-made discount or price no longer takes part in promotions.

A customer on the bill

When Customers and credit is switched on (Settings → Store & receipt), the totals show Add customer. Tap it to choose a customer (search by name or phone) or create one. The customer's name is printed on the receipt and the bill can be paid with Customer credit (“pay later”) — see Customers and credit.

Price check

Tap Price check, then scan or type a barcode or name and tap Check. It shows the price, pack prices, stock and any running promotion, without touching the bill. Staff allowed to edit products also see Change price: the new price is used from now on (items already on the bill keep the old one) and is recorded in the Activity log.

The Menu shows only what the signed-in person may do, as large buttons with pictures in three groups: This bill, Till and Manage shop. A scan while it is open closes it and goes on the bill as usual.

The Menu: buttons with pictures in groups
The Menu as the owner sees it (scroll for the rest of Manage shop).
Menu entryWhat it is
This bill
Bill discountA discount on the whole bill.
Item discountA discount or a new price for one item on the bill: the till asks which.
Held billsBills on hold. The button shows how many.
Clear billThrow away the bill on the screen.
Till
Sales & refunds (or Receipts)Past sales: copies, refunds, voids — details.
CustomersWhen customers and credit are on.
Open shift / Close shiftStart or end your shift — details.
Shift & cashAdd cash, pay from drawer, take out extra cash, shift reports.
Open cash drawerOpens the drawer without a sale (recorded).
Manager PINA manager helps with this bill.
Lock / switch userLock the till (when PINs are on). With a shift open, it first asks whether to close it.
Manage shop
Products, Categories, Promotions, Stock, Reports, Settings, Tax rates, DiagnosticsThe back office, for whoever may use it. Products is what you sell and its price; Stock is how many you have (called Inventory before 1.20.0).

↑ Contents

4. Taking payment

The payment, first step
Step 1: how the customer pays. One tap on a note pays in cash.
The payment keypad with the change
Step 2 (only when needed): type the amount; the change shows as you type.

Tap Pay. The bill is frozen while the payment is open. The payment has two steps.

Cash

Card, e-wallet / QR and other methods

Under Other ways to pay there is one button per payment method (Card, E-wallet / QR, and any you added, such as DuitNow). One tap pays the whole amount with that method.

LekasPOS only records card and e-wallet payments — it does not talk to the card terminal or the bank. Take the payment first and check it went through, then tap the method.

Split payment

  1. Tap Split payment.
  2. Type the amount of the first part (e.g. 2 0 0 0 for RM20.00) and tap its method (e.g. Card). With nothing typed, the method pays all that is left.
  3. The payment now shows Still to pay and Paid: Card RM20.00. Pay the rest the same way (e.g. tap a cash note).

Cancel after a part was paid asks whether to cancel those parts; the bill itself stays. A card or QR part the customer really paid is then no longer recorded: when you take the payment again, tap that same method for that amount, or give the money back on the terminal.

Customer credit (pay later)

With a customer on the bill, Customer credit appears among the methods. The amount is added to what the customer owes. Over the customer's credit limit the till asks Over the credit limit; Allow needs a manager. See Customers and credit.

After the sale

A sale is saved completely before anything is printed. If saving fails (for example, the phone is full), the till says Sale not saved: the sale was not recorded and the bill stays. If the customer already paid by card or QR, do not charge them again — fix the problem, tap Pay and tap the same method.

Tapped the wrong method or amount? A saved sale cannot be changed. Ask a manager to void it (Void) and ring it up again.

Questions the till may ask when you tap Pay

↑ Contents

5. Receipts, the printer and the cash drawer

What a receipt shows

The receipt is in the Receipt language chosen in Store & receipt (English or Bahasa Melayu), whatever the app's own language. Each till has its own two-letter receipt prefix, so receipt numbers never clash between tills.

Copies

The first receipt of a sale is free to print. Any later print is a copy: it is marked *** COPY ***, needs the permission Print receipt copies (cashiers have it) and is recorded in the Activity log. Copies come from the last sale on the empty bill, from the sale's result, or from Menu → Sales & refunds (or Receipts).

Sharing a receipt

Open the sale in Menu → Sales & refunds and tap Share: it sends the receipt As a picture or As a PDF through any app on the phone (WhatsApp, e-mail…). This works without a printer.

Setting up the printer

  1. Switch the printer on and pair it in Android's Bluetooth settings (the PIN is usually 0000 or 1234). Settings → Printer & cash drawer → Pair a new printer (Bluetooth settings) takes you there.
  2. Back in Printer & cash drawer, tap Choose a paired printer and pick it. On Android 12 and newer, allow Nearby devices.
  3. Choose the Paper width: 58 mm (32 characters) or 80 mm (48 or 42 characters).
  4. Tap Print a test page. The digit ruler must fit on one line; if not, try the other 80 mm choice.
  5. Tap Save.

All the printer options are in Settings → Printer & cash drawer.

The cash drawer

The drawer plugs into the printer and opens through it. It opens by itself for payment methods marked Opens the cash drawer (cash), refunds paid that way, a voided cash sale, a customer repaying credit in cash, a shift's opening float, added cash, payments from the drawer and extra cash taken out. Menu → Open cash drawer opens it without a sale (needs the permission and is recorded). The drawer opens only through the printer: when the printer is off or out of reach the drawer stays shut (an opening that waits more than 2 minutes is dropped) — use its key. If it never opens, check Cash drawer connected to the printer and try Pin 5 instead of Pin 2.

↑ Contents

6. Sales, refunds and voids

Menu → Sales & refunds (called Receipts for staff who may not refund or void) lists the sales of this till, newest first — and of every till of the shop when Google Drive backup is on. Voided sales are tagged VOIDED, refunds REFUND.

Refund or return

  1. Open the sale and tap Refund / return.
  2. For each item coming back, tap the quantity and type how many (or tap All). You can refund part of a receipt now and more later.
  3. Leave Put the returned items back into stock on if they can be sold again; switch it off for damaged goods.
  4. Type the Reason (required) and choose Pay back with (normally the way the customer paid).
  5. Check To pay back and tap Refund, then confirm.

The amount is exactly what the customer paid for those items, with discounts, promotions and tax shared fairly to the sen; cash is rounded to 5 sen. The refund gets its own number (e.g. KQ-R000045), prints if receipts print automatically, goes into the current shift and is recorded in the Activity log. A credit sale is paid back to the customer's credit.

LekasPOS only records the refund. Paying back by card or e-wallet? Do the refund on the card terminal or e-wallet as well. For cash, hand the money back from the drawer.

Void

A void cancels a whole sale as if it never happened — for mistakes such as a test sale or a sale rung up twice.

  1. Open the sale and tap Void.
  2. Type why and confirm.

↑ Contents

7. Products

Everything the till sells is a product. Open the list with Menu → Manage shop → Products (needs the permission Edit products and categories).

A product's form also shows its stock — how many you have — with a Change stock button right under the price. The Stock screen is for the rest of the stock work: deliveries, counting many products, low stock and suppliers. See Products and stock.

The Products list
Products: each with its picture or colour, its category and how many are in stock. Search by name, SKU or barcode, or scan.
The New product form
A new product: name, price, how it is sold, and how many you have now.
A product's form with its stock and the Change stock button
An existing product: In stock now, Change stock and Stock history under the price.

The product list

The quickest way to add a product is at the till: scan its barcode. If the till does not know it, it offers Add product; after saving, the product is also on the bill.

The product form

Only the Name and the Selling price are needed. Everything else can be added later.

Name
What the bill, the receipt and the reports show.
Selling price
The price of one piece (or of one kg for weighed products). Type it like 12.50. It may be left empty only for products whose price is typed at the till. A price of 0.00 makes the till ask for the price every time (for a weighed product, the price per kg). LekasPOS 1.13.0 and older sold a weighed product at 0.00 free, so give weighed products their price per kg.
Sold by
Piece / pack (the usual), Weight (the till asks the weight, the price is per kg), or Price entered at the till (the cashier types the price each time — for things like kuih or loose items of different prices). See How products are sold.
Unit (pcs, kg, pack…)
Shown after quantities and prices, for example RM8.00/kg. Choosing Weight changes pcs to kg by itself.
Stock
How many you have: on the shelves and in the storeroom together. Track stock (on by default; off for things you do not count, such as services or plastic bags — the form then says “Stock is not counted for this product” and hides the rest). A new product asks How many do you have now? (staff who may manage stock; leave it empty for none). An existing product shows In stock now with Change stock (type how many you counted, or remove / add — see Change stock) and Stock history. Low-stock alert at warns when stock falls to this level (empty or 0 = no alert).
On the selling screen
A picture (Take photo, Choose picture, Remove picture) and a Colour for the product's tile. See Pictures and colours.
Barcodes
The numbers under the black stripes on the item or its carton, printed by the maker. Scanning one puts the product on the bill. Add barcode (type it, or tap Scan to use the camera). A product may have several barcodes. You can also simply scan with a barcode scanner while the form is open: the code is added (“Barcode … added”). Add pack barcode is for the barcode on a carton or multipack — see Barcodes, packs and cartons.
Scale PLU
The item code your weighing scale prints on its labels — see Weighing-scale labels.
More details
Category (the tab the product appears under at the till), Tax (only if you charge tax at the till — see Tax rates), Cost price (what you pay the supplier for one piece or one kg; used for profit and stock value, and updated by itself when you receive deliveries), Your own code (SKU) (optional and not a barcode: a short code you make up yourself, such as A12, for example for an item without a barcode. Typing it in the search box finds the product. Most shops leave it empty).
Show in search and catalogue
Turn off to hide a product from the tiles, the search and the price check's name search. A hidden product's barcode still scans and sells; it stays in the product list with the tag HIDDEN. Use this for products sold only by scanning, or kept for later. To stop a product being sold at all, delete it: its past sales stay in the reports.

An existing product also has a Delete button. Deleting asks first (“Past sales keep their lines.”); the barcode then no longer scans. With Google Drive backup on, the product disappears on every till.

When a barcode you add is already used by another product, the app asks “Barcode already used… Save anyway?”. If you save anyway, a scan picks the product whose barcode was added last.

Changes made in this form to price, “sold by”, tax, cost and barcodes (and Change price in Price check) are written to the Activity log as Product price changed, with who made them. There is no separate price-history screen: filter the Activity log instead. A CSV import is written once, as Products imported.

How products are sold

Sold byAt the till
Piece / packA scan or a tap adds 1. Scanning the same product again adds 1 more to the same line.
WeightThe till asks the weight on a keypad. Digits fill from the right with three decimals: typing 1 2 5 0 gives 1.250 kg. A weighing-scale label already carries the weight or the price.
Price entered at the tillThe tile says Enter price; the cashier types the price each time.

Selling is never blocked by stock: a product can be sold even when the app thinks there are none left. Stock may then go below zero until the next delivery or count puts it right.

Barcodes, packs and cartons

Weighing-scale labels

Many shops weigh loose goods on a label-printing scale. The label's barcode carries the item code (PLU) and the weight or the price. LekasPOS reads these labels:

  1. On each weighed product, type the scale's item code in Scale PLU (leading zeros do not matter).
  2. Check the label format in Settings → Store & receipt → Weighing-scale labels → Label formats. The defaults suit most scales: 20IIIIIWWWWWC (prefix 20, 5-digit item code, weight in grams) and 21IIIIIPPPPPC (prefix 21, item code, price in sen). In a format, digits are a fixed prefix, I the item code, W the weight in grams, P the price in sen, X a digit to ignore and C the check digit. Several formats are separated by commas.
  3. Scan a label at the till: a weight label gives weight × price per kg; a price label gives exactly the printed price. A label printed with weight 0 or price 0.00 makes the till ask.

Pictures and colours

A picture and a colour help the cashier find an item quickly on the selling screen.

Categories

Menu → Manage shop → Categories. Categories become the tabs of the selling screen's item list (after All and Popular) and group the sales in reports.

Tax rates

Menu → Manage shop → Tax rates (needs Change settings). Most small grocery shops in Malaysia charge no tax at the till: then leave this list empty and choose nothing under Tax on the products.

Payment methods

Menu → Manage shop → Settings → Payment methods (needs Change settings). The app starts with Cash, Card, E-wallet / QR and Customer credit. Add your own, such as DuitNow or Touch ’n Go, with +:

Many products at once (CSV)

To enter or change many products, use a spreadsheet (Google Sheets or Excel) and a CSV file.

  1. In Products → ⋮ tap Example CSV file (or Export products (CSV) to start from your current products) and Share it to yourself or Save as a file.
  2. Open it in Google Sheets or Excel. Fill one row per product. Format the barcode column as text, otherwise the spreadsheet turns barcodes into numbers like 9.55E+12.
  3. Save or download it as CSV (in Excel choose CSV UTF-8 to keep Malay, Chinese or Tamil letters). An Excel file (.xlsx) is not read.
  4. In Products → ⋮ tap Import products (CSV) and choose the file. A preview shows the new products, the products to update and every line with a problem (with its line number). Nothing is changed yet.
  5. Tap Import now. The import continues even if you leave the screen; if the app is closed half-way, importing the same file again continues where it stopped.
ColumnWhat to write
name (required)The product name (up to 120 characters).
price (required)Selling price, like 12.50 or RM12.50.
barcodesOne or more, separated by | or ;.
skuYour own code (SKU), if you use one; not a barcode.
categoryA category name; new names create new categories.
unitpcs, kg, pack…
costCost price.
taxA tax rate's name or percentage (SST, 6%), or none. The rate must already exist under Tax rates.
sold bypiece, weight or open price.
track stock, activeyes or no (active = shown at the till).
stockFor new products, the opening stock.
low stockThe low-stock alert level.
idWritten by the export (#…); keep it to update the right product.

Headers may also be in Malay or in common other words (nama, harga, kod bar, kategori, kos, stok, selling price, qty…), in any case.

↑ Contents

8. Promotions

Menu → Manage shop → Promotions. Promotions are deals the till applies by itself when the right items are on the bill — the cashier does nothing.

The Promotions list
Promotions: the deals the till applies by itself.
A new promotion
A multi-buy: how many, the price for all of them, more prices, the products.
TypeExampleWhat the customer gets
Multi-buy or special price“Milo 3 for RM10”Every group of 3 costs RM10. A 4th item is at the normal price.
Multi-buy with How many to buy = 1“Special price RM3.99”A special price for a single item, for example for one week.
Buy X get Y free“Buy 1 get 1 free”In every set of 2, the cheaper one is free.

Making a promotion

  1. Tap +. Type the Name (it is printed on the bill and the receipt, e.g. Milo 3 for RM10).
  2. Choose the Type, then How many to buy and either Price for all of them or How many free.
  3. Add a product — one or more. Any mix of these products counts towards the deal (for example “any 3 flavours for RM10”).
  4. Optional Dates: Starts and Ends (the last day the deal runs). Without dates it runs until you switch it off.
  5. Leave Running on and tap Save.

Several prices (2 for RM3, 3 for RM4)

Some deals have a price for each quantity: 1 for RM2, 2 for RM3, 3 for RM4. Make one multi-buy: put the first price in How many to buy and Price for all of them (2 and 3.00), then under More prices (optional) tap Add another price for each of the others (3 for 4.00). “1 for RM2” is the normal price already, so it can be left out. Up to 6 prices in one promotion.

The till charges the mix that costs the customer least:

ItemsThe till charges
1RM2 (normal price)
2RM3
3RM4
4RM6 (3 + 1)
5RM7 (3 + 2)
6RM8 (3 + 3)

Made one promotion per price before (“2 for RM3” and “3 for RM4” on the same products)? From LekasPOS 1.15.0 they work together the same way; the receipt shows the name of the promotion of the biggest group bought (for 5 items: “3 for RM4”).

Good to know

↑ Contents

9. Stock

Menu → Manage shop → Stock (called Inventory before 1.20.0), for staff with the permission Receive, change and count stock (owner and manager by default).

The Stock screen
Stock: what it is, then everything about it in one place.
Change stock: Count, with 21 typed while the app has 24
Change stock → Count: 21 counted, the app had 24 — “3 fewer than the app has”.

Products and stock: how the app knows how many you have

Behind it: stock of a product = the last count + deliveries and changes since then − sales since then + refunds put back on the shelf. Voided sales do not count. Stock can go below zero (selling is never blocked); a count puts it right.

Sales never change the stock of a product with Track stock off, and it gets no low-stock alert. Do not receive or count such products: their stock figure would only grow.

Receive stock (a delivery)

  1. Stock → Receive stock.
  2. Tap the supplier button to choose the Supplier (or New supplier), and type the Invoice / DO no. if you like (you can scan the DO's barcode into it).
  3. Scan each product: each scan adds one piece (a carton barcode adds all its pieces). Or tap Add item, pick the product and type how many. Weighed products always ask the weight. Scanning or adding the same product again adds to its line.
  4. Tap a line to change the Quantity, the Cost per unit, or the Line amount (from the invoice) — typing the invoice's amount keeps it exact and works out the cost per unit. Remove takes the line off.
  5. Tap Save delivery and confirm. Stock goes up and each product's cost price is updated.

The new cost price is the average of the stock on hand and the delivery (moving average). If there was no stock, no cost yet, or the product does not track stock, it becomes the delivery's cost.

A half-entered delivery is kept even if the phone rings, the app closes or the phone restarts: open Receive stock again to continue. × (Discard) throws it away. A saved delivery cannot be edited or deleted; use Change stock for mistakes.

Change stock (count one product, or remove / add)

To set the stock of one product by hand: open the product (Products → tap it) and tap Change stock under In stock now. Or Stock → Change stock → pick or scan the product. (Called Adjust stock before 1.20.0.) The window shows “The app has: …” and three choices:

Use Count when you know how many there are (the usual case for a new manager: the shelf says 21, the app says 24). Use Remove when you know what happened to some (3 broke) — the reason stays on record.

Stock taken off by hand — a Remove, or a Count lower than the app had — is written to the Activity log as Stock written off with its value at cost, so the owner sees it. Every change shows in Stock changes and in the product's Stock history.

Stock count (stock take)

  1. Stock → Stock count → +. Give it a name (today's date is filled in) and choose All products or one category. Tap Start.
  2. Scan or tap a product, type the total you have (shelf and storeroom together), and tap OK. OK with nothing typed records 0.
  3. Counting a product again replaces its count — add up a product kept in two places first. Products you do not count keep their stock.
  4. Each count applies at once, so you can keep selling while counting. Several people can count at the same time on different tills.
  5. Count report shows each product's expected and counted quantity and the value found, missing and net at cost.
  6. When done, open the report and tap × (Finish count). Finishing only closes the count; the stock was already set.

Low stock

Stock → Low stock lists products at or below their Low-stock alert level (set it in the product form). After a sale, staff who may manage stock also see “Running low: …” on the sale's result.

Suppliers and deliveries

Stock history and stock changes

↑ Contents

10. Staff, PINs and roles

Menu → Manage shop → Settings → Staff (needs Manage staff and roles — by default only the owner).

The Staff screen
Staff: while no PIN is set, the app runs as the owner.

Turning on PIN login

While nobody has a PIN, the app runs as the owner with every permission — fine for a one-person shop. To give each person their own sign-in:

  1. Settings → Staff → tap Owner. To use your own name, type it and tap Save, then tap the owner again. Tap Set PIN and type a 4–6 digit PIN twice. Avoid 1234 or a birthday.
  2. The app shows the Owner recovery code (like 7KQM-3HXP-9RTA). Write it down and keep it safe: it is shown only once. Without it, only another owner can give the owner a new PIN. Tap I wrote it down.
  3. PIN login is now on and you are signed in. Add each person with + (New staff): name, Role, Active (may sign in), then their PIN.

The first PIN must be an owner's. At least one owner who can sign in always remains: the app refuses to remove the last one's PIN, role or access.

Signing in and locking

Forgotten PIN

Roles and permissions

Each person has a role. Staff → ⋮ → Roles lists them; tap one to change what it May do, or add your own role with + (for example “Senior cashier”).

PermissionAllowsOwnerManagerCashier
Give discountsBill and item discounts✓✓
Change prices on a billChange an item's price on the bill✓✓
Void salesVoid a sale or refund✓✓
Void their own last sale (within 5 minutes)Void the sale just made (on with Void sales)✓✓✓
RefundsRefunds and returns✓✓✓
Print receipt copiesReceipt copies and sharing old receipts✓✓✓
Open the cash drawerOpen the drawer without a sale✓✓
Add cash, pay from the drawer, take out extra cashMoney in and out of the drawer during a shift✓✓
See expected cash and shift reportsShift reports, past shifts, over/short✓✓
Manage customers, take repaymentsAdd/edit customers, repayments✓✓✓
Sell on creditPay with customer credit within the limit✓✓✓
Go over credit limits, adjust balancesOver-limit sales, credit limits, balance adjustments✓✓
Edit products and categoriesProducts, categories, promotions, CSV, price check price changes✓✓
Receive, change and count stockStock, and Change stock on a product✓✓
See sales reports, profit and stock valueReports and exports✓✓
See the activity logActivity log, Staff check✓✓
Change settingsAll settings, tax rates, payment methods, backup, updates, diagnostics✓
Manage staff and rolesStaff, PINs, roles✓

When a cashier needs a manager

↑ Contents

11. Shifts and cash

A shift is one person's time at one till, from counting the cash drawer at the start to counting it at the end. The app works out how much cash should be in the drawer, so any difference is seen at once.

The Shift and cash screen
Shift & cash: open or close a shift, money in and out of the drawer, reports.

Do I need shifts?

In Settings → Store & receipt → Shifts and customers:

Opening a shift

When the shop requires shifts, the till asks by itself when someone starts using it: Start the shift. You can always use Menu → Open shift.

  1. Count the cash in the drawer — the change for customers (the float) — and type it. Count notes & coins lets you type how many of each note and coin instead.
  2. If the last close left an amount in the drawer, it is already filled in: press OK if that is what you counted. If you count something else, the till asks Not what was left: Count again, or Keep your count (the difference is recorded for the owner).

Money in and out of the drawer

Menu → Shift & cash, while a shift is open on this till (needs Add cash, pay from the drawer, take out extra cash). Record any cash put in or taken out during the shift, so the count at the close comes out right. Each button says what it is for:

ButtonUse it whenExample
Add cashYou put more cash into the drawer.The owner brings RM50 of small change. Note: optional (“From where?”).
Pay from drawerCash from the drawer is spent — it leaves the shop.Paying the bread supplier on delivery, buying ice or plastic bags. You must say what it paid for.
Take out extra cashThere is too much cash in the drawer and you take some to keep it safe — it is not spent.RM500 moved to the safe or handed to the owner in the afternoon. Note: optional (“Where did it go?”).

Each opens the drawer, changes the expected cash and is recorded with who did it. Other shops call these “cash in”, “cash out” (or “paid out”) and “cash drop”. Not sure which one? Ask: was the money spent? Yes → Pay from drawer. No, only moved somewhere safe → Take out extra cash.

Closing a shift

Close the shift when you go home or someone else takes over the till. You do not have to remember where:

Closing takes three steps:

  1. Count the drawer: count all the cash and type the total (or Count notes & coins).
  2. Leave in the drawer: how much stays as change for the next shift (filled in with this shift's float).
  3. Check Counted / Leave in the drawer / Take out for the owner, add a note if you like (e.g. why it is short), and confirm.

A cashier then sees only “Take out RM… for the owner and leave RM… in the drawer” (a “blind” close — they are not told what was expected). Staff allowed to see shift reports get the shift report. It prints by itself when receipts print after every sale; otherwise tap Print report. Closed from Lock / switch user, everyone sees the “Take out … leave …” message and the till then locks; the report is in Shift & cash → Past shifts.

Forgot to close yesterday? In the morning the till says Yesterday's shift is still open: Count the drawer closes it and starts today's shift with the same count.

Handover between cashiers

When someone signs in while another person's shift is open on that till, the till asks Take over the till?

The shift report

Shift & cash → Shift report (current shift) or Past shifts (all tills). It shows sales, refunds, voids, discounts, tax, each payment method, and the cash drawer:

LineMeaning
Opening floatCash counted at the start.
+ Cash sales, Cash refunds (−), Voided (cash) (−)Cash taken and paid back in this shift.
+ Cash added, − Paid from drawer, − Extra cash taken outMoney put in or taken out during the shift (details).
+ Credit repaid in cashCustomers paying their debt in cash.
Expected cashWhat should be in the drawer.
Counted cashWhat was counted at the close.
Over / shortCounted − expected (+ = more than expected).

Only Cash counts towards the drawer. Card, e-wallet, credit and any method you added are listed under the payments but are not in the expected cash, even if they open the drawer. A Checks part lists things worth a look during the shift: bills cleared, items taken off (especially after the total was shown), the drawer opened without a sale, receipt copies, selling without a count, and a float different from what was left. Print report prints it.

↑ Contents

12. Customers and credit

For shops that let regular customers pay later (hutang). Switch it on in Settings → Store & receipt → Customers and credit (pay later). The Menu then shows Customers and the selling screen Add customer.

Customers

Selling on credit

  1. On the selling screen tap Add customer and choose the customer.
  2. Pay → Customer credit (or split: part cash, part credit).
  3. Over the limit, the till asks Over the credit limit — Allow needs a manager.

The receipt names the customer and the result shows what they now owe.

Repayments and adjustments

↑ Contents

13. Reports

Menu → Manage shop → Reports (needs See sales reports). Reports include the sales of every till of the shop (with Google Drive backup on).

The Reports screen
Reports: pick a period at the top.

Periods

Today, Yesterday, This week, Last week, This month, Last month, This year, Last year or Choose dates. Weeks start on Monday.

What the report shows

LineMeaning
Sales (N)Number of sales and their takings before refunds.
Refunds (N)Money paid back.
Voided salesHow many were voided. Voided sales are left out of every figure.
DiscountsDiscounts and promotion savings given.
Net sales (without tax)After discounts and refunds, without tax.
Tax, RoundingTax charged; cash rounding.
Total (after refunds)The money taken.
Cost of goodsWhat the items sold cost you (their average cost when sold).
Gross profit, Gross marginNet sales − cost of goods; and as a percentage of net sales.
Average saleTakings per sale.
Change vs …The total compared with the period before. Days and weeks are compared with the same number of days just before (Monday to Wednesday of this week against the Friday to Sunday before it). Months and years are compared with the same days of the month or year before (1–8 October against 1–8 September).

Below: the total By day, By week or By month; Payment methods; Cashiers; Categories (with profit); Best sellers (top 20); and Stock on hand — the value of the stock you have today, at cost, by category (the same for every period).

Profit is only as good as the cost prices: products with no cost show their whole price as profit. Receiving deliveries keeps costs up to date.

Not sold in this period

Lists products with stock that did not sell at all in the period, highest stock value first — candidates for a promotion or for not re-ordering. Tap one to open it.

Staff check

Reports → Staff check (needs See the activity log) shows, per person and for the chosen period, what is worth a look: sales, items taken off after the total was shown, bills cleared, items taken off, voids, refunds, discounts and price changes, the drawer opened without a sale, receipt copies, cash taken out, stock written off, selling in someone else's shift without a count, a float different from what was left, and the cash over/short of their shifts. People with the most to look at come first.

None of it proves theft — a wrong item is taken off every day. Ask about items taken off after the customer saw the total, a drawer opened without a sale, cash missing from a shift, and one person with far more than the others.

Exports (CSV)

The ⋮ on Reports exports the chosen period as a CSV file for Google Sheets or Excel — Share it (WhatsApp, e-mail, Drive) or Save as a file:

The files are UTF-8, so Malay and Chinese names show correctly in Excel.

Daily sales report to Google Drive

Want the day's figures without opening the app? Settings → Daily sales report to Google Drive → Turn on and allow Google. Every day the sales of the day before are written to a folder LekasPOS in your Google Drive: one file per month, such as 2026-10 daily-sales.csv, with a row for each day (the Sales per day export: sales and refunds are counts, total is the money). It opens in Google Sheets on any phone or computer. Turn it on on one till only (with Google Drive backup on, every till's sales are already in it). It needs Google Play services and internet, and can see only the files it makes.

↑ Contents

14. Activity log

Settings → Activity log (needs See the activity log) records sensitive actions on every till, newest first, with who did it, who approved it, the amount and the details. Filter (the search icon) shows one kind of action.

Recorded: voids, refunds, discounts and price changes, items taken off a bill or bills cleared (marked when after the total was shown), the drawer opened without a sale, receipt copies, product price/cost/barcode changes, deleted products, imports, promotions, stock written off, sign-ins and too many wrong PINs, staff and role changes, shifts, cash added / paid from the drawer / extra cash taken out, float differences, credit limits, repayments and adjustments, over-limit credit sales, manager approvals and settings changes (including backups restored).

Entries cannot be edited or deleted.

↑ Contents

15. Keeping your data safe: backup, restore, Google Drive

All of the shop's data — products, sales, stock, customers, staff — lives on the phone. If the phone is lost, broken, reset, or the app is removed, the data goes with it unless a copy exists somewhere else. LekasPOS makes copies on the phone every day, but those are lost with the phone too. So please choose at least one way to keep a copy off the phone:

WayGood forNeeds
Google Drive backup (recommended)Automatic, every few minutes; restores a lost phone in full; keeps several tills the sameA Google account, Google Play services, internet now and then
Daily copy to a folder (SD card / USB drive)Automatic, daily; no Google needed. Safe when the phone breaks or is reset — but a card or drive inside the phone is lost if the phone is lost or stolen: take it out now and then, or use Google Drive backup as wellAn SD card or USB drive that stays plugged in
Backup file (save or share by hand)An extra copy anywhere: Drive, e-mail, WhatsApp, a computerRemembering to do it every few days

While no copy has left the phone for 3 days, the selling screen shows Not backed up.

Google Drive backup

  1. Settings → Google Drive backup (needs Change settings).
  2. Type a Name of this till (e.g. “Counter 1”).
  3. Tap Turn on sync and choose the shop's Google account. Allow access when Google asks.
  4. The first backup runs in the background (on a big shop it can take a few minutes). The status then says Everything is backed up.

Backups on the phone

The Backup and restore screen
Backup & restore: the backups on this phone and how safe the data is.

Settings → Backup & restore (in Malay just Sandaran) lists the backups kept on this phone:

Hold your finger on a backup to delete it. Remember: these are lost with the phone.

Daily copy to an SD card or USB drive

  1. Backup & restore → ⋮ → Daily copy to a folder (SD card / USB)…
  2. Android's folder picker opens. Go to the SD card or USB drive, create a new folder (e.g. “LekasPOS”) — Android 11 and newer do not allow the top level of the card or the Download folder itself — open it and tap Use this folder → Allow.
  3. The app copies the newest daily backup there at once (Copied to the folder.). From then on, each day's backup is copied as lekaspos-YYYY-MM-DD-HHMM.lekasbak; the newest 7 are kept there.

Copy to the folder now copies the newest daily backup again; Stop copying to the folder stops (files already there stay). If the card is removed, the backup screen shows The last copy to the folder failed.

The daily backup can be up to a day old. For a copy of everything up to now (for example before giving the phone for repair), use Save a backup file… instead.

Google Drive not in the folder list? On some phones (an old Google Drive app) Drive cannot be chosen as a folder. Use a backup file instead: ⋮ → Share a backup file → Save to Drive, or Save a backup file… → Drive. This is not automatic — make a new one every few days. Or use Google Drive backup, which does not need the Drive app.

Backup files

Backup files are not encrypted. Anyone who has one can read all the shop's data, including customers. Keep them private.

Restoring a backup

  1. Backup & restore → tap a backup in the list, or ⋮ → Restore from a file… and choose a .lekasbak file.
  2. The app shows what the backup holds (date, shop, number of sales and products) and asks how to restore. Both choices replace everything on this phone with the backup:
    • Restore this till (a backup of this phone) or Replace the old phone (a backup of another phone) — this phone takes the old till's place; the old phone is no longer used.
    • Add as a new till — the same data, but this phone becomes another till, so both phones can be used.
  3. The backup is checked; then Restart now. The app restarts with the backup's data.

A lost or broken phone

Anything sold after the last copy left the old phone is lost — that is why a frequent copy matters. If the old phone was stolen, change the Google account's password and remove LekasPOS's access in the Google account's security settings.

Data problem

Every day, before the automatic backup, the app checks the database. If it finds damage, the selling screen shows Data problem, no new backup replaces the good ones, and Backup & restore explains. Please get help before restoring (see Getting help); usually the fix is to restore the newest Automatic backup from before the problem.

If the till opens empty with Data problem, your data was set aside, not deleted — do not start again from scratch. Get help and restore within 7 days: after that, new daily backups start to replace the good ones.

Phone storage

Sales cannot be saved on a full phone. The till warns early with Storage almost full. Delete photos, videos or apps you do not need, or old hand-made backups. If a sale fails because the phone is full, the till says so and keeps the bill.

↑ Contents

16. Several tills in one shop

Several phones or tablets in one shop share the same products, prices, staff, customers and stock through Google Drive backup:

  1. Set up the first till and turn on Google Drive backup with the shop's Google account.
  2. On each other till, install LekasPOS, tap Restore or join my shop from Google Drive on the welcome screen, give the till its own name and turn on sync with the same Google account. It receives everything.

Join with a new, empty phone: do not add products or sell on it first. If the phone already has products or sales, the app asks Join another shop? — joining adds them to the shop on every till for good, and products entered on both phones stay twice.

↑ Contents

17. Settings

Menu → Manage shop → Settings. Most settings need the permission Change settings (only the owner by default; others are asked for an owner's PIN). Settings marked this till apply only to the phone they are changed on; the others apply to the whole shop and reach every till through Google Drive backup.

The Settings screen
Settings, in groups, in the order they appear.
SettingWhat it doesApplies to
This till
App languagePhone's language, English or Bahasa Melayu for the screens. Receipts have their own language.this phone
Item size on the selling screenLarge (fewer items), Medium (default) or Small (more items) tiles.this till
Printer & cash drawerReceipt printer and drawer — below.this till
Barcode scanner & cameraTest a scanner, serial scanner, camera scanning — below.this till
Customer screen (second screen)Shows the bill to customers on a second display — details. On by default.this till
Beep soundWhere the scan beeps play: This till's speaker (default), Customer screen, when connected or Off — details.this till
Shop
Store & receiptShop details, receipt, tax, rounding, shifts, customers, scale labels — below.shop
Payment methodsPayment methods.shop
Tax ratesTax rates.shop
CategoriesCategories.shop
CustomersChapter 12.shop
Staff and cash
StaffStaff, PINs, roles, when the till locks — chapter 10.shop (lock: this till)
Shift & cashChapter 11.this till
Activity logChapter 14.shop
Data and backups
Google Drive backupGoogle Drive backup.this till
Backup & restoreBackups, folder copy, files, restore.this till
Daily sales report to Google DriveDaily sales report.this till
Help and app
User guideOpens this guide in the app's language (LekasPOS 1.13.1 and newer).—
App updatesApp updates.this phone
Error reportsError reports.this phone
DiagnosticsDiagnostics.this phone
AboutVersion, licence, website and privacy policy.—

Store & receipt

Store and receipt settings
Store & receipt: printed at the top of every receipt.
Store
Store name (also the title of the selling screen), Address, Phone, Email, Business registration no. (SSM), SST registration no., Tax identification no. (TIN). Empty fields are left off the receipt.
Receipt
Receipt header text and Receipt footer text (empty footer = “Thank you!”); Receipt language (English or Bahasa Melayu); Receipt copies (1–3, for the automatic receipt after a sale); Print the logo with Choose logo picture / Remove logo — the logo picture is kept on the phone it was chosen on, so choose it on each till; Print an e-invoice request QR code with its QR link — in the link, {receipt}, {total} and {date} are filled in for each sale.
Tax and rounding
Prices include tax (on by default) and Round cash payments to 5 sen (on by default).
Shifts and customers
Require an open shift to take payments, Count the drawer when the cashier changes, Customers and credit (pay later).
Weighing-scale labels
Label formats — details.

Tap Save. Changes are recorded in the Activity log. The currency is Malaysian ringgit (RM).

Printer & cash drawer

The top line shows the printer's Status (ready, connected, printing, offline…) with Retry when it is offline.

OptionChoices (default first)
Choose a paired printer / Pair a new printer (Bluetooth settings)Bluetooth printers paired in Android.
Paper width58 mm (32 characters); 80 mm (48 characters); 80 mm (42 characters).
Print asAutomatic (text; picture when needed); Text (fastest); Picture (any language). Automatic prints a picture only when a receipt has letters the printer cannot print (Chinese, Tamil, €…).
Printer has Chinese characters (GB18030)Off. Turn on for a Chinese printer to print Chinese as text.
Code page number0 (usually right).
Cut the paperOn.
Blank lines after the receipt4.
Print a receipt after every saleOn. Off: tap Print receipt after a sale when the customer wants one.
Printer draws QR codes itselfOff.
Cash drawer connected to the printerOn.
Drawer pinPin 2 (most drawers); Pin 5.

Buttons: Save, Print a test page, Open the drawer, and Clear the print queue while receipts are waiting.

Barcode scanner & camera

↑ Contents

18. Hardware

HardwareWhat works
Phone or tabletAndroid 5.0 or newer, 5-inch phones to 10-inch tablets, upright or sideways.
Receipt printerBluetooth thermal printers using ESC/POS commands (most cheap 58 mm and 80 mm printers), paired in Android's Bluetooth settings. USB, Wi-Fi/LAN and Bluetooth LE-only printers are not supported.
Cash drawerA drawer plugged into the printer's drawer port (pin 2 or pin 5).
Barcode scannerUSB or Bluetooth scanners in keyboard (HID) mode — no setup; or Bluetooth serial (SPP) scanners chosen in Settings. Ideally set to send Enter after each code.
CameraThe phone's back camera reads EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39 and QR codes.
Weighing scaleNo cable connection: a label-printing scale prints barcodes with the weight or price (set up).
Customer screenA TV or monitor as a second display: HDMI, USB-C, or Miracast (“Screen mirroring”, “Smart View”, “Wireless display”).
Backup storageAn SD card or USB OTG drive for the daily folder copy.

Barcode scanner tips

Customer screen on a second display

The customer screen showing a bill
What customers see: each item as it is added, the item just added, and the total.
  1. Connect the TV or monitor with an HDMI or USB-C cable, or cast to it with Screen mirroring / Smart View / Wireless display (swipe down from the top of the tablet, or Settings → Customer screen → Connect a screen).
  2. With LekasPOS open, the second screen shows Welcome with the shop's name, while the tablet stays the cashier's screen.
  3. While selling, customers see each line, the item just added (large, with its picture), any bill discount, the Total (Total to pay during payment) and, after paying, Thank you!, Paid and their Change.

↑ Contents

19. App updates, error reports and diagnostics

App updates

Error reports

Once, the app asks Help fix problems? With Send reports, when the app stops, freezes or shows an error, the phone sends a short technical report to the LekasPOS developer: what went wrong, the app version, the phone model, Android version and memory. It never holds your sales, products, prices, customers, staff, PINs or Google account. Change your answer any time in Settings → Error reports.

Diagnostics

Settings → Diagnostics (or Manage shop Diagnostics) is for solving problems:

↑ Contents

20. Troubleshooting and questions

Selling

The scanner beeps but nothing is added / “Barcode not found”.
The product does not have that barcode yet. Add it with Add product (a manager's PIN for cashiers), or add the barcode to the existing product in Products. Carton barcodes need Add pack barcode.
The scanner types into the search box, or nothing happens.
Check the scanner in Settings → Barcode scanner & camera → Test a scanner. Set the scanner to send Enter after each code (see its manual). A serial (SPP) scanner must be chosen there; a keyboard-mode one needs no setup.
The on-screen keyboard disappeared.
A keyboard-mode scanner is connected. Turn on Use on-screen keyboard in Android's keyboard settings (the app offers Keyboard settings).
I cannot find Bill discount, Item discount or Open cash drawer in the Menu, or Refund / Void on a receipt.
Your role does not allow it, so it is hidden. Ask a manager to tap Menu → Manager PIN and type their PIN: the buttons appear (refunds, voids and the drawer ask for the manager's PIN again). Or the manager signs in with Lock / switch user.
The till says “Check the date and time”.
The phone's clock is wrong (often after the battery ran flat). Sales are kept under the date they were made, so set the right date and time first — best with automatic date and time on.
The till says “No shift open”.
The shop requires a shift: tap Open shift, count the drawer, then pay. To stop requiring shifts: Settings → Store & receipt → Require an open shift to take payments off. On LekasPOS 1.13.0 and older a new till joining the shop could switch it on again: check it after adding a till.
“Sale not saved”.
The sale was not recorded and the bill is kept. Read the reason (often the phone is full), fix it and tap Pay again. If the customer already paid by card or e-wallet on your terminal, do not charge them again: just tap the same method.
A customer was charged twice / a test sale.
A manager opens Menu → Sales & refunds → the sale → Void. A void only corrects the records: give the customer's money back yourself (cash from the drawer; card or e-wallet on your terminal or bank app).
The app locks too often / never.
Settings → Staff → ⋮ → When the till locks (per till).

Printer and drawer

“No paired devices” when choosing a printer.
Pair it first in Android's Bluetooth settings (PIN usually 0000 or 1234), then Choose a paired printer.
“Printer offline” / “offline, tap Retry”.
Is the printer on, charged and near? Is Bluetooth on? Is it connected to another phone? Tap Retry in the printer settings. On Android 12+, allow Nearby devices (Open settings → Permissions).
“not printing: check the paper and the cover”.
Out of paper, cover open or overheated. Fix it; printing continues by itself.
Receipts that were waiting never printed.
Automatic receipts waiting more than 10 minutes are dropped. Print a copy from Sales & refunds.
Question marks or wrong letters on the receipt.
Set Print as to Automatic or Picture. For a Chinese printer turn on Printer has Chinese characters. Keep the code page at 0.
Lines are cut or wrap.
Choose the right Paper width; for 80 mm try both 48 and 42 characters with Print a test page.
The cash drawer does not open.
Check Cash drawer connected to the printer is on, try Pin 5, and check the payment method has Opens the cash drawer ticked. The printer must be connected.

Backup and Google Drive

“Not backed up” will not go away.
Turn on Google Drive backup or the daily folder copy — or save/share a backup file. With Google Drive backup on, open its screen: the status says what is wrong (no internet, sign in, Drive full).
“Backup: sign in”.
Settings → Google Drive backup → Sign in again with the same Google account.
“Google Drive backup needs Google Play services”.
This phone has no Google Play services: use the daily copy to an SD card or USB drive.
“The Google Drive of this store is full”.
Free space in that Google Drive or buy more storage; backup continues by itself.
“This phone's date or time is wrong”.
Turn on automatic date and time in Android's settings.
Google Drive is not in the folder list.
Use Share a backup file → Save to Drive instead, or Google Drive backup.
“This is not a LekasPOS backup file” / “damaged or incomplete”.
Choose a .lekasbak file; try another copy if it was cut short.
Changes on one till do not appear on the other.
Both tills need Google Drive backup on with the same Google account and internet. Tap Sync now on both. Tills in this store shows when each till last synced.

Other questions

Products or Stock — which one do I open?
Products to add a product or change its name, price, barcode or picture. Stock for how many you have: deliveries, counting, low stock. The stock of one product is also on its form, under the price, with Change stock. See Products and stock.
The app's stock is not what is on the shelf.
Count that product on the shelf and in the storeroom, open it and tap Change stock → Count, type the total and Save. The app's stock covers both places together. If it keeps going wrong, check that deliveries are received in the app (Stock → Receive stock) and that every sale goes through the till.
Is my data sent to the developer?
No. Shop data stays on the phone and, if you turn on Google Drive backup or the daily sales report, in your own Google Drive. Error reports (only if you allow them) hold technical details only. See the privacy policy.
Do I need internet?
Not to sell. Only for Google Drive backup, the daily sales report, updates and error reports (if you allow them).
Does it cost anything?
No. LekasPOS is free and open source (GPL-3.0).
Can I use it for e-invoicing (LHDN)?
LekasPOS does not send e-invoices to LHDN itself. The receipt can print a QR code to your own e-invoice request page (set the link in Store & receipt), and the Receipts – for the monthly e-invoice export lists every receipt so you or your accountant can submit the monthly consolidated e-invoice (leave out the voided ones).
The owner forgot the PIN and lost the recovery code.
Another person with the Owner role can set a new PIN for them (Settings → Staff). Without another owner there is no way back in — please ask for help before clearing or reinstalling the app, which deletes the data on that phone. Keep the recovery code safe, and consider giving a second trusted person the Owner role.
How do I move to a new phone?
First finish selling on the old phone. With Google Drive backup, wait until the old phone's Google Drive backup screen says Everything is backed up, then set up the new phone as in A lost or broken phone. Without it, save a backup file on the old phone after the last sale and restore it on the new one with Replace the old phone. Do not sell on the old phone after that.

↑ Contents

21. Words used in the app

EnglishBahasa MelayuMeaning
TillKaunterOne phone or tablet used for selling.
BillBilThe items of the customer being served.
Hold / held billTangguh / bil ditangguhA bill put aside to serve someone else.
Clear billKosongkan bilThrow away the bill on the screen.
ChangeBakiMoney given back to the customer.
Split paymentPecah bayaranA bill paid with more than one method.
RoundingPembundaranCash rounded to the nearest 5 sen.
Receipt copySalinan resitAny print of a receipt after the first.
Refund / returnBayaran balik / pulanganMoney paid back for items returned.
VoidBatalkanCancel a whole sale as if it never happened.
Price checkSemak hargaSee a price without selling.
PopularLarisThe best sellers of the last 30 days.
PromotionPromosiA deal the till applies by itself.
ShiftSyifOne person's time at one till, from count to count.
FloatWang apunganThe change in the drawer at the start of a shift.
Add cashTambah wangMore cash put in the drawer during a shift (e.g. small change).
Pay from drawerBayar dari laciCash spent from the drawer (e.g. paying a supplier). Also called “cash out” or “paid out”.
Take out extra cashKeluarkan wang lebihanExtra cash taken to the safe or the owner — kept, not spent. Also called a “cash drop”.
Expected cash / over / shortTunai dijangka / lebih / kurangWhat should be in the drawer, and the difference.
Customer creditKredit pelangganPay later; the customer owes the shop.
Owner / Manager / CashierPemilik / Pengurus / JuruwangThe built-in roles.
Manager approvalKelulusan pengurusA manager's PIN for something the cashier may not do.
Recovery codeKod pemulihanThe owner's way back in after a forgotten PIN.
Activity logLog aktivitiThe record of sensitive actions.
Receive stock / deliveryTerima stok / penghantaranGoods arriving from a supplier.
Change stock / written offUbah stok / dihapus kiraStock set or changed by hand (counted, damaged, expired…).
Stock countKiraan stokCounting what is on the shelves.
Cost priceHarga kosWhat one piece or kg costs you.
Gross profitUntung kasarNet sales minus the cost of the goods sold.
Google Drive backup / syncSandaran Google Drive / segerakCopying the shop's data to Google Drive and between tills.
Backup & restoreSandaranCopies of the data and bringing one back.

↑ Contents

22. Privacy and getting help

↑ Contents