Cash management

Cash management is the discipline of moving, storing, and counting every Kenyan shilling that touches the institution — from the teller window to the vault to the CIT van to the bank. This section maps every till, every vault movement, every dual-control transfer, and every end-of-day cut-off so that nothing leaves the branch without two signatures and a journal entry.

Cash policies
Per-till float min/max, vault movement rules, CIT thresholds.
At a glance — The Treasury workspace consolidates branch-by-branch cash positions, till floats, vault balances, and CIT exposures in real time. The screenshot below shows the production Treasury & ALM workspace with branch-level cash levels, limit utilisation, and pending CIT trips.

Scope of cash management

Cash management in the MFI Suite covers every shilling held outside a bank account — including teller cash drawers, branch vaults, mobile-teller pouches, ATM cassettes, agent floats, and money in transit between any two of these. It does not cover bank balances (handled by **Treasury & ALM**) or M-Pesa floats (handled by **Mobile money**).

  • **Tills** — teller-held cash drawers, one per cashier per shift
  • **Vaults** — branch-level secure storage, dual-control
  • **Cash policies** — per-branch limits, max float, max single transaction, max overnight holding
  • **CIT** — cash-in-transit movements between branches, between branch and bank, between branch and HQ
  • **Branch session** — open/close cycle for the whole branch, drives the cash GL cut-off
  • **End-of-day** — balancing routine: declared vs system, variance handling, sign-off
  • **Incidents** — overage, shortage, robbery, fire, suspected fraud — every variance has a case
  • **Dashboard** — Treasury workspace with live branch-by-branch positions

Modules in this section

Tills
Tills with state — open / topping-up / closing / suspended.
ModuleSlugPurpose
TillstillsTeller drawer open/close, denomination breakdown, float assignment
VaultsvaultsBranch vault movements, dual-control approvals, denomination ledger
Cash policycash_policyPer-branch limits and threshold rules
Cash-in-transitcitCIT manifest, sealed-bag tracking, carrier handover
Branch sessionbranch_sessionBranch open/close cycle, controls cash GL cut-off
End-of-dayeodBalancing wizard, variance handling, supervisor sign-off
IncidentsincidentsVariance cases, robbery reports, regulator notification
DashboarddashboardTreasury workspace: live branch positions + alerts

How cash flows through a branch

A typical Nairobi branch handles KES 800k–2M of cash per day across deposits, loan disbursements, loan repayments, savings withdrawals, and CIT pickups. The flow is:

  1. **Branch opens** — supervisor opens the branch session. Vault is unlocked under dual control. Opening cash is counted denomination-by-denomination against the vault ledger.
  2. **Tellers open** — each teller draws a starting float (typically KES 50k) from the vault. The vault and the till both log the movement.
  3. **Customer transactions** — deposits add cash to the till; withdrawals/disbursements remove cash. Every transaction is journalled against the customer's account and the till GL account.
  4. **Mid-day sweeps** — when a till exceeds its operating maximum (typically KES 200k), the supervisor sweeps excess back to the vault. Logged as an internal CIT movement.
  5. **Branch closes** — tellers close their tills: count, declare, reconcile to system, variance to incidents if any. Final cash returned to vault.
  6. **Vault close** — supervisor counts the vault, signs off the branch session, and (if it's a CIT day) hands sealed bags to the carrier.
  7. **CIT to bank** — Wells Fargo / G4S / KK Security picks up sealed bags. Tracked from seal-on at branch to seal-off at bank, with each leg signed.

Built-in controls

Cash management is the single highest fraud-risk surface in any MFI. The system enforces seven controls automatically — they cannot be bypassed without an audited override:

ControlEnforcementOverride
Dual control on vaultTwo distinct user ids required to open vaultNone — system blocks single-user open
Maximum till floatDefined in cash policy, blocks transaction that would breachBranch manager override, logged
Maximum overnight holdingBranch session cannot close with overageRegional manager override, logged + email alert
Single transaction capPer-product per-channel limitCompliance officer override + reason
Denomination audit trailEvery movement records bills × denominationNone
Variance escalationAny unreconciled cent triggers incidentCannot close EOD until variance has a case
CIT seal integritySeal number captured at branch + bank, mismatch blocks acceptanceNone — physical investigation required
Warning — Disabling any of these controls requires a registered ICT change and is logged to the regulator audit trail. CBK examiners check for control overrides as a standard part of routine inspection.

Regulatory context (Kenya)

The Central Bank of Kenya does not directly regulate microfinance below the deposit-taking threshold, but two regimes apply to every MFI:

  • **POCAMLA + FRC reporting** — single-cash transactions above KES 1,000,000 (USD 10,000-equivalent) trigger a Suspicious Transaction Report obligation; the system flags and queues these automatically
  • **KRA receipts** — cash receipts above KES 100,000 must be supported by an ETIMS-compliant invoice or receipt; the cash module emits an ETIMS payload at receipt
  • **ODPC privacy** — denomination capture is not personally identifying, but combined with member id it becomes PII; cash transaction logs follow the same 7-year retention as ledger
  • **DTM tier (if applicable)** — deposit-taking microfinance banks under CBK Prudential Guidelines must hold cash within tightly defined limits and report monthly cash-management returns (CBK/PG/MFB/03)

Roles and segregation of duties

RoleCan doCannot do
TellerOpen own till, transact, count, declare, close own tillOpen vault, approve variance, accept CIT
Branch supervisorOpen vault (with co-signer), sweep tills, approve variance ≤ KES 5,000, accept CITOverride cash policy, write off shortage
Branch managerOverride cash policy, approve variance ≤ KES 50,000, sign off branch sessionWrite off shortage > KES 50,000
Regional managerApprove variance ≤ KES 250,000, authorise overnight overageSet institution-wide policy
Head of TreasurySet policies, approve write-offs, escalate to boardTransact at till (segregation)
Internal auditRead-only across allTransact, approve, write off

Where to start

If you are new to cash management, work through the pages in this order:

  1. **Cash policy** — define your limits before you let anyone touch cash
  2. **Vaults** — set up the branch vault and assign the two-key holders
  3. **Tills** — create one till per teller and link to a cash GL account
  4. **Branch session** — practice an open/close cycle in your sandbox tenant
  5. **End-of-day** — walk through the balancing wizard with a known variance
  6. **CIT** — configure your CIT carriers (Wells Fargo, G4S) and route templates
  7. **Incidents** — review the incident workflow and notification matrix
  8. **Dashboard** — bookmark the Treasury workspace for daily monitoring

Worked scenarios

Scenario — A full day at Kawangware branch

Setting: Kawangware branch, Tuesday in March. Three tellers, one supervisor, one branch manager. Expected throughput KES 1.4M.

CharacterRole
Florence AchiengBranch manager
Peter OtienoSupervisor
Mary MutuaSenior teller
Kimani MwangiTeller
Aisha HassanTeller

Timeline

  1. 07:45: Florence and Peter unlock the vault under dual control. System logs both badges. (Vault session opened, opening balance KES 620,000)
  2. 07:55: Each teller draws KES 50,000 starting float from the vault. Three vault → till movements logged. (Vault balance KES 470,000; three tills × KES 50k)
  3. 08:00: Branch opens. First customers are loan repayments and small deposits. (Branch session OPEN)
  4. 11:20: Aisha disburses a KES 180,000 group loan in cash. Her till would breach KES 250k operating maximum — system flags. (Cash policy: till_max_balance check)
  5. 11:22: Peter sweeps KES 100,000 from Aisha's till to vault before the disbursement so post-payout she sits at KES 130k. (Till → Vault transfer logged dual-control)
  6. 13:00: Lunch rotation. Mary's till is locked when she steps away. Reopened with badge + PIN. (Till locked / unlocked events)
  7. 15:30: CIT pickup scheduled. Florence prepares two sealed bags (KES 800k principal float for HQ + KES 200k for KCB Mama Ngina). (CIT manifest drafted, seals 88412 / 88413)
  8. 16:00: G4S crew arrives. Florence and the senior crew member sign the handover. Bag seals match manifest. (CIT in-transit)
  9. 17:05: Branch closes to public. Tellers begin individual till close. (Three EOD wizards open)
  10. 17:18: Kimani's till has a KES 200 shortage. Recount confirms it. Peter raises a level-1 incident. (Incident INC/2026/0314 opened)
  11. 17:35: All tills returned to vault. Florence counts vault, runs the branch EOD wizard, signs off. (Branch session CLOSED, closing vault KES 540,000)

Outcome — Branch closes clean apart from a KES 200 documented shortage; CIT confirmed received at KCB at 17:48; Florence signs off at 17:42.

Reference

Models behind the section

ModelRecordsDescription
mfi.cash.till1 per teller per shiftActive drawer with running balance
mfi.cash.till.session1 per till per dayOpen-to-close audit of a single till
mfi.cash.vault1 per branchVault master with denomination ledger
mfi.cash.vault.movement1 per movementVault in/out, dual-control
mfi.cash.policy1 per branch (or branch group)Limit set
mfi.cash.cit1 per CIT tripManifest with sealed bags
mfi.cash.cit.bagmany per tripSealed bag with denomination breakdown
mfi.branch.session1 per branch per dayWrapper for vault + tills, drives GL cut-off
mfi.cash.eod1 per till per day + 1 branch summaryBalancing record
mfi.cash.incident1 per variance / eventCase file for shortage, overage, robbery, fraud

Default thresholds (out of the box)

Edit in Cash policy.

ThresholdDefaultEffect when breached
Till operating maximumKES 200,000Soft warning, requires sweep within 30 min
Till hard maximumKES 250,000Blocks further cash-in transactions
Vault overnight maximumKES 5,000,000Branch session cannot close until reduced or override
Single cash transactionKES 1,000,000STR queued for FRC at transaction post
KRA ETIMS thresholdKES 100,000ETIMS payload emitted automatically
Variance auto-incidentKES 1Any variance creates incident — no exceptions
Variance officer capKES 5,000Supervisor can close incident
Variance manager capKES 50,000Branch manager can close incident
Variance regional capKES 250,000Regional manager required
CIT carrier hold limitKES 10,000,000Per carrier liability cap before second carrier required

Troubleshooting

SymptomLikely causeFix
Teller cannot open till in the morningBranch session not yet opened, or previous day's till session not closedSupervisor opens the branch session first, then check yesterday's till — if a session is still OPEN, force-close via the EOD wizard with the supervisor.
Vault movement blocked with 'dual control required'Only one badge swiped within the 2-minute windowBoth badge-holders must tap within 120 seconds. If one is unavailable, the branch manager can elevate to manager + supervisor instead.
Cash policy blocks a legitimate disbursementDisbursement would breach till maximumSweep excess from till to vault first via Till → Vault movement, then process the disbursement.
EOD reconciliation shows phantom variance with no obvious causeMid-day CIT sweep posted to wrong till, or a void was processed without reversing the cash movementRun the till movement report for the shift. Look for un-paired Till↔Vault rows. Reverse the orphan.
CIT bag rejected at bank because seal does not match manifestSeal numbers transposed on data entry or seal physically tamperedTreat as security incident: do not accept bag back without joint inventory; raise robbery/tamper incident; notify CIT carrier and bank security.

See also

Was this page helpful?