Accept any payment your customer wants to use.
M-Pesa, card, bank transfer, cash — auto-reconciled to the right invoice every time.
NinoPOS Payments is the layer between your customer's wallet and your accounting books. Every method is first-class — M-Pesa STK push, card terminal, bank transfer, cash — and every payment lands in the right place automatically: bank ledger, customer balance, invoice, and P&L.
Today, without Payments
- M-Pesa references are matched by hand at end of day
- Card payments don't talk to the POS — manual reconciliation
- Bank transfers arrive without enough info to match the invoice
- Cash variance is "yeah, that's probably about right"
- Customers want to pay split (cash + M-Pesa) and the till can't handle it
With NinoPOS Payments
- M-Pesa STK push from POS — instant confirmation, auto-matched
- Card terminals integrated with the POS — one tap, one receipt
- Bank transfers reconciled via CSV import + auto-matcher
- Cash declared per shift; variance flagged and approved
- Split payments (any combo) on a single sale, atomically
Everything in Payments
No add-ons, no upsells — included on every plan.
M-Pesa Daraja STK push
POS triggers an STK prompt on the customer's phone, waits for confirmation, prints receipt. No reference matching, no PIN-typing on a shared device.
- STK push from POS
- Per-store Daraja keys
- Auto-reconcile to sale
- Refund support
Card payments
Integrated card terminals (Pesapal, DPO, others on the roadmap). Tap, swipe, or insert — POS handles the rest.
- Pesapal + DPO integrations
- Tap / chip / swipe
- Auto-reconcile to sale
- Tip handling
Bank transfers
Customer transfers; you import the bank CSV; NinoPOS auto-matches to the right invoice by amount, date, and reference.
- CSV import
- Auto-matcher
- Reference parsing
- Confidence-scored suggestions
Cash management
Per-shift cash drawer, declared float, end-shift count, variance flagged for manager. End-of-day cash always ties out.
- Per-shift drawer
- Declared float + count
- Variance flagging
- Cash drop / pickup tracking
Split payments
One sale, multiple methods. Cash + M-Pesa + card on the same ticket; each method posts to its own ledger.
- Any-combination split
- Per-method audit
- Per-method receipts
- Tip + change handling
Auto-reconciliation
Every payment lands in the right ledger automatically — no double-entry, no drift between till totals and bank statements.
- Bank ledger atomic post
- Invoice match (oldest first)
- Customer balance update
- P&L update real-time
How Payments works in practice
Step by step — from the customer touch to the final ledger entry.
1. Customer chooses method
M-Pesa, card, bank, or cash. Cashier picks at the till. Or split across methods.
2. Take payment
STK push for M-Pesa, terminal for card, transfer for bank, count for cash. POS waits for confirmation where needed.
3. Auto-reconcile
Payment lands in bank ledger. Invoice matched. Customer balance updated. All atomic.
4. Receipt out
Print + email + WhatsApp the receipt. One template, one tap.
5. End-of-shift
Cash declared; variance computed; manager approves any drift.
6. End-of-day reconcile
Bank statement CSV import + auto-matcher closes out the day. Books match bank.
Local payments, currencies, and connectivity — sorted out of the box
Payments ships with M-Pesa Daraja, multi-currency, full offline mode, and WhatsApp customer messaging baked in — no plugin, no add-on.
- M-Pesa Daraja STK push for instant payments
- TZS, KES, UGX, RWF, USD — multi-currency invoicing
- Offline mode for areas with unstable internet
- WhatsApp for receipts, reminders, and orders
- Local tax (VAT) reporting baked in
Frequently asked questions
Specific to Payments.
Which M-Pesa flow is supported?
Daraja STK Push (Lipa Na M-Pesa Online). Triggered from POS or invoice payment links.
Which card processors are supported?
Pesapal and DPO are integrated. Stripe and Flutterwave are on the roadmap; reach out if you need a specific one.
How does bank transfer reconciliation work?
Customer transfers with reference. You import the bank CSV. The auto-matcher pairs lines with invoices by amount, date, and reference. You apply confident matches in one click.
Can I refund a M-Pesa payment?
Yes — Daraja Reversal API is supported when your account is enabled for it. Otherwise refund is recorded and processed manually.
Can different stores have different M-Pesa accounts?
Yes. Per-store Daraja keys mean each branch deposits into its own till.
Are split payments printed on the receipt clearly?
Yes. Each method appears on its own line with the amount tendered for transparency.
Does NinoPOS support TRA fiscal devices?
NinoPOS records structured POS, invoice, VAT, and payment data that can support fiscal-device workflows. TRA certification applies to approved EFD devices and VFD gateways, so businesses should verify the current approved supplier or gateway with TRA or a tax consultant.
How do I set up M-Pesa Daraja STK Push with NinoPOS?
Tanzanian merchants register a business Lipa Namba (till) with Vodacom, then apply separately for Daraja API access. Once you have your Consumer Key, Consumer Secret, Business Short Code, and Pass Key, NinoPOS stores them encrypted and uses them to fire STK Push prompts at the customer’s phone for every M-Pesa-paid sale.
Pairs well with
Modules that work hand-in-hand with Payments.
Ready to put Payments to work?
Free to start, no credit card required. Live within an hour.