Payments integration
Collecting money is easy. Accounting for every shilling is the actual product.
/ The problem
Any developer can call the M-Pesa Daraja API. The hard part appears at month end: callbacks that never arrived, duplicate confirmations, reversals, partial settlements, and a finance team reconciling three CSV exports by hand.
Payment bugs are not ordinary bugs — every failure is either your money or your customer’s money. The integration has to assume the network will fail mid-transaction, because on mobile money rails, it will.
/ How we deliver
We build payments as a ledger first and an API integration second. Every transaction gets an idempotent internal record before any external call, so retries, timeouts, and duplicate callbacks resolve to one truth. Reconciliation against provider statements is automated, and exceptions surface in a queue — not in a spreadsheet.
We integrate the rails your customers actually use: M-Pesa (C2B, B2C, B2B, Express/STK push), Airtel Money, and card gateways, behind one internal interface so adding a rail later does not mean rewriting checkout.
/ What we build with it
E-commerce checkout
STK push at checkout with instant confirmation, automatic retries, and no lost callbacks.
Recurring collections
Subscriptions and instalments billed on schedule and reconciled without anyone chasing screenshots.
Disbursements at scale
B2C payouts — refunds, winnings, commissions — with maker-checker controls and a full audit trail.
Multi-rail collection
M-Pesa, Airtel Money, and cards behind one internal interface, so finance sees one ledger.
/ Capabilities
- 02.1
M-Pesa Daraja — STK push, C2B, B2C, B2B
- 02.2
Airtel Money and cross-network collections
- 02.3
Card gateway integration and tokenisation
- 02.4
Double-entry transaction ledgers with idempotency
- 02.5
Automated reconciliation against provider statements
- 02.6
Payouts, disbursements, and settlement reporting
/ Spec sheet
The short version
How this service runs, in title-block form. Ask us for the long version.
- Rails
- M-Pesa (STK, C2B, B2C, B2B), Airtel Money, cards
- Ledger
- Double-entry, idempotent writes
- Reconciliation
- Automated against provider statements
- Exceptions
- Queued for review — never silently dropped
- Integration
- REST API + signed webhooks
/ How delivery runs
- 1
Rails & accounts
Paybill/till acquisition, Daraja onboarding, and gateway agreements — we drive the paperwork with you.
- 2
Ledger first
The double-entry ledger and idempotency layer go in before any external call is made.
- 3
Integrate & certify
Each rail is integrated, tested against failure cases, and taken through the provider’s go-live certification.
- 4
Reconcile & monitor
Automated statement reconciliation and exception queues switch on with the first live transaction.
/ Common questions
Can you fix an existing broken integration?
Yes — this is one of our most common engagements. We add the missing ledger and reconciliation layer around the integration you have, then repair the integration itself.
Do you handle the mobile network paperwork?
We guide you through paybill/till acquisition and Daraja go-live requirements, and handle the technical certification steps on your behalf.
What about compliance?
We build to the provider’s security requirements — credential vaulting, IP whitelisting, callback signing — and design data handling so card data stays with the PCI-compliant gateway, not on your servers.
/ Related services
/ Next step
Talk to us about payments integration
Describe where you are — greenfield, half-built, or on fire. We answer with a technical read within one working day.
Start a conversation ↗