Skip to content
FinoQ

For developers

One integration. The whole ecosystem.

Every fintech product ends up needing the same plumbing: a bank integration, a paybill, a till, cross-border rails, accounting sync, eTIMS. Built separately, that is months of work with different docs, sandboxes and failure modes. FinoQ has already built these integrations. You integrate once, and activate what you need.

Collect KES 1,500 by M-Pesa promptIllustrative request
curl -X POST https://api.example/v1/payments \
  -u "$FINOQ_KEY:$FINOQ_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1500,
    "currency": "KES",
    "channel": "mpesa",
    "phone": "+254700000000",
    "reference": "INV-1042",
    "callback_url": "https://yourapp.example/webhooks/finoq"
  }'

Parity is the promise

Everything is on the API. Nothing more, nothing less.

Every capability in the FinoQ dashboard is available over the API. There is no dashboard-only feature you cannot reach programmatically. If it exists, you can integrate it.

  • Collections: M-Pesa, Airtel Money, banks, paybills, tills, cards
  • Payment links, hosted checkout and the embeddable widget
  • Send money, bulk, scheduled and cross-border payouts
  • Bring your own M-Pesa or SasaPay credentials
  • Identity checks: phone, bank account, KRA PIN, ID, company
  • eTIMS invoicing, credit notes and item registration
  • Zoho Books sync, daily journals and reconciliations
  • Live balance and statements from a double-entry ledger
  • Signed webhooks, request logs and a discovery API
  • Bulk SMS with delivery reports

Why this makes your life easy

One set of docs, one sandbox, one auth model.

Fifteen providers, one call

One FinoQ integration reaches fifteen payment providers and their rails, with a discovery API that tells you which are available for a given country and amount.

One webhook pipeline

One signed webhook per account with a rotatable secret, instead of a different callback format per channel. A log shows every payload, provider response and callback.

One credential

The same API key authenticates Payments and Connect. Generate named keys per account, copy them once, revoke them instantly.

Activate, don't rebuild

Need eTIMS later? Activate it. Adding a second bank? Connect it. The integration surface stays one API while your product grows.

Bring your own

Keep your provider relationships. Skip the plumbing.

Your credentials, our integration

Already went through the pain of getting Daraja credentials? Add your own M-Pesa or SasaPay API credentials and transactions run under your own provider accounts. Secrets are encrypted on save and never shown again. A PSP sells you its own merchant account. Here you keep yours.

Gate payouts on a verified name

One call verifies a phone number's owner, a bank account holder or a KRA PIN before the money moves. Cross-border recipients are verified in tiers, with a low-friction tier for small amounts and full verification to lift the caps. Available over REST and gRPC.

The build-versus-connect math

Every month on integrations is a month your product stands still.

Every provider you integrate yourself is a relationship you must maintain, reconcile and monitor forever. FinoQ turns that into a connection you configure once, swappable and plug-and-play, so your engineering time goes where your moat actually is.

Ship your product, not your plumbing.

Integrate once.

Generate an API key from your account, read the in-app integration guide, and go live when you are ready.