/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { BRANCHES, BranchMaster } from '../npa/npa-data'; export { BRANCHES, BranchMaster }; /** * Sample FIU-IND data — schema mirrors the FINnet 2.0 CSV submission templates * (TC1, TC2, KC1, KC2, Account_Detail, Account_Person_Relation). * Bank/customer names are dummy placeholders. * * Reports filed with FIU-IND under PMLA 2002: * CTR — Cash Transaction Report (≥ ₹10 L cash, monthly by 15th) * STR — Suspicious Transaction Report (within 7 days of detection) * CCR — Counterfeit Currency Report * NTR — NPO Transaction Report (≥ ₹10 L, NGO/NPO clients) * CBWTR — Cross-Border Wire Transfer Report (≥ ₹5 L) */ export type ReportType = 'CTR' | 'STR' | 'CCR' | 'NTR' | 'CBWTR'; /** * Lifecycle of an STR case. * draft — raised, not yet with the Principal Officer * po-review — under Principal Officer investigation * awaiting-filing — concluded suspicious; STR XML must still be submitted to FIU-IND * filed — submitted and FIU-IND acknowledgement recorded * rejected — concluded clean; nothing filed */ export type StrStatus = 'draft' | 'po-review' | 'awaiting-filing' | 'filed' | 'rejected'; /** TC2 — Branch / cash transaction record */ export interface CtrTransaction { reportType: ReportType; reportRefNo: number; branchCode: string; accountNumber: string; txnBranchCode: string; depositOrWithdrawal: 'Deposit' | 'Withdrawal'; txnId: number; txnDate: string; txnTime: string; txnAmount: number; instrumentType: 'Cash' | 'Cheque' | 'DD' | 'NEFT' | 'RTGS' | 'Others'; instrumentId: string; nonCustomerRef: string; relationshipFlag: 'Customer' | 'Non-Customer'; thirdPartyPan: string; declaration: string; /** Customer name resolved from KC1 (UI convenience, not in actual TC2 schema) */ customerName?: string; /** * CTR does not judge suspicion. It records only whether the source of funds was * evidenced at the counter (CTR filed, nothing further) or could not be, in which * case the transaction is referred to STR. The suspicious/clean verdict itself * belongs to the Principal Officer on the STR side. */ complianceStatus?: 'PENDING' | 'EVIDENCED' | 'REFERRED'; /** Document that evidenced the source of funds, when verified at the counter. */ evidenceDocType?: string; evidenceReference?: string; evidencedOn?: string; } /** Outcome of the Principal Officer's investigation into an STR case */ export type PoFinding = 'CLEAN' | 'SUSPICIOUS'; /** STR record — workflow extension on top of TC2 */ export interface StrTransaction extends CtrTransaction { detectedOn: string; flaggedBy: string; riskCategory: | 'structuring' | 'dormant-revival' | 'high-risk-country' | 'unusual-pattern' | 'pep-related' | 'sanctions-hit'; narrative: string; status: StrStatus; poRemarks?: string; /** Set once the Principal Officer concludes the investigation */ poFinding?: PoFinding; /** FIU-IND acknowledgement number, recorded only after the STR is actually submitted */ fiuReferenceNo?: string; /** Date the STR was submitted on the FINnet portal */ filedOn?: string; } /** KC1 — Individual customer card (subset of the 70+ fields, only what UI shows) */ export interface KycIndividual { reportRefNo: number; ucic: string; pan: string; ckycNumber: string; firstName: string; middleName: string; lastName: string; fatherName: string; motherName: string; gender: 'Male' | 'Female' | 'Other'; dob: string; mobileNumber: string; email: string; primaryAddress: string; state: string; city: string; pincode: string; customerType: string; annualIncome: number; occupation: string; onboardingDate: string; lastKycDate: string; riskLevel: 'Low' | 'Medium' | 'High'; reportType: ReportType; otherIdentifierName?: string; otherIdentifierNumber?: string; } /** KC2 — Entity / non-individual customer card */ export interface KycEntity { reportRefNo: number; ucic: string; entityName: string; panNumber: string; gstin: string; mobileNumber: string; address: string; state: string; city: string; pincode: string; dateOfIncorporation: string; customerType: string; riskLevel: 'Low' | 'Medium' | 'High'; onboardingDate: string; lastKycDate: string; isSoleProprietor: boolean; ownerUcic: string; ownerName: string; reportType: ReportType; } export const FIU_BANK = { name: 'CBSNexora Bank Ltd', branch: 'Head Office', reBankingFlag: 'SCB', reportingMonth: 'January 2026', reBuid: 'REBANK-2031', principalOfficer: 'Karthik Kamath', principalOfficerEmail: 'po.fiu@cbsnexorabank.example', filerUserId: 'PO-001', cashThreshold: 1000000, // ₹10 L per single cash txn monthlyAggThreshold: 1000000, // aggregate ≥ ₹10 L in a month cbwtrThreshold: 500000 // CBWTR threshold ₹5 L }; /** * CTR/STR records below use the bank's own internal numeric branch codes (as FINnet's TC2 * schema expects), not the app-wide BranchMaster codes (BR01, BR02, ...) every other module * scopes Head-Office-vs-branch access by. This maps one to the other so a branch-level login's * officeName can be matched consistently, the same way NPA/Reconciliation/Loan Origination do. */ export const FIU_BRANCH_CODE_TO_CANONICAL: Record = { '1': 'BR01', '2': 'BR02', '3': 'BR03', '4': 'BR04', '5': 'BR05', '6': 'BR06', '8': 'BR07', '9': 'BR08', '10': 'BR02', '12': 'BR04' }; /** * ── CTR transactions (FINnet TC2-style) ── * Only CASH transactions that breach the RBI/PMLA reporting limit of ₹10,00,000 * (single txn, or connected transactions aggregating to ₹10 L in a calendar month) * belong here. Nothing below the threshold and no non-cash instruments. */ export const CTR_TXNS: CtrTransaction[] = [ { reportType: 'CTR', reportRefNo: 1, branchCode: '1', accountNumber: '110001101000838', txnBranchCode: '1', depositOrWithdrawal: 'Deposit', txnId: 1, txnDate: '05-01-2026', txnTime: '10:22:41', txnAmount: 1450000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'ANAND KRISHNAN' }, { reportType: 'CTR', reportRefNo: 2, branchCode: '3', accountNumber: '110001204000712', txnBranchCode: '3', depositOrWithdrawal: 'Deposit', txnId: 2, txnDate: '09-01-2026', txnTime: '12:47:09', txnAmount: 3200000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'MEERA SUNDARAM' }, { reportType: 'CTR', reportRefNo: 3, branchCode: '6', accountNumber: '110001307000455', txnBranchCode: '6', depositOrWithdrawal: 'Withdrawal', txnId: 3, txnDate: '13-01-2026', txnTime: '15:03:55', txnAmount: 1075000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'HARPREET SINGH BEDI' }, { reportType: 'CTR', reportRefNo: 4, branchCode: '2', accountNumber: '110001408000933', txnBranchCode: '2', depositOrWithdrawal: 'Deposit', txnId: 4, txnDate: '16-01-2026', txnTime: '11:19:27', txnAmount: 5600000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'FAROOQ ABDULLAH KHAN' }, { reportType: 'CTR', reportRefNo: 5, branchCode: '9', accountNumber: '110001509000268', txnBranchCode: '9', depositOrWithdrawal: 'Withdrawal', txnId: 5, txnDate: '20-01-2026', txnTime: '14:35:12', txnAmount: 2850000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'DEEPIKA RANGANATHAN' }, { reportType: 'CTR', reportRefNo: 6, branchCode: '5', accountNumber: '110001610000841', txnBranchCode: '5', depositOrWithdrawal: 'Deposit', txnId: 6, txnDate: '23-01-2026', txnTime: '09:58:33', txnAmount: 1000000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'RAJENDRA PRASAD YADAV' }, { reportType: 'CTR', reportRefNo: 7, branchCode: '12', accountNumber: '110001711000527', txnBranchCode: '12', depositOrWithdrawal: 'Deposit', txnId: 7, txnDate: '27-01-2026', txnTime: '16:41:08', txnAmount: 4300000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: 'NCR-014', relationshipFlag: 'Non-Customer', thirdPartyPan: 'BXKPT7788M', declaration: 'NA', customerName: 'SHABANA TARIQ MIRZA' } ]; /** * ── TC1: ATM / card transactions ── * * TC2 carries what happened at the counter; TC1 carries what happened at the * card rails. Both feed the same CTR, because an ATM cash withdrawal is still * a cash transaction and counts towards the customer's monthly aggregate. * * Every row here belongs to an account that is already in CTR_TXNS and carries * the same reportRefNo, so the six FINnet files reconcile against each other. */ export interface CardTransaction { reportType: ReportType; reportRefNo: number; branchCode: string; accountNumber: string; /** FINnet account-type code, same codes used in Account_Detail. */ accountType: string; relationshipFlag: 'Customer' | 'Non-Customer'; /** Settled at the switch, or declined / reversed. */ txnStatus: 'Success' | 'Failed' | 'Reversed'; txnId: number; txnDate: string; txnTime: string; depositOrWithdrawal: 'Deposit' | 'Withdrawal'; txnAmount: number; cardType: 'RuPay Debit' | 'VISA Debit' | 'Mastercard Debit'; /** Masked to the last four digits — the PAN itself is never put in the file. */ cardNumber: string; /** FINnet country code; 95 is India, as used across the KC files. */ cardIssuingCountry: string; cardIssuingBank: string; /** NFS / NPCI switch reference for the leg. */ switchTxnId: string; atmId: string; /** UI convenience, not part of the TC1 schema. */ customerName?: string; } export const TC1_TXNS: CardTransaction[] = [ // Ref 1 — ANAND KRISHNAN: routine ATM usage alongside a large counter deposit. { reportType: 'CTR', reportRefNo: 1, branchCode: '1', accountNumber: '110001101000838', accountType: '211', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9001, txnDate: '06-01-2026', txnTime: '19:42:11', depositOrWithdrawal: 'Withdrawal', txnAmount: 20000, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX4417', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26010600418', atmId: 'NEXA0001', customerName: 'ANAND KRISHNAN' }, { reportType: 'CTR', reportRefNo: 1, branchCode: '1', accountNumber: '110001101000838', accountType: '211', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9002, txnDate: '18-01-2026', txnTime: '11:07:53', depositOrWithdrawal: 'Withdrawal', txnAmount: 25000, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX4417', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26011800911', atmId: 'NEXA0003', customerName: 'ANAND KRISHNAN' }, // Ref 2 — MEERA SUNDARAM: card cash-out at another bank's ATM. { reportType: 'CTR', reportRefNo: 2, branchCode: '3', accountNumber: '110001204000712', accountType: '215', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9003, txnDate: '09-01-2026', txnTime: '20:15:36', depositOrWithdrawal: 'Withdrawal', txnAmount: 10000, cardType: 'VISA Debit', cardNumber: 'XXXXXXXXXXXX8820', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26010901277', atmId: 'SBIN004512', customerName: 'MEERA SUNDARAM' }, { reportType: 'CTR', reportRefNo: 2, branchCode: '3', accountNumber: '110001204000712', accountType: '215', relationshipFlag: 'Customer', // Declined for insufficient balance. Failed legs are still reported: the // attempt itself is part of the customer's pattern. txnStatus: 'Failed', txnId: 9004, txnDate: '09-01-2026', txnTime: '20:17:02', depositOrWithdrawal: 'Withdrawal', txnAmount: 20000, cardType: 'VISA Debit', cardNumber: 'XXXXXXXXXXXX8820', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26010901284', atmId: 'SBIN004512', customerName: 'MEERA SUNDARAM' }, // Ref 3 — HARPREET SINGH BEDI: cash recycler deposit through the card. { reportType: 'CTR', reportRefNo: 3, branchCode: '6', accountNumber: '110001307000455', accountType: '215', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9005, txnDate: '12-01-2026', txnTime: '13:28:44', depositOrWithdrawal: 'Deposit', txnAmount: 49500, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX6193', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26011200630', atmId: 'NEXA0002-CRM', customerName: 'HARPREET SINGH BEDI' }, // Ref 4 — FAROOQ ABDULLAH KHAN: repeated near-limit withdrawals in one day. { reportType: 'CTR', reportRefNo: 4, branchCode: '2', accountNumber: '110001408000933', accountType: '211', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9006, txnDate: '16-01-2026', txnTime: '09:03:19', depositOrWithdrawal: 'Withdrawal', txnAmount: 50000, cardType: 'Mastercard Debit', cardNumber: 'XXXXXXXXXXXX2075', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26011600142', atmId: 'NEXA0004', customerName: 'FAROOQ ABDULLAH KHAN' }, { reportType: 'CTR', reportRefNo: 4, branchCode: '2', accountNumber: '110001408000933', accountType: '211', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9007, txnDate: '16-01-2026', txnTime: '09:06:41', depositOrWithdrawal: 'Withdrawal', txnAmount: 50000, cardType: 'Mastercard Debit', cardNumber: 'XXXXXXXXXXXX2075', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26011600149', atmId: 'NEXA0004', customerName: 'FAROOQ ABDULLAH KHAN' }, { reportType: 'CTR', reportRefNo: 4, branchCode: '2', accountNumber: '110001408000933', accountType: '211', relationshipFlag: 'Customer', // Dispensed short and auto-reversed by the switch the same evening. txnStatus: 'Reversed', txnId: 9008, txnDate: '16-01-2026', txnTime: '09:09:05', depositOrWithdrawal: 'Withdrawal', txnAmount: 50000, cardType: 'Mastercard Debit', cardNumber: 'XXXXXXXXXXXX2075', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26011600155', atmId: 'NEXA0004', customerName: 'FAROOQ ABDULLAH KHAN' }, // Ref 5 — DEEPIKA RANGANATHAN { reportType: 'CTR', reportRefNo: 5, branchCode: '9', accountNumber: '110001509000268', accountType: '215', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9009, txnDate: '21-01-2026', txnTime: '17:51:28', depositOrWithdrawal: 'Withdrawal', txnAmount: 15000, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX9354', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26012101508', atmId: 'HDFC009871', customerName: 'DEEPIKA RANGANATHAN' }, // Ref 6 — RAJENDRA PRASAD YADAV { reportType: 'CTR', reportRefNo: 6, branchCode: '5', accountNumber: '110001610000841', accountType: '215', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9010, txnDate: '23-01-2026', txnTime: '10:34:12', depositOrWithdrawal: 'Withdrawal', txnAmount: 40000, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX1268', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26012300287', atmId: 'NEXA0005', customerName: 'RAJENDRA PRASAD YADAV' }, { reportType: 'CTR', reportRefNo: 6, branchCode: '5', accountNumber: '110001610000841', accountType: '215', relationshipFlag: 'Customer', txnStatus: 'Success', txnId: 9011, txnDate: '28-01-2026', txnTime: '18:22:47', depositOrWithdrawal: 'Withdrawal', txnAmount: 35000, cardType: 'RuPay Debit', cardNumber: 'XXXXXXXXXXXX1268', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26012801733', atmId: 'NEXA0005', customerName: 'RAJENDRA PRASAD YADAV' }, // Ref 7 — SHABANA TARIQ MIRZA: the account's card is used by a third party, // which is why the relationship flag differs from the rest. { reportType: 'CTR', reportRefNo: 7, branchCode: '12', accountNumber: '110001711000527', accountType: '215', relationshipFlag: 'Non-Customer', txnStatus: 'Success', txnId: 9012, txnDate: '27-01-2026', txnTime: '21:08:33', depositOrWithdrawal: 'Withdrawal', txnAmount: 30000, cardType: 'VISA Debit', cardNumber: 'XXXXXXXXXXXX7741', cardIssuingCountry: '95', cardIssuingBank: 'CBSNexora Bank Ltd', switchTxnId: 'NFS26012702094', atmId: 'ICIC007233', customerName: 'SHABANA TARIQ MIRZA' } ]; /** * ── STR cases ── * Raised either by the AML rules engine or by an officer flagging a CTR row as * suspicious. Each case is investigated by the Principal Officer, who concludes * whether the funds are legitimate (CLEAN) or linked to terror financing. */ export const STR_TXNS: StrTransaction[] = [ { reportType: 'STR', reportRefNo: 101, branchCode: '8', accountNumber: '110001812000390', txnBranchCode: '8', depositOrWithdrawal: 'Deposit', txnId: 101, txnDate: '11-01-2026', txnTime: '13:08:21', txnAmount: 2750000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'IMRAN SHEIKH QURESHI', detectedOn: '12-01-2026', flaggedBy: 'AML Engine — Rule R-031', riskCategory: 'sanctions-hit', narrative: 'Cash deposit of ₹27.5L followed within 48 hours by outward remittances to three beneficiaries whose names partially match the UAPA Schedule IV designated-persons list. Awaiting Principal Officer investigation.', status: 'po-review' }, { reportType: 'STR', reportRefNo: 102, branchCode: '4', accountNumber: '110001915000174', txnBranchCode: '4', depositOrWithdrawal: 'Deposit', txnId: 102, txnDate: '07-01-2026', txnTime: '10:44:52', txnAmount: 1980000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'GOPAL VENKATARAMAN', detectedOn: '08-01-2026', flaggedBy: 'Branch Compliance Officer', riskCategory: 'unusual-pattern', narrative: 'Declared annual income ₹6L but deposited ₹19.8L cash in a single visit. Customer produced sale deed for ancestral agricultural land.', status: 'draft', poFinding: 'CLEAN', poRemarks: 'Source of funds verified against registered sale deed dated 02-01-2026 and buyer bank statement. Legitimate agricultural land sale — no adverse findings. Case closed, no STR filed with FIU-IND.' }, { reportType: 'STR', reportRefNo: 103, branchCode: '10', accountNumber: '110002016000628', txnBranchCode: '10', depositOrWithdrawal: 'Withdrawal', txnId: 103, txnDate: '19-01-2026', txnTime: '16:27:40', txnAmount: 3400000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'ABDUL RAHMAN BAIG', detectedOn: '20-01-2026', flaggedBy: 'AML Engine — Rule R-045', riskCategory: 'high-risk-country', narrative: 'Account credited by 14 small inward remittances from a FATF high-risk jurisdiction over 9 days, then emptied via ₹34L cash withdrawal at a border-district branch. Classic terror-funding placement-and-dispersal pattern.', status: 'filed', poFinding: 'SUSPICIOUS', poRemarks: 'Investigation confirmed layered inward remittances from a designated high-risk corridor with no commercial rationale. Beneficial owner could not evidence source. STR filed with FIU-IND under PMLA s.12; acknowledgement STR-2026-10457. Account frozen and reported to the Nodal Officer.' }, { reportType: 'STR', reportRefNo: 104, branchCode: '1', accountNumber: '110002117000315', txnBranchCode: '1', depositOrWithdrawal: 'Deposit', txnId: 104, txnDate: '24-01-2026', txnTime: '11:52:14', txnAmount: 2300000, instrumentType: 'Cash', instrumentId: 'CASH', nonCustomerRef: '', relationshipFlag: 'Customer', thirdPartyPan: '', declaration: 'NA', customerName: 'SUNITA CHAUDHARY', detectedOn: '25-01-2026', flaggedBy: 'AML Engine — Rule R-018', riskCategory: 'structuring', narrative: 'Six cash deposits of ₹3.8L each across four branches on the same day, aggregating ₹23L — deliberate splitting to stay under the ₹10L single-transaction CTR limit.', status: 'po-review' } ]; /** ── KC1 individual customer cards (one per CTR report reference) ── */ export const KC1_INDIVIDUALS: KycIndividual[] = [ { reportRefNo: 1, ucic: '30115', pan: 'AFTPK4471B', ckycNumber: '60031115447722', firstName: 'ANAND', middleName: '', lastName: 'KRISHNAN', fatherName: 'SUBRAMANIAN KRISHNAN', motherName: 'VASANTHA KRISHNAN', gender: 'Male', dob: '14-06-1979', mobileNumber: '91-9840133015', email: 'anand.krishnan@example.com', primaryAddress: 'NO 18 SECOND STREET ADYAR', state: 'TN', city: 'CHENNAI', pincode: '600020', customerType: 'Individual', annualIncome: 2200000, occupation: 'Business', onboardingDate: '22-07-2016', lastKycDate: '18-06-2025', riskLevel: 'Medium', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX4471' }, { reportRefNo: 2, ucic: '30228', pan: 'AJSPS6612D', ckycNumber: '60032228661133', firstName: 'MEERA', middleName: '', lastName: 'SUNDARAM', fatherName: 'RAGHAVAN SUNDARAM', motherName: 'KALYANI SUNDARAM', gender: 'Female', dob: '29-11-1986', mobileNumber: '91-9886044028', email: 'meera.sundaram@example.com', primaryAddress: 'FLAT 9C BRIGADE HERITAGE WHITEFIELD', state: 'KA', city: 'BENGALURU', pincode: '560066', customerType: 'Individual', annualIncome: 3600000, occupation: 'Business', onboardingDate: '11-01-2019', lastKycDate: '05-05-2025', riskLevel: 'High', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX6612' }, { reportRefNo: 3, ucic: '30334', pan: 'AMBPB9027F', ckycNumber: '', firstName: 'HARPREET', middleName: 'SINGH', lastName: 'BEDI', fatherName: 'GURMEET SINGH BEDI', motherName: 'JASWINDER KAUR', gender: 'Male', dob: '03-02-1974', mobileNumber: '91-9815066034', email: '', primaryAddress: 'HOUSE 221 SECTOR 34A CHANDIGARH ROAD', state: 'PB', city: 'LUDHIANA', pincode: '141001', customerType: 'Individual', annualIncome: 1450000, occupation: 'Business', onboardingDate: '30-08-2012', lastKycDate: '14-03-2025', riskLevel: 'Medium', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX9027' }, { reportRefNo: 4, ucic: '30447', pan: 'ANQPK3358H', ckycNumber: '60034447335844', firstName: 'FAROOQ', middleName: 'ABDULLAH', lastName: 'KHAN', fatherName: 'ISHTIAQ AHMED KHAN', motherName: 'NASREEN BEGUM', gender: 'Male', dob: '17-09-1981', mobileNumber: '91-9701077047', email: 'farooq.khan@example.com', primaryAddress: '12-2-417 MEHDIPATNAM MAIN ROAD', state: 'TG', city: 'HYDERABAD', pincode: '500028', customerType: 'Individual', annualIncome: 890000, occupation: 'Business', onboardingDate: '05-04-2020', lastKycDate: '09-01-2025', riskLevel: 'High', reportType: 'CTR', otherIdentifierName: 'PASSPORT', otherIdentifierNumber: 'P3358214' }, { reportRefNo: 5, ucic: '30552', pan: 'APLPR7783C', ckycNumber: '60035552778355', firstName: 'DEEPIKA', middleName: '', lastName: 'RANGANATHAN', fatherName: 'MOHAN RANGANATHAN', motherName: 'SHOBHA RANGANATHAN', gender: 'Female', dob: '08-12-1991', mobileNumber: '91-9739088052', email: 'deepika.r@example.com', primaryAddress: 'VILLA 7 PALM MEADOWS SARJAPUR ROAD', state: 'KA', city: 'BENGALURU', pincode: '560035', customerType: 'Individual', annualIncome: 2750000, occupation: 'Profession', onboardingDate: '19-06-2021', lastKycDate: '27-07-2025', riskLevel: 'Low', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX7783' }, { reportRefNo: 6, ucic: '30669', pan: 'AQWPY2194K', ckycNumber: '', firstName: 'RAJENDRA', middleName: 'PRASAD', lastName: 'YADAV', fatherName: 'BHOLA NATH YADAV', motherName: 'KAMLA DEVI', gender: 'Male', dob: '25-05-1968', mobileNumber: '91-9451099069', email: '', primaryAddress: '78 GOMTI NAGAR VIBHUTI KHAND', state: 'UP', city: 'LUCKNOW', pincode: '226010', customerType: 'Individual', annualIncome: 640000, occupation: 'Agriculture', onboardingDate: '17-10-2014', lastKycDate: '22-11-2024', riskLevel: 'Low', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX2194' }, { reportRefNo: 7, ucic: '30774', pan: 'BXKPT7788M', ckycNumber: '', firstName: 'SHABANA', middleName: 'TARIQ', lastName: 'MIRZA', fatherName: 'TARIQ HUSSAIN MIRZA', motherName: 'RUKHSANA MIRZA', gender: 'Female', dob: '11-03-1989', mobileNumber: '91-9958100074', email: '', primaryAddress: '54 ZAKIR NAGAR OKHLA', state: 'DL', city: 'NEW DELHI', pincode: '110025', customerType: 'Individual', annualIncome: 720000, occupation: 'Self-Employed', onboardingDate: '02-02-2023', lastKycDate: '16-08-2025', riskLevel: 'High', reportType: 'CTR', otherIdentifierName: 'AADHAAR', otherIdentifierNumber: 'XXXXXXXX7788' } ]; /** ── KC2 entity customer cards ── */ export const KC2_ENTITIES: KycEntity[] = [ { reportRefNo: 2, ucic: 'E30228', entityName: 'SUNDARAM BULLION TRADERS', panNumber: 'AAGFS3391Q', gstin: '29AAGFS3391Q1ZP', mobileNumber: '91-9886044028', address: 'SHOP 14 COMMERCIAL STREET SHIVAJI NAGAR', state: 'KA', city: 'BENGALURU', pincode: '560001', dateOfIncorporation: '11-01-2019', customerType: 'Sole Proprietor', riskLevel: 'High', onboardingDate: '11-01-2019', lastKycDate: '05-05-2025', isSoleProprietor: true, ownerUcic: '30228', ownerName: 'MEERA SUNDARAM', reportType: 'CTR' }, { reportRefNo: 4, ucic: 'E30447', entityName: 'DECCAN SCRAP & METALS PVT LTD', panNumber: 'AABCD8842R', gstin: '36AABCD8842R1ZN', mobileNumber: '91-9701077047', address: 'PLOT 61 IDA JEEDIMETLA PHASE II', state: 'TG', city: 'HYDERABAD', pincode: '500055', dateOfIncorporation: '05-04-2020', customerType: 'Private Limited', riskLevel: 'High', onboardingDate: '05-04-2020', lastKycDate: '09-01-2025', isSoleProprietor: false, ownerUcic: '', ownerName: '', reportType: 'CTR' } ];