The Vendra POS module is the front-line sales interface for retail shops, supermarkets, and restaurants. It handles order taking, payment collection, and receipt printing — and feeds every transaction directly into your inventory and accounting systems without any manual entry.
Opening a POS session
A POS session is the working period during which a terminal is open for sales. You open a session at the start of a shift and close it at the end. Each session tracks all transactions, payments, and discounts independently — so if you have multiple cashiers, each runs their own session.
To open a session:
- Go to Point of Sale from the left sidebar.
- On the Dashboard, locate the terminal you want to open (e.g., Shop or Restaurant).
- Click the Open button on the terminal card.
- If your setup uses employee login, enter your employee PIN when prompted.
- The live POS screen opens and the session is now active.
The Dashboard shows all configured terminals and the status of their last session. An active session displays a live order count. You can also view a previous session's summary without opening a new one.
Processing a sale
Once a session is open, every sale follows the same pattern: add products, apply any discounts, select payment, and validate.
- Scan the product barcode with a connected scanner, or type the product name or code in the search bar to find it.
- The product is added to the order. Use the numeric keypad to change the quantity if the customer is buying more than one unit.
- Continue scanning or searching for additional products.
- To attach the sale to a named customer, click the customer icon and search by name or phone number. This is optional for most retail sales.
- When all items are added, click Payment.
- Select the payment method — Cash, M-Pesa STK Push, Bank/Card, or any method configured for this terminal.
- Enter the amount tendered (for cash, enter what the customer hands you — the system calculates change automatically).
- Click Validate to confirm the payment.
- The receipt prints automatically if a printer is connected, or displays on screen for the customer to view.
Products are identified by their barcode in under a second. If a product does not have a barcode, it can be found by name or internal reference using the search field. You can also set up product category tabs on the POS screen for quick access to frequently sold items.
Applying a discount
The POS Discount module (pos_discount_amount) allows cashiers to apply discounts at the line level. Discounts can be configured as a fixed percentage, a fixed amount, or a combination of both.
To apply a discount on a sale:
- Add the product to the order.
- Select the product line you want to discount by clicking on it.
- Click the discount button (% icon) on the POS keypad or action bar.
- Enter the discount percentage. The line price updates immediately to show the discounted amount.
- Proceed to payment as normal.
Cashier discount limits are controlled in Configuration → Settings → Sales. You can set a maximum discount percentage for standard cashiers and allow managers to override with a higher limit. The POS Financial Security module can require a manager PIN for any discount above the cashier's limit.
Splitting payment across methods
A single transaction can be paid using multiple methods. This is useful when a customer wants to pay part cash and part via mobile money, or when combining a loyalty credit with a cash balance.
At the payment screen, enter the first payment amount and select the method. Then click Add Payment to add a second method and enter the remaining amount. The system only allows you to validate once the full order total is covered. Each method is tracked separately in the session report.
Processing a return or refund
Returns are processed from the back-office order history, not directly from the live POS screen:
- In POS, go to Orders → Orders.
- Find the original order using the date filter or by searching the order reference or customer name.
- Click Return on the order.
- Select the products and quantities being returned. You can do a partial return if the customer is only bringing back some items.
- Click Return to create the return order.
- Process the refund payment — choose the refund method (typically reversing the original payment method or issuing cash).
- Validate. Stock is automatically restored for the returned items, and the accounting entry is reversed.
Closing a POS session
At the end of a shift, each cashier closes their session independently. The closing process reconciles the physical cash in the drawer against the system's expected amount.
- In the live POS interface, click the close/hamburger menu icon (top right or top left, depending on your terminal layout).
- Select Close Session.
- Count the physical cash in your drawer. Enter the quantity of each denomination using the coins/bills denominations panel.
- Review the closing summary — it shows total sales, theoretical cash (what the system expects), actual cash (what you counted), and any difference.
- Review the totals for each payment method (M-Pesa, card, etc.).
- Click Close Session to finalize. The session is recorded and cannot be reopened.
After closing, the session report (Z-report) is available from POS → Orders → Sessions. It shows the complete breakdown of the session: total revenue, taxes collected, discounts given, payment method totals, and the cash discrepancy. This report feeds directly into the accounting module.
Real-time inventory: pos_stock_control
When the Real-Time Inventory Control module is active, every sale immediately deducts from the warehouse linked to the POS terminal. This is not a batch update — stock levels change with each validated transaction. If you have multiple checkout terminals scanning simultaneously, all deductions are processed correctly against the same stock pool.
The current stock level for each product is visible at the POS cashier screen when the product is selected. If a product reaches its minimum reorder point, it is automatically added to the replenishment queue in the Inventory module. This gives your purchasing team early warning before a product runs out entirely.
Cashier security: pos_financial_security
The Financial Security module adds access controls that protect against unauthorized discounts, voids, and cash manipulation:
- Maximum discount percentage per cashier role — a cashier can apply up to 5% without approval; a supervisor up to 15%.
- Void restriction — only users with manager access can void a completed order line or transaction.
- Price override restriction — prevent cashiers from manually editing product prices at the till.
- Manager PIN authorization — any transaction exceeding a defined threshold requires a second PIN from a manager.
Configure these rules in Point of Sale → Configuration → Settings → Sales. Each restriction can be toggled independently, so you control exactly how much autonomy cashiers have at the till.
POS configuration reference
Payment methods
Add and configure Cash, M-Pesa STK Push, Bank/Card, and Customer Account (credit) methods per terminal in Configuration → Payment Methods.
Receipt settings
Upload your logo, set header and footer text, configure auto-print, and enable VAT numbers on receipts in Configuration → Settings → Bills & Receipts.
Cashier accounts
Enable the POS HR module so employees log in by PIN. Each cashier's sales are tracked separately and their name appears on receipts and session reports.
Connected devices
Link receipt printers (Epson via IoT box), barcode scanners, and cash drawers in Configuration → Settings → Connected Devices.
POS product categories
Group products into on-screen category tabs (Beverages, Snacks, Electronics) so cashiers can browse without scanning. Configure in Configuration → PoS Product Categories.
Multiple terminals
Create additional terminals in Configuration → Point of Sales. Each terminal can have its own payment methods, product layout, receipt design, and hardware connections.