What does reconciliation mean here?
+
Comparing the record of money that arrived against the record of what it was for, and accounting for every difference between the two. A payment confirmation proves a payment happened. Reconciliation establishes which order, invoice or account it belongs to, and whether your own books now say the right thing.
Is this a product we log into?
+
No. It is a scoped piece of work on your records, delivered as written findings. There is nothing to install, no dashboard, and no subscription. If the findings justify building something, that is quoted separately afterwards.
Can you compare M-PESA transactions against our sales or invoices?
+
That is the whole of it. Payment evidence on one side, your own order, invoice or ledger records on the other, matched on the fields both actually carry — and every difference listed rather than averaged away.
We only use spreadsheets. Is that a problem?
+
No, and it is the most common case. A spreadsheet is an export already. What matters is whether it carries a reference, an amount and a date for each transaction; if it does not, that is itself the finding, and we will tell you which field is missing.
Does a mismatch mean money is missing?
+
Usually not. In order of likelihood it is a mistyped or absent reference, a timing difference across a cut-off, a confirmation that never arrived, a duplicate import, or a record entered by hand. Theft is possible and it is the last explanation the evidence supports, not the first. Anyone who tells you otherwise before looking at your data is selling you something.
A confirmation never reached our system. Can you just look the payment up?
+
Not in the general case, and this is worth understanding before anyone promises otherwise. Safaricom's transaction status query needs either the M-PESA receipt number or the originator conversation ID, and a payment you never heard about gives you neither. There is a separate interface that returns transactions for a shortcode over a requested period, including ones whose confirmation failed to arrive, but it covers only a short recent window and has to be enabled for the shortcode first. After that window, the statement export is the record — which is one of the reasons this work starts there.
Do we need a Daraja API integration?
+
Not for the assessment. Exports are enough. Whether a direct connection is worth building afterwards depends on your volume and how often you need the answer, and we would have to justify it rather than assume it.
Can you look at past months?
+
Yes, as far back as you can export records for both sides. Historical reconciliation is often more useful than live, because the differences have stopped moving and can be settled once.
What access do you need?
+
Files, sent by you. No credentials, no live system access, no PINs. Strip any field the question does not need before sending. If later implementation work needs access to something, it is agreed in writing and scoped to that work.
What happens after the assessment?
+
You have the findings and nothing further is owed. If something in them is worth building — repeatable matching, a duplicate guard, exceptions raised when they happen rather than at month end — we scope and quote it. You are free to take the findings to somebody else and have them do it.
Why is the assessment free?
+
Because we are building toward a reconciliation product and real records are the only way to learn what it has to handle. You get the findings whether or not you ever become a customer, and if the honest answer is that your records agree and your process is sound, that is what the report will say.
What have you actually built?
+
A fee platform reconciling payments to named pupils across schools that must never see each other's books, where money arrives live, by file and by hand and all three reach one answer through one piece of code, the same payment arriving twice is recorded once, and an ambiguous match is routed to a person rather than guessed. The case study is on this site.