How to get your POS ready for KRA eTIMS before the deadline — without disrupting daily sales
Learn the exact steps Kenyan shops take to connect their POS to M-Pesa, generate eTIMS-compliant invoices, and stay offline-first while avoiding costly ta.
Orwan Consulting27 August 202611 min read
Open
Morning routine and compliance pressure
It is Tuesday morning in Nakuru. The owner of a hardware shop counts the day’s first M-Pesa STK push notifications while the cashier writes each sale in a paper ledger. By 10 am the WhatsApp group for the three branches is buzzing with questions about stock levels, and the accountant is already pulling out last month’s Excel sheet to match bank statements with the till slip pile. The deadline for KRA eTIMS compliance is two weeks away, and the owner worries that a single mismatched invoice could attract a penalty.
Daily operations and communication challenges
The shop sits on Moi Avenue, just a few blocks from the bustling Nakuru market where traders sell fresh produce and livestock. As the sun rises, the owner unlocks the metal shutters, turns on the fluorescent lights, and greets the first regulars who come in for nails, paint, and plumbing fittings. While the cashier meticulously logs each transaction in a battered notebook, the owner’s phone vibrates with a stream of M-Pesa confirmations—each one a tiny digital receipt that must later be traced back to the paper entry. The WhatsApp group, named “Nakuru Hardware – Ops”, fills with photos of empty shelves and urgent requests to confirm whether a particular brand of cement is still in the back store. Meanwhile, the accountant, seated at a small desk piled with receipts, opens the Excel file that has become the shop’s unofficial ledger, scrolling through rows of dates, amounts, and M-Pesa codes in an attempt to reconcile the day’s cash flow before the midday rush.
The problem
Overview of costly problems
Many Kenyan businesses still run sales on paper or spreadsheets and reconcile M-Pesa payments manually. This creates three costly problems that show up every month.
Manual invoicing leads to errors
First, manual invoicing leads to errors. A wrong tax amount or missing PIN on an eTIMS-required invoice can be flagged by KRA, resulting in fines that run into thousands of shillings and the time spent correcting each notice. For example, a shop that sells a bag of cement might accidentally omit the VAT line on the invoice; when KRA’s system checks the filing, the discrepancy triggers a notice that forces the owner to halt sales, re-print the invoice, and spend an afternoon on the phone with the tax office, delaying payments to suppliers.
Reconciling M-Pesa with sales consumes hours
Second, reconciling M-Pesa with sales eats up hours. The shop owner must compare each STK push code with the paper ledger, then enter the amount into Excel, and finally match it to the bank statement. When the internet drops, the process stops, delaying cash-flow visibility and making it hard to know which sales have actually cleared. Imagine a rainy afternoon when the mobile network falters; the owner records a sale of paint in the notebook, but the M-Pesa notification never arrives on the phone. Later, when the connection returns, the owner discovers a mismatch between the cash counted in the till and the bank statement, prompting a frantic search through the paper ledger to locate the missing entry.
Fragmented tools create data silos
Third, fragmented tools create data silos. Sales are recorded in a notebook, inventory is tracked in a separate WhatsApp chat, and customer contacts live in a different group. When a customer returns a product, the shop cannot quickly see whether the item was sold, leading to stockouts or over-stocking and lost sales. Consider a scenario where a trader brings back a partially used roll of wire because it was damaged; the shop assistant checks the WhatsApp inventory chat, sees no recent update, and assumes the wire is still in stock, only to discover later that the last sale was recorded in the notebook two days earlier, leaving the shelf empty and the next customer disappointed.
Impact: lost revenue, delayed payments, compliance risk
These problems are not abstract; they translate into lost revenue, delayed payments, and the risk of non-compliance as the eTIMS deadline approaches.
How it works in Kenya
Automatic eTIMS-compliant invoicing via Daraja
An eTIMS-ready POS does more than print a receipt. It connects directly to the Safaricom Daraja API so every Lipa Na M-Pesa or paybill transaction triggers an automatic invoice that includes the required VAT, PIN, and timestamp. The invoice is sent to KRA in the background, and a copy is saved locally for the customer.
Offline‑first operation prevents data loss
Because Kenyan shops often face spotty internet, the system works offline-first. Sales, stock adjustments, and receipts are stored on the device. When connectivity returns, the POS syncs the batch of invoices and payment confirmations to the cloud and to KRA, ensuring no data loss. Picture a shop in a matatu-heavy area of Nairobi where the signal drops for twenty minutes during the lunch rush; the cashier continues to scan items, the POS logs each sale locally, and once the router reconnects, the system pushes the accumulated invoices to KRA in one seamless batch, preventing any loss of transaction data.
Real‑time inventory across branches with alerts
The same POS can be linked to a simple inventory module. When an item is scanned at checkout, stock levels drop instantly across all branches. Low-stock alerts can be sent to the manager’s phone via WhatsApp or SMS, keeping the team aligned without needing a separate app. For instance, when the last box of a popular brand of screws falls below the threshold set by the owner, the POS triggers an automated WhatsApp message to the branch manager, prompting a quick reorder from the supplier before the shelf goes empty.
Unified inventory for online and walk‑in sales
For businesses that already use a website for online orders, the POS can push those sales into the same inventory pool, so online and walk-in sales share one stock count. This eliminates the need to maintain two separate spreadsheets. A small electronics store in Kisumu, for example, receives an order through its WordPress site; the POS instantly reduces the available quantity of a smartphone in the central inventory, and the same updated count is reflected when a walk-in customer later asks for the same model, preventing overselling.
Where businesses go wrong
Common mistakes that increase cost and risk
Based on what we see in shops across Nairobi, Mombasa and Kisumu, here are three specific mistakes that increase cost and risk.
Choosing a POS without eTIMS‑compliant invoicing
Choosing a POS that only prints receipts but does not generate eTIMS-compliant invoices. The shop thinks it is compliant because the receipt looks correct, yet KRA rejects the invoice during audit. The cost: a fine of up to KES 50,000 per incorrect filing plus the hours spent re-issuing documents. A typical example is a boutique in Westlands that upgraded to a sleek tablet-based POS for its modern look, only to discover during a KRA spot check that the invoices lacked the mandatory PIN, forcing the owner to halt sales for a day while the vendor re-issued compliant documents.
Relying on a cloud‑only POS that loses data offline
Relying on a cloud-only system that stops working when the internet drops. During a typical afternoon in a matatu-heavy area, the connection fails for 20 minutes. Sales made in that window are lost or entered later, causing mismatches between the till and the bank statement. The cost: delayed cash-flow reconciliation, leading to short-term borrowing or missed supplier payments. Imagine a hardware outlet on Moi Avenue in Nakuru where the owner relies on a purely cloud POS; when a sudden rainstorm knocks out the local tower, the cashier continues to take payments, but the system cannot store them locally, resulting in a gap that only appears when the owner tries to reconcile the day’s takings with the bank statement at closing time.
Keeping inventory in a separate, infrequently updated Excel file
Keeping inventory in a separate Excel file that is updated only at week-end. When a fast-moving item sells out on Wednesday, the shop does not know until Friday, leading to lost sales and excess stock of slower items. The cost: lost revenue from stockouts and carrying cost of excess inventory, both of which erode margins. A grocery stall in Kisumu’s City Market, for instance, updates its Excel sheet every Monday morning; by Thursday, the popular brand of cooking oil has run out, but the staff only discovers the shortage on Friday when they attempt to fulfill a large catering order, causing them to turn away customers and scramble for an emergency purchase at a higher price.
Root cause: treating compliance as an add‑on
Each mistake stems from treating compliance as a separate add-on rather than integrating it into the daily sales flow.
The path forward
Before: manual, paper‑based workflow
Before: A shop in Eldoret runs sales on a paper book, writes M-Pesa codes in a notebook, and updates inventory in a shared Excel sheet every Monday. The accountant spends Friday mornings matching the three sources, often finding discrepancies that require phone calls to each branch.
After: eTIMS‑certified POS with offline and real‑time inventory
After: The same shop installs an eTIMS-certified POS that talks to Daraja, works offline, and updates inventory in real time. Sales made on a boda-boda run are recorded instantly; when the phone regains signal, the POS pushes the invoices to KRA and syncs stock across the two branches. The accountant now receives a daily automated report that matches M-Pesa, sales, and inventory, cutting reconciliation time from three hours to fifteen minutes.
Step 1: Map your current sales flow
Map your current sales flow. Write down how a sale moves from customer to cash, how M-Pesa is recorded, and where inventory is updated. Identify the points where you rely on paper, WhatsApp, or Excel.
Step 2: Choose an eTIMS-ready POS with offline capability
Choose an eTIMS-ready POS with offline capability. Look for a solution that integrates Daraja (STK push, paybill, till) and can store invoices locally until connectivity returns. Verify that the vendor provides KRA-approved eTIMS certification.
Step 3: Link inventory to the POS
Link inventory to the POS. Ensure that every scan adjusts stock across all locations and triggers low-stock alerts via WhatsApp or SMS. This removes the need for a separate spreadsheet.
Step 4: Run a parallel test for one week
Run a parallel test for one week. Process a few sales through the new system while keeping the old method as backup. Compare the automated KRA invoice logs with your paper ledger to confirm accuracy before cutting over completely.
Step 5: Train staff and gather feedback
Train staff and gather feedback. Hold a short hands-on session for cashiers and managers, collect their observations on usability, and adjust settings such as alert thresholds or invoice layouts before full rollout.
Outcome: low‑risk path to compliance
These steps give you a clear, low-risk path to compliance without shutting down the shop.
What it costs
Basic eTIMS‑ready POS with inventory tracking
A basic eTIMS-ready POS system that includes inventory tracking starts at KES 80,000.
Cloud‑only version for existing hardware
If you already have a hardware tablet or Android phone, the cloud-only version can begin at KES 30,000.
Two‑branch setup with local server sync and offline storage
For a small shop with two branches that needs local server sync and offline storage, the range is KES 120,000–200,000. This covers installation, Daraja setup, eTIMS certification, and two weeks of local support from our Nairobi team.
Add‑on modules: mobile app and website
If you later want to add a mobile app for field sales agents or a website for online orders, those modules are priced separately: mobile app from KES 150,000, website from KES 50,000 (complex up to KES 300,000). You can add them later as your business grows, without rebuilding the core POS.
What the price includes and ongoing support
The quoted amounts include the hardware configuration, software licensing, initial data migration, and a series of on-site training sessions designed to get your team comfortable with the new workflow. Ongoing support is available on a retainer basis, ensuring that any connectivity issues or software updates are handled promptly without disrupting daily trade.
Common questions
Do I need to replace my existing accounting software?
No. The POS can export daily sales and tax summaries in CSV or PDF that import into most offline accounting tools used by Kenyan SMEs.
What if my internet is down for a whole day?
The system continues to record sales and stock changes locally. When the link returns, it syncs the batch of invoices to KRA and updates the cloud inventory, so nothing is lost.
How long does the setup take?
For a typical retail shop, installation and configuration take two to three days, including staff training on the new workflow.
Can I use the same POS device for both my shop and my market stall?
Yes, the POS is designed to be portable; you can move the tablet or phone between locations as long as it remains connected to the same cloud account, and inventory will stay synchronized across sites.
Close
Free discovery session with Orwan Consulting
Book a free discovery session with Orwan Consulting in Nairobi — we map your processes and show you exactly what we would build, as a fixed-cost proposal.