โ„น๏ธ Developer Note: All financial transactions must generate double-entry GL entries automatically. Manual GL entries require Maker-Checker. Every receipt must update: EMI Schedule status, Loan Outstanding, Branch Cash/Bank balance. Receipts cannot be deleted โ€” only reversed (with reason + approval).
๐Ÿ“…

Form 1: EMI Schedule (Auto-Generated)

System โ†’ Auto-Generated after Sanction | Table: tbl_emi_schedule | Read-only view for users
๐Ÿ”ง Dev Note: EMI schedule is system-generated โ€” users don't fill this form, they VIEW it. Generated when loan status moves to SANCTIONED. Table: tbl_emi_schedule(loan_id, emi_no, due_date, principal, interest, total_emi, balance_outstanding, status, paid_date, paid_amount). Status values: PENDING / PAID / PARTIALLY_PAID / OVERDUE / WAIVED. Re-generate schedule if prepayment or interest rate change occurs.
EMI # Due Date Principal (โ‚น) Interest (โ‚น) Total EMI (โ‚น) Outstanding (โ‚น) Status Paid Date
1 01-Mar-2024 4,200 1,000 5,200 95,800 PAID 01-Mar-2024
2 01-Apr-2024 4,250 950 5,200 91,550 PAID 30-Mar-2024
3 01-May-2024 4,300 900 5,200 87,250 PENDING โ€”
4 01-Jun-2024 4,350 850 5,200 82,900 PENDING โ€”
5 01-Jul-2024 4,400 800 5,200 78,500 PENDING โ€”
๐Ÿ’ฐ

Form 2: EMI Collection / Receipt Entry

Cashier / Loan Officer โ†’ Collections | Table: tbl_receipts, tbl_emi_schedule
๐Ÿ”ง Dev Note: On saving receipt: (1) Update tbl_emi_schedule EMI status to PAID/PARTIALLY_PAID. (2) Create GL entry: Cash/Bank Dr โ†’ Interest Income Cr + Loan Portfolio Cr. (3) Update loan outstanding. (4) Log in audit trail. URT (Unique Reference Transaction) number required for online payments to prevent duplicate entry. Receipt Number format: [BRANCH_CODE]-RCP-[DATE]-[SEQ].
๐Ÿ“Œ Auto-fills customer name, outstanding, next due EMI
๐Ÿ“Œ Must be within current active Financial Year
๐Ÿ“Œ System suggests next pending EMI. User can override for advance payment.
๐Ÿ“Œ If less than EMI โ†’ PARTIAL. If more โ†’ excess goes to next EMI or advance.
๐Ÿ“Œ Drives GL account: Cash A/c or Bank A/c gets debited
๐Ÿ“Œ MANDATORY for online modes. Duplicate URT check to prevent double-entry.
๐Ÿ“Œ Required if payment mode = Cheque or DD
๐Ÿ“Œ For post-dated cheques โ€” alert if date is future
๐Ÿ“Œ Used in field officer collection report
๐Ÿ“Œ System auto-splits received amount into Principal + Interest + Penal
๐Ÿ“Œ Goes to: Penal Income GL A/c
๐Ÿ“’ Auto GL Entry on Receipt Save: Cash / Bank A/c         Dr  โ‚น [Amount]
    To Interest Income A/c           Cr  โ‚น [Interest]
    To Loan Portfolio A/c            Cr  โ‚น [Principal]
    To Penal Income A/c (if penal)   Cr  โ‚น [Penal]
๐Ÿง

Form 3: Loan Disbursement

After Sanction โ†’ Disburse Loan Amount | Requires Approval (Maker-Checker)
๐Ÿ”ง Dev Note: Disbursement changes loan status to ACTIVE. Processing Fee deducted from disbursement amount before transfer. Net disbursed = Sanctioned Amount โˆ’ Processing Fee โˆ’ Insurance Premium (if any). GL entry: Loan Portfolio A/c Dr โ†’ Bank/Cash A/c Cr. Processing Fee: Bank A/c Dr โ†’ Processing Fee Income A/c Cr. Table: tbl_disbursements. Black/White flag stored here.
๐Ÿ“Œ Deducted from disbursement. Goes to Processing Fee Income GL.
๐Ÿ“Œ Actual amount transferred to customer bank account
๐Ÿ“Œ First EMI due date = Disbursement Date + EMI Frequency
๐Ÿ“Œ Store for reconciliation and audit trail
๐Ÿ“Œ Black entries visible only to users with "Can View Black Data" permission
๐Ÿ“’ Auto GL Entry on Disbursement: Loan Portfolio A/c        Dr  โ‚น [Sanctioned]
    To Bank / Cash A/c          Cr  โ‚น [Net Disbursed]
    To Processing Fee Income   Cr  โ‚น [Processing Fee]
โš ๏ธ

Form 4: Overdue Tracking & NPA Classification

System Auto-runs Daily | Manual Review via Dashboard | Table: tbl_loan_npa_status
๐Ÿ”ง Dev Note: NPA classification runs as a daily scheduled job. DPD (Days Past Due) = Today โˆ’ EMI Due Date (for unpaid EMIs). Update tbl_loan_accounts.npa_status and tbl_loan_accounts.dpd daily. Penal interest auto-accrues: Penal_Amount = Outstanding ร— Penal_Rate% / 365 ร— DPD. Provisioning percentages are regulatory โ€” store in config table.
๐Ÿ“Š NPA Classification Rules
DPD Range Classification Provisioning % Action Required
0 days Standard Asset 0.25% No action needed
1 โ€“ 30 days Regular 0.25% SMS reminder to customer
31 โ€“ 60 days SMA-1 0.25% Field visit + escalation to BM
61 โ€“ 90 days SMA-2 0.25% Legal notice + recovery planning
> 90 days NPA 10% โ€“ 100% NPA provisioning + recovery action
> 90 days (Sub-standard) Sub-Standard 10% Loan tagged NPA in all reports
> 12 months NPA Doubtful 25% โ€“ 100% Legal recovery proceedings
๐Ÿ” Overdue Search / Dashboard Filter
๐Ÿ“Œ DPD calculated as of this date
๐Ÿ“Š Provisioning Entry (Accountant)
๐Ÿ”ง Dev Note: Provisioning entries are monthly Journal Entries in GL. Formula: Provision_Amount = Outstanding ร— Provision_Rate%. GL Entry: Provision for Bad Debts A/c Dr โ†’ NPA Provision Reserve A/c Cr. This is separate from NPA classification โ€” classification is auto-daily, provisioning is monthly manual/auto entry with checker approval.
๐Ÿ“’ Provisioning GL Entry (Monthly): Provision for Bad Debts A/c   Dr  โ‚น [Amount]
    To NPA Provision Reserve A/c   Cr  โ‚น [Amount]
๐Ÿ“’

Form 5: Chart of Accounts (COA) & Manual GL Entry

Accountant / HO Admin โ†’ Accounting Module | Table: tbl_chart_of_accounts, tbl_gl_entries
๐Ÿ”ง Dev Note: COA is the master of all GL accounts. Standard accounts must be pre-seeded on setup. Manual entries MUST go through Maker-Checker. Financial Period locking prevents entries in closed periods. Every GL entry needs: Dr account, Cr account, amount, narration, date, FY_ID, Branch_ID, transaction_type, user_id, checker_id. Use double-entry validation: Dr total must = Cr total.
๐Ÿ“‹ Key GL Accounts (Pre-seeded)
Ledger Name Alias Ledger Group Normal Balance Remark
Loan Portfolio A/c LOAN_PORT Assets Debit Total outstanding loan portfolio
Interest Income A/c INT_INC Income Credit Interest collected from borrowers
Interest Accrued A/c INT_ACC Assets Debit Interest earned but not collected (for tenure-end schemes)
Processing Fee Income A/c PROC_INC Income Credit Fee deducted at disbursement
Penal Income A/c PENAL_INC Income Credit Late payment charges
Cash A/c CASH Assets Debit Branch cash in hand
Bank A/c BANK Assets Debit Current bank account of branch
NPA Provision Reserve NPA_PROV Liabilities Credit Provisioning for bad loans
Provision for Bad Debts PROV_BAD Expenses Debit P&L charge for NPA provisioning
Deposit Liability A/c DEP_LIAB Liabilities Credit Amount received from depositors
Interest Payment A/c INT_PAY Expenses Debit Interest paid to depositors
โœ๏ธ Manual Journal Entry Form
๐Ÿ“Œ Must be in open financial period. Locked periods rejected.
๐Ÿ“Œ Printed in Day Book, Ledger. Be descriptive.
๐Ÿ”’

Form 6: Day Closing / Branch Balancing

Branch Manager โ†’ End of Day | Must be done before next business day starts
๐Ÿ”ง Dev Note: Day Closing locks all transactions for the selected date at branch level. After posting lock, no new entry allowed for that date. During closing: (1) Cash balance verified. (2) Branch balance checked (all debits = credits). (3) Day Book generated. Store closing data in tbl_day_closing(branch_id, closing_date, cash_physical, cash_system, difference, status, closed_by).
๐Ÿ“Œ System-calculated. Total cash inflows โˆ’ outflows for the day.
๐Ÿ“Œ Branch Manager physically counts and enters this value
๐Ÿ“Œ If non-zero: generates shortage/excess alert to HO
๐Ÿ“Œ All Dr = Cr. If unbalanced: cannot close until resolved.
โœ…

Form 7: Loan Closure (Normal)

After all EMIs cleared โ†’ Mark loan as CLOSED โ†’ Generate NOC | Table: tbl_loan_accounts status=CLOSED
๐Ÿ”ง Dev Note: Normal closure: all EMIs paid โ†’ system auto-flags eligible for closure. Checker approves closure. On closure: (1) Loan account status = CLOSED. (2) Guarantor restriction released. (3) Gold Loan: locker released, packet returned โ€” log in inventory. (4) NOC letter generated with PDF. (5) GL: any remaining balance adjustment entry passed.
๐Ÿ“Œ On Yes: guarantor can now take new loan
๐Ÿ“Œ Locker status returns to AVAILABLE in inventory
๐Ÿ

Form 8: Foreclosure / Pre-payment

Customer wants to close loan before tenure end | Requires Approval
๐Ÿ”ง Dev Note: Foreclosure calculation: Outstanding_Principal + Accrued_Interest + Penal_Charges + Prepayment_Charges โˆ’ Rebate = Foreclosure_Amount due. Prepayment charges % from scheme config. Rebate = discretionary (checker-approved). After payment received โ†’ normal closure process triggered.
๐Ÿ“Œ Interest from last EMI date to foreclosure date
๐Ÿ“Œ From scheme config % applied on outstanding principal
๐Ÿ“Œ Requires checker approval. Credited to customer and reduces total payable.
๐Ÿ“Œ = Principal + Interest + Penal + Prepayment โˆ’ Rebate
๐Ÿ”จ

Form 9: Auction Management (Gold Loan NPA)

HO / Branch Manager โ†’ For Gold Loans in NPA โ†’ Auction Process
๐Ÿ”ง Dev Note: Auction is only applicable for Gold Loans where DPD > threshold (configurable, typically 90+ days). Steps: (1) Generate Eligible for Auction report. (2) Send notice to customer (log notice date). (3) After notice period: conduct auction. (4) Enter bid/sale amount. (5) Calculate surplus (sale โˆ’ outstanding = refund to customer) or shortfall (outstanding โˆ’ sale = still recoverable). (6) Update loan account accordingly. Table: tbl_auction.
๐Ÿ“Œ Legal notice date. Auction can only proceed after notice period is over.
๐Ÿ“Œ Actual amount received from auction
๐Ÿ“Œ Surplus: refund to customer. Shortfall: still recoverable from customer.
๐Ÿ“ File 3 of 4 โ€” NBFC LMS Documentation Forms  |  โžก๏ธ Continue to File 4: Reports, MIS, MFI Module & System Utilities