Agent banking

Agent banking outsources the till to thousands of small businesses across Kenya — duka owners, M-Pesa agents, petrol stations. They handle cash, the MFI handles ledger. Reach extends from 12 branches to 12,000 service points.

Agent / mobile-money callbacks
Inbound C2B / B2C callback log.
At a glance — Agents are commercial partners. They post a float, charge the member a tariff per transaction, and earn a commission. Authentication is biometric (fingerprint) where possible, PIN-only where not.

Agent network models

  • Wholesale (PesaPoint, Sidian Agent, Co-op Kwa Jirani) — outsourced; MFI pays commission; agents are pre-existing
  • In-house — MFI recruits and trains its own agents; higher margin, more support cost
  • Hybrid — wholesale for reach, in-house for KYC-heavy locations

Agent onboarding

For in-house agents, the MFI vets the business and signs an agency agreement. CBK Agent Banking Guidelines 2020 apply:

  1. Business registration (URC) ≥ 12 months old
  2. Physical premises with CCTV
  3. Annual turnover ≥ KES 5M (proven via M-Pesa statements + bank statements)
  4. Sole proprietor or director clears CRB
  5. Cash-on-hand minimum KES 100,000 (the float)
  6. Photo ID and biometrics captured
  7. Agreement signed, agent code issued (e.g. AGT-2024-0345)
  8. Training: half-day on the agent app + AML basics

What an agent can do

OperationMember identificationPer-txn limit KESCommission to agent (KES)
Cash depositMember ID + PIN150,0000.5% (min 20)
Cash withdrawalFingerprint or ID+PIN70,0001% (min 30)
Balance enquiryMember ID + PIN10 flat
Mini statementMember ID + PIN20 flat
Loan repaymentMember ID + PIN150,0000.3% (min 20)
New member onboarding (Tier 1)ID + biometrics200 flat

Float management

Agents pre-fund a float account at the MFI. Every cash-in by a member moves cash from member to agent and credits the member's MFI savings; the agent's float is debited (agent now holds cash on behalf of MFI). Every cash-out reverses.

Float is monitored real-time. When < KES 20,000 the agent app warns; < KES 5,000 it blocks new cash-outs. Agents top up via M-Pesa Pay Bill into the MFI's float collection account.

Warning — Negative float is forbidden. The app blocks at zero. An agent that needs more float during business hours can deposit cash at any branch or use M-Pesa top-up which is instant.

Commission settlement

Commission accrues real-time on agent.commission.ledger. Settlement is bi-weekly on the 1st and 15th. The MFI nets commission against float top-up — if agent owes nothing, MFI pays commission via M-Pesa B2B.

Statement issued in PDF and visible on the agent's dashboard.

Fraud surfaces and controls

  • Cash-out without member knowledge — biometric (fingerprint) at withdrawal is mandatory above KES 20k
  • Phantom deposits to inflate commission — every deposit must show in member's SMS within 30s and the member must confirm before agent releases receipt
  • PIN sharing — agent app uses ephemeral PIN pad on agent device only; never on member's view
  • Agent app fingerprint spoofing — annual biometric re-enrolment with new device pairings

Agent device

Two supported devices: Android phone (any 8.0+ with fingerprint sensor) or a Verifone X990 POS terminal. The agent app is a PWA installable from agent.{tenant}; PIN-locked; offline-capable for 24h then must sync.

Worked scenarios

Scenario — Withdrawing wages at a rural agent

Setting: Rural Tharaka-Nithi. Florence Achieng works as a school cook; her KES 12,000 monthly wage has just been credited by her employer. Nearest MFI branch is 38km; nearest agent is the duka 200m away.

CharacterRole
Florence AchiengMember
Kimani MwangiAgent (in-house)

Timeline

  1. 11:00: Florence walks into Kimani's duka (—)
  2. 11:00: Kimani opens agent app on his phone (Float balance: KES 84,500)
  3. 11:01: Picks Withdrawal, enters KES 10,000 (Prompts member ID)
  4. 11:01: Florence presses her thumb on Kimani's phone fingerprint sensor (Biometric matches member MWM-2023-04421)
  5. 11:01: Agent app prompts: 'Confirm KES 10,000 withdrawal?' Florence taps Confirm (MFI debits Florence's savings KES 10,000; debits MFI/Cr Agent float KES 9,900 (commission KES 100); SMS sent to Florence)
  6. 11:02: Florence's phone vibrates: "KES 10,000 withdrawn at Kimani Stores. Comm KES 100. New balance KES 7,820." (—)
  7. 11:02: Florence shows SMS to Kimani; Kimani hands her KES 10,000 cash (—)
  8. 11:03: Receipt prints from agent app (Bluetooth printer) (Both keep copies)

Outcome — KES 10,000 in hand without a 76km round trip to the branch. Total time 3 minutes. Commission KES 100 split: KES 30 to agent, KES 70 to MFI (per tariff).

Reference

Standard agent tariff

MFI > Channels > Agent > Tariff configures these per band.

Band KESDeposit commWithdraw comm
100 - 1,00020 flat30 flat
1,001 - 5,0003050
5,001 - 10,0005080
10,001 - 20,00080150
20,001 - 35,000120230
35,001 - 50,000150300
50,001 - 70,000180350
70,001 - 150,000250 (deposit only)n/a

Troubleshooting

SymptomLikely causeFix
Agent app shows "Float insufficient" though cash is presentMember is withdrawing more than the agent's MFI float allows.Agent tops up float via M-Pesa Pay Bill (instant) or visits the branch. Meanwhile member can withdraw smaller amount.
Fingerprint not matching even though member is correctDamaged finger (cuts, callouses), or biometric template stale.Use PIN fallback after asking for ID. Member should re-enrol biometrics at next branch visit.
Member SMS not arriving — agent unsure whether to release cashAfrica's Talking outage or Safaricom delivery delay.Agent app shows in-app receipt with txn ID — show to member. They can dial *354# to check balance. Never release cash without one of: SMS, in-app receipt, or USSD confirmation.
Commission not credited to agent for previous fortnightSettlement cron failed or agent's M-Pesa Pay Bill rejected.Operations > Channels > Agent > Commission runs — re-run for that period. Confirm agent M-Pesa number on file.
Agent suspected of phantom depositsPattern: deposits to a single member with no corresponding SMS confirmation.Compliance > Agent investigation — pull last 30 days, call random members, suspend agent on confirmation.

See also

Was this page helpful?