A real double-entry ledger, and client money that ties three ways.

The firm's books, the client account ring-fenced from them, a compliance pack that runs deterministic checks, and every list exportable.

AccountingTrustCompliance pack
A firm accountant checking separate ledgers against a statement

Here’s how
it comes together.

  1. 01

    One double-entry ledger under everything

    Billing, trust, expenses and the books post balanced journal entries into the same engine. There is no second set of numbers to reconcile the first against, because there is no second set.

  2. 02

    Client money, ring-fenced

    Trust funds sit in their own accounts, tied three ways — the recorded client-bank balance, the sum of the matter sub-ledger, and the client-funds-held liability — per currency, never summed across them. Overdrawn matters are flagged as they happen.

Firm & client money

Two accounts.
Clear boundaries.

Okoth · client ledger
Opening balance01 October40,000
Client deposit recordedReference · DEP-0142+10,000
Held for this matterKES 50,000
Your client account. Your records. KesiHub never holds or moves the money.
  1. 03

    The reports a firm actually files

    Trial balance, profit and loss, balance sheet, aged debtors and the client-account reports, grouped and ranged off the same journal lines rather than assembled in a spreadsheet beside the system.

  2. 04

    Bank statements read, not retyped

    Export the statement from your own bank portal and upload it. The lines are read and matched against the ledger instead of being keyed in twice.

  1. 05

    A compliance pack that is not a guess

    Every check runs as a deterministic query over the ledger for one period, and the outcome of every check is recorded — passes included — with a finding row per exception and a partner's override kept beside the exception it overrode. Nothing here is a language model.

  2. 06

    Export anything you can see

    Any list or report the product serves comes out as CSV, scoped to exactly what the screen it mirrors would show you — so an unanticipated question is a download rather than a support request.

What you should know.

KesiHub never holds or moves client money. It stays in your own designated client account; the product records and reconciles it, and moves none of it.

There is no bank feed. Statement import reads a file you exported yourself — nothing connects to a bank or holds a banking credential — and a three-way tie compares three of your own figures with each other, which is necessary for the books to be right without being sufficient to show the cash is there.

More room for your practice.

Bring the whole firm across in a weekend.
Migration, onboarding and support included on every plan.

7 days free · No card required · Cancel anytime
What comes acrossMatters and clientsDocumentsOpening balances you confirm