M-Pesa Centre

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.

Two Ways to Pay

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
Setup

Connect Your Paybill in Five Steps

The organization owner does this once from the M-Pesa Centre. No developer needed.

  1. 01

    Enter your Daraja details

    Shortcode, consumer key and secret, and passkey. They are encrypted straight away and never displayed again.

  2. 02

    Verify the connection

    Oxflare requests an access token from Safaricom to confirm that the credentials work.

  3. 03

    Register your payment URLs

    One click registers the confirmation and validation addresses for your shortcode. Each account gets its own unguessable callback address.

  4. 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.

  5. 05

    Activate

    Make it your default, or point individual properties at specific accounts if you run more than one paybill.

Reconciliation

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.

Questions

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.

Encrypted credentials M-Pesa and SMS keys encrypted at rest
Tenant isolation Every organization's data is separate
Built for Kenya KSh, M-Pesa, KRA and DPA-aware
Full audit trail Sensitive actions are logged