lendly / product handoffOpen interactive wireframes ↗
VERSION 1.0 · 01 NOVEMBER 2026

A personal-loan MVP,
from experience to operations.

India · One lending partner · Borrower mobile app + lender admin console

Design handoff with fictional examples. No live lending, identity verification, signature or payment integrations are included. Proposed pricing, providers and policy require lender approval.

Functional flow maps

Borrower journey

01ApplyOTP → consent → profile
02VerifyIdentity → income → bank
03ReviewAssessment → offer → KFS
04AuthorizeAgreement + mandate
05ServiceTransfer → repayment → close

Credit and financial controls

01ProposeMaker reviews evidence
02ConfirmIndependent checker
03InstructLender-owned payout
04ReconcileVerify settlement
05RecordLedger → status → audit

Exception routes, state transitions and acceptance scenarios are detailed below. Approval, transfer settlement and installment settlement are separate events.

Lendly — Functional specification

Version 1.0 · 01 November 2026 · India personal-loan MVP

1. Purpose and status

Design an original mobile borrowing experience and a lender operations console for a single-partner personal-loan product. Moneyview is a category reference, not an affiliation, licensed asset or copied interface. Its public personal-loan page illustrates an online application and cost-disclosure journey; our proposed limits and rates are independent assumptions. Reference: Moneyview.

This package is a medium-fidelity design handoff with offline simulations. It contains no backend, native application, real OTP, KYC, credit decision, signature, bank connection or payment capability. Do not enter actual personal information. State exists in browser memory and disappears on reload. The design-review rail can jump to any scenario; this is not a production permission model.

2. Proposed scope

Item Proposed MVP decision Owner before production
Business model Lendly is an LSP/DLA interface for one regulated lender Business + lender
Customer Salaried adult residents meeting lender policy Lender credit/compliance
Channels Android and iOS mobile app; desktop operations console Product
Language English first; localization-ready Product
Loan Unsecured, fixed installment, INR only Lender
Illustrative range ₹25,000–₹3,00,000; 6, 12, 18 or 24 months Lender; not an eligibility promise
Example pricing 18% annual reducing interest; 2% processing fee; illustrative 18% tax on fee Lender + tax adviser
Limit One active application and one active loan per borrower for MVP Lender
Decision Provider checks plus lender assessment; manual review available Lender
Money Borrower and lender authorized accounts; no LSP wallet Lender operations

Outside the first release: multiple-lender marketplace, self-employed underwriting, credit cards, BNPL, investments, insurance cross-sell, referral incentives, top-ups, co-lending, DLG arrangements and a new in-house core banking ledger. No approval-speed guarantee or preselected marketing consent.

3. Roles and responsibilities

Role Responsibilities Restrictions
Borrower Apply, consent, verify, review, sign, repay, raise complaints Own records only
Credit maker Review lender-owned evidence and propose outcome Cannot confirm own proposal
Credit checker Independently approve or return maker proposal Distinct authenticated user; fresh evidence required
Operations Enquire transfers, reconcile receipts, manage authorized collections workflows Cannot change credit decision or bank details casually
Support Investigate assigned tickets and route corrections No unrestricted KYC document access
Auditor Inspect permitted evidence and audit history Read-only
Access administrator Manage role requests through approved workflow Cannot grant self elevated financial permissions

Prototype role switching simulates different roles in one page. Production must use separate identities, MFA and backend authorization. The sample dashboard is illustrative; only APP-1042, its amount/decision, repayment state and created ticket have linked interactions.

4. Screen inventory and production behavior

ID Screen Main action Success / exception
M01 Welcome Start application M02; disclose actual lender before application
M02 Mobile & OTP Verify registered mobile M03; wrong/expired code, cooldown and locked challenge
M03 Consent centre Authorize purpose-specific assessment M04; decline exits without application submission
M04 Your profile Save identity, occupation, income, location M05; validate age, name and serviceability server-side
M05 Choose your loan Select amount and tenor M06; outside policy range blocked
M06 Verify identity Launch lender KYC provider M07 or M19/manual review
M07 Verify income Authorize supported provider or alternative M08 or M19/manual review
M08 Bank account Verify ownership and submit M09; mismatched account needs correction
M09 Application tracker View actual lender state M10, M19 or M20; resume requested step
M10 Loan offer Inspect lender, principal, APR, net proceeds and costs M11; decline or M21 on expiry
M11 Key facts statement Read and acknowledge versioned lender KFS M12; missing acknowledgement blocks progression
M12 Agreement & mandate Sign and authorize separately M13 only after both server confirmations
M13 Transfer status Track lender disbursement M14 on settlement; unknown to operations, failure to recovery
M14 Loan home Inspect balance, next EMI and documents M15, M17, M18 or M22
M15 Repayment schedule Inspect lender-issued amortization M16; documents available throughout loan life
M16 Pay installment Initiate payment through lender route Pending, confirmed, failed; receipt after confirmation
M17 Help & complaints Create and track ticket Reference, SLA and escalation route
M18 Privacy controls Revoke optional use or request review/deletion Purpose-specific response with retained-data explanation
M19 Action needed Retry affected step or request manual review Existing verified progress retained
M20 No offer available Correct information or contact support No promise of approval; policy-based future application
M21 Offer expired Request new assessment/offer Recheck consent; issue and acknowledge new KFS
M22 Cooling-off exit Request valid exit quote Pay exact lender quote; await confirmed closure

The M11 disclosure is deliberately simplified for wireframe review. It is not a substitute for the prescribed KFS, full amortization schedule or an executed loan agreement. M14 and M22 can be opened as separate settled-loan and immediate-post-disbursement scenarios; the prototype does not enforce real elapsed time.

Admin workspaces

ID Workspace Production purpose Prototype coverage
A01 Dashboard Intake, aging, collections and reconciliation visibility Sample metrics and queue links
A02 Applications Case evidence, requests, proposal and independent decision Linked APP-1042; maker/checker guards
A03 Customers Masked profile, consents, references and privacy requests One sample profile
A04 Disbursements Status enquiry, trace and reconciliation Unknown-status enquiry; no payout control
A05 Repayments Match receipts and detect duplicates Sample confirmation updates mobile installment
A06 Collections Assigned cases, borrower notice and contact history Separate overdue sample and audit event
A07 Support Complaints, investigation, escalation, resolution Sample ticket creation and resolution event
A08 Policy & access Versioned policy and role administration Read-only proposed policy and role boundaries
A09 Audit log Trace actor, event and evidence In-memory simulated events

Production additions to each queue: server pagination, permitted search, assigned-user scope, date/status filters, meaningful empty/error states, permission-checked exports and case drill-down. These are specified, not fully implemented in the wireframe.

5. Functional flows

Borrower happy path

M01 Start → M02 OTP → M03 Consent → M04 Profile → M05 Amount/tenor
 → M06 Identity → M07 Income → M08 Bank ownership → Submit
 → M09 Lender review → M10 Offer → M11 KFS acknowledgement
 → M12 Agreement + mandate → M13 Disbursement pending
 → confirmed settlement → M14 Active loan → M15 Schedule
 → M16 Payment pending → verified settlement → Receipt / balance update
 → final confirmed allocation → lender closure → closure document

Production prerequisite: an application may reach an offer only after the lender's required assessment gates pass. A confirmed admin decision does not itself disburse funds. The customer may abandon before signing; application withdrawal and post-signing cancellation use lender-specific rules.

Credit review and exception flow

Submitted → Checks pending → Review queue
                           ├─ Need information → borrower correction → recheck
                           ├─ Provider issue → retry / manual review
                           └─ Maker proposal → independent checker
                                                ├─ Return → maker
                                                ├─ Decline → M20
                                                └─ Approve → versioned offer

Every decision retains policy version, evidence references, reasons and actor identity. Material borrower changes invalidate stale evidence and any unaccepted offer when required. New proposal versions invalidate earlier checker requests. The server rejects a self-approval even when the UI is bypassed.

Funds and repayments

Accepted offer + verified KYC + bank + signature + mandate
 → lender payout request → submitted → pending / unknown
                                          ├─ confirmed failure → controlled retry
                                          └─ confirmed settlement → active loan

Installment due → lender-authorized payment intent → pending
 → verified provider event + reconciliation → ledger allocation
 → borrower receipt → paid / partial / overdue according to ledger

An unknown transfer or payment is never automatically retried as a new financial instruction. A duplicate callback cannot create a second allocation. A reversal uses a compensating lender-ledger entry, not deletion. Manual matching requires authorized evidence and independent approval when value changes.

Servicing, complaints and privacy

Borrower request → ticket/reference → assigned owner → investigation → documented response → borrower acknowledgement or escalation. Complaints track receipt time separately from first response and resolution. Privacy requests have a separate purpose, legal-retention evaluation and completion record. Cooling-off exit uses an expiring lender quote, payment reconciliation and explicit closed confirmation. Foreclosure after that window follows the applicable lender product rules and is a separate implementation path.

6. State model

Aggregate Allowed high-level states Critical rule
Application DRAFT, SUBMITTED, CHECKS_PENDING, ACTION_REQUIRED, IN_REVIEW, APPROVED, DECLINED, WITHDRAWN Terminal decisions require lender evidence; no client override
Verification NOT_STARTED, PENDING, VERIFIED, FAILED, MANUAL_REVIEW Verification is per type and per evidence version
Offer ISSUED, ACCEPTED, EXPIRED, DECLINED, SUPERSEDED Accept atomically only if valid and still current
Signature NOT_STARTED, PENDING, SIGNED, FAILED, EXPIRED Browser redirect alone does not mean signed
Mandate NOT_STARTED, PENDING, ACTIVE, FAILED, REVOKED Failed mandate blocks payout under proposed MVP policy
Disbursement CREATED, SUBMITTED, PENDING, UNKNOWN, SETTLED, FAILED, REVERSED Only confirmed settlement activates servicing
Loan ACTIVE, OVERDUE, EXIT_REQUESTED, CLOSURE_PENDING, CLOSED Closure requires lender confirmation and zero due under quote
Payment CREATED, PENDING, UNKNOWN, SETTLED, FAILED, REVERSED Allocation only once per unique settlement
Complaint OPEN, ASSIGNED, WAITING, RESOLVED, ESCALATED, CLOSED Escalation does not reset original receipt time

7. Calculation example

For planning only: principal P = ₹1,00,000, nominal annual rate 18%, monthly rate r = 0.18/12, n = 12.

EMI = P × r / (1 − (1+r)^(-n))
Fee = P × 2%; illustrative fee tax = fee × 18%
Net proceeds = P − fee − tax
Total installments = unrounded EMI × n
Monthly cash-flow rate i solves:
  Net proceeds = Σ[EMI / (1+i)^k], k = 1..n
Illustrative nominal annualized APR = 12 × i × 100

Prototype uses equal monthly periods with the first installment one month after disbursement; APR is illustrative. Production must use the lender-approved KFS calculation, actual dates, complete included charges, rounding and tax treatment. Store paise and fixed decimal rates; do not use JavaScript floating point for ledger posting. The final installment absorbs agreed rounding adjustments. Displayed whole-rupee figures may differ slightly from exact totals.

8. Experience and accessibility requirements

Use plain language and disclose the lender, costs and pending status at the decision point. Each control needs an accessible name; production targets WCAG 2.2 AA, keyboard support for admin, screen reader semantics, dynamic type, visible focus and 44px touch targets. Status uses text as well as color. Support back/resume without repeating completed checks, and announce errors near the relevant field. Do not clear borrower entries on provider failure. The design rail and simulation controls disappear from the native app.

9. Regulatory design checkpoints

The following is a scoped reference summary, not a complete compliance assessment. Confirm current applicability with the lender before launch.

RBI’s 2025 Digital Lending Directions address lender/LSP oversight, borrower disclosures, direct lender–borrower fund flows, grievance handling and purpose-specific consent. The design should provide a cooling-off exit, minimize LSP data storage, avoid access to contacts/call logs and use India-hosted data. The lender remains responsible for outsourced activity. Multi-lender matching has additional display requirements and is outside this MVP. RBI Digital Lending Directions, 2025.

The KFS circular addresses standardized borrower disclosures, APR computation, acknowledgement and an amortization schedule. For loans of seven days or longer, the KFS validity period is at least three working days; shorter loans have a one-working-day minimum. Implement lender-approved validity and document generation rather than copying the prototype’s seven-day example. RBI KFS circular, 15 April 2024.

Other launch reviews: applicable KYC/AML rules, privacy and data-protection obligations and their commencement status, communications consent, credit-information reporting, outsourcing/cybersecurity, recovery conduct, tax, e-sign validity and applicable prepayment rules. These reviews are unresolved dependencies, not certified features of this package.

10. Acceptance scenarios for production

Scenario Expected result
Wrong or expired OTP; resend flood Clear error, rate limit, expiring challenge; no session issued
Required assessment consent declined No bureau/income request made; marketing stays independent
Reload or app killed after saved step Resume from authenticated server draft
Out-of-range amount, future DOB, invalid PAN or unsupported location Backend rejects with safe field-level error
KYC failure or unsupported bank Specific retry/alternative route; progress preserved
Another customer’s application ID requested Access denied without data leakage
Maker tries to approve own proposal Backend denies; audit records attempt
Two checkers confirm different versions Only current version can succeed atomically
Offer expires while borrower reads KFS Acceptance rejected; refresh and new acknowledgement required
e-sign return arrives before provider callback Signature remains pending
Payout request times out UNKNOWN; enquiry with original reference; no new payout
Duplicate or late settlement callback One allocation; monotonic status or explicit reversal
Partial payment or reversal Lender schedule/ledger determines revised due; no false paid state
Consent revoked or deletion requested with active loan Explain permitted retention; route to lender; preserve obligations
Complaint remains unresolved Original receipt time and applicable escalation route retained
Last installment / cooling-off amount reconciles Close only on lender confirmation; issue closure record

11. Delivery phases and open decisions

  1. Product and lender alignment: validate customer segment, lending contract, credit rules, fees, KFS, collections, privacy and support responsibilities.
  2. UX refinement: usability-test these flows, finalize design system, error copy, native navigation, localization and accessible high-fidelity screens.
  3. Sandbox implementation: OTP, consent, applications, provider adapters, review, document/signature, mandate and status flows.
  4. Financial operations: lender disbursement adapter, schedule mirror, repayments, reconciliation, complaints and reporting.
  5. Controlled pilot: security assessment, restore exercise, lender UAT, operational training, support readiness and limited rollout.

A team capacity plan and vendor sandbox access are required before estimating calendar dates or cost. No delivery timeline is promised in this package.

Decisions still needed: legal entity and lender; age/income/serviceability thresholds; provider list; exact interest/fees; KFS and exit terms; retention schedule; underwriting authority; bank and collection arrangements; complaint contacts; languages; expected volumes; native release targets and hosting contracts. The defaults above are proposals that make the wireframes reviewable.

Lendly — Technical design and implementation handoff

Version 1.0 · 01 November 2026 · Proposed architecture; not deployed

1. Architecture decision

Use a modular backend for the MVP instead of independently deployed microservices. Separate application/consent, verification, offers/documents, operations and servicing modules by interfaces and database ownership. Split services only when load, isolation or team ownership justifies the overhead.

Two deployment domains are essential. The LSP domain handles minimal profile/contact data, user experience, references and scoped workflow coordination. A lender-owned or lender-controlled domain owns sensitive assessment/KYC evidence, issued offers, financial instructions and the authoritative ledger. Contractual permission and legal review determine exact boundaries; hosting a database in India alone does not authorize unrestricted LSP storage.

Borrower mobile app                     Operations browser
        │                                       │
        ├──── LSP edge / API gateway ────────────┤
        │     Auth, minimal profile, ticket routing,
        │     consent UI references, status projection
        │                    │ mTLS / scoped API
        └──────────── LENDER CONTROLLED DOMAIN ────────────┐
                      Application workflow                │
                      Verification adapters               │
                      Credit review + policy versions     │
                      Offer / KFS / document signing      │
                      Payout & repayment orchestration    │
                      Ledger / LOS / LMS integration      │
                                │                        │
                    PostgreSQL + outbox + job worker     │
                    Encrypted document vault             │
                                │                        │
                   Authorized external providers ◄───────┘
                   OTP · KYC · bureau · income · signing
                   mandate · bank / payment rails

Funds: lender account ⇄ verified borrower account
No funds pass through the LSP application or its accounts.

The diagram is a proposed ownership model, not an assertion that every lender offers these APIs. Agree an integration boundary with the selected lender first. Browser/mobile clients never carry provider secrets or directly trust redirect parameters.

2. Proposed stack

Layer Recommendation Rationale
Mobile React Native + TypeScript Shared Android/iOS product logic; validate provider SDK support
Admin React + TypeScript Component reuse, accessible case workflows
Backend NestJS + TypeScript modular application Explicit modules, guards, validation and adapter boundaries
Transaction store Managed PostgreSQL in India Transactional state, constraints and durable workflow records
Async work Durable queue and worker with transactional outbox Reliable delivery and controlled retries
Documents India-region private object store with key management Versioned lender-controlled evidence and short-lived retrieval
Identity Borrower OTP/session service; workforce OIDC + MFA Separate consumer and operator trust boundaries
Observability Structured logs, metrics, traces and alert routing Correlation without exposing raw PII

These are proposed engineering choices, not user-mandated technologies. Pin supported stable versions after checking lender SDKs, security maintenance and native build compatibility. This package deliberately does not guess a dependency lockfile.

Official implementation references: React Native, NestJS, PostgreSQL transaction isolation. PostgreSQL documents concurrency behavior; choose explicit locking/version checks for decision and financial transitions rather than assuming a read followed by write is atomic.

3. Modules and contracts

Module Inputs Outputs / responsibility
Authentication OTP challenge or workforce token Identity, session, role and lender/customer scope
Consent Purpose, notice version, recipients, action Immutable evidence reference and current grant projection
Application Profile reference, requested amount/tenor Versioned draft, status and submission validation
Verification Application version and valid consent Provider reference, result, expiry, manual-review reason
Credit review Current evidence and policy version Maker proposal and independent lender decision
Offers Lender decision, pricing and schedule Versioned offer, KFS and expiry
Contracting Accepted offer and acknowledgements Signature reference, mandate reference and verified status
Money movement Fully satisfied lender release gates Idempotent payout/payment instruction and enquiry status
Servicing projection Lender ledger/schedule events Customer-visible due, receipt and status; no independent ledger truth
Complaints/privacy Request, requester and scope Case, ownership, deadline, response and evidence
Audit/reporting Authorized command/event Append-only activity and controlled exports

Keep lender-specific integration DTOs inside adapters. Normalize states into the documented application model while preserving raw provider status in the lender-controlled event record.

4. Data model and ownership

All identifiers are UUIDs or opaque lender references. Every applicable record includes lender_id, timestamps, version and provenance. Store money as integer paise in bigint; rates as fixed decimal. Record timestamps in UTC and display borrower schedules in the lender's business timezone, proposed Asia/Kolkata. Encrypt sensitive columns with managed keys and rotation policy.

Entity / key Essential fields and relationships Storage owner
Customer / id auth_subject, masked contact, lender_customer_ref LSP minimal permitted data; lender full customer
ConsentEvent / id customer_id, purpose, recipient_set, notice_version, action, recorded_at, evidence_ref Lender evidence; LSP scoped reference
Application / id customer_id, amount_paise, tenor_months, profile_ref, status, policy_version, version Lender authoritative; LSP status/reference
Verification / id application_id, kind, provider_ref, status, evidence_version, expires_at Lender; provider-controlled raw evidence
BankAccount / id customer_id, provider_token, last4, match_status, verified_at Lender vault; masked LSP reference if permitted
DecisionProposal / id application_id, application_version, maker_user_id, outcome, reason_code, evidence_hash Lender
Decision / id proposal_id, checker_user_id, outcome, policy_version, decided_at Lender
Offer / id application_id, principal, rate, fees, tax, apr, net_disbursal, expires_at, version, status Lender
Document / id offer_id, type, storage_key, sha256, version, delivered_at Lender-controlled vault
Acknowledgement / id document_id, customer_id, hash, notice_version, accepted_at Lender
Signature / id offer_id, provider_ref, status, signed_document_ref Lender
Mandate / id bank_account_id, provider_ref, max_amount, frequency, status Lender
Disbursement / id offer_id, unique_instruction_ref, net_amount, provider_ref, status Lender
Loan / id customer_id, lender_loan_ref, offer_id, status, disbursed_at Lender; scoped servicing mirror
Installment / id loan_id, sequence, due_date, principal, interest, amount_due, settled_amount Lender schedule/ledger
Payment / id loan_id, installment_id, intent_ref, provider_ref, amount, status Lender
Allocation / id payment_id, installment_id, amount, lender_ledger_ref Lender; unique ledger posting reference
Ticket / id customer_ref, category, received_at, status, assignee, response_ref Approved service scope; avoid raw KYC attachments
PrivacyRequest / id customer_ref, purpose, requested_at, retention_decision, completed_at Lender decision; routed LSP reference
ProviderEvent / id provider, event_id, raw_hash, signature_result, processing_status Lender inbox; unique provider/event pair
AuditEvent / id actor, role, resource_ref, action, reason, request_id, occurred_at Append-only, access-controlled

Relationships: Customer 1:N Application; Application 1:N Verification/Proposal/Offer; Offer 1:N Documents and 0:1 settled Loan; Loan 1:N Installments/Payments; Payment 1:N Allocations. Support ticket references a customer and optional application/loan, without duplicating sensitive evidence.

Constraints: one active application/loan per borrower according to policy; one accepted current offer; unique payout instruction per offer; unique provider event; unique lender-ledger posting reference. Enforce financial and version constraints in the database, not only form validation. Maintain current status projections separately from immutable events.

5. API conventions and draft contract

api-contract.json is an OpenAPI 3.1 draft describing the principal borrower/admin resources. It is a starting contract, not a deployed endpoint set or a complete vendor specification. Its example server uses the reserved .invalid domain. Application authentication uses bearer tokens; workforce tokens require a separate audience and role/tenant verification.

Amounts are integer INR paise, never formatted strings. IDs are opaque. List responses use bounded cursor pagination. All state-changing business requests carry Idempotency-Key; sensitive commands require an expected resource version. Provider callbacks use provider-specific signatures over the raw body with replay checks and are specified separately from bearer authentication.

Representative operations include OTP challenge/verification, draft creation/update/submission, consent events, verification sessions, current offers, offer acceptance, contracting sessions, application status, loan/schedule retrieval, payment intents, exit quotes, tickets, privacy requests, admin proposals/confirmations and reconciliation enquiries. The contract labels actor scopes and includes conflict, auth, validation and throttling errors.

{
  "error": {
    "code": "OFFER_EXPIRED",
    "message": "This offer has expired. Request a refreshed offer.",
    "requestId": "opaque-correlation-id"
  }
}

Error classes: 400 malformed request; 401 invalid authentication; 403 resource/role denied; 404 absent or deliberately concealed resource; 409 version/idempotency/state conflict; 422 business validation; 429 throttled; 503 temporary dependency unavailability. Never expose stack traces, bureau details or provider secrets in errors.

6. Critical transactional sequences

Decision confirmation

Verify workforce identity, checker scope, lender scope and checker_user_id != maker_user_id. In one transaction lock the application, compare expected version and proposal status, verify current evidence/policy and commit decision, new version, audit event and outbox event. A repeated idempotency key with the same body returns the prior result; a changed body returns conflict. A stale proposal cannot be confirmed after borrower data changes.

Offer acceptance and contracting

The server checks borrower ownership, current offer, expiry, required acknowledgement/document hash and application validity atomically. Persist acceptance and contracting request before contacting providers through a worker. Signature and mandate are separate records. Revalidate the final disbursement gates against the accepted offer and verified provider results. A button tap or provider redirect is never a trusted completion event.

Financial instruction and webhook processing

Create a unique instruction and outbox message in a transaction. Worker sends the instruction with a stable provider reference; persist attempts. A timeout becomes UNKNOWN and triggers enquiry against that reference. Verified events enter a durable inbox with unique provider/event ID before asynchronous processing. Acknowledge successful receipt only after durable persistence; repeated valid deliveries return success without duplicate effects. Check monotonic state rules, amount, currency and reference; send conflicting events for investigation.

After provider confirmation, reconcile with lender settlement/ledger evidence. Post one allocation or store the authoritative lender posting reference, then update the servicing projection and emit the receipt notification. Reversal is explicit and compensating. A failed callback arriving after settlement cannot erase a paid status. Network retries must never invent a new payout reference.

Privacy and document handling

Validate requester, purpose and lender scope. Route privacy changes to the lender and provide a request reference. A deletion request creates a case; retention decisions are recorded per data category. Do not promise immediate erasure of loan records. Documents use hash/version binding and short-lived, scope-limited retrieval; no public URLs or KYC attachments in support email.

7. Security and deployment

Use TLS for clients, mTLS or equivalent service authentication where supported, secret storage with rotation and separate development/test/production credentials. Workforce MFA and least privilege are mandatory proposed controls. Validate ownership for every resource, prevent object-level authorization bypass, sanitize uploads inside lender-approved flows and redact PII/tokens from analytics and logs. Mobile tokens belong in platform-protected storage; clear sessions on logout and support session revocation.

Host approved data stores, backups, logs, observability and document processing in contracted India locations. Review telemetry vendors and support access as part of the same boundary. Infrastructure should use separate accounts/projects, private databases, restricted egress, encrypted backups and audited privileged access. Keep production customer data out of development environments.

The prototype stores no real records and has no security boundary. Do not deploy it as a borrower-facing loan application. Its role picker and rail are review controls.

8. Operational targets and observability

Proposed pilot targets, subject to capacity and lender agreements: 99.5% monthly availability for owned non-provider services; p95 under 700ms for simple owned API reads at 50 requests/second; no synchronous provider latency promise. Load-test the agreed traffic model before accepting these targets. Initial recovery objectives: RPO 15 minutes and RTO 4 hours, proven by restore exercises and reconciled against lender financial records.

Track application conversion by step without raw PII, provider success/latency, stale reviews, expiring offers, unknown payout age, unreconciled receipts, duplicate callbacks, queue lag, complaint age and notification failures. Alert on financial mismatches and persistent unknowns; identify an on-call owner and runbook for each. Dashboard reporting must distinguish counts of attempts, unique borrowers, approved applications and settled loans.

Runbooks: provider outage pauses new affected steps while preserving drafts; unknown payout opens enquiry and blocks duplicate issue; settlement mismatch goes to authorized operations; compromised credential triggers revocation, investigation and applicable reporting; restore test replays only deduplicated durable events and checks lender ledger consistency.

9. Implementation phases and verification

Phase Deliverable Exit evidence
Foundation Identity, scopes, consent, draft persistence, schema, audit Ownership/role tests and consent evidence review
Assessment KYC/income/bureau adapters, requests, maker/checker Provider sandbox results; self-approval/version-race tests
Contracting Pricing, KFS, acknowledgement, e-sign, mandate Golden lender fixtures; expiry/hash/callback ordering tests
Servicing Payout, schedule mirror, payment, reconciliation Timeout/duplicate/reversal/partial-payment scenarios
Operations Complaints, privacy, reporting, controlled exports Role-scope UAT, retention and grievance exercises
Pilot Hardened native/admin build, monitoring and runbooks Pen test fixes, restore drill, lender signoff, rollback rehearsal

Use unit tests for pricing/state guards, contract tests for each adapter, integration tests for transaction/idempotency behavior and end-to-end tests for borrower and operator journeys. Include concurrent checker approval, cross-customer access, revoked consent, expired KFS, provider callback replay and orphaned payment recovery. A passing UI test cannot demonstrate regulatory compliance or real bank settlement.

For the delivered wireframe package, verify JavaScript syntax, screen render/navigation, calculator sensitivity, consent and acknowledgement guards, role-based proposal confirmation, linked application status, settlement deduplication, local document links and narrow viewport layout. Production criteria above remain implementation work.

10. Dependencies and decision register

Before engineering estimates: choose the lender/LOS/LMS and clarify APIs, identity/KYC route, bureau permissions, income provider, signing, mandate, bank rails, notification provider and service-level agreements. Obtain approved fee/tax fixtures, actual KFS/agreement templates, credit-policy versions, complaint ownership and a record-retention schedule. Confirm which domain may store each field.

The API contract intentionally uses generic verification/contracting adapters until vendor selection. Vendor signature algorithms, callback schemas, request credentials, bank settlement formats and detailed decision engine rules cannot be finalized without those agreements. No hidden real providers or credentials are included.

Regulatory basis and remaining legal reviews are in the functional specification. This document is an engineering proposal and does not certify licensing or compliance.