From opening the account to closing the books: every screen, in the order you will actually need it. Start at the top if you are new, or jump to the part you are stuck on.
NewPOS runs the counter and the back office at the same time. The till takes the money; everything behind it — stock, staff, customers, debts, expenses and profit — updates as a consequence, rather than being typed in again later.
You do not have to set all of it up. A kiosk selling airtime can be running in ten minutes with nothing but products and a price. A pharmacy with three branches, batch numbers and a controlled drug register will use most of this document. Everything below is optional except sections 2 to 4.
permission.name is the permission a member of staff needs before that
screen appears for them at all. If somebody says a page is missing, this is almost
always why.NewPOS costs KES 200 per business per month. One price — unlimited branches, staff, products and devices. No contract: pay for a month, stop whenever you like.
There is no free trial. The account exists but nothing opens until the first payment, so the till cannot be set up and quietly used without paying for it.
If no prompt arrives, pay manually: paybill 4024151, with
the account number shown on the Billing page (it looks like POS00123). It is
matched to your business automatically.
billing.manage
permission.Your month runs for 30 days. You are texted before it ends. If it lapses you get a short read-only grace window — your data is never touched, and everything comes straight back when you pay. Paying early adds the month on top of what is left rather than wasting it.
↑ back to contentsStraight after your first payment you are offered a short setup page. It asks what kind of business you run and offers to create a starting set of categories for it. Say yes — you can rename or delete any of them in a minute, and it is faster than starting from nothing.
Settings · settings.manage
| Setting | What it does |
|---|---|
| Business name | Printed at the top of every receipt and statement. |
| Phone, email, address | On receipts, and where customers reply. |
| KRA PIN | Printed on receipts and required if you ever switch on eTIMS. |
| Currency | KES by default. |
| Default tax rate | Applied to new products unless you override it on the product. |
| Prices include tax | Tick if your shelf prices are VAT-inclusive, which is normal in Kenya. |
| Receipt footer | One line at the bottom of every receipt — returns policy, thank you, anything. |
| Text the receipt | Offers an SMS receipt at the till. Each one costs from your SMS credit. |
| Allow selling into negative stock | Off for a shop that counts things. On for a kitchen or salon, where the count is never exact. |
| Low stock alerts | Daily notification when something falls under its reorder level. |
| Loyalty rate | Points earned per shilling spent. Leave at zero if you do not run loyalty. |
Branches · branches.manage
Every business starts with one branch called Main Branch, code MAIN.
That is your head office. If you only have one shop, you can ignore this section
entirely.
Give it a name, a short code and a type:
The code appears in every receipt number from that branch, so WEST-00042
tells you where a sale happened without opening it. Keep codes short.
Move stock between them at Inventory → Transfers. Compare them at Reports → Branch comparison.
↑ back to contentsSettings → Payment accounts ·
settings.manage
This is the most important page in the system, and the one most often left half-done. It decides whose bank the money goes into.
Money from your customers goes to your till, paybill or bank account — never through us. Until you put your number here, the M-Pesa button at the till has nowhere to send a payment to.
| Kind | What you enter | Prompt on the customer's phone? |
|---|---|---|
| M-Pesa till (Buy Goods) | Your till number | Yes |
| M-Pesa paybill | Your business number. Leave the account blank to send the receipt number with each payment, or fix it so everything lands under one account. | Yes |
| Bank account (by paybill) | The bank's paybill and your account number with them. The account number never changes — it is how the bank knows whose account to credit. | Yes |
| Send money | A phone number. The customer sends and reads you the code. | No |
| Pochi la Biashara | Your Pochi number. Customer pays, reads you the code. | No |
You can have as many accounts as you like, and set a different default per branch — useful when two shops bank separately.
↑ back to contentsPeople → Staff · staff.view,
staff.manage
Staff sign in with their own phone number and password. Nobody shares a login — not because of a rule, but because the audit trail is worthless if three people are "Peter".
These are starting points, not policy. Every one can be edited.
| Role | Can do |
|---|---|
| Administrator | Everything, including staff, settings and billing. |
| Manager | Sell, discount, refund, void, the whole of stock and buying, customers and credit, expenses, reports including profit. Not staff pay, settings or billing. |
| Cashier | Use the till, and open and close their own shift. Nothing else. No sales history, no stock, no prices, no reports. |
| Waiter | Take orders at tables, run tabs, see the kitchen screen, open and close their own shift. |
| Technician | The repair board, plus viewing products and stock. |
| Storekeeper | Products, stock, transfers, stocktakes, purchases and suppliers. Cannot sell. |
| Accountant | Sales history, finance, expenses, the full ledger, customers and credit, reports and profit. Cannot sell or touch stock. |
People → Staff → Roles ·
roles.manage
Open a role and tick the permissions it should have. Changes apply the next time that person loads a page. You can also create your own role — "Senior cashier", "Stock clerk" — rather than bending an existing one.
Selling
pos.sell | Use the POS terminal |
pos.discount | Apply discounts |
pos.price_change | Change item prices at the till |
pos.refund | Process returns and refunds |
pos.void | Void or cancel a sale |
pos.credit | Sell on credit |
sales.view | View sales history |
sales.delete | Delete sales |
quotes.manage | Quotations and invoices |
promotions.manage | Create offers and automatic discounts |
pricing.manage | Manage price lists and trade prices |
Inventory
products.view | View products |
products.manage | Add and edit products and prices |
stock.view | View stock levels |
stock.adjust | Create stock adjustments |
stock.approve | Approve stock adjustments |
stock.transfer | Transfer stock between branches |
stocktake.manage | Run stocktakes |
imei.manage | Manage IMEI and serialised devices |
recipes.manage | Set what dishes and services are made of |
production.manage | Record production runs and yields |
variants.manage | Create size and colour variants |
Buying
purchases.view | View purchase orders |
purchases.manage | Create and receive purchases |
suppliers.view | View suppliers |
suppliers.manage | Manage suppliers and payments |
Service
dining.serve | Take orders at tables and run tabs |
dining.manage | Set up the floor plan, menus and stations |
kitchen.view | See the kitchen screen |
appointments.view | See the appointment book |
appointments.manage | Make and change bookings |
repairs.view | See the repair board |
repairs.manage | Book in, work on and hand back repairs |
deliveries.view | See deliveries |
deliveries.manage | Raise delivery notes and mark them delivered |
Customers
customers.view | View customers |
customers.manage | Manage customers and loyalty |
credit.manage | Manage customer credit and debt |
layaway.manage | Open and settle layaway and hire purchase |
backorders.manage | Take and fill back orders |
Money
finance.view | View cash, M-Pesa and bank positions |
expenses.view | View expenses |
expenses.manage | Record expenses |
expenses.approve | Approve expenses |
accounts.manage | Manage accounts and transfers |
accounting.view | View the ledger, trial balance and balance sheet |
accounting.manage | Post manual journals and edit the chart of accounts |
shifts.own | Open and close their own till |
shifts.manage | See and close everyone's tills |
Insight
dashboard.view | See the owner dashboard |
reports.view | View reports |
reports.profit | View profit, margins and P&L |
insights.view | View business insights |
Administration
staff.view / staff.manage | View / add and edit staff |
roles.manage | Manage roles and permissions |
branches.manage | Manage branches |
settings.manage | Business settings |
audit.view | View the audit trail |
devices.manage | Manage devices and sessions |
billing.manage | Manage subscription and billing |
sms.manage | Buy SMS credit |
pharmacy.manage | Prescriptions and the controlled drug register |
etims.manage | KRA eTIMS settings and transmission |
api.manage | Issue API keys |
Open them at People → Staff and untick Active. Do not delete them — their name stays on every sale they made, and deleting the person would orphan the history. An inactive member of staff cannot sign in.
Also look at Settings → Devices and sign out any device they were using.
↑ back to contentsInventory → Products · products.view,
products.manage
Inventory → Categories. Keep them broad — six to twelve is plenty. Categories drive the buttons at the till and every report that groups by category, so "Drinks" is more useful than "Soda 500ml".
| Field | What to put |
|---|---|
| Name | What the cashier will search for. Put the size in it: "Sugar 1kg". |
| Category | As above. |
| SKU | Your own code. Optional, but it makes stocktakes much faster. |
| Barcode | Scan it into the box rather than typing. A product can have several — see below. |
| Selling price | The shelf price. |
| Cost price | What you pay. Fill this in. Without it every profit figure in the system is wrong. |
| Wholesale price | For trade customers. Optional. |
| Tax rate | Leave blank to use the business default. |
| Unit | pcs, kg, litre, packet. Decides how quantity is shown. |
| Track stock | Off for a service, airtime, or anything you cannot count. A product with stock tracking off is treated as a service. |
| Allow decimals | On for anything weighed — 1.4 kg of meat. |
| Reorder level | When stock falls to this, it shows in Low stock and in What to order. |
| Maximum level | Used to suggest how much to buy. |
| Branch | Leave blank for every branch. Set it if only one shop sells it. |
| Serialised | Phones and laptops. Each unit is tracked by IMEI or serial. See section 22. |
| Track batches | Medicines and food. Each delivery has its own batch and expiry date. |
| Opening stock | What you have on the shelf right now, and at which branch. Entered once, here. |
The same sugar arrives with a different barcode from two suppliers. Add both to the one product rather than creating two products. Scanning either finds the same item, and your stock count stays honest.
A crate of 24 and a single bottle are one product with two units. Set the pack and its factor on the product, and selling a crate takes 24 off the count. Buying by the crate and selling by the bottle then works without arithmetic.
Inventory → Products → Import. Download the template, fill it in, upload it. You are shown what will change before anything is written. This is the fastest way to load several hundred products from a supplier's list.
Open a product and press Labels to print barcode labels with the name and price on them — for shelf edges or for items that arrived without a barcode.
Inventory · stock.view and friends
Inventory → Stock levels shows what is where. Stock is always per branch. The number the till may sell is available, which is on hand minus anything reserved for a quotation or a layaway.
Inventory → Low stock lists anything at or below its reorder level, with a count badge in the menu. Buying → What to order turns the same information into a suggested order, by supplier.
Three ways, in order of preference:
Inventory → Adjustments · stock.adjust,
stock.approve
Use one to write off breakage, theft or expiry, or to correct a count. Every adjustment needs a reason. If your role can create but not approve them, they queue for somebody who can — which is the point: the person who loses the stock should not be the person who signs it off.
Inventory → Transfers · stock.transfer.
Raise a transfer at the sending branch; stock sits in transit until the receiving
branch confirms it. Goods that vanish between two shops show up as a transfer nobody
received.
Inventory → Stocktake · stocktake.manage.
Start a stocktake, count, enter what you actually found, and post it. The difference is
written as an adjustment with the stocktake as its reason, so the shrinkage is on the
record rather than quietly absorbed.
Inventory → Expiry tracking — only for products with batch tracking on. Shows what expires within a window you choose, and flags anything already expired. The daily job also raises a notification.
Buying · purchases.*,
suppliers.*
Buying → Suppliers. Name, phone, and an opening balance if you already owe them. Each supplier has a running balance, a ledger and a printable statement — useful when their figure and yours disagree.
Buying → What to order reads your reorder levels, recent sales rate and supplier, and proposes an order. Treat it as a draft shopping list, not an instruction.
↑ back to contentsPOS terminal · pos.sell
F2 focus the scanner · F4 take payment · F9 hold the ticket · Esc close a dialog.
pos.price_change. Tap the price on a line and type a new one. Kenyan selling
is a negotiation, so this is normal — but every override is recorded with the
reason and the cashier's name, and shows on the audit trail. Grant it to people you trust
to haggle.
pos.discount. Either on one line or on the whole bill, by amount or by
percentage. A reason is kept with it.
A customer goes back for bread. Press Hold (F9), serve the next person, then pick the ticket back up from Held. Nothing is lost and the queue keeps moving.
Press Customer to search, or add a new one without leaving the till. You must attach a customer to sell on credit — somebody has to be asked for the money later.
Cash, card, bank, M-Pesa, loyalty points, or credit. Split payments are normal: add a cash line and an M-Pesa line and the balance updates as you go. 500 in cash and 300 by M-Pesa on an 800 sale is two lines on one sale, not two sales.
If the total paid is less than the bill and a customer is attached, the rest goes on their account as a debt — and you can agree a payment plan there and then (section 14).
Print it, text it, or send it on WhatsApp. The SMS costs from your SMS credit and carries a signed link the customer can open — that link works only for the person holding it, and is not reachable by anyone guessing.
Sell → Customer screen. Pair a second screen, phone or tablet so the customer watches the items and total as you ring them up. Pair it from Display and the code shown there.
↑ back to contentsSet up your payment account first (section 5), or none of this will work.
Sometimes a payment confirms after the till stopped waiting. It is not lost. The payment screen shows an unclaimed payments list — money received against your till that has not been attached to a sale. Press to attach it. The server re-checks it, so the same payment can never be used twice.
For Pochi, Send Money, or any payment made outside the prompt: choose M-Pesa, type the code from the customer's message, and the sale completes. A code that has already paid for something is refused — and the refusal does not say whose sale it was.
The M-Pesa charge on a payment is recorded as an expense against the sale, so your cash book matches what actually reached your account rather than what the customer paid.
↑ back to contentsMoney → Shifts & tills ·
shifts.own, shifts.manage
A shift is one person at one till for one stretch of time. It is how you find out, at the end of the day, whether the cash in the drawer matches what was sold.
A small variance is life. A consistent one, at the same till, by the same person, is
information. Anybody with shifts.manage can see every till; a cashier sees
only their own.
People → Customers · customers.view,
customers.manage
Name and phone are enough. The phone must be unique — it is how a customer is recognised, texted and reminded. Also available:
Everything about them on one screen: what they owe, every sale, the full ledger, how much they have spent, how often they come, what they usually buy, and what they are probably due to buy again.
Press Statement for a printable list of every charge and payment. This is what you hand a customer who disputes a balance.
↑ back to contentsPeople → Debts owed to you and
People → Payment plans · credit.manage
pos.credit. Attach a customer, take whatever they can pay now, and complete
the sale. The rest sits on their account. If they are over their credit limit the till
says so.
Every customer with a balance, oldest debt first, with their phone number and a Remind button that texts them.
A debtors list with no dates cannot tell you who is late. A payment plan adds the dates.
"Pay 100 tomorrow and 900 next week" is how most shop credit is actually agreed. At the till, once there is a balance and a named customer, the payment screen offers to split what is left: how many payments, how often (daily, weekly, fortnightly, monthly) and when the first falls due. It shows what each one comes to.
You can also agree a plan afterwards from the sale page, for a debt that was never given a date.
Cash, an M-Pesa prompt, a code typed by hand, card, bank, or a payment recorded against the customer — the schedule follows the money automatically. There is nothing special to remember.
People → Payment plans lists who is behind, oldest first. From there:
The evening before a payment falls due, each customer gets one text. It goes out once.
Sell → Returns · pos.refund,
pos.void
Every one of these is on the audit trail with the reason and who did it.
↑ back to contentsSell → Quotations · quotes.manage
Price a job before it is a sale. A quotation has a validity date and can reserve the stock so it is not sold from under the customer while they decide — see Inventory → Reserved stock.
When the customer agrees, convert it to a sale or an invoice in one press. Nothing is retyped. Expired quotations that are still holding stock are listed so you can release them.
↑ back to contentsSell → Offers · promotions.manage.
Automatic discounts that apply themselves at the till: buy two get one, a percentage off a
category, a happy hour. Set the dates and let it run. See what each one actually did at
Reports → Offer performance — an offer that moved
stock at a loss is worth knowing about.
People → Price lists · pricing.manage.
What a particular customer pays. The most specific price wins: a price on that customer's
own list beats their category's list, which beats a standing discount, which beats the
shelf price. Quantity breaks are bands on the same list. Offers run afterwards and on
top.
People → Layaway & HP ·
layaway.manage — only for some businesses
Two versions of the same arrangement, and the difference matters in the books:
Both carry a schedule of payments with dates and an arrears report.
↑ back to contentsMoney → Cash & balances ·
finance.view. Every account you hold money in — the drawer, M-Pesa, the
bank, a float — and what is in each. Move money between them when you bank the day's
takings, so the system knows the cash left the drawer rather than the shop.
Money → Expenses · expenses.manage,
expenses.approve. Rent, salaries, transport, airtime, electricity. Give each
a category and the account it was paid from. If approval is in use, an expense waits for
somebody with the approve permission before it hits the books.
Record them. Profit calculated from sales alone is not profit, and the number it shows you is always flattering.
↑ back to contentsMoney → Accounting · accounting.view,
accounting.manage
Every sale, purchase, payment and expense is posted to a double-entry ledger as it happens. You do not have to do anything for this to work — it is a consequence of trading, not a separate job.
| Screen | What it answers |
|---|---|
| Chart of accounts | The list of accounts everything is posted to. |
| Journal | Every entry, newest first. Manual entries need
accounting.manage. |
| Trial balance | Do the debits equal the credits? If not, something is wrong. |
| Balance sheet | What the business owns and owes today. |
| Income statement | Profit and loss for a period, properly. |
| Who owes whom | Aged receivables and payables — 30, 60, 90 days. |
| Reconcile | Tick off your bank or M-Pesa statement against the system. |
Reports · reports.view,
reports.profit
| Report | Use it to |
|---|---|
| Sales | See takings by day, branch, cashier or payment method. |
| Profit & loss | Real profit after cost of goods and expenses.
Needs reports.profit. |
| Products | What sells, and what it earns you. |
| Slow movers | Money sitting on the shelf not moving. |
| Branch comparison | Put your shops side by side. |
| Cashflow | Money in and out over time. |
| Stock | What you hold and what it is worth. |
| Customers | Who spends, who disappeared, who owes. |
| Staff performance | Sales per person against their target, with commission. |
| Export | Take any of it out as a spreadsheet. |
Overview → Insights · insights.view.
Plain-language observations generated daily — what changed, what is slipping, what is
worth looking at. Read it with the reports, not instead of them.
What you see depends on the business type you chose. Change it at Settings → Business type.
Administration → SMS credit ·
sms.manage. Receipts, debt reminders, payment-plan reminders and appointment
reminders all cost a small amount per message from a prepaid balance. Top up by M-Pesa from
this page. When the balance runs out, texting switches itself off — printing and
WhatsApp keep working.
Registration codes, your welcome message and subscription reminders are not charged to you.
Settings → Devices · devices.manage.
Every phone, tablet and computer that has signed in, when it was last used, and a button to
sign it out. Use it when a device is lost or a member of staff leaves.
Settings → Audit trail · audit.view.
Who did what, and when: price overrides, discounts, voids, refunds, stock adjustments,
write-offs, staff changes, settings changes. This is the screen that answers "who
authorised this".
Settings → Backup. Download a copy of your data. Do it before anything big — a stocktake, a price import, a change of business type.
Profile, bottom left. Change your name, your password and your theme. Every member of staff can reach their own.
↑ back to contentsAdministration → KRA eTIMS ·
etims.manage
If you are VAT-registered and on eTIMS, enter your credentials here and invoices are transmitted to KRA as they are raised. Your KRA PIN must be filled in under Settings first.
Reports → VAT return works out output and input VAT for a period from the ledger, so the figures agree with your trial balance rather than being assembled separately.
Administration → API keys · api.manage
For connecting another system — a website, an accounting package, a stock feed. Issue a key, choose what it may do (read products, write sales), and it is shown once. Only a hash is stored, so if it is lost you issue a new one rather than recovering the old.
Keys are scoped to your business. A key cannot see another business's data under any circumstances.
↑ back to contentsThe till keeps working when the network drops. Sales are held on the device and go up automatically when the connection returns — you will see a counter of what is waiting.
What works offline: scanning, searching, selling, cash, card and credit, printing, holding tickets.
What does not: M-Pesa prompts (they need Safaricom), SMS, and anything that reads live figures from the server, such as reports.
It is a permission. Find the screen in this guide, note the permission.name
against it, and tick it on their role at
People → Staff → Roles.
Check Settings → Payment accounts has an active account with your real number on it. Then check the customer's number is right and their phone has signal. They can always pay the till or paybill directly and read you the code.
Open the payment screen and look at unclaimed payments. The money is there. Attach it — do not collect again.
Almost always a missing cost price. Check Inventory → Products for items with a cost of zero. After that, check your expenses are being recorded.
Inventory → Movements for that product shows every in and out with a reason and a name. Work backwards from the last count you trusted.
They use Forgot your password on the sign-in page. A temporary one is texted to the number on their account. Only that number can reset it, which is why it cannot be done over the phone.
The month has lapsed. Open Administration → Subscription and pay. Nothing has been deleted and everything returns the moment the payment lands.
Call or WhatsApp 0787 887 887, or email me@newpos.site. Monday to Saturday, 8am to 7pm. Anything that stops a shop selling is treated as urgent whenever it arrives.
↑ back to contents