Zung Member API clients
OpenAPI spec plus PHP and Node.js clients for the Zung Member API: member login, loans, repayment schedules, loan applications, savings and wallets for SACCOs and MFIs.
Developer documentation for microfinance institutions and SACCOs: the Banking API, the Member Mobile API, webhooks and step-by-step guides for every core MFI workflow — members, KYC, savings, loans, repayments and portfolio at risk.
curl "https://app.zung.ai/connector/api/banking/members" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json"
{
"data": [
{
"id": 8821,
"member_number": "MEM-008821",
"name": "Fatuma Njeri",
"mobile": "+254712345678",
"email": null,
"status": "active",
"joined_on": "2026-03-14"
}
],
"meta": { "current_page": 1, "last_page": 12, "per_page": 25, "total": 288 }
}
curl -X POST "https://app.zung.ai/connector/api/banking/members" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d first_name=Fatuma \
-d mobile=+254712345678 \
-d location_id=1
{
"success": true,
"message": "Client added successfully",
"id": 8822
}
curl -X POST "https://app.zung.ai/connector/api/banking/savings/8821/deposit" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d amount=1500 \
-d date=2026-11-01 \
-d payment_type_id=3 \
-d receipt=QHX7821KE \
-d client_ref=7f9c2e1a-5b8d-4c3e-9a71-2d6f0b8e4c15
{
"success": true,
"message": "Deposit saved"
}
Catalog
Every page is about running a microfinance institution: members, KYC, savings, loans, collections and portfolio risk.
Integration kits
Tested flows with the steps, Zung modules and API calls each one needs — from M-Pesa collections to SACCO dividends.
Build with AI
Point Claude, Cursor or Copilot at our llms.txt and OpenAPI spec. They build against endpoints that exist — and skip the ones still on the roadmap.
Read https://mfidoc.com/llms-full.txt and build an offline-first app for loan officers that captures repayments at group meetings and syncs them with client_ref.
Solution templates
Complete setups by institution type — which modules, products and reports to switch on, and in what order.
Savings-led cooperative with share capital, loans multiplied off deposits, dividends and an AGM.
Individual and SME lending with collections, provisioning and PAR reporting.
Joint-liability groups organised into centers, with meeting-day collections.
Shariah-compliant financing and profit-sharing deposits with no interest.
Mobile-first lending: apply in the app, appraise with AI support, disburse and collect by mobile money.
Several institutions or a large branch network under one account, with your own branding.
Quick start
In Zung, your admin turns on the Connector module and creates a dedicated API user with only the permissions you need.
Connector → API → New clientEvery request carries the token. It inherits that user's permissions and branch access.
Authorization: Bearer $ZUNG_TOKENOne call returns paginated members with member number, mobile and status.
GET /members?q=njeriCode examples
/memberscurl "https://app.zung.ai/connector/api/banking/members" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json"
{
"data": [
{
"id": 8821,
"member_number": "MEM-008821",
"name": "Fatuma Njeri",
"mobile": "+254712345678",
"email": null,
"status": "active",
"joined_on": "2026-03-14"
}
],
"meta": { "current_page": 1, "last_page": 12, "per_page": 25, "total": 288 }
}
/memberscurl -X POST "https://app.zung.ai/connector/api/banking/members" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d first_name=Fatuma \
-d mobile=+254712345678 \
-d location_id=1
{
"success": true,
"message": "Client added successfully",
"id": 8822
}
/savings/{id}/depositcurl -X POST "https://app.zung.ai/connector/api/banking/savings/8821/deposit" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d amount=1500 \
-d date=2026-11-01 \
-d payment_type_id=3 \
-d receipt=QHX7821KE \
-d client_ref=7f9c2e1a-5b8d-4c3e-9a71-2d6f0b8e4c15
{
"success": true,
"message": "Deposit saved"
}
/loans/applycurl -X POST "https://app.zung.ai/connector/api/banking/loans/apply" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d contact_id=8821
{ "success": true }
/loans/{id}/repaymentcurl -X POST "https://app.zung.ai/connector/api/banking/loans/8821/repayment" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json" \
-d amount=1500 \
-d date=2026-11-01 \
-d payment_type_id=3 \
-d receipt=QHX7821KE \
-d client_ref=7f9c2e1a-5b8d-4c3e-9a71-2d6f0b8e4c15
{
"success": true,
"message": "Repayment saved"
}
// Same client_ref sent again:
{
"success": true,
"duplicate": true,
"message": "Already recorded."
}
/overview/portfolio-at-riskcurl "https://app.zung.ai/connector/api/banking/overview/portfolio-at-risk" \
-H "Authorization: Bearer $ZUNG_TOKEN" \
-H "Accept: application/json"
{ "success": true }
Built for microfinance
The API follows how MFIs and SACCOs actually work, so you write less glue code.
client_ref makes repayments and deposits safe to retryWebhooks
Register an HTTPS endpoint in the Developer Hub and send yourself a test event. Events marked Planned are on the roadmap.
webhook.test
Sent from the Developer Hub to check your endpoint is reachable. The request carries an X-Zung-Event header.
loan.disbursed
Planned When a loan is disbursed to a member's wallet, bank or mobile money.
repayment.received
Planned When a repayment is posted and matched to a loan.
loan.par_flagged
Planned When a loan crosses a PAR threshold (30, 60 or 90 days).
member.kyc_verified
Planned When a member's KYC document is approved.
savings.deposit
Planned When a deposit is posted to a savings account from any channel.
aml.alert_raised
Planned When AML screening flags a member or transaction.
Guides
Get a token, call /me, then list your members — in under five minutes.
Field officers and branches on unreliable connections can retry a repayment without ever double-posting it.
Create a member, attach ID documents, review KYC and give the member a mobile login.
Map M-Pesa confirmations to repayments using payment types and receipt codes.
Pull portfolio at risk and disbursed-vs-collected data into your own BI tool.
SDKs
The full-platform SDKs below are on the roadmap. Today you can use the open-source Member API clients for PHP and Node.js, or any HTTP client — every example on this site is plain curl.
Open source
4 MIT-licensed libraries: Member API clients, the loan schedule engine Zung uses, and PayMfi payment SDKs — for PHP and Node.js.
Zung Member API clients
OpenAPI spec plus PHP and Node.js clients for the Zung Member API: member login, loans, repayment schedules, loan applications, savings and wallets for SACCOs and MFIs.
Zung loan schedule
Loan repayment schedules in PHP and Node.js: flat and reducing balance (equal instalments or equal principal), grace periods, daily interest and fixed instalments — matching Zung core banking to the cent.
PayMfi PHP client
PHP client for the PayMfi eWallet & Payments API: signed requests, hosted checkout, server-side verification and webhook signature checks.
PayMfi Node.js client
Node.js client for the PayMfi eWallet & Payments API: signed requests, hosted checkout, server-side verification and webhook signature checks.
Pricing
Every plan starts with a 14-day free trial. Save 20% when you pay yearly.
Glossary
PAR, provisioning, deposit multipliers, murabaha — plain definitions with formulas and worked examples.
Countries
Regulators, mobile money rails, credit bureaus and Zung Store solutions in 39 countries across 5 regions.
Leaders of SACCOs, insurers and MFIs on what changed after moving their core onto zung.ai.
Client story
4:12 Hazi Mugara · Chairman
On what the board can now see between meetings, and how members experienced the switch.
Client story
2:28 Jessica Sanga · SVP, Head of Loans
On rebuilding origination and servicing around an AI-native core, and what it gave back to her lending team.
Client story
4:53 Hamisi Bukhari · Chief Technology Officer
On data reconciliation, dual running, and the week the legacy core was switched off for good.
Every institution here runs production workloads on zung.ai. Reference calls available on request.
All client stories →Changelog
One place to build on Zung: the API reference, ready-made MFI workflows, pricing, a microfinance glossary and a guide to every market Zung serves.
Branches and field officers on unreliable connections can retry money movements without ever posting them twice.
Shariah-compliant financing, profit-sharing deposits and the funds that go with them, available as part of selected plans.
Institutions can serve Zung from their own domain, and the certificate is now requested automatically.
FAQ
Any MFI or SACCO on a Zung plan that includes the Connector module. Your admin creates the API user and token; there is no separate developer account.
Ask us at dev@mfidoc.com for a sandbox institution loaded with sample members and loans. Never test against live member data.
The Banking API acts as a staff user and can see every member in that user's branches. The Member Mobile API acts as one member and only ever returns that member's own accounts.
A Banking API token has exactly the permissions and branch access of the staff user it belongs to. Create a dedicated API user with the minimum permissions your integration needs.
Yes: 600 requests a minute per Banking API token, and tighter limits on 2FA, wallet transfers and applications. A 429 response means slow down and retry.
Send a unique client_ref with every repayment, deposit or withdrawal and reuse it on retries. A repeat returns duplicate: true and posts nothing.
Amounts are in the institution's base currency (KES, UGX, TZS, NGN and others) as configured in Zung.
The feature is designed but not yet live. Don't build production code against it; watch the changelog.
All prices are in US dollars. Your institution still runs its books in its own currency (KES, UGX, TZS, NGN and others).
Paying yearly costs 12 months for the price of about 9.6 — a 20% saving. Starter is $1,428 a year instead of $1,788.
Choose a plan to keep going. Everything you set up during the trial — products, members, balances — stays.
A branch is a business location in Zung (head office counts as one). A user is a staff login; members using the mobile app don't count as users.
Yes. Move up when you open more branches or need the API and member app. Talk to us before moving down so no module you rely on is switched off.
The Banking API and Member Mobile API are included from Growth upwards. Building on them costs nothing extra.
Support
Integration architecture, auth, webhooks or a specific endpoint. We reply within 4 business hours.
dev@mfidoc.comInside Zung, behind your login: your endpoints, base URL and a webhook tester for your own institution.
Open Developer Hub ↗Package your integration and list it for every MFI on the Zung platform.
Submit to MFI Market ↗The Zung ecosystem
Type to search.