How Apache Fineract client onboarding and KYC documents fit your lending process
A lender or microfinance institution often cannot let a client borrow or save until identity, address, family and KYC evidence is on file and approved. In Apache Fineract, that gate is not provided out of the box as a finished workflow. Fineract is a headless core banking system: client records, addresses, family details and KYC document uploads are created and changed through its REST API, and the project does not ship its own user interface. The onboarding flow, the screens staff use, the order of steps and the rules for when a client becomes active are therefore designed and built by the implementer, usually alongside a front end such as the Mifos X web application that the project's README mentions.
This design work is needed whenever the institution's policy requires evidence before the first loan or deposit, and especially when KYC rules differ by product, branch or client type. It also matters when a migration brings in clients whose files are incomplete, or when the institution must show a regulator or auditor who approved each client and what they checked. Teams should decide early which fields are optional and which must be present, how documents are captured and stored, and who may move a client from pending to active. Those decisions shape the client template, the data tables and the approval steps that the rest of this page walks through.
This page answers those design questions for a self-hosted Fineract deployment. It covers how to structure a client template with addresses and family details, how KYC document uploads and images are handled, how mandatory fields can be enforced through data tables, and how the approval steps before activation should be arranged. Before you commit to a design, confirm with your own compliance team which KYC evidence your jurisdiction requires, and check the current Fineract documentation at Apache Fineract platform documentation for the client and document endpoints in the release you plan to run.
Which Fineract onboarding building blocks you will configure
Onboarding in Fineract is assembled from several components that each carry their own configuration and data rules. The design works when these pieces agree on which fields are required, which documents are kept, and what must be true before a client becomes active.
Client records and templates
The client record holds the core identity fields, office assignment and status, and the client template determines which fields the onboarding form presents. Decide early which fields the template exposes and which are optional, because changing them later affects existing forms and migrated data. Confirm with the platform documentation which fields are standard and which must come from configuration, and test the template with each branch's staff before rollout.
Addresses and family details
Address and family or next-of-kin records feed credit assessment, collections and fraud checks, so their structure matters as much as their presence. Define which address types your credit policy needs, such as residential and business, and whether family details are captured as standard fields or as a data table. Confirm how addresses are stored and displayed in the version you run, and plan how legacy addresses will be mapped during migration.
KYC document attachments
Document uploads let staff attach identity proof, address proof and signed forms to the client record. Decide which document types are accepted, who may upload or delete them, and how long originals are retained under your own retention policy. Confirm the file size limits, supported formats and storage location in your deployment, since these are not guaranteed by default and depend on how the instance is configured.
Client images and biometrics
Client photographs and any biometric capture are personal data with stricter handling needs than ordinary attachments. Decide whether images are required, who can view them, and whether they are stored in the same place as other documents. Confirm with your privacy and legal teams before collecting images, and check what the Fineract API returns so that image access can be restricted through your gateway and roles.
Mandatory data through data tables
Fineract data tables let you attach custom fields to clients, so KYC questions your policy requires, such as occupation, source of funds or politically exposed person status, can be captured without changing the core schema. Use them to define what must be filled in and to link those rules to activation checks. Test that the required fields are enforced at the API level as well as in the user interface, because the platform itself does not provide a front end.
Pending to active status changes
Clients are created in a pending state and move to active only through an approval step, so the approval workflow is where onboarding controls are enforced. Decide who approves, which checks must pass first, and how rejections and withdrawals are recorded. Confirm how approvals are enabled for client actions in your version and test that a client cannot be activated while a required document or data table entry is missing.
Configuration options for onboarding and KYC capture
This table compares the main onboarding and KYC design choices in Fineract: templates, evidence storage, where mandatory fields are enforced, and activation flow. Read each row as a decision with its trade-off in control, audit and build effort, then choose the option that matches your product mix and assurance requirements.
| Decision | Option | Trade-off in control, audit and effort | When it fits |
|---|---|---|---|
| Client templates | Single client template | One form and one set of fields to maintain, but individual-only and business-only data end up mixed on one screen | One client type, a small product range and a single onboarding team |
| Client templates | Several templates by client type | Clearer capture per segment and fewer irrelevant fields, but each template needs its own field, data table and testing effort | Mixed retail, group and business clients with distinct KYC requirements |
| KYC evidence | Document attachments | Stores scanned files against the client record, so reviewers can open the originals, but values are not queryable for reports or rules | Evidence a reviewer must see in its original form, such as identity document images |
| KYC evidence | Structured data tables | Fields such as document type, number and expiry dates can be validated and reported, but scans still need a separate attachment step | Data your credit or compliance rules check, such as expiry dates or risk ratings |
| Mandatory fields | Enforced in the API | Applies to every channel, including integrations and batch loads, but errors surface later in the integration and need clear messages | Several front ends or partner channels write client data |
| Mandatory fields | Enforced in the front end only | Faster to change and friendlier forms, but any API call or import can skip the check, which weakens the control evidence | Single trusted channel with a documented exception process |
| Activation | Direct activation | Fewest steps and fastest onboarding, but one officer can create and activate a client without an independent check | Low-risk products with strong upstream checks and a small team |
| Activation | Multi-step approval | Separates capture from approval and creates an audit trail, but adds queue handling, staff roles and cycle time for each client | Regulated lending where a second person must confirm identity and KYC before activation |
Setting up client onboarding and KYC capture in Fineract
This sequence turns a KYC policy into Fineract configuration: a confirmed client data model, templates and code values, data tables, document handling, maker-checker roles and tested activation rules. Each step closes with a check so the team knows the configuration is working before go-live.
Confirm the client data model with compliance
Compliance, operations and the Fineract configuration lead agree in writing which identity, address, family and beneficial details each client type must hold, which fields are optional, and which documents must be on file before a client can be activated. Record each requirement against the KYC policy clause it supports, so every later field traces back to a documented need. Done when the signed-off field list covers every onboarding path, including any business or non-person clients, and nothing is held in a spreadsheet only. Ask your compliance lead to confirm the list before any configuration starts.
Define client templates and code values
Configure the client template, office and staff defaults, and the code values used for identifier types, address types, gender, marital status, and reasons for status changes. Keep code values in one controlled list so reports and searches use consistent labels across branches. Test the template by creating a sample client from each channel that will use it, such as a branch counter and an assisted field visit. Done when a test client saves with every mandatory field populated and every dropdown shows only the approved values. Confirm the code value list with the people who will report on it, because renaming values later affects historical data.
Create data tables for KYC fields
Build entity data tables attached to clients for KYC attributes that the standard client record does not hold, such as source of funds, risk rating inputs and occupation details. Define each column type deliberately, because typed columns are easier to validate and report than free text. Restrict who can write to the tables through the permissions you assign to roles. Done when the data tables appear on a test client, values save and reload correctly, and a user without the write permission cannot edit them. Record the table names and column definitions in your configuration repository so the configuration can be reproduced in a later environment.
Configure document handling and storage location
Decide how KYC document images and files are attached to client records, which document types are accepted, and where the binary files are stored. Confirm the storage target with your security team and your data protection requirements, including encryption at rest, backup scope and retention. Set the document type list as code values so uploads are classified consistently. Done when a test upload is attached to a client, the file is retrievable through the interface you intend to use, and a restore test from backup returns the same file and checksum. Ask the vendor or your own environment team to confirm the current document attachment behaviour for your deployed version before relying on it.
Set up maker-checker roles
Create separate roles for officers who capture client records and approvers who activate them, and assign permissions so no single user can both create and approve the same client. Map each role to the office scope it needs, so approvers in one branch cannot activate clients in another unless policy allows it. Review the role permissions with your internal audit or compliance function before any user is onboarded. Done when a test maker can submit a client, a test checker can approve it, and the same test user is blocked from approving their own submission. Keep the role matrix as a versioned document alongside the configuration.
Enforce mandatory KYC data before activation
Attach the KYC data tables to client actions so that activation requires the agreed data, and scope the check by client type or product where policy differs. Use the entity-datatable checks available in your version and confirm exactly which actions each check covers before you rely on it. Done when activation of a test client with the required data succeeds, and activation without any one required field is rejected with a clear message. Keep a written test matrix that lists each mandatory field and the expected result. A detailed treatment of this mechanism is covered in the sibling topic on entity-datatable checks.
Test activation with and without required data
Run a full test cycle using a set of synthetic clients that cover each onboarding path, including missing documents, incomplete addresses, a self-approval attempt and an activation with complete data. Record the actual result of every case against the expected result in the test matrix, and have compliance sign off the evidence. Repeat the cycle after any configuration change, role change or Fineract upgrade. Done when every case passes, the evidence pack is filed with the release record, and the test scripts are stored so they can be rerun. Label any test data clearly so it is never mixed with production client records.
How KYC documents and images are stored and reviewed
Fineract attaches KYC evidence to a client record through its REST API, so the documents sit beside the client they describe rather than in a separate file share. Uploads are made against the client's documents resource, and profile photos and signatures are handled through the image resource, both sent with the Fineract-Platform-TenantId header that scopes every request to one tenant. Before build starts, the team should decide the document metadata it needs: a name, a description, and the document type, which should be a controlled list agreed with compliance rather than free text. Confirm in your Fineract version which fields the documents endpoint accepts and whether document types can be restricted to code values, because the answer determines how much of the review can be filtered later.
In a self-hosted deployment the files are written to the storage location configured for the Fineract instance, not into the PostgreSQL rows that hold the client data. Your infrastructure team must therefore confirm where that location is, which backup job captures it, and whether the same files are reachable from every write and read instance. Retention is a policy decision that Fineract does not make for you: define how long identity evidence is kept after a client closes, who may delete it, and how deletions are logged. Access by branch and staff depends on office scope and user roles, so test with a non-admin user from a second branch to confirm that document downloads respect the same boundaries as the client list. Have compliance sign off the test results.
Reviewers should confirm identity evidence against the client record, not against the image alone. A practical pattern is to require a named reviewer to record the outcome in a data table attached to the activation action, so that the approval step cannot pass until a verified status exists. Keep the reviewer's identity, the date and the document version in that record. Two items need verification in your environment before go-live: whether your version's document endpoints allow a file to be replaced without leaving the earlier version visible to staff, and whether audit trails capture document downloads as well as uploads. If either answer is no, plan a compensating control such as a restricted storage path and a monthly access review.
Security and privacy controls for client identity data
Client identity records and KYC scans are some of the most sensitive data a Fineract deployment holds. The controls below work as a set: transport and sign-in protect the API, tenant separation keeps one institution's records apart from another's, and document access, encryption and change logging limit and reveal what happens to each file. Review them together before the onboarding design is signed off.
HTTPS only for every client
Fineract's documentation strongly encourages HTTPS only and documents SSL settings through environment variables such as FINERACT_SERVER_SSL_ENABLED. Client names, dates of birth, addresses and identity numbers travel in API requests, so plain HTTP should not be reachable from branch networks or the front end. Confirm the exact SSL variables for your release, decide where TLS terminates (at Fineract or at a gateway), and test that HTTP requests are refused.
Replace the default login
The README ships a default development login, mifos with a known password, that must be changed for any real deployment. Treat this as a go-live gate: no environment that holds client data should be reachable with the default credentials, including test copies restored from production. Record who owns the credential rotation and confirm it in the deployment checklist before onboarding staff are created.
Choose OAuth2 or basic authentication
The README shows both OAuth2 and HTTP basic authentication. Basic authentication suits controlled service-to-service calls, but it sends credentials with every request and ties access to individual accounts poorly. OAuth2 lets you connect staff sign-in to your identity provider and remove access centrally when someone leaves. Decide per caller (staff browser, integration, batch job) and document which method each one uses.
Separate tenants with the header
Fineract is multi-tenant, and each API request carries a Fineract-Platform-TenantId header that selects a tenant configured from the tenants database. A client record created under one tenant should never be visible from another. Test this boundary with two tenants, confirm that front ends and integrations always send the correct header, and restrict who can administer the tenants database itself.
Restrict document access by role
KYC document uploads (identity scans, proof of address, photographs) are the most sensitive files in onboarding. Map which roles can upload, view, download and delete them, and keep loan officers who do not need the scan away from it. Check that the role model in Fineract matches your policy, and where it does not, confirm which controls sit in the front end or gateway instead.
Encrypt stored files
Documents attached to clients are stored outside the database rows that hold client details, so encryption must cover both. Confirm with your storage team whether volumes, buckets or file systems used for uploads are encrypted at rest, who holds the keys, and how keys rotate. Include these stores in backup scope and in the retention rules for the deployment.
Log changes to identity records
Auditors and your own compliance team will ask who created, changed or closed a client and who viewed an identity document. Confirm which change history Fineract records for client and document actions in your release, and where you need more, plan to capture it through event publishing or your gateway logs. Test the log by making a change and checking that it shows the user, time and the field affected.
Questions buyers ask about Fineract client onboarding and KYC
What drives the cost and effort of Fineract onboarding design?
The cost follows the number of decisions the onboarding flow has to encode: how many client templates exist, how many identity and address fields are required by product or region, which documents must be collected, and how many approval steps sit between a pending client and an active one. Each added data table, document type and approval role adds design, configuration and test work. Ask any partner for a quote that lists these items separately, so you can see which parts are one-time build work and which are ongoing rules you will change later. Your own compliance and operations staff also carry cost, because someone must write the ID rules and review sample documents before anything is configured.
How long does Fineract client onboarding work usually take?
Duration depends mainly on scope and integrations, not on the Fineract configuration itself. A flow that uses only built-in client fields and document uploads is far simpler than one that calls a national ID check, a sanctions screen or a core customer record in another system. Approval rules, the number of branches using different templates, and the time your compliance team needs to sign off on KYC policy often set the critical path. Ask for a written scope with the integrations named, and confirm which of them your own vendors must deliver before the build can finish.
What does our team need to provide before onboarding is built?
Prepare three inputs before design starts. First, the written KYC and customer acceptance policy, including which identifiers are required for each client type and what happens when a check fails. Second, your ID rules, such as accepted document types, formats, expiry handling and who may override a result. Third, sample documents, anonymized where needed, that show what staff actually receive from clients, such as scanned IDs, proof of address and signed forms. These samples drive the document upload design and the test cases. Without them, the configuration will reflect assumptions that compliance may later reject.
Can our internal team build Fineract onboarding without a partner?
Yes, an internal team can build it if it has Fineract administration skills, a test environment that matches production, and people who own the KYC policy. The Fineract project provides REST APIs and documentation, but it does not supply a comprehensive production deployment guide, and its README notes that organizations may pay a vendor for deployment and maintenance. Assess your team against the work: template and data table configuration, document storage decisions, approval workflow testing, and migration of existing client records. A partner is most useful where the team lacks recent Fineract experience or the timeline cannot absorb a learning curve.
How do we test that mandatory KYC data blocks activation?
Test the negative path first. Create a client without each mandatory data table row, attempt the activation and confirm that Fineract refuses it with the expected message. Then repeat the test for each client template, office and product that should enforce the rule, because a check attached to one template does not protect another. Include edge cases such as expired documents, partially completed data tables and clients migrated from another system. Record the results as test evidence that compliance can review. Re-run the same suite after every configuration change, since data table scoping is easy to alter during an upgrade.
What does ongoing maintenance look like for client onboarding?
Maintenance is recurring and falls into three areas. Policy changes, such as new accepted ID types or revised document expiry rules, require configuration changes, retesting and sign-off. Platform changes require reviewing data tables, templates and approval steps against each new Fineract release, which the project publishes quarterly with end-of-life releases archived. Storage and security work, including backups of uploaded documents, access reviews for staff who can view identity records, and TLS and credential checks, also continues after launch. Ask any partner whether they offer an ongoing support or upgrade retainer and what it covers, because these tasks rarely stop after go-live.
Where should uploaded KYC documents be stored and who controls them?
Decide the storage location before configuring uploads, because it affects backup, access control and retention. Fineract stores document attachments through its own mechanisms, so confirm with the project documentation exactly where files land in your deployment and how they are backed up alongside the PostgreSQL database that the project recommends. Your compliance team should define who may view, download or delete identity images, and your security team should confirm that access is logged. If your organization uses an external document store, treat that integration as a separate scope item with its own testing.
How DeployOpen scopes and delivers Fineract onboarding and KYC work
DeployOpen works to a written scope agreed before any build begins. For onboarding and KYC, that scope names the client templates, the address and family detail fields, the KYC document categories and upload rules, the data tables that make fields mandatory, and the activation approvals that must be in place before a client can move to active. Deliverables, the environments involved and the acceptance tests are written down with it, and a quote follows from that scope rather than from a fixed price list. Ask for the scope in writing, including which items are configuration in Fineract and which need custom development, because those two paths carry very different effort and upkeep.
Design happens with your compliance team, not in place of it. Your compliance and operations staff decide which identity and KYC data is required for each client type, who may approve activation, and how document retention and access should work. DeployOpen then builds those decisions into Fineract configuration and test cases, and deploys and tests everything in infrastructure you control, including the PostgreSQL database and the environments where your own staff can check uploads and activation failures. Optional retainers cover ongoing support, upgrades and continuous testing after go-live. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those assessments, so confirm early which evidence they will expect from the onboarding workflow.

