Your Paybill. Your Money. Matched Automatically.
Each organization connects its own M-Pesa account. Tenants pay straight to you, and every shilling lands on the right tenant and the right bill without a spreadsheet.
Pay by Prompt or by Paybill
Tenants can pay in whichever way is familiar. Both routes end in the same place: a matched payment, a receipt and an updated balance.
- STK push: the tenant taps Pay in their portal and approves on their phone
- Paybill (C2B): the tenant pays to your paybill using their account number
- Receipt number captured from M-Pesa and shown on every receipt
- Cash, cheque and bank transfers can be recorded alongside
Connect Your Paybill in Five Steps
The organization owner does this once from the M-Pesa Centre. No developer needed.
- 01
Enter your Daraja details
Shortcode, consumer key and secret, and passkey. They are encrypted straight away and never displayed again.
- 02
Verify the connection
Oxflare requests an access token from Safaricom to confirm that the credentials work.
- 03
Register your payment URLs
One click registers the confirmation and validation addresses for your shortcode. Each account gets its own unguessable callback address.
- 04
Send a test prompt
A small real STK prompt goes to your own phone, so you know the whole loop works before a tenant ever sees it.
- 05
Activate
Make it your default, or point individual properties at specific accounts if you run more than one paybill.
Built So the Books Always Balance
Tenant account numbers
Every tenant gets a short, never-reused number such as T00142. It is printed on the welcome SMS, the tenant dashboard, the Pay page and the lease.
Unallocated queue
Payments with an unknown reference are never lost. They wait for staff to match with a full audit trail.
Overpayments become credit
Extra money is held as tenant credit and applied automatically to the next open bill.
Replay-safe callbacks
Every M-Pesa notification is stored first, acknowledged, then processed. A repeat of the same notification changes nothing.
Automatic safety net
If a prompt's confirmation never arrives, a scheduled job asks M-Pesa for the result and records the payment once.
Reversals, not deletions
A wrong payment is reversed with a reason. The original stays visible, so the history is honest.
M-Pesa Centre FAQ
No. Each organization connects its own M-Pesa paybill or till. Rent is paid straight to your account and Oxflare records and reconciles it.
By the tenant account number first (for example T00142), then by national ID or unit code. Matching is limited to your own organization and properties, so two organizations can both have a unit A202 without confusion.
The payment is kept as Unallocated. Your staff match it on the Payments page in a couple of clicks, and the match is recorded in the audit log.
The extra becomes tenant credit and is applied automatically to the next bill.
A reconciliation job queries M-Pesa for payment prompts that never reported back and records the payment with the same safety key the callback would use, so a late callback can never double-count.
Shortcode secrets, consumer keys and passkeys are encrypted at rest and never shown again after saving.
Stop Matching M-Pesa Messages by Hand
See your own payments matched live in a demo.