Files
cbsnexora/src/app/fiu/fiu-data.ts
T

993 lines
28 KiB
TypeScript

/**
* 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<string, string> = {
'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'
}
];