├── .gitignore ├── test_data_dir ├── 1010101010 │ ├── fetch_epf_details.json │ ├── fetch_stock_transactions.json │ ├── fetch_bank_transactions.json │ ├── fetch_mf_transactions.json │ └── fetch_credit_report.json ├── 1111111111 │ ├── fetch_credit_report.json │ ├── fetch_epf_details.json │ ├── fetch_stock_transactions.json │ ├── fetch_bank_transactions.json │ ├── fetch_net_worth.json │ └── fetch_mf_transactions.json ├── 1212121212 │ ├── fetch_credit_report.json │ ├── fetch_mf_transactions.json │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_bank_transactions.json │ └── fetch_net_worth.json ├── 1313131313 │ ├── fetch_stock_transactions.json │ ├── fetch_bank_transactions.json │ ├── fetch_epf_details.json │ └── fetch_credit_report.json ├── 1414141414 │ ├── fetch_mf_transactions.json │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_bank_transactions.json │ ├── fetch_credit_report.json │ └── fetch_net_worth.json ├── 2020202020 │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_bank_transactions.json │ ├── fetch_mf_transactions.json │ ├── fetch_credit_report.json │ └── fetch_net_worth.json ├── 2121212121 │ ├── fetch_credit_report.json │ ├── fetch_epf_details.json │ ├── fetch_bank_transactions.json │ ├── fetch_stock_transactions.json │ ├── fetch_net_worth.json │ └── fetch_mf_transactions.json ├── 2222222222 │ ├── fetch_epf_details.json │ ├── fetch_mf_transactions.json │ ├── fetch_stock_transactions.json │ ├── fetch_credit_report.json │ └── fetch_bank_transactions.json ├── 2525252525 │ ├── fetch_epf_details.json │ ├── fetch_credit_report.json │ ├── fetch_stock_transactions.json │ ├── fetch_mf_transactions.json │ ├── fetch_bank_transactions.json │ └── fetch_net_worth.json ├── 3333333333 │ ├── fetch_mf_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_stock_transactions.json │ ├── fetch_credit_report.json │ ├── fetch_bank_transactions.json │ └── fetch_net_worth.json ├── 5555555555 │ ├── fetch_credit_report.json │ ├── fetch_mf_transactions.json │ ├── fetch_epf_details.json │ └── fetch_stock_transactions.json ├── 7777777777 │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_bank_transactions.json │ ├── fetch_mf_transactions.json │ └── fetch_credit_report.json ├── 8888888888 │ ├── fetch_credit_report.json │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ └── fetch_bank_transactions.json ├── 9999999999 │ ├── fetch_credit_report.json │ ├── fetch_stock_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_mf_transactions.json │ └── fetch_bank_transactions.json ├── 6666666666 │ ├── fetch_bank_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_mf_transactions.json │ ├── fetch_stock_transactions.json │ └── fetch_credit_report.json └── 4444444444 │ ├── fetch_mf_transactions.json │ ├── fetch_epf_details.json │ ├── fetch_stock_transactions.json │ └── fetch_credit_report.json ├── static ├── fi_qr.png └── login_successful.html ├── pkg ├── port.go ├── allowed_phone_numbers.go └── tool_info.go ├── go.mod ├── test_data_dir_integrity_test.go ├── middlewares └── auth.go ├── go.sum └── main.go /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /test_data_dir/1010101010/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/1010101010/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/5555555555/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/7777777777/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/8888888888/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/8888888888/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/9999999999/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/9999999999/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /test_data_dir/6666666666/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /static/fi_qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiFi/fi-mcp-dev/HEAD/static/fi_qr.png -------------------------------------------------------------------------------- /pkg/port.go: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | func GetPort() string { 8 | if port := os.Getenv("FI_MCP_PORT"); port != "" { 9 | return port 10 | } 11 | return "8080" 12 | } 13 | -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | {"netWorthResponse":{"assetValues":[{"netWorthAttribute":"ASSET_TYPE_SAVINGS_ACCOUNTS","value":{"currencyCode":"INR","units":"186726"}}],"totalNetWorthValue":{"currencyCode":"INR","units":"186726"}},"mfSchemeAnalytics":{},"accountDetailsBulkResponse":{}} 2 | -------------------------------------------------------------------------------- /test_data_dir/1111111111/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/epifi/fi-mcp-lite 2 | 3 | go 1.23 4 | 5 | toolchain go1.24.2 6 | 7 | require ( 8 | github.com/mark3labs/mcp-go v0.33.0 9 | github.com/samber/lo v1.51.0 10 | ) 11 | 12 | require ( 13 | github.com/google/uuid v1.6.0 // indirect 14 | github.com/spf13/cast v1.7.1 // indirect 15 | github.com/yosida95/uritemplate/v3 v3.0.2 // indirect 16 | golang.org/x/text v0.22.0 // indirect 17 | ) 18 | -------------------------------------------------------------------------------- /pkg/allowed_phone_numbers.go: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | // GetAllowedMobileNumbers returns a slice of directory names in test_data_dir 8 | func GetAllowedMobileNumbers() []string { 9 | dirEntries, err := os.ReadDir("test_data_dir") 10 | if err != nil { 11 | return nil 12 | } 13 | var numbers []string 14 | for _, entry := range dirEntries { 15 | if entry.IsDir() { 16 | numbers = append(numbers, entry.Name()) 17 | } 18 | } 19 | return numbers 20 | } 21 | -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"mfTransactions":[{"isin":"INF109K012M7", "schemeName":"ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth ", "folioId":"1234567", "txns":[[1, "2022-03-09", 165.7187, 60.5063, 10027]]}], "schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /test_data_dir/4444444444/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"mfTransactions":[{"isin":"INF109K012M7", "schemeName":"ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth ", "folioId":"1234567", "txns":[[1, "2022-03-09", 165.7187, 60.5063, 10027]]}], "schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /test_data_dir/5555555555/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"mfTransactions":[{"isin":"INF109K012M7", "schemeName":"ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth ", "folioId":"1234567", "txns":[[1, "2022-03-09", 165.7187, 60.5063, 10027]]}], "schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /test_data_dir/2222222222/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {"uanAccounts":[{"phoneNumber":{},"rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED","member_id":"MHBANXXXXXXXXXXXXXXXXX","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"24-03-2021","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"200000","employee_share":{"credit":"100000","balance":"100000"},"employer_share":{"credit":"100000","balance":"100000"}}},{"est_name":"TSS CONSULTANCY PRIVATE LIMITED","member_id":"MHBAN*****************","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"07-08-2018","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"11111","employee_share":{"credit":"5000"},"employer_share":{"credit":"5000"}}}],"overall_pf_balance":{"pension_balance":"1000000","current_pf_balance":"211111","employee_share_total":{"credit":"1111","balance":"11111"}}}}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {"uanAccounts":[{"phoneNumber":{}, "rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED", "member_id":"MHBANXXXXXXXXXXXXXXXXX", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"24-03-2021", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"200000", "employee_share":{"credit":"100000", "balance":"100000"}, "employer_share":{"credit":"100000", "balance":"100000"}}}, {"est_name":"TSS CONSULTANCY PRIVATE LIMITED", "member_id":"MHBAN*****************", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"07-08-2018", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"11111", "employee_share":{"credit":"5000"}, "employer_share":{"credit":"5000"}}}], "overall_pf_balance":{"pension_balance":"1000000", "current_pf_balance":"211111", "employee_share_total":{"credit":"1111", "balance":"11111"}}}}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/5555555555/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {"uanAccounts":[{"phoneNumber":{}, "rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED", "member_id":"MHBANXXXXXXXXXXXXXXXXX", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"24-03-2021", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"200000", "employee_share":{"credit":"100000", "balance":"100000"}, "employer_share":{"credit":"100000", "balance":"100000"}}}, {"est_name":"TSS CONSULTANCY PRIVATE LIMITED", "member_id":"MHBAN*****************", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"07-08-2018", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"11111", "employee_share":{"credit":"5000"}, "employer_share":{"credit":"5000"}}}], "overall_pf_balance":{"pension_balance":"1000000", "current_pf_balance":"211111", "employee_share_total":{"credit":"1111", "balance":"11111"}}}}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/6666666666/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {"uanAccounts":[{"phoneNumber":{}, "rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED", "member_id":"MHBANXXXXXXXXXXXXXXXXX", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"24-03-2021", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"200000", "employee_share":{"credit":"100000", "balance":"100000"}, "employer_share":{"credit":"100000", "balance":"100000"}}}, {"est_name":"TSS CONSULTANCY PRIVATE LIMITED", "member_id":"MHBAN*****************", "office":"(RO)BANDRA(MUMBAI-I)", "doj_epf":"07-08-2018", "doe_epf":"02-01-2022", "doe_eps":"02-01-2022", "pf_balance":{"net_balance":"11111", "employee_share":{"credit":"5000"}, "employer_share":{"credit":"5000"}}}], "overall_pf_balance":{"pension_balance":"1000000", "current_pf_balance":"211111", "employee_share_total":{"credit":"1111", "balance":"11111"}}}}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/2222222222/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"mfTransactions":[{"isin":"INF760K01FC4","schemeName":"Canara Robeco Gilt Fund - Regular Plan","folioId":"55557777","txns":[[1,"2023-01-01",66.5546,100,6655.46]]},{"isin":"INF789FB1S71","schemeName":"UTI Overnight - Direct Plan","folioId":"7777711111","txns":[[1,"2022-05-15",2923.5068,10,29235.068]]},{"isin":"INF109K012B0","schemeName":"ICICI Prudential Balanced Advantage - Direct Plan","folioId":"222221111","txns":[[1,"2022-05-11",52.72,50,2636]]},{"isin":"INF109K012M7","schemeName":"ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth ","folioId":"1234567","txns":[[1,"2022-03-09",165.7187,60.5063,10027]]}],"schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /test_data_dir/6666666666/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | {"mfTransactions":[{"isin":"INF760K01FC4", "schemeName":"Canara Robeco Gilt Fund - Regular Plan", "folioId":"55557777", "txns":[[1, "2023-01-01", 66.5546, 100, 6655.46]]}, {"isin":"INF789FB1S71", "schemeName":"UTI Overnight - Direct Plan", "folioId":"7777711111", "txns":[[1, "2022-05-15", 2923.5068, 10, 29235.068]]}, {"isin":"INF109K012B0", "schemeName":"ICICI Prudential Balanced Advantage - Direct Plan", "folioId":"222221111", "txns":[[1, "2022-05-11", 52.72, 50, 2636]]}, {"isin":"INF109K012M7", "schemeName":"ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth ", "folioId":"1234567", "txns":[[1, "2022-03-09", 165.7187, 60.5063, 10027]]}], "schemaDescription":"A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]."} 2 | -------------------------------------------------------------------------------- /test_data_dir_integrity_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | 8 | "github.com/epifi/fi-mcp-lite/pkg" 9 | ) 10 | 11 | func TestTestDataDirIntegrity(t *testing.T) { 12 | // Get allowed phone numbers 13 | phoneNumbers := pkg.GetAllowedMobileNumbers() 14 | if len(phoneNumbers) == 0 { 15 | t.Fatal("No allowed phone numbers found in test_data_dir") 16 | } 17 | 18 | // Get tool names from ToolList 19 | var toolNames []string 20 | for _, tool := range pkg.ToolList { 21 | toolNames = append(toolNames, tool.Name) 22 | } 23 | if len(toolNames) == 0 { 24 | t.Fatal("No tools found in ToolList") 25 | } 26 | 27 | // For each phone number and tool, check if the file exists and is readable 28 | for _, phone := range phoneNumbers { 29 | for _, tool := range toolNames { 30 | filePath := filepath.Join("test_data_dir", phone, tool+".json") 31 | data, err := os.ReadFile(filePath) 32 | if err != nil { 33 | t.Errorf("Missing or unreadable file: %s, error: %v", filePath, err) 34 | } else if len(data) == 0 { 35 | t.Errorf("File is empty: %s", filePath) 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF109K012M7", 5 | "schemeName": "ICICI Prudential Nifty 50 Index Fund - Direct Plan Growth", 6 | "folioId": "9988770011", 7 | "txns": [ 8 | [1, "2023-11-10", 220.50, 4.5351, 1000], 9 | [1, "2023-12-10", 225.10, 4.4424, 1000], 10 | [1, "2024-01-10", 228.40, 4.3782, 1000], 11 | [1, "2024-02-10", 227.80, 4.3898, 1000], 12 | [1, "2024-03-10", 230.15, 4.3449, 1000] 13 | ] 14 | }, 15 | { 16 | "isin": "INF247L01578", 17 | "schemeName": "Parag Parikh Flexi Cap Fund - Direct - Growth", 18 | "folioId": "8877665544", 19 | "txns": [ 20 | [1, "2024-01-20", 70.50, 7.0921, 500], 21 | [1, "2024-02-20", 71.20, 7.0224, 500], 22 | [1, "2024-03-20", 72.55, 6.8917, 500] 23 | ] 24 | } 25 | ], 26 | "schemaDescription": "A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 27 | } -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "APEX SOLUTIONS LTD", 9 | "member_id": "KABN*****************", 10 | "office": "(RO)BENGALURU", 11 | "doj_epf": "20-05-2015", 12 | "doe_epf": "15-07-2019", 13 | "doe_eps": "15-07-2019", 14 | "pf_balance": { 15 | "net_balance": "115000", 16 | "employee_share": { 17 | "credit": "150000", 18 | "balance": "60000" 19 | }, 20 | "employer_share": { 21 | "credit": "150000", 22 | "balance": "50000" 23 | } 24 | } 25 | } 26 | ], 27 | "overall_pf_balance": { 28 | "pension_balance": "55000", 29 | "current_pf_balance": "115000", 30 | "employee_share_total": { 31 | "credit": "150000", 32 | "balance": "60000" 33 | }, 34 | "employer_share_total": { 35 | "credit": "150000", 36 | "balance": "50000" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "TECH LEGACY SYSTEMS PVT LTD", 9 | "member_id": "DLCPMXXXXXXXXXXXXXXXXX", 10 | "office": "(RO)DELHI NORTH", 11 | "doj_epf": "10-06-2015", 12 | "doe_epf": "31-08-2019", 13 | "doe_eps": "31-08-2019", 14 | "pf_balance": { 15 | "net_balance": "235000", 16 | "employee_share": { 17 | "credit": "110000", 18 | "balance": "110000" 19 | }, 20 | "employer_share": { 21 | "credit": "110000", 22 | "balance": "110000" 23 | } 24 | } 25 | } 26 | ], 27 | "overall_pf_balance": { 28 | "pension_balance": "48000", 29 | "current_pf_balance": "235000", 30 | "employee_share_total": { 31 | "credit": "110000", 32 | "balance": "110000" 33 | }, 34 | "employer_share_total": { 35 | "credit": "110000", 36 | "balance": "110000" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "ALPHA OMEGA SERVICES LLP", 9 | "member_id": "GJADIXXXXXXXXXXXXXXXXX", 10 | "office": "(RO)AHMEDABAD", 11 | "doj_epf": "10-02-2018", 12 | "doe_epf": "NOT AVAILABLE", 13 | "doe_eps": "NOT AVAILABLE", 14 | "pf_balance": { 15 | "net_balance": "125000", 16 | "employee_share": { 17 | "credit": "260000", 18 | "balance": "60000" 19 | }, 20 | "employer_share": { 21 | "credit": "260000", 22 | "balance": "60000" 23 | } 24 | } 25 | } 26 | ], 27 | "overall_pf_balance": { 28 | "pension_balance": "110000", 29 | "current_pf_balance": "125000", 30 | "employee_share_total": { 31 | "credit": "260000", 32 | "balance": "60000" 33 | }, 34 | "employer_share_total": { 35 | "credit": "260000", 36 | "balance": "60000" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /test_data_dir/8888888888/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "FINANCIAL STRATEGIES INC.", 9 | "member_id": "MHBANXXXXXXXXXXXXXXXXX", 10 | "office": "(RO)BANDRA(MUMBAI-I)", 11 | "doj_epf": "01-04-2020", 12 | "doe_epf": "NOT AVAILABLE", 13 | "doe_eps": "NOT AVAILABLE", 14 | "pf_balance": { 15 | "net_balance": "225000", 16 | "employee_share": { 17 | "credit": "100000", 18 | "balance": "100000" 19 | }, 20 | "employer_share": { 21 | "credit": "100000", 22 | "balance": "100000" 23 | } 24 | } 25 | } 26 | ], 27 | "overall_pf_balance": { 28 | "pension_balance": "65000", 29 | "current_pf_balance": "225000", 30 | "employee_share_total": { 31 | "credit": "100000", 32 | "balance": "100000" 33 | }, 34 | "employer_share_total": { 35 | "credit": "100000", 36 | "balance": "100000" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "Kotak Mahindra Bank", 6 | "txns": [ 7 | ["25000", "NEFT CR-CLIENT ABC-JULY CONSULTING FEE", "2024-07-01", 1, "NEFT", "40000"], 8 | ["11600", "ACH D-HDFCBANK-AUTO LOAN EMI-AL-XXXX", "2024-07-05", 6, "ACH", "28400"], 9 | ["8500", "BILLPAY-SBI CREDIT CARD-XXXX1001", "2024-07-10", 2, "CARD_PAYMENT", "19900"], 10 | ["450", "UPI-SWIGGY-SWIGGY@YBL-FOOD", "2024-07-18", 2, "OTHERS", "19450"], 11 | ["550000", "LOAN DISBURSAL - HDFC BANK - AUTO LOAN", "2024-05-15", 1, "NEFT", "575000"], 12 | ["545000", "RTGS-POPULAR MOTORS-CAR PURCHASE-REF12345", "2024-05-16", 2, "FT", "30000"], 13 | ["11600", "ACH D-HDFCBANK-AUTO LOAN EMI-AL-XXXX", "2024-06-05", 6, "ACH", "18400"], 14 | ["20000", "IMPS-FREELANCE PROJECT PAYMENT-REFXYZ", "2024-06-10", 1, "FT", "38400"], 15 | ["5000", "BILLPAY-ICICI CREDIT CARD-XXXX2002", "2024-06-12", 2, "CARD_PAYMENT", "33400"], 16 | ["1200", "UPI-AMAZON-SHOPPING-AMAZONPAY@APL", "2024-06-22", 2, "OTHERS", "32200"] 17 | ] 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF200K01VG7", 5 | "schemeName": "SBI Bluechip Fund - Regular Plan - Growth", 6 | "folioId": "GP-908070", 7 | "txns": [ 8 | [1, "2018-05-10", 38.50, 259.74, 10000], 9 | [1, "2018-11-20", 40.15, 498.13, 20000], 10 | [1, "2019-07-01", 42.80, 233.64, 10000] 11 | ] 12 | }, 13 | { 14 | "isin": "INF174K01Z93", 15 | "schemeName": "Kotak Flexi Cap Fund - Direct - Growth", 16 | "folioId": "GP-112233", 17 | "txns": [ 18 | [1, "2019-01-15", 35.20, 142.04, 5000], 19 | [1, "2019-02-15", 36.10, 138.50, 5000], 20 | [1, "2019-03-15", 36.80, 135.86, 5000], 21 | [1, "2019-04-15", 37.50, 133.33, 5000], 22 | [1, "2019-05-15", 37.10, 134.77, 5000] 23 | ] 24 | }, 25 | { 26 | "isin": "INF846K01135", 27 | "schemeName": "Axis Long Term Equity Fund - Direct Plan - Growth", 28 | "folioId": "GP-TAX4U", 29 | "txns": [ 30 | [1, "2018-03-25", 55.45, 901.71, 50000], 31 | [1, "2019-03-20", 59.80, 836.12, 50000], 32 | [1, "2020-03-15", 48.70, 1026.69, 50000] 33 | ] 34 | } 35 | ], 36 | "schemaDescription": "A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 37 | } -------------------------------------------------------------------------------- /test_data_dir/4444444444/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | {"uanAccounts":[{"phoneNumber":{},"rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED","member_id":"MHBANXXXXXXXXXXXXXXXXX","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"24-03-2021","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"200000","employee_share":{"credit":"100000","balance":"100000"},"employer_share":{"credit":"100000","balance":"100000"}}},{"est_name":"TSS CONSULTANCY PRIVATE LIMITED","member_id":"MHBAN*****************","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"07-08-2018","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"11111","employee_share":{"credit":"5000"},"employer_share":{"credit":"5000"}}}],"overall_pf_balance":{"pension_balance":"1000000","current_pf_balance":"211111","employee_share_total":{"credit":"1111","balance":"11111"}}}},{"phoneNumber":{},"rawDetails":{"est_details":[{"est_name":"KARZA TECHNOLOGIES PRIVATE LIMITED","member_id":"MHBANXXXXXXXXXXXXXXXXX","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"24-03-2021","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"200000","employee_share":{"credit":"100000","balance":"100000"},"employer_share":{"credit":"100000","balance":"100000"}}},{"est_name":"TSS CONSULTANCY PRIVATE LIMITED","member_id":"MHBAN*****************","office":"(RO)BANDRA(MUMBAI-I)","doj_epf":"07-08-2018","doe_epf":"02-01-2022","doe_eps":"02-01-2022","pf_balance":{"net_balance":"11111","employee_share":{"credit":"5000"},"employer_share":{"credit":"5000"}}}],"overall_pf_balance":{"pension_balance":"1000000","current_pf_balance":"211111","employee_share_total":{"credit":"1111","balance":"11111"}}}}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "Punjab National Bank", 6 | "txns": [ 7 | ["2500", "UPI-MOM-9876543210@YBL-PAYMENT FROM MOM", "2024-07-02", 1, "FT", "16500"], 8 | ["150", "UPI-RECHARGE-AIRTELPREPAID@AXIS-MOBILE RECHARGE", "2024-07-04", 2, "OTHERS", "16350"], 9 | ["280", "UPI-SWIGGY-SWIGGY@YBL-FOOD ORDER", "2024-07-07", 2, "OTHERS", "16070"], 10 | ["1000", "CASH WDL-P1A01234-PNB ATM-DELHI", "2024-07-10", 2, "ATM", "15070"], 11 | ["1500", "IMPS-RAHUL-HELP", "2024-07-15", 1, "FT", "16570"], 12 | ["3000", "UPI-PAYMENT RECEIVED-CLIENT WORK-REF88776", "2024-07-20", 1, "OTHERS", "19570"], 13 | ["850", "UPI-SIMPL-SIMPL@AXISBANK-REPAYMENT", "2024-07-25", 2, "CARD_PAYMENT", "18720"], 14 | ["2000", "BY CASH DEPOSIT-SELF-CDM", "2024-06-03", 1, "CASH", "9500"], 15 | ["5000", "UPI-AMIT SHARMA-AMITSHARMA@OKICICI-JUNE RENT SHARE", "2024-06-05", 2, "FT", "4500"], 16 | ["3000", "UPI-DAD-9988776655@PAYTM-FOR EXPENSES", "2024-06-10", 1, "FT", "7500"], 17 | ["310", "UPI-ZOMATO-ZOMATO@YBL-LUNCH", "2024-06-15", 2, "OTHERS", "7190"], 18 | ["120", "UPI-DMRC-METRO CARD RECHARGE@PAYTM", "2024-06-22", 2, "OTHERS", "7070"], 19 | ["500", "CASH WDL-P1A05678-PNB ATM-DELHI", "2024-06-28", 2, "ATM", "6570"] 20 | ] 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /pkg/tool_info.go: -------------------------------------------------------------------------------- 1 | package pkg 2 | 3 | // ToolInfo holds the name and description of a tool 4 | type ToolInfo struct { 5 | Name string 6 | Description string 7 | } 8 | 9 | // ToolList is the list of all tools and their descriptions 10 | var ToolList = []ToolInfo{ 11 | { 12 | Name: "fetch_net_worth", 13 | Description: "Calculate comprehensive net worth using ONLY actual data from accounts users connected on Fi Money including: Bank account balances, Mutual fund investment holdings, Indian Stocks investment holdings, Total US Stocks investment (If investing through Fi Money app), EPF account balances, Credit card debt and loan balances (if credit report connected), Any other assets/liabilities linked to Fi Money platform.", 14 | }, 15 | { 16 | Name: "fetch_credit_report", 17 | Description: "Retrieve comprehensive credit report including scores, active loans, credit card utilization, payment history, date of birth and recent inquiries from connected credit bureaus.", 18 | }, 19 | { 20 | Name: "fetch_epf_details", 21 | Description: "Retrieve detailed EPF (Employee Provident Fund) account information including: Account balance and contributions, Employer and employee contribution history, Interest earned and credited amounts.", 22 | }, 23 | { 24 | Name: "fetch_mf_transactions", 25 | Description: "Retrieve detailed transaction history from accounts connected to Fi Money platform including: Mutual fund transactions.", 26 | }, 27 | { 28 | Name: "fetch_bank_transactions", 29 | Description: "Retrieve detailed bank transactions for each bank account connected to Fi money platform.", 30 | }, 31 | { 32 | Name: "fetch_stock_transactions", 33 | Description: "Retrieve detailed indian stock transactions for all connected indian stock accounts to Fi money platform.", 34 | }, 35 | } 36 | -------------------------------------------------------------------------------- /test_data_dir/2222222222/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions", "stockTransactions":[{"isin":"INE0BWS23018", "txns":[[1, "2023-05-04", 100], [1, "2023-05-04", 170]]}, {"isin":"INF204KB14I5", "txns":[[1, "2023-05-04", 100, 10.51]]}, {"isin":"INE0CCU25019", "txns":[[1, "2024-05-30", 100], [1, "2024-05-30", 140]]}, {"isin":"INE0FDU25010", "txns":[[1, "2024-05-30", 10.300000190734863], [1, "2024-05-30", 103]]}, {"isin":"INE916P01025", "txns":[[2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5]]}, {"isin":"INE040A01034", "txns":[[1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22]]}, {"isin":"INE043D01016", "txns":[[1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22]]}, {"isin":"INE0GGX23010", "txns":[[1, "2023-05-03", 10], [1, "2023-05-03", 143]]}, {"isin":"INF204KB14I2", "txns":[[1, "2023-05-03", 10, 1.5]]}]} -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions", "stockTransactions":[{"isin":"INE0BWS23018", "txns":[[1, "2023-05-04", 100], [1, "2023-05-04", 170]]}, {"isin":"INF204KB14I5", "txns":[[1, "2023-05-04", 100, 10.51]]}, {"isin":"INE0CCU25019", "txns":[[1, "2024-05-30", 100], [1, "2024-05-30", 140]]}, {"isin":"INE0FDU25010", "txns":[[1, "2024-05-30", 10.300000190734863], [1, "2024-05-30", 103]]}, {"isin":"INE916P01025", "txns":[[2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5]]}, {"isin":"INE040A01034", "txns":[[1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22]]}, {"isin":"INE043D01016", "txns":[[1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22]]}, {"isin":"INE0GGX23010", "txns":[[1, "2023-05-03", 10], [1, "2023-05-03", 143]]}, {"isin":"INF204KB14I2", "txns":[[1, "2023-05-03", 10, 1.5]]}]} -------------------------------------------------------------------------------- /test_data_dir/4444444444/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions", "stockTransactions":[{"isin":"INE0BWS23018", "txns":[[1, "2023-05-04", 100], [1, "2023-05-04", 170]]}, {"isin":"INF204KB14I5", "txns":[[1, "2023-05-04", 100, 10.51]]}, {"isin":"INE0CCU25019", "txns":[[1, "2024-05-30", 100], [1, "2024-05-30", 140]]}, {"isin":"INE0FDU25010", "txns":[[1, "2024-05-30", 10.300000190734863], [1, "2024-05-30", 103]]}, {"isin":"INE916P01025", "txns":[[2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5]]}, {"isin":"INE040A01034", "txns":[[1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22]]}, {"isin":"INE043D01016", "txns":[[1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22]]}, {"isin":"INE0GGX23010", "txns":[[1, "2023-05-03", 10], [1, "2023-05-03", 143]]}, {"isin":"INF204KB14I2", "txns":[[1, "2023-05-03", 10, 1.5]]}]} -------------------------------------------------------------------------------- /test_data_dir/5555555555/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions", "stockTransactions":[{"isin":"INE0BWS23018", "txns":[[1, "2023-05-04", 100], [1, "2023-05-04", 170]]}, {"isin":"INF204KB14I5", "txns":[[1, "2023-05-04", 100, 10.51]]}, {"isin":"INE0CCU25019", "txns":[[1, "2024-05-30", 100], [1, "2024-05-30", 140]]}, {"isin":"INE0FDU25010", "txns":[[1, "2024-05-30", 10.300000190734863], [1, "2024-05-30", 103]]}, {"isin":"INE916P01025", "txns":[[2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5]]}, {"isin":"INE040A01034", "txns":[[1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22]]}, {"isin":"INE043D01016", "txns":[[1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22]]}, {"isin":"INE0GGX23010", "txns":[[1, "2023-05-03", 10], [1, "2023-05-03", 143]]}, {"isin":"INF204KB14I2", "txns":[[1, "2023-05-03", 10, 1.5]]}]} -------------------------------------------------------------------------------- /test_data_dir/6666666666/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions", "stockTransactions":[{"isin":"INE0BWS23018", "txns":[[1, "2023-05-04", 100], [1, "2023-05-04", 170]]}, {"isin":"INF204KB14I5", "txns":[[1, "2023-05-04", 100, 10.51]]}, {"isin":"INE0CCU25019", "txns":[[1, "2024-05-30", 100], [1, "2024-05-30", 140]]}, {"isin":"INE0FDU25010", "txns":[[1, "2024-05-30", 10.300000190734863], [1, "2024-05-30", 103]]}, {"isin":"INE916P01025", "txns":[[2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-15", 4, 1.5], [1, "2025-07-15", 4, 1.5], [2, "2025-07-15", 10, 20], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-11", 5, 11], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-07-04", 10, 8], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-06-05", 2, 15], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5], [1, "2025-03-17", 3, 5]]}, {"isin":"INE040A01034", "txns":[[1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 2, 1450.22], [1, "2025-07-13", 10, 1400], [1, "2025-07-13", 2, 1450.22]]}, {"isin":"INE043D01016", "txns":[[1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22], [1, "2025-04-06", 2, 120.22]]}, {"isin":"INE0GGX23010", "txns":[[1, "2023-05-03", 10], [1, "2023-05-03", 143]]}, {"isin":"INF204KB14I2", "txns":[[1, "2023-05-03", 10, 1.5]]}]} -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "HDFC Bank", 6 | "txns": [ 7 | ["18000", "STIPEND CREDIT - JULY 2024 - ACME INTERNSHIP", "2024-07-05", 1, "NEFT", "19500"], 8 | ["1000", "ACH D-ICICIPRUMF-SIP/9988770011", "2024-07-10", 6, "ACH", "18500"], 9 | ["1500", "BILLPAY-HDFC CREDIT CARD-XXXX-FULL PAYMENT", "2024-07-12", 2, "CARD_PAYMENT", "17000"], 10 | ["350", "UPI-ZOMATO-ZOMATO@YBL-LUNCH", "2024-07-15", 2, "OTHERS", "16650"], 11 | ["500", "ACH D-PARAGPARIKHMF-SIP/8877665544", "2024-07-20", 6, "ACH", "16150"], 12 | ["250", "UPI-UBER-RIDE-UBER@HDFCBANK", "2024-07-22", 2, "OTHERS", "15900"], 13 | ["450", "UPI-AMAZON-AMAZONPAY@APL-BOOK ORDER", "2024-07-28", 2, "OTHERS", "15450"], 14 | ["15000", "IMPS-DAD-POCKET MONEY JUNE", "2024-06-02", 1, "FT", "16200"], 15 | ["1000", "ACH D-ICICIPRUMF-SIP/9988770011", "2024-06-10", 6, "ACH", "15200"], 16 | ["1200", "BILLPAY-HDFC CREDIT CARD-XXXX-FULL PAYMENT", "2024-06-12", 2, "CARD_PAYMENT", "14000"], 17 | ["299", "UPI-RECHARGE-AIRTELPREPAID@AXIS", "2024-06-18", 2, "OTHERS", "13701"], 18 | ["500", "ACH D-PARAGPARIKHMF-SIP/8877665544", "2024-06-20", 6, "ACH", "13201"], 19 | ["410", "UPI-SWIGGY-SWIGGY@YBL-DINNER", "2024-06-25", 2, "OTHERS", "12791"], 20 | ["180", "UPI-CAFE COFFEE DAY-COFFEE@PAYTM", "2024-06-29", 2, "OTHERS", "12611"] 21 | ] 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /test_data_dir/7777777777/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "DIGITAL SOLUTIONS HUB PVT LTD", 9 | "member_id": "MHBANXXXXXXXXXXXXXXXXX", 10 | "office": "(RO)BANDRA(MUMBAI-I)", 11 | "doj_epf": "15-06-2020", 12 | "doe_epf": "31-01-2022", 13 | "doe_eps": "31-01-2022", 14 | "pf_balance": { 15 | "net_balance": "3150", 16 | "employee_share": { 17 | "credit": "30000", 18 | "balance": "1500" 19 | }, 20 | "employer_share": { 21 | "credit": "30000", 22 | "balance": "1500" 23 | } 24 | } 25 | }, 26 | { 27 | "est_name": "INNOVATECH GLOBAL SERVICES", 28 | "member_id": "MHPN*****************", 29 | "office": "(RO)PUNE", 30 | "doj_epf": "15-02-2022", 31 | "doe_epf": "NOT AVAILABLE", 32 | "doe_eps": "NOT AVAILABLE", 33 | "pf_balance": { 34 | "net_balance": "128000", 35 | "employee_share": { 36 | "credit": "60000", 37 | "balance": "60000" 38 | }, 39 | "employer_share": { 40 | "credit": "60000", 41 | "balance": "60000" 42 | } 43 | } 44 | } 45 | ], 46 | "overall_pf_balance": { 47 | "pension_balance": "48500", 48 | "current_pf_balance": "131150", 49 | "employee_share_total": { 50 | "credit": "90000", 51 | "balance": "61500" 52 | }, 53 | "employer_share_total": { 54 | "credit": "90000", 55 | "balance": "61500" 56 | } 57 | } 58 | } 59 | } 60 | ] 61 | } -------------------------------------------------------------------------------- /test_data_dir/9999999999/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "GLOBAL LOGISTICS SOLUTIONS", 9 | "member_id": "MHPN*****************", 10 | "office": "(RO)PUNE", 11 | "doj_epf": "10-07-2017", 12 | "doe_epf": "30-04-2020", 13 | "doe_eps": "30-04-2020", 14 | "pf_balance": { 15 | "net_balance": "250000", 16 | "employee_share": { 17 | "credit": "115000", 18 | "balance": "115000" 19 | }, 20 | "employer_share": { 21 | "credit": "115000", 22 | "balance": "115000" 23 | } 24 | } 25 | }, 26 | { 27 | "est_name": "SECURE DATA MANAGEMENT INC.", 28 | "member_id": "KABN*****************", 29 | "office": "(RO)BENGALURU", 30 | "doj_epf": "01-09-2020", 31 | "doe_epf": "NOT AVAILABLE", 32 | "doe_eps": "NOT AVAILABLE", 33 | "pf_balance": { 34 | "net_balance": "385000", 35 | "employee_share": { 36 | "credit": "175000", 37 | "balance": "175000" 38 | }, 39 | "employer_share": { 40 | "credit": "175000", 41 | "balance": "175000" 42 | } 43 | } 44 | } 45 | ], 46 | "overall_pf_balance": { 47 | "pension_balance": "185000", 48 | "current_pf_balance": "635000", 49 | "employee_share_total": { 50 | "credit": "290000", 51 | "balance": "290000" 52 | }, 53 | "employer_share_total": { 54 | "credit": "290000", 55 | "balance": "290000" 56 | } 57 | } 58 | } 59 | } 60 | ] 61 | } -------------------------------------------------------------------------------- /test_data_dir/9999999999/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF179KB1HS3", 5 | "schemeName": "Nippon India Corporate Bond Fund - Direct Growth", 6 | "folioId": "2002011001", 7 | "txns": [ 8 | [1, "2022-04-01", 18.50, 432.4324, 8000], 9 | [1, "2022-05-01", 18.56, 430.8937, 8000], 10 | [1, "2022-06-01", 18.63, 429.3672, 8000], 11 | [1, "2022-09-15", 18.92, 529.1001, 10000], 12 | [1, "2023-03-01", 19.25, 415.5844, 8000], 13 | [1, "2023-05-15", 19.65, 509.5541, 10000] 14 | ] 15 | }, 16 | { 17 | "isin": "INF174V01BL6", 18 | "schemeName": "Axis Treasury Advantage Fund - Direct Growth", 19 | "folioId": "2002011001", 20 | "txns": [ 21 | [1, "2022-07-01", 118.00, 84.7458, 10000], 22 | [1, "2022-08-01", 118.45, 84.3922, 10000], 23 | [1, "2022-09-01", 118.85, 84.1285, 10000], 24 | [1, "2023-01-10", 120.55, 124.2775, 15000] 25 | ] 26 | }, 27 | { 28 | "isin": "INF209K01YY1", 29 | "schemeName": "UTI Money Market Fund - Direct Growth", 30 | "folioId": "2002011001", 31 | "txns": [ 32 | [1, "2023-01-01", 3150.00, 4.7619, 15000], 33 | [1, "2023-01-31", 3162.60, 4.7424, 15000], 34 | [1, "2023-02-28", 3175.00, 4.7263, 15000], 35 | [1, "2023-03-30", 3182.00, 4.7166, 15000] 36 | ] 37 | }, 38 | { 39 | "isin": "INF204KB17I9", 40 | "schemeName": "HDFC Gold ETF", 41 | "folioId": "2003910001", 42 | "txns": [ 43 | [1, "2023-02-01", 50.00, 100.00, 5000], 44 | [1, "2023-05-02", 50.50, 99.0099, 5000], 45 | [1, "2024-01-10", 55.00, 90.9091, 5000] 46 | ] 47 | } 48 | ], 49 | "schemaDescription": "A list of mutual fund investments. Each 'txns' field is a list of data arrays with schema: [ orderType (1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 50 | } 51 | -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "STRATEGIC CONSULTING GROUP LLP", 9 | "member_id": "GUGGNXXXXXXXXXXXXXXXXX", 10 | "office": "(RO)GURGAON", 11 | "doj_epf": "15-02-2012", 12 | "doe_epf": "31-03-2019", 13 | "doe_eps": "31-03-2019", 14 | "pf_balance": { 15 | "net_balance": "850000", 16 | "employee_share": { 17 | "credit": "400000", 18 | "balance": "400000" 19 | }, 20 | "employer_share": { 21 | "credit": "400000", 22 | "balance": "400000" 23 | } 24 | } 25 | }, 26 | { 27 | "est_name": "GLOBAL ENTERPRISE PARTNERS INDIA", 28 | "member_id": "GUGGN*****************", 29 | "office": "(RO)GURGAON", 30 | "doj_epf": "10-04-2019", 31 | "doe_epf": "NOT AVAILABLE", 32 | "doe_eps": "NOT AVAILABLE", 33 | "pf_balance": { 34 | "net_balance": "1100000", 35 | "employee_share": { 36 | "credit": "500000", 37 | "balance": "500000" 38 | }, 39 | "employer_share": { 40 | "credit": "500000", 41 | "balance": "500000" 42 | } 43 | } 44 | } 45 | ], 46 | "overall_pf_balance": { 47 | "pension_balance": "650000", 48 | "current_pf_balance": "1950000", 49 | "employee_share_total": { 50 | "credit": "900000", 51 | "balance": "900000" 52 | }, 53 | "employer_share_total": { 54 | "credit": "900000", 55 | "balance": "900000" 56 | } 57 | } 58 | } 59 | } 60 | ] 61 | } -------------------------------------------------------------------------------- /test_data_dir/1010101010/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "State Bank of India", 6 | "txns": [ 7 | ["78000", "SALARY CREDIT - ABC TECHNOLOGIES - JULY 2024", "2024-07-01", 1, "NEFT", "245500"], 8 | ["18000", "IMPS-RAKESH KUMAR-JULY RENT", "2024-07-02", 2, "FT", "227500"], 9 | ["5000", "ACH D-NIPPONGOLDFUND-SIP/20240705/NGF54321", "2024-07-05", 6, "ACH", "222500"], 10 | ["5000", "AUTO DEBIT - RD INSTALLMENT A/C XXXXXX3344", "2024-07-05", 6, "ACH", "217500"], 11 | ["12500", "SBI CREDIT CARD-BILL PAYMENT-XXXXXXXX5511", "2024-07-10", 2, "CARD_PAYMENT", "205000"], 12 | ["8750", "QTRLY INTEREST CREDIT ON FD A/C XXXXXX1122", "2024-07-15", 4, "INTEREST", "213750"], 13 | ["10000", "IMPS-ZERODHA-FUNDS FOR HDFC GOLD ETF", "2024-07-22", 2, "IMPS", "203750"], 14 | ["1800", "UPI-LOCAL GROCER-GROCERIES@SBI-SBIN0000001", "2024-07-25", 2, "OTHERS", "201950"], 15 | ["78000", "SALARY CREDIT - ABC TECHNOLOGIES - JUNE 2024", "2024-06-01", 1, "NEFT", "260000"], 16 | ["18000", "IMPS-RAKESH KUMAR-JUNE RENT", "2024-06-02", 2, "FT", "242000"], 17 | ["5000", "ACH D-NIPPONGOLDFUND-SIP/20240605/NGF54321", "2024-06-05", 6, "ACH", "237000"], 18 | ["5000", "AUTO DEBIT - RD INSTALLMENT A/C XXXXXX3344", "2024-06-05", 6, "ACH", "232000"], 19 | ["11800", "SBI CREDIT CARD-BILL PAYMENT-XXXXXXXX5511", "2024-06-10", 2, "CARD_PAYMENT", "220200"], 20 | ["50000", "TD BOOKING-TRANSFER TO FD A/C XXXXXX7788", "2024-06-20", 8, "FT", "170200"], 21 | ["1200", "UPI-INDIAN OIL-IOCLPETROL@SBI-SBIN0000001-FUEL", "2024-06-28", 2, "OTHERS", "169000"] 22 | ] 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /middlewares/auth.go: -------------------------------------------------------------------------------- 1 | package middlewares 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | "log" 7 | "os" 8 | 9 | "github.com/mark3labs/mcp-go/mcp" 10 | "github.com/mark3labs/mcp-go/server" 11 | "github.com/samber/lo" 12 | 13 | "github.com/epifi/fi-mcp-lite/pkg" 14 | ) 15 | 16 | var ( 17 | loginRequiredJson = `{"status": "login_required","login_url": "%s","message": "Needs to login first by going to the login url.\nShow the login url as clickable link if client supports it. Otherwise display the URL for users to copy and paste into a browser. \nAsk users to come back and let you know once they are done with login in their browser"}` 18 | ) 19 | 20 | type AuthMiddleware struct { 21 | sessionStore map[string]string 22 | } 23 | 24 | func NewAuthMiddleware() *AuthMiddleware { 25 | return &AuthMiddleware{ 26 | sessionStore: make(map[string]string), 27 | } 28 | } 29 | 30 | func (m *AuthMiddleware) AuthMiddleware(next server.ToolHandlerFunc) server.ToolHandlerFunc { 31 | return func(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { 32 | // fetch sessionId from context 33 | // this gets populated for every tool call 34 | sessionId := server.ClientSessionFromContext(ctx).SessionID() 35 | phoneNumber, ok := m.sessionStore[sessionId] 36 | if !ok { 37 | loginUrl := m.getLoginUrl(sessionId) 38 | return mcp.NewToolResultText(fmt.Sprintf(loginRequiredJson, loginUrl)), nil 39 | } 40 | if !lo.Contains(pkg.GetAllowedMobileNumbers(), phoneNumber) { 41 | return mcp.NewToolResultError("phone number is not allowed"), nil 42 | } 43 | ctx = context.WithValue(ctx, "phone_number", phoneNumber) 44 | toolName := req.Params.Name 45 | data, readErr := os.ReadFile("test_data_dir/" + phoneNumber + "/" + toolName + ".json") 46 | if readErr != nil { 47 | log.Println("error reading test data file", readErr) 48 | return mcp.NewToolResultError("error reading test data file"), nil 49 | } 50 | return mcp.NewToolResultText(string(data)), nil 51 | } 52 | } 53 | 54 | // GetLoginUrl fetches dynamic login url for given sessionId 55 | func (m *AuthMiddleware) getLoginUrl(sessionId string) string { 56 | return fmt.Sprintf("http://localhost:%s/mockWebPage?sessionId=%s", pkg.GetPort(), sessionId) 57 | } 58 | 59 | func (m *AuthMiddleware) AddSession(sessionId, phoneNumber string) { 60 | m.sessionStore[sessionId] = phoneNumber 61 | } 62 | -------------------------------------------------------------------------------- /test_data_dir/1313131313/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions","stockTransactions":[{"isin":"INE002A01018","txns":[[1,"2023-01-15",25,2450.75],[1,"2023-02-20",20,2380.5],[1,"2023-04-10",15,2520.25],[2,"2023-06-15",8,2680],[1,"2023-08-05",22,2590.8],[1,"2023-10-12",18,2720.4],[2,"2023-12-18",10,2850.6],[1,"2024-02-22",20,2780.9],[1,"2024-04-08",12,2920.15],[2,"2024-06-15",6,3050.25],[1,"2024-08-20",16,3120.8],[3,"2024-10-10",5]]},{"isin":"INE467B01029","txns":[[1,"2023-01-08",35,3485.6],[1,"2023-03-25",50,3472.3],[1,"2023-05-14",30,3598.75],[2,"2023-07-30",15,3615.2],[1,"2023-09-12",40,3502.9],[1,"2023-11-28",35,3728.45],[3,"2024-01-15",12],[1,"2024-03-20",25,3845.8],[2,"2024-05-05",20,3962.1],[1,"2024-07-20",30,4078.65],[2,"2024-11-15",15,4312.75]]},{"isin":"INE040A01034","txns":[[1,"2023-02-25",40,1425.3],[1,"2023-04-10",50,1398.75],[1,"2023-06-05",35,1456.2],[2,"2023-08-18",20,1485.6],[1,"2023-10-22",60,1472.8],[1,"2023-12-08",70,1512.45],[2,"2024-02-12",30,1548.9],[1,"2024-04-28",45,1565.75],[4,"2024-06-15",8],[1,"2024-08-10",75,1592.3],[1,"2024-10-25",55,1620.85],[2,"2024-12-05",35,1650.4],[3,"2024-12-28",12]]},{"isin":"INE009A01021","txns":[[1,"2023-01-14",50,1425.4],[1,"2023-03-18",65,1398.9],[1,"2023-05-22",40,1532.75],[2,"2023-07-28",25,1568.2],[1,"2023-09-16",55,1535.6],[1,"2023-11-20",45,1642.85],[2,"2024-01-10",20,1698.3],[1,"2024-03-25",35,1645.75],[3,"2024-05-12",15],[2,"2024-07-28",22,1752.9],[1,"2024-09-15",30,1798.45],[2,"2024-12-18",15,1870.85]]},{"isin":"INE001A01036","txns":[[1,"2023-02-12",300,168.25],[1,"2023-04-08",400,165.8],[1,"2023-06-15",250,171.4],[2,"2023-08-30",150,174.9],[1,"2023-10-18",225,172.65],[1,"2023-12-25",350,176.2],[2,"2024-02-12",175,178.85],[1,"2024-04-30",275,177.5],[1,"2024-06-05",150,181.3],[4,"2024-08-20",75],[1,"2024-10-15",200,184.75],[2,"2024-12-02",100,187.9]]},{"isin":"INE158A01026","txns":[[1,"2023-01-20",80,390.5],[1,"2023-03-15",100,385.25],[1,"2023-05-10",60,410.8],[2,"2023-07-25",40,425.6],[1,"2023-09-08",90,405.4],[1,"2023-11-12",70,440.75],[2,"2024-01-28",35,455.2],[1,"2024-03-20",65,470.85],[1,"2024-05-15",50,485.6],[3,"2024-07-10",25],[1,"2024-09-25",55,505.3],[2,"2024-11-08",30,520.75],[1,"2024-12-15",40,535.9]]}]} -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "IDFC First Bank", 6 | "txns": [ 7 | ["300000", "SALARY CREDIT - GLOBAL TECH INC - JULY 2024", "2024-07-01", 1, "NEFT", "545000"], 8 | ["25000", "IMPS-MR. VERMA-JULY RENT", "2024-07-02", 2, "FT", "520000"], 9 | ["30000", "ACH D-PPFASMF-SIP/FIRE-001", "2024-07-05", 6, "ACH", "490000"], 10 | ["25000", "ACH D-NIPPONMF-SIP/FIRE-002", "2024-07-05", 6, "ACH", "465000"], 11 | ["15000", "ACH D-MOTILALMF-SIP/FIRE-INTL1", "2024-07-05", 6, "ACH", "450000"], 12 | ["12500", "ACH D-MIRAEMF-SIP/FIRE-TAX1", "2024-07-05", 6, "ACH", "437500"], 13 | ["15000", "BILLPAY-NPS CONTRIBUTION-TIER1", "2024-07-08", 8, "BILLPAY", "422500"], 14 | ["50000", "IMPS-ZERODHA-EQUITY FUNDING-FIREDP", "2024-07-09", 2, "IMPS", "372500"], 15 | ["22500", "PAYMENT TO HDFC CREDIT CARD XXXXXXXXFIRE", "2024-07-10", 2, "CARD_PAYMENT", "350000"], 16 | ["3500", "UPI-DMART-GROCERIES@IDFC", "2024-07-15", 2, "OTHERS", "346500"], 17 | ["300000", "SALARY CREDIT - GLOBAL TECH INC - JUNE 2024", "2024-06-01", 1, "NEFT", "530000"], 18 | ["25000", "IMPS-MR. VERMA-JUNE RENT", "2024-06-02", 2, "FT", "505000"], 19 | ["30000", "ACH D-PPFASMF-SIP/FIRE-001", "2024-06-05", 6, "ACH", "475000"], 20 | ["25000", "ACH D-NIPPONMF-SIP/FIRE-002", "2024-06-05", 6, "ACH", "450000"], 21 | ["15000", "ACH D-MOTILALMF-SIP/FIRE-INTL1", "2024-06-05", 6, "ACH", "435000"], 22 | ["12500", "ACH D-MIRAEMF-SIP/FIRE-TAX1", "2024-06-05", 6, "ACH", "422500"], 23 | ["15000", "BILLPAY-NPS CONTRIBUTION-TIER1", "2024-06-08", 8, "BILLPAY", "407500"], 24 | ["50000", "IMPS-ZERODHA-EQUITY FUNDING-FIREDP", "2024-06-09", 2, "IMPS", "357500"], 25 | ["24000", "PAYMENT TO HDFC CREDIT CARD XXXXXXXXFIRE", "2024-06-10", 2, "CARD_PAYMENT", "333500"], 26 | ["1200", "UPI-BBNL-INTERNET BILL-BBNL@IDFC", "2024-06-20", 2, "OTHERS", "332300"] 27 | ] 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "Kotak Mahindra Bank", 6 | "txns": [ 7 | ["80000", "SALARY CREDIT - GLOBAL IT SOLUTIONS - JULY 2024", "2024-07-01", 1, "NEFT", "89500"], 8 | ["35000", "ACH D-SBIN0001234-HOME LOAN EMI-HL1234", "2024-07-05", 6, "ACH", "54500"], 9 | ["13500", "ACH D-PUNB0005678-AUTO LOAN EMI-AL5678", "2024-07-05", 6, "ACH", "41000"], 10 | ["3000", "ACH D-TATACAP-CONSUMER LOAN EMI-CL9012", "2024-07-07", 6, "ACH", "38000"], 11 | ["7000", "BILLPAY-ICICI CREDIT CARD-XXXX1111-PARTIAL PMT", "2024-07-10", 2, "CARD_PAYMENT", "31000"], 12 | ["4800", "BILLPAY-HDFC CREDIT CARD-XXXX2222-MIN DUE PMT", "2024-07-11", 2, "CARD_PAYMENT", "26200"], 13 | ["5000", "BILLPAY-AMEX CREDIT CARD-XXXX3333-PAYMENT", "2024-07-12", 2, "CARD_PAYMENT", "21200"], 14 | ["450", "UPI-ZOMATO-ZOMATO@YBL-FOOD ORDER", "2024-07-15", 2, "OTHERS", "20750"], 15 | ["1500", "UPI-DMART-GROCERIES@KKBK", "2024-07-20", 2, "OTHERS", "19250"], 16 | ["2000", "CASH WDL-KKBK ATM-MUMBAI", "2024-07-25", 2, "ATM", "17250"], 17 | ["80000", "SALARY CREDIT - GLOBAL IT SOLUTIONS - JUNE 2024", "2024-06-01", 1, "NEFT", "82100"], 18 | ["35000", "ACH D-SBIN0001234-HOME LOAN EMI-HL1234", "2024-06-05", 6, "ACH", "47100"], 19 | ["13500", "ACH D-PUNB0005678-AUTO LOAN EMI-AL5678", "2024-06-05", 6, "ACH", "33600"], 20 | ["3000", "ACH D-TATACAP-CONSUMER LOAN EMI-CL9012", "2024-06-07", 6, "ACH", "30600"], 21 | ["6500", "IMPS-ICICI CARD PAYMENT-XXXX1111", "2024-06-10", 2, "CARD_PAYMENT", "24100"], 22 | ["5000", "IMPS-HDFC CARD PAYMENT-XXXX2222", "2024-06-11", 2, "CARD_PAYMENT", "19100"], 23 | ["5000", "IMPS-AMEX CARD PAYMENT-XXXX3333", "2024-06-12", 2, "CARD_PAYMENT", "14100"], 24 | ["320", "UPI-UBER-UBERRIDES@HDFCBANK-RIDE", "2024-06-18", 2, "OTHERS", "13780"], 25 | ["1100", "UPI-LOCAL GROCER-STORE@PAYTM-DAILY NEEDS", "2024-06-26", 2, "OTHERS", "12680"] 26 | ] 27 | } 28 | ] 29 | } -------------------------------------------------------------------------------- /test_data_dir/9999999999/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "State Bank of India", 6 | "txns": [ 7 | ["145000", "SALARY CREDIT - MINISTRY OF FINANCE - JULY 2024", "2024-07-01", 1, "NEFT", "385000"], 8 | ["10000", "NEFT DR-ICIC0003344-TRANSFER FOR RD", "2024-07-02", 2, "FT", "375000"], 9 | ["25000", "LUMPSUM INV-NIPPON INDIA CORP BOND-FOLIO 2002011001", "2024-07-05", 2, "FT", "350000"], 10 | ["28500", "SBI CREDIT CARD-BILL PAYMENT-XXXXXXXX5511", "2024-07-10", 2, "CARD_PAYMENT", "321500"], 11 | ["8750", "QUARTERLY INTEREST CREDIT ON FD A/C XXXXXX1122", "2024-07-15", 4, "INTEREST", "330250"], 12 | ["4500", "UPI-RELIANCE FRESH-RELIANCE@SBI-SBIN0000001-GROCERIES", "2024-07-20", 2, "OTHERS", "325750"], 13 | ["15000", "IMPS-ZERODHA-FUNDS FOR GOLD ETF PURCHASE", "2024-07-22", 2, "IMPS", "310750"], 14 | ["145000", "SALARY CREDIT - MINISTRY OF FINANCE - JUNE 2024", "2024-06-01", 1, "NEFT", "262000"], 15 | ["10000", "NEFT DR-ICIC0003344-TRANSFER FOR RD", "2024-06-02", 2, "FT", "252000"], 16 | ["30000", "LUMPSUM INV-AXIS TREASURY ADV FUND-FOLIO 2002011001", "2024-06-07", 2, "FT", "222000"], 17 | ["24800", "SBI CREDIT CARD-BILL PAYMENT-XXXXXXXX5511", "2024-06-10", 2, "CARD_PAYMENT", "197200"], 18 | ["2200", "BILLPAY-TATA POWER-ELECTRICITY BILL", "2024-06-18", 2, "BILLPAY", "195000"], 19 | ["1800", "UPI-INDIAN OIL-IOCLPETROL@SBI-SBIN0000001-FUEL", "2024-06-25", 2, "OTHERS", "193200"], 20 | ["650", "CREDIT INTEREST CAPITALISED", "2024-06-30", 4, "INTEREST", "193850"] 21 | ] 22 | }, 23 | { 24 | "bank": "ICICI Bank", 25 | "txns": [ 26 | ["10000", "NEFT CR-SBIN0000556-FUNDS FROM SBI", "2024-07-02", 1, "FT", "12500"], 27 | ["10000", "AUTO DEBIT - RD INSTALLMENT A/C XXXXXX3344", "2024-07-03", 6, "ACH", "2500"], 28 | ["10000", "NEFT CR-SBIN0000556-FUNDS FROM SBI", "2024-06-02", 1, "FT", "11800"], 29 | ["10000", "AUTO DEBIT - RD INSTALLMENT A/C XXXXXX3344", "2024-06-03", 6, "ACH", "1800"] 30 | ] 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 2 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= 4 | github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= 5 | github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= 6 | github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 7 | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= 8 | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 9 | github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= 10 | github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= 11 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 12 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 13 | github.com/mark3labs/mcp-go v0.33.0 h1:naxhjnTIs/tyPZmWUZFuG0lDmdA6sUyYGGf3gsHvTCc= 14 | github.com/mark3labs/mcp-go v0.33.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4= 15 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 16 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 17 | github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= 18 | github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= 19 | github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= 20 | github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= 21 | github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= 22 | github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= 23 | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= 24 | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 25 | github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= 26 | github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= 27 | golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= 28 | golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= 29 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 30 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 31 | -------------------------------------------------------------------------------- /test_data_dir/8888888888/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "HDFC Bank", 6 | "txns": [ 7 | ["120000", "SALARY CREDIT - FINTECH INNOVATORS LTD - JULY 2024", "2024-07-01", 1, "NEFT", "265500"], 8 | ["30000", "IMPS-123456789-ANNA VARGHESE-JULY RENT", "2024-07-01", 2, "FT", "235500"], 9 | ["10000", "ACH D-KOTAKMF-SIP/20240705/KMF12345", "2024-07-05", 6, "ACH", "225500"], 10 | ["7500", "ACH D-ADITYABIRLAMF-SIP/20240705/ABSL67890", "2024-07-05", 6, "ACH", "218000"], 11 | ["5000", "BILLPAY-ICICIPRUMF-SIP PAYMENT-FOLIO SIPSAM3456", "2024-07-07", 6, "BILLPAY", "213000"], 12 | ["4000", "BILLPAY-HDFCMF-SIP PAYMENT-FOLIO SIPSAM4567", "2024-07-08", 6, "BILLPAY", "209000"], 13 | ["1200", "UPI-BBNL-BBNL@HDFC-HDFC0000053-INTERNET BILL", "2024-07-10", 2, "OTHERS", "207800"], 14 | ["45650", "PAYMENT TO AMEX CREDIT CARD XXXXXXXX1005", "2024-07-15", 2, "CARD_PAYMENT", "162150"], 15 | ["750", "UPI-NETFLIX-NFLX@ICICI-ICIC0000001-MONTHLY SUBSCRIPTION", "2024-07-18", 2, "OTHERS", "161400"], 16 | ["3500", "UPI-AMAZON-AMAZONPAY@APL-APL00000001-207256435441-SHOPPING", "2024-07-25", 2, "OTHERS", "157900"], 17 | ["120000", "SALARY CREDIT - FINTECH INNOVATORS LTD - JUNE 2024", "2024-06-01", 1, "NEFT", "248200"], 18 | ["30000", "IMPS-123456789-ANNA VARGHESE-JUNE RENT", "2024-06-01", 2, "FT", "218200"], 19 | ["10000", "ACH D-KOTAKMF-SIP/20240605/KMF12345", "2024-06-05", 6, "ACH", "208200"], 20 | ["7500", "ACH D-ADITYABIRLAMF-SIP/20240605/ABSL67890", "2024-06-05", 6, "ACH", "200700"], 21 | ["5000", "BILLPAY-ICICIPRUMF-SIP PAYMENT-FOLIO SIPSAM3456", "2024-06-07", 6, "BILLPAY", "195700"], 22 | ["4000", "BILLPAY-HDFCMF-SIP PAYMENT-FOLIO SIPSAM4567", "2024-06-08", 6, "BILLPAY", "191700"], 23 | ["41200", "PAYMENT TO AMEX CREDIT CARD XXXXXXXX1005", "2024-06-15", 2, "CARD_PAYMENT", "150500"], 24 | ["650", "UPI-ZOMATO-ZOMATO@YBL-YESB0YBLUPI-206204587845-FOOD", "2024-06-20", 2, "OTHERS", "149850"], 25 | ["2500", "UPI-DECATHLON-DECA@HDFC-HDFC0000053-SPORTS GEAR", "2024-06-28", 2, "OTHERS", "147350"], 26 | ["450", "CREDIT INTEREST CAPITALISED FOR Q1", "2024-06-30", 4, "INTEREST", "147800"] 27 | ] 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test_data_dir/1212121212/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | { 2 | "netWorthResponse": { 3 | "assetValues": [ 4 | { 5 | "netWorthAttribute": "ASSET_TYPE_EPF", 6 | "value": { 7 | "currencyCode": "INR", 8 | "units": "235000" 9 | } 10 | }, 11 | { 12 | "netWorthAttribute": "ASSET_TYPE_SAVINGS_ACCOUNTS", 13 | "value": { 14 | "currencyCode": "INR", 15 | "units": "15750" 16 | } 17 | } 18 | ], 19 | "totalNetWorthValue": { 20 | "currencyCode": "INR", 21 | "units": "250750" 22 | } 23 | }, 24 | "mfSchemeAnalytics": { 25 | "schemeAnalytics": [] 26 | }, 27 | "accountDetailsBulkResponse": { 28 | "accountDetailsMap": { 29 | "d0e1f2a3-b4c5-6789-abcd-ef1234567890": { 30 | "accountDetails": { 31 | "fipId": "fip@epfo", 32 | "maskedAccountNumber": "DLCPM-XXXX-XXXX", 33 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_EPF", 34 | "accountType": { 35 | "epfAccountType": "EPF_ACCOUNT_TYPE_DEFAULT_TYPE" 36 | }, 37 | "fipMeta": { 38 | "name": "EPFO", 39 | "displayName": "EPFO" 40 | } 41 | }, 42 | "epfSummary": { 43 | "accountId": "d0e1f2a3-b4c5-6789-abcd-ef1234567890", 44 | "currentBalance": { 45 | "currencyCode": "INR", 46 | "units": "235000" 47 | }, 48 | "balanceDate": "2024-05-20T00:00:00Z", 49 | "accountStatus": "EPF_ACCOUNT_STATUS_INACTIVE" 50 | } 51 | }, 52 | "e1f2a3b4-c5d6-7890-bcde-f12345678901": { 53 | "accountDetails": { 54 | "fipId": "PNB-FIP", 55 | "maskedAccountNumber": "XXXXXX8811", 56 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_DEPOSIT", 57 | "ifscCode": "PUNB0123456", 58 | "accountType": { 59 | "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS" 60 | }, 61 | "fipMeta": { 62 | "name": "Punjab National Bank", 63 | "displayName": "PNB", 64 | "bank": "PNB" 65 | } 66 | }, 67 | "depositSummary": { 68 | "accountId": "e1f2a3b4-c5d6-7890-bcde-f12345678901", 69 | "currentBalance": { 70 | "currencyCode": "INR", 71 | "units": "15750" 72 | }, 73 | "balanceDate": "2024-06-15T14:30:00Z", 74 | "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS", 75 | "branch": "Delhi Main", 76 | "ifscCode": "PUNB0123456", 77 | "openingDate": "2015-06-10T00:00:00Z", 78 | "depositAccountStatus": "DEPOSIT_ACCOUNT_STATUS_ACTIVE" 79 | } 80 | } 81 | } 82 | } 83 | } -------------------------------------------------------------------------------- /test_data_dir/1313131313/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "HDFC Bank", 6 | "txns": [ 7 | ["260000", "SALARY CREDIT - BIGTECH CORP - JULY 2024", "2024-07-01", 1, "NEFT", "515000"], 8 | ["45000", "ACH D-HDFCHOMEFIN-HOME LOAN EMI-HL556677", "2024-07-05", 6, "ACH", "470000"], 9 | ["25000", "IMPS-OAKRIDGE INTL SCHOOL-Q2 TUITION FEES", "2024-07-05", 2, "IMPS", "445000"], 10 | ["20000", "ACH D-HDFCMF-SIP/FLEXICAP/WG-45001", "2024-07-07", 6, "ACH", "425000"], 11 | ["15000", "ACH D-NIPPONMF-SIP/SMALLCAP/WG-45002", "2024-07-07", 6, "ACH", "410000"], 12 | ["15000", "ACH D-MOTILALMF-SIP/SP500FUND/WG-INTL1", "2024-07-07", 6, "ACH", "395000"], 13 | ["10000", "ACH D-MIRAEASSETMF-SIP/TAXSAVER/WG-ELSS1", "2024-07-07", 6, "ACH", "385000"], 14 | ["65000", "PAYMENT TO HDFC CREDIT CARD XXXXXXXX8888", "2024-07-10", 2, "CARD_PAYMENT", "320000"], 15 | ["40000", "PAYMENT TO AMEX CREDIT CARD XXXXXXXX9999", "2024-07-11", 2, "CARD_PAYMENT", "280000"], 16 | ["850", "UPI-UBER-PREMIUM RIDE-UBER@HDFCBANK", "2024-07-15", 2, "OTHERS", "279150"], 17 | ["5500", "UPI-OLIVE BAR & KITCHEN-DINING-OBK@ICICI", "2024-07-20", 2, "OTHERS", "273650"], 18 | ["260000", "SALARY CREDIT - BIGTECH CORP - JUNE 2024", "2024-06-01", 1, "NEFT", "495000"], 19 | ["45000", "ACH D-HDFCHOMEFIN-HOME LOAN EMI-HL556677", "2024-06-05", 6, "ACH", "450000"], 20 | ["20000", "ACH D-HDFCMF-SIP/FLEXICAP/WG-45001", "2024-06-07", 6, "ACH", "430000"], 21 | ["15000", "ACH D-NIPPONMF-SIP/SMALLCAP/WG-45002", "2024-06-07", 6, "ACH", "415000"], 22 | ["15000", "ACH D-MOTILALMF-SIP/SP500FUND/WG-INTL1", "2024-06-07", 6, "ACH", "400000"], 23 | ["10000", "ACH D-MIRAEASSETMF-SIP/TAXSAVER/WG-ELSS1", "2024-06-07", 6, "ACH", "390000"], 24 | ["72000", "PAYMENT TO HDFC CREDIT CARD XXXXXXXX8888", "2024-06-10", 2, "CARD_PAYMENT", "318000"], 25 | ["55000", "PAYMENT TO AMEX CREDIT CARD XXXXXXXX9999", "2024-06-11", 2, "CARD_PAYMENT", "263000"], 26 | ["50000", "IMPS-ZERODHA-EQUITY FUNDING-REF12345", "2024-06-18", 2, "IMPS", "213000"], 27 | ["1200", "UPI-AMAZON-SHOPPING-AMAZONPAY@APL", "2024-06-25", 2, "OTHERS", "211800"], 28 | ["2200", "CREDIT INTEREST CAPITALISED", "2024-06-30", 4, "INTEREST", "214000"] 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /test_data_dir/1010101010/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF179K01844", 5 | "schemeName": "HDFC Gold Fund - Direct Plan - Growth", 6 | "folioId": "AU-882145", 7 | "txns": [ 8 | [1, "2022-06-15", 16.50, 151.51, 2500], 9 | [1, "2022-07-15", 16.25, 153.84, 2500], 10 | [1, "2022-08-16", 16.60, 150.60, 2500], 11 | [1, "2022-09-15", 16.42, 152.25, 2500], 12 | [1, "2022-10-20", 16.10, 62.11, 1000], 13 | [1, "2022-10-17", 16.33, 153.10, 2500], 14 | [1, "2022-11-15", 17.05, 146.62, 2500], 15 | [1, "2022-12-15", 17.40, 143.67, 2500], 16 | [1, "2023-01-16", 17.85, 140.05, 2500], 17 | [1, "2023-02-15", 17.60, 142.04, 2500], 18 | [1, "2023-03-02", 17.55, 56.98, 1000], 19 | [1, "2023-03-15", 18.20, 137.36, 2500], 20 | [1, "2023-04-17", 18.90, 132.27, 2500], 21 | [1, "2023-05-15", 19.15, 130.54, 2500], 22 | [1, "2023-06-15", 18.88, 132.41, 2500], 23 | [1, "2023-07-17", 18.95, 52.77, 1000], 24 | [1, "2023-07-17", 18.95, 131.92, 2500], 25 | [1, "2023-08-16", 18.70, 133.68, 2500], 26 | [1, "2023-09-15", 19.10, 130.89, 2500], 27 | [1, "2023-10-16", 19.45, 128.53, 2500], 28 | [1, "2023-11-15", 19.90, 125.62, 2500], 29 | [1, "2023-12-15", 20.25, 123.45, 2500], 30 | [1, "2024-01-15", 20.50, 121.95, 2500], 31 | [1, "2024-02-05", 20.40, 49.02, 1000] 32 | ] 33 | }, 34 | { 35 | "isin": "INF204K01323", 36 | "schemeName": "Nippon India Gold Savings Fund - Direct - Growth", 37 | "folioId": "AU-882145", 38 | "txns": [ 39 | [1, "2022-08-25", 20.10, 74.62, 1500], 40 | [1, "2022-11-03", 20.80, 48.07, 1000], 41 | [1, "2023-02-20", 21.65, 69.28, 1500], 42 | [1, "2023-05-22", 23.40, 64.10, 1500], 43 | [1, "2023-09-01", 23.00, 43.47, 1000], 44 | [1, "2023-10-28", 23.85, 62.89, 1500], 45 | [1, "2024-01-29", 24.95, 60.12, 1500] 46 | ] 47 | }, 48 | { 49 | "isin": "INF109K01XO3", 50 | "schemeName": "ICICI Prudential Short Term Debt Fund - Direct - Growth", 51 | "folioId": "FD-110987", 52 | "txns": [ 53 | [1, "2022-06-01", 50.15, 997.00, 50000], 54 | [1, "2022-12-05", 51.30, 19.50, 1000], 55 | [1, "2023-06-07", 52.80, 18.94, 1000], 56 | [1, "2023-12-11", 54.50, 18.35, 1000] 57 | ] 58 | }, 59 | { 60 | "isin": "INF174K01BU9", 61 | "schemeName": "Kotak Equity Arbitrage Fund - Direct - Growth", 62 | "folioId": "FD-110987", 63 | "txns": [ 64 | [1, "2022-07-04", 30.55, 163.66, 5000], 65 | [1, "2023-01-10", 31.40, 63.69, 2000], 66 | [1, "2023-08-21", 32.90, 91.18, 3000] 67 | ] 68 | } 69 | ], 70 | "schemaDescription": "A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 71 | } -------------------------------------------------------------------------------- /test_data_dir/1313131313/fetch_epf_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "uanAccounts": [ 3 | { 4 | "phoneNumber": {}, 5 | "rawDetails": { 6 | "est_details": [ 7 | { 8 | "est_name": "NEXGEN SOFTWARE SOLUTIONS", 9 | "member_id": "MHPN*****************", 10 | "office": "(RO)PUNE", 11 | "doj_epf": "15-06-2013", 12 | "doe_epf": "31-12-2016", 13 | "doe_eps": "31-12-2016", 14 | "pf_balance": { 15 | "net_balance": "350000", 16 | "employee_share": { 17 | "credit": "160000", 18 | "balance": "160000" 19 | }, 20 | "employer_share": { 21 | "credit": "160000", 22 | "balance": "160000" 23 | } 24 | } 25 | }, 26 | { 27 | "est_name": "INNOVA ANALYTICS PVT LTD", 28 | "member_id": "KABN*****************", 29 | "office": "(RO)BENGALURU", 30 | "doj_epf": "10-01-2017", 31 | "doe_epf": "28-02-2020", 32 | "doe_eps": "28-02-2020", 33 | "pf_balance": { 34 | "net_balance": "480000", 35 | "employee_share": { 36 | "credit": "220000", 37 | "balance": "220000" 38 | }, 39 | "employer_share": { 40 | "credit": "220000", 41 | "balance": "220000" 42 | } 43 | } 44 | }, 45 | { 46 | "est_name": "FINTECH FRONTIERS (INDIA)", 47 | "member_id": "TNHY*****************", 48 | "office": "(RO)HYDERABAD", 49 | "doj_epf": "15-03-2020", 50 | "doe_epf": "31-05-2022", 51 | "doe_eps": "31-05-2022", 52 | "pf_balance": { 53 | "net_balance": "450000", 54 | "employee_share": { 55 | "credit": "210000", 56 | "balance": "210000" 57 | }, 58 | "employer_share": { 59 | "credit": "210000", 60 | "balance": "210000" 61 | } 62 | } 63 | }, 64 | { 65 | "est_name": "GLOBAL WEALTH MANAGEMENT CORP", 66 | "member_id": "MHBANXXXXXXXXXXXXXXXXX", 67 | "office": "(RO)BANDRA(MUMBAI-I)", 68 | "doj_epf": "10-06-2022", 69 | "doe_epf": "NOT AVAILABLE", 70 | "doe_eps": "NOT AVAILABLE", 71 | "pf_balance": { 72 | "net_balance": "500000", 73 | "employee_share": { 74 | "credit": "230000", 75 | "balance": "230000" 76 | }, 77 | "employer_share": { 78 | "credit": "230000", 79 | "balance": "230000" 80 | } 81 | } 82 | } 83 | ], 84 | "overall_pf_balance": { 85 | "pension_balance": "550000", 86 | "current_pf_balance": "1780000", 87 | "employee_share_total": { 88 | "credit": "820000", 89 | "balance": "820000" 90 | }, 91 | "employer_share_total": { 92 | "credit": "820000", 93 | "balance": "820000" 94 | } 95 | } 96 | } 97 | } 98 | ] 99 | } -------------------------------------------------------------------------------- /test_data_dir/7777777777/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaDescription": "A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", 3 | "bankTransactions": [ 4 | { 5 | "bank": "ICICI Bank", 6 | "txns": [ 7 | ["75000", "SALARY CREDIT - ACME CORP - JULY 2024", "2024-07-05", 1, "NEFT", "78210"], 8 | ["12500", "IMPS-BAJAJFIN-54987XXXXX-EMI PAYMENT JUNE DUES", "2024-07-05", 2, "IMPS", "65710"], 9 | ["8530", "NEFT DR-HDFCBANK-AUTOLOAN-N451241328608485-EMI", "2024-07-05", 6, "FT", "57180"], 10 | ["15000", "UPI-CRED-CRED@AXISB-UTIB0000114-207051927514-CREDIT CARD BILL P", "2024-07-06", 2, "CARD_PAYMENT", "42180"], 11 | ["450", "UPI-SWIGGY-SWIGGY@YBL-YESB0YBLUPI-207064587845-FOOD ORDER", "2024-07-06", 2, "OTHERS", "41730"], 12 | ["1250", "UPI-GET SIMPL TECHNOLOGI-GETSIMPL.RAZORPAY@HDFCBANK-207081896593-SIMPL REPAYMENT", "2024-07-08", 2, "CARD_PAYMENT", "40480"], 13 | ["280", "UPI-UBER-UBERRIDES@HDFCBANK-HDFC0000499-207101658151-RIDE", "2024-07-10", 2, "OTHERS", "40200"], 14 | ["2000", "CASH WDL-S1A09876-ICICI BANK ATM-MUMBAI", "2024-07-12", 2, "ATM", "38200"], 15 | ["1800", "UPI-ROHAN SHARMA-ROHANSHARMA@OKAXIS-UTIB0000114-207152491647-Thanks bro", "2024-07-15", 1, "FT", "40000"], 16 | ["177", "QTRLY MIN BAL CHARGE JUN 2024", "2024-07-18", 8, "CHARGES", "39823"], 17 | ["3200", "UPI-BIGBASKET-BB@HDFC-HDFC0000053-207223205806-GROCERIES", "2024-07-22", 2, "OTHERS", "36623"], 18 | ["75000", "SALARY CREDIT - ACME CORP - JUNE 2024", "2024-06-05", 1, "NEFT", "75850"], 19 | ["8530", "NEFT DR-HDFCBANK-AUTOLOAN-N451241328608485-EMI", "2024-06-05", 6, "FT", "67320"], 20 | ["11000", "UPI-CRED-CRED@AXISB-UTIB0000114-206061927514-CREDIT CARD BILL P", "2024-06-06", 2, "CARD_PAYMENT", "56320"], 21 | ["550", "UPI-ZOMATO-ZOMATO@YBL-YESB0YBLUPI-206074587845-FOOD", "2024-06-07", 2, "OTHERS", "55770"], 22 | ["12000", "IMPS-BAJAJFIN-54987XXXXX-LOAN PAYMENT", "2024-06-09", 6, "IMPS", "43770"], 23 | ["5000", "UPI-PAYTM POSTPAID-PAYTM@YBL-PYTM0123456-20615849023-BILL PAYMENT", "2024-06-15", 2, "CARD_PAYMENT", "38770"], 24 | ["350", "UPI-OLA-OLACABS@ICICI-ICIC0000001-20620436693-RIDE", "2024-06-20", 2, "OTHERS", "38420"], 25 | ["4800", "UPI-AMAZON-AMAZONPAY@APL-APL00000001-206256435441-SHOPPING", "2024-06-25", 2, "OTHERS", "33620"] 26 | ] 27 | }, 28 | { 29 | "bank": "HDFC Bank", 30 | "txns": [ 31 | ["8530", "ACH D-ICIC0001234-AUTOLOAN-EMI DEBIT", "2024-07-05", 6, "ACH", "1150"], 32 | ["150", "UPI-STARBUCKS-STARBUCKS@OKHDFC-HDFC0002777-207089304334-COFFEE", "2024-07-08", 2, "OTHERS", "1000"], 33 | ["295", "ACH RETURN CHGS-INSUFFICIENT FUNDS-REF N451241328608485", "2024-06-06", 8, "CHARGES", "850"], 34 | ["8530", "ACH D-ICIC0001234-AUTOLOAN-EMI DEBIT", "2024-06-05", 6, "ACH", "1145"], 35 | ["12", "CREDIT INTEREST CAPITALISED FOR PERIOD 01-03-24 TO 31-05-24", "2024-06-01", 4, "INTEREST", "9645"] 36 | ] 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_stock_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of stock transactions. Each 'txns' field is a list of data arrays with schema: [transactionType (1 for BUY, 2 for SELL, 3 for BONUS, 4 for SPLIT), transactionDate, quantity, navValue]. nav value may not be present in some of the transactions","stockTransactions":[{"isin":"INE002A01018","txns":[[1,"2023-01-15",100,2450.75],[1,"2023-02-20",80,2380.5],[1,"2023-04-10",60,2520.25],[2,"2023-06-15",30,2680],[1,"2023-08-05",90,2590.8],[1,"2023-10-12",70,2720.4],[2,"2023-12-18",40,2850.6],[1,"2024-02-22",85,2780.9],[1,"2024-04-08",50,2920.15],[2,"2024-06-15",25,3050.25],[1,"2024-08-20",65,3120.8],[3,"2024-10-10",20],[1,"2024-11-25",45,3180.9]]},{"isin":"INE467B01029","txns":[[1,"2023-01-08",200,3485.6],[1,"2023-03-25",300,3472.3],[1,"2023-05-14",180,3598.75],[2,"2023-07-30",100,3615.2],[1,"2023-09-12",250,3502.9],[1,"2023-11-28",200,3728.45],[3,"2024-01-15",80],[1,"2024-03-20",150,3845.8],[2,"2024-05-05",120,3962.1],[1,"2024-07-20",180,4078.65],[1,"2024-09-10",140,4195.2],[2,"2024-11-15",90,4312.75]]},{"isin":"INE040A01034","txns":[[1,"2023-02-25",80,1425.3],[1,"2023-04-10",100,1398.75],[1,"2023-06-05",70,1456.2],[2,"2023-08-18",40,1485.6],[1,"2023-10-22",120,1472.8],[1,"2023-12-08",140,1512.45],[2,"2024-02-12",60,1548.9],[1,"2024-04-28",95,1565.75],[4,"2024-06-15",15],[1,"2024-08-10",150,1592.3],[1,"2024-10-25",110,1620.85],[2,"2024-12-05",70,1650.4],[1,"2024-12-20",125,1680.95],[3,"2024-12-28",25]]},{"isin":"INE009A01021","txns":[[1,"2023-01-14",300,1425.4],[1,"2023-03-18",400,1398.9],[1,"2023-05-22",250,1532.75],[2,"2023-07-28",150,1568.2],[1,"2023-09-16",350,1535.6],[1,"2023-11-20",280,1642.85],[2,"2024-01-10",120,1698.3],[1,"2024-03-25",220,1645.75],[3,"2024-05-12",100],[2,"2024-07-28",140,1752.9],[1,"2024-09-15",190,1798.45],[1,"2024-11-10",240,1834.2],[2,"2024-12-18",100,1870.85]]},{"isin":"INE001A01036","txns":[[1,"2023-02-12",600,168.25],[1,"2023-04-08",800,165.8],[1,"2023-06-15",500,171.4],[2,"2023-08-30",300,174.9],[1,"2023-10-18",450,172.65],[1,"2023-12-25",700,176.2],[2,"2024-02-12",350,178.85],[1,"2024-04-30",550,177.5],[1,"2024-06-05",300,181.3],[4,"2024-08-20",150],[1,"2024-10-15",400,184.75],[2,"2024-12-02",200,187.9]]},{"isin":"INE158A01026","txns":[[1,"2023-01-20",400,390.5],[1,"2023-03-15",500,385.25],[1,"2023-05-10",300,410.8],[2,"2023-07-25",200,425.6],[1,"2023-09-08",450,405.4],[1,"2023-11-12",350,440.75],[2,"2024-01-28",180,455.2],[1,"2024-03-20",320,470.85],[1,"2024-05-15",250,485.6],[3,"2024-07-10",120],[1,"2024-09-25",280,505.3],[2,"2024-11-08",150,520.75],[1,"2024-12-15",200,535.9],[1,"2024-12-28",180,548.25]]},{"isin":"INE101A01026","txns":[[1,"2023-02-05",250,720.8],[1,"2023-04-20",350,715.5],[1,"2023-06-25",200,735.75],[2,"2023-08-15",120,742.2],[1,"2023-10-30",300,738.9],[1,"2023-12-18",250,755.4],[2,"2024-02-25",150,768.75],[1,"2024-04-12",220,762.5],[1,"2024-06-28",180,778.95],[3,"2024-08-15",80],[1,"2024-10-05",200,785.2],[2,"2024-11-20",100,792.85],[1,"2024-12-10",150,798.6]]},{"isin":"INE018A01030","txns":[[1,"2023-01-30",400,2185.4],[1,"2023-03-28",500,2178.9],[1,"2023-05-18",300,2292.75],[2,"2023-07-12",200,2298.2],[1,"2023-09-25",450,2295.6],[1,"2023-11-15",400,2405.85],[2,"2024-01-20",250,2512.3],[1,"2024-03-18",350,2408.75],[1,"2024-05-25",280,2518.95],[4,"2024-07-08",100],[1,"2024-09-12",320,2625.4],[2,"2024-10-28",180,2732.85],[1,"2024-12-05",250,2838.6],[3,"2024-12-22",120],[1,"2024-12-30",200,2945.2]]}]} -------------------------------------------------------------------------------- /test_data_dir/2525252525/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240522", 10 | "reportTime": "110510" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "0", 15 | "amountFinanced": "0", 16 | "durationOfAgreement": "0", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "20010415" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "1", 26 | "creditAccountActive": "1", 27 | "creditAccountDefault": "0", 28 | "creditAccountClosed": "0", 29 | "cadSuitFiledCurrentBalance": "0" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "0", 33 | "outstandingBalanceSecuredPercentage": "0", 34 | "outstandingBalanceUnSecured": "1500", 35 | "outstandingBalanceUnSecuredPercentage": "100", 36 | "outstandingBalanceAll": "1500" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "HDFC Bank", 42 | "portfolioType": "R", 43 | "accountType": "10", 44 | "openDate": "20230810", 45 | "creditLimitAmount": "50000", 46 | "highestCreditOrOriginalLoanAmount": "50000", 47 | "accountStatus": "11", 48 | "paymentRating": "0", 49 | "paymentHistoryProfile": "000000000", 50 | "currentBalance": "1500", 51 | "amountPastDue": "0", 52 | "dateReported": "20240504", 53 | "occupationCode": "S", 54 | "rateOfInterest": "22.0", 55 | "repaymentTenure": "0", 56 | "dateOfAddition": "20230810", 57 | "currencyCode": "INR", 58 | "accountHolderTypeCode": "1" 59 | } 60 | ] 61 | }, 62 | "matchResult": { 63 | "exactMatch": "Y" 64 | }, 65 | "totalCapsSummary": { 66 | "totalCapsLast7Days": "0", 67 | "totalCapsLast30Days": "0", 68 | "totalCapsLast90Days": "0", 69 | "totalCapsLast180Days": "0" 70 | }, 71 | "nonCreditCaps": { 72 | "nonCreditCapsSummary": { 73 | "nonCreditCapsLast7Days": "0", 74 | "nonCreditCapsLast30Days": "0", 75 | "nonCreditCapsLast90Days": "0", 76 | "nonCreditCapsLast180Days": "0" 77 | }, 78 | "capsApplicationDetailsArray": [] 79 | }, 80 | "score": { 81 | "bureauScore": "765", 82 | "bureauScoreConfidenceLevel": "H" 83 | }, 84 | "segment": {}, 85 | "caps": { 86 | "capsSummary": { 87 | "capsLast7Days": "0", 88 | "capsLast30Days": "0", 89 | "capsLast90Days": "0", 90 | "capsLast180Days": "0" 91 | }, 92 | "capsApplicationDetailsArray": [] 93 | } 94 | }, 95 | "vendor": "EXPERIAN" 96 | } 97 | ] 98 | } -------------------------------------------------------------------------------- /test_data_dir/7777777777/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF397L01067", 5 | "schemeName": "IDBI India Top 100 Equity Fund - Regular Plan Growth", 6 | "folioId": "2211221122", 7 | "txns": [ 8 | [ 9 | 1, 10 | "2023-01-10", 11 | 20.4, 12 | 245, 13 | 5000 14 | ], 15 | [ 16 | 1, 17 | "2023-06-15", 18 | 21.1, 19 | 260.66, 20 | 5500 21 | ], 22 | [ 23 | 1, 24 | "2023-12-05", 25 | 21.5, 26 | 372.09, 27 | 8000 28 | ], 29 | [ 30 | 1, 31 | "2024-04-01", 32 | 22.0, 33 | 227.27, 34 | 5000 35 | ] 36 | ] 37 | }, 38 | { 39 | "isin": "INF767K01019", 40 | "schemeName": "LIC MF Infrastructure Fund - Regular Plan Growth", 41 | "folioId": "9988776655", 42 | "txns": [ 43 | [ 44 | 1, 45 | "2023-01-05", 46 | 15.2, 47 | 328.95, 48 | 5000 49 | ], 50 | [ 51 | 1, 52 | "2023-02-05", 53 | 15.5, 54 | 322.58, 55 | 5000 56 | ], 57 | [ 58 | 1, 59 | "2023-03-05", 60 | 16.0, 61 | 312.5, 62 | 5000 63 | ], 64 | [ 65 | 1, 66 | "2023-04-05", 67 | 15.7, 68 | 318.47, 69 | 5000 70 | ], 71 | [ 72 | 1, 73 | "2023-05-05", 74 | 15.4, 75 | 324.67, 76 | 5000 77 | ], 78 | [ 79 | 1, 80 | "2023-06-05", 81 | 15.9, 82 | 314.47, 83 | 5000 84 | ], 85 | [ 86 | 1, 87 | "2023-07-05", 88 | 16.1, 89 | 310.56, 90 | 5000 91 | ], 92 | [ 93 | 1, 94 | "2023-08-05", 95 | 16.3, 96 | 306.75, 97 | 5000 98 | ], 99 | [ 100 | 1, 101 | "2023-09-05", 102 | 15.8, 103 | 316.45, 104 | 5000 105 | ], 106 | [ 107 | 1, 108 | "2023-10-05", 109 | 15.6, 110 | 320.51, 111 | 5000 112 | ], 113 | [ 114 | 1, 115 | "2023-11-05", 116 | 15.9, 117 | 314.47, 118 | 5000 119 | ], 120 | [ 121 | 1, 122 | "2023-12-05", 123 | 16.0, 124 | 312.5, 125 | 5000 126 | ], 127 | [ 128 | 1, 129 | "2024-02-20", 130 | 16.2, 131 | 370.37, 132 | 6000 133 | ], 134 | [ 135 | 1, 136 | "2024-04-15", 137 | 15.8, 138 | 506.33, 139 | 8000 140 | ], 141 | [ 142 | 1, 143 | "2024-05-05", 144 | 15.6, 145 | 384.61, 146 | 6000 147 | ] 148 | ] 149 | } 150 | ], 151 | "schemaDescription": "A list of mutual fund investments. Each 'txns' field is a list of data arrays with schema: [ orderType (1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 152 | } -------------------------------------------------------------------------------- /test_data_dir/1010101010/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240521", 10 | "reportTime": "121020" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "0", 15 | "amountFinanced": "0", 16 | "durationOfAgreement": "0", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "19870320" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "2", 26 | "creditAccountActive": "2", 27 | "creditAccountDefault": "0", 28 | "creditAccountClosed": "0", 29 | "cadSuitFiledCurrentBalance": "0" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "0", 33 | "outstandingBalanceSecuredPercentage": "0", 34 | "outstandingBalanceUnSecured": "30000", 35 | "outstandingBalanceUnSecuredPercentage": "100", 36 | "outstandingBalanceAll": "30000" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "SBI Card", 42 | "portfolioType": "R", 43 | "accountType": "10", 44 | "openDate": "20160210", 45 | "creditLimitAmount": "120000", 46 | "highestCreditOrOriginalLoanAmount": "120000", 47 | "accountStatus": "11", 48 | "paymentRating": "0", 49 | "paymentHistoryProfile": "000000000000000000000000000000000000", 50 | "currentBalance": "18000", 51 | "amountPastDue": "0", 52 | "dateReported": "20240503", 53 | "occupationCode": "S", 54 | "rateOfInterest": "20.0", 55 | "repaymentTenure": "0", 56 | "dateOfAddition": "20160210", 57 | "currencyCode": "INR", 58 | "accountHolderTypeCode": "1" 59 | }, 60 | { 61 | "subscriberName": "ICICI Bank", 62 | "portfolioType": "R", 63 | "accountType": "10", 64 | "openDate": "20210525", 65 | "creditLimitAmount": "80000", 66 | "highestCreditOrOriginalLoanAmount": "80000", 67 | "accountStatus": "11", 68 | "paymentRating": "0", 69 | "paymentHistoryProfile": "000000000000000000000000000000000000", 70 | "currentBalance": "12000", 71 | "amountPastDue": "0", 72 | "dateReported": "20240428", 73 | "occupationCode": "S", 74 | "rateOfInterest": "21.5", 75 | "repaymentTenure": "0", 76 | "dateOfAddition": "20210525", 77 | "currencyCode": "INR", 78 | "accountHolderTypeCode": "1" 79 | } 80 | ] 81 | }, 82 | "matchResult": { 83 | "exactMatch": "Y" 84 | }, 85 | "totalCapsSummary": { 86 | "totalCapsLast7Days": "0", 87 | "totalCapsLast30Days": "0", 88 | "totalCapsLast90Days": "0", 89 | "totalCapsLast180Days": "0" 90 | }, 91 | "nonCreditCaps": { 92 | "nonCreditCapsSummary": { 93 | "nonCreditCapsLast7Days": "0", 94 | "nonCreditCapsLast30Days": "0", 95 | "nonCreditCapsLast90Days": "0", 96 | "nonCreditCapsLast180Days": "0" 97 | }, 98 | "capsApplicationDetailsArray": [] 99 | }, 100 | "score": { 101 | "bureauScore": "788", 102 | "bureauScoreConfidenceLevel": "H" 103 | }, 104 | "segment": {}, 105 | "caps": { 106 | "capsSummary": { 107 | "capsLast7Days": "0", 108 | "capsLast30Days": "0", 109 | "capsLast90Days": "0", 110 | "capsLast180Days": "0" 111 | }, 112 | "capsApplicationDetailsArray": [] 113 | } 114 | }, 115 | "vendor": "EXPERIAN" 116 | } 117 | ] 118 | } -------------------------------------------------------------------------------- /test_data_dir/2222222222/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {"creditReports":[{"creditReportData":{"userMessage":{"userMessageText":"Normal Response"},"creditProfileHeader":{"reportDate":"20210620","reportTime":"023304"},"currentApplication":{"currentApplicationDetails":{"enquiryReason":"6","amountFinanced":"0","durationOfAgreement":"0","currentApplicantDetails":{"dateOfBirthApplicant":"19910202"}}},"creditAccount":{"creditAccountSummary":{"account":{"creditAccountTotal":"6","creditAccountActive":"6","creditAccountDefault":"0","creditAccountClosed":"0","cadSuitFiledCurrentBalance":"0"},"totalOutstandingBalance":{"outstandingBalanceSecured":"44000","outstandingBalanceSecuredPercentage":"59","outstandingBalanceUnSecured":"31000","outstandingBalanceUnSecuredPercentage":"41","outstandingBalanceAll":"75000"}},"creditAccountDetails":[{"subscriberName":"HDFC Bank","portfolioType":"I","accountType":"01","openDate":"20060110","highestCreditOrOriginalLoanAmount":"50000","accountStatus":"83","paymentRating":"5","paymentHistoryProfile":"00??????????????????????????????????","currentBalance":"5000","amountPastDue":"1000","dateReported":"20201228","occupationCode":"S","rateOfInterest":"11.5","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"},{"subscriberName":"ICICI Bank","portfolioType":"I","accountType":"03","openDate":"20060122","highestCreditOrOriginalLoanAmount":"110000","accountStatus":"11","paymentRating":"0","paymentHistoryProfile":"44??????????????????????????????????","currentBalance":"17000","amountPastDue":"13000","dateReported":"20201228","occupationCode":"S","rateOfInterest":"8.24","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"},{"subscriberName":"Aditya Brila Finance Limited","portfolioType":"I","accountType":"53","openDate":"20060119","highestCreditOrOriginalLoanAmount":"95000","accountStatus":"78","paymentRating":"2","paymentHistoryProfile":"33??????????????????????????????????","currentBalance":"14000","amountPastDue":"10000","dateReported":"20201228","occupationCode":"N","rateOfInterest":"14","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"},{"subscriberName":"Bajaj Finance","portfolioType":"I","accountType":"04","openDate":"20060113","highestCreditOrOriginalLoanAmount":"65000","accountStatus":"11","paymentRating":"0","paymentHistoryProfile":"11??????????????????????????????????","currentBalance":"8000","amountPastDue":"0","dateReported":"20201228","occupationCode":"N","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"},{"subscriberName":"Epifi Capital","portfolioType":"R","accountType":"10","openDate":"20060116","creditLimitAmount":"500000","highestCreditOrOriginalLoanAmount":"80000","accountStatus":"82","paymentRating":"4","paymentHistoryProfile":"22??????????????????????????????????","currentBalance":"11000","amountPastDue":"7000","dateReported":"20201228","occupationCode":"N","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"},{"subscriberName":"Mannapuram Finance","portfolioType":"I","accountType":"06","openDate":"20060125","highestCreditOrOriginalLoanAmount":"125000","accountStatus":"71","paymentRating":"1","paymentHistoryProfile":"55??????????????????????????????????","currentBalance":"20000","amountPastDue":"16000","dateReported":"20201228","occupationCode":"N","repaymentTenure":"0","dateOfAddition":"20201028","currencyCode":"INR","accountHolderTypeCode":"1"}]},"matchResult":{"exactMatch":"Y"},"totalCapsSummary":{"totalCapsLast7Days":"0","totalCapsLast30Days":"0","totalCapsLast90Days":"0","totalCapsLast180Days":"0"},"nonCreditCaps":{"nonCreditCapsSummary":{"nonCreditCapsLast7Days":"4","nonCreditCapsLast30Days":"4","nonCreditCapsLast90Days":"4","nonCreditCapsLast180Days":"4"},"capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance","FinancePurpose":"10","capsApplicantDetails":{},"capsOtherDetails":{},"capsApplicantAddressDetails":{},"capsApplicantAdditionalAddressDetails":{}},{"SubscriberName":"Muthoot finance","FinancePurpose":"2","capsApplicantDetails":{},"capsOtherDetails":{},"capsApplicantAddressDetails":{},"capsApplicantAdditionalAddressDetails":{}},{"SubscriberName":"HDFC","FinancePurpose":"8","capsApplicantDetails":{},"capsOtherDetails":{},"capsApplicantAddressDetails":{},"capsApplicantAdditionalAddressDetails":{}},{"SubscriberName":"SBI","FinancePurpose":"1","capsApplicantDetails":{},"capsOtherDetails":{},"capsApplicantAddressDetails":{},"capsApplicantAdditionalAddressDetails":{}}]},"score":{"bureauScore":"746","bureauScoreConfidenceLevel":"H"},"segment":{},"caps":{"capsSummary":{"capsLast7Days":"4","capsLast30Days":"4","capsLast90Days":"4","capsLast180Days":"4"},"capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance","DateOfRequest":"20250709","EnquiryReason":"10","FinancePurpose":"10"},{"SubscriberName":"Muthoot finance","DateOfRequest":"20250709","EnquiryReason":"2","FinancePurpose":"2"},{"SubscriberName":"HDFC","DateOfRequest":"20250709","EnquiryReason":"8","FinancePurpose":"8"},{"SubscriberName":"SBI","DateOfRequest":"20250709","EnquiryReason":"1","FinancePurpose":"1"}]}},"vendor":"EXPERIAN"}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {"creditReports":[{"creditReportData":{"userMessage":{"userMessageText":"Normal Response"}, "creditProfileHeader":{"reportDate":"20210620", "reportTime":"023304"}, "currentApplication":{"currentApplicationDetails":{"enquiryReason":"6", "amountFinanced":"0", "durationOfAgreement":"0", "currentApplicantDetails":{"dateOfBirthApplicant":"19910202"}}}, "creditAccount":{"creditAccountSummary":{"account":{"creditAccountTotal":"6", "creditAccountActive":"6", "creditAccountDefault":"0", "creditAccountClosed":"0", "cadSuitFiledCurrentBalance":"0"}, "totalOutstandingBalance":{"outstandingBalanceSecured":"44000", "outstandingBalanceSecuredPercentage":"59", "outstandingBalanceUnSecured":"31000", "outstandingBalanceUnSecuredPercentage":"41", "outstandingBalanceAll":"75000"}}, "creditAccountDetails":[{"subscriberName":"HDFC Bank", "portfolioType":"I", "accountType":"01", "openDate":"20060110", "highestCreditOrOriginalLoanAmount":"50000", "accountStatus":"83", "paymentRating":"5", "paymentHistoryProfile":"00??????????????????????????????????", "currentBalance":"5000", "amountPastDue":"1000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"11.5", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"ICICI Bank", "portfolioType":"I", "accountType":"03", "openDate":"20060122", "highestCreditOrOriginalLoanAmount":"110000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"44??????????????????????????????????", "currentBalance":"17000", "amountPastDue":"13000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"8.24", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Aditya Brila Finance Limited", "portfolioType":"I", "accountType":"53", "openDate":"20060119", "highestCreditOrOriginalLoanAmount":"95000", "accountStatus":"78", "paymentRating":"2", "paymentHistoryProfile":"33??????????????????????????????????", "currentBalance":"14000", "amountPastDue":"10000", "dateReported":"20201228", "occupationCode":"N", "rateOfInterest":"14", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Bajaj Finance", "portfolioType":"I", "accountType":"04", "openDate":"20060113", "highestCreditOrOriginalLoanAmount":"65000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"11??????????????????????????????????", "currentBalance":"8000", "amountPastDue":"0", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Epifi Capital", "portfolioType":"R", "accountType":"10", "openDate":"20060116", "creditLimitAmount":"500000", "highestCreditOrOriginalLoanAmount":"80000", "accountStatus":"82", "paymentRating":"4", "paymentHistoryProfile":"22??????????????????????????????????", "currentBalance":"11000", "amountPastDue":"7000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Mannapuram Finance", "portfolioType":"I", "accountType":"06", "openDate":"20060125", "highestCreditOrOriginalLoanAmount":"125000", "accountStatus":"71", "paymentRating":"1", "paymentHistoryProfile":"55??????????????????????????????????", "currentBalance":"20000", "amountPastDue":"16000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}]}, "matchResult":{"exactMatch":"Y"}, "totalCapsSummary":{"totalCapsLast7Days":"0", "totalCapsLast30Days":"0", "totalCapsLast90Days":"0", "totalCapsLast180Days":"0"}, "nonCreditCaps":{"nonCreditCapsSummary":{"nonCreditCapsLast7Days":"4", "nonCreditCapsLast30Days":"4", "nonCreditCapsLast90Days":"4", "nonCreditCapsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "FinancePurpose":"10", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"Muthoot finance", "FinancePurpose":"2", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"HDFC", "FinancePurpose":"8", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"SBI", "FinancePurpose":"1", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}]}, "score":{"bureauScore":"746", "bureauScoreConfidenceLevel":"H"}, "segment":{}, "caps":{"capsSummary":{"capsLast7Days":"4", "capsLast30Days":"4", "capsLast90Days":"4", "capsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "DateOfRequest":"20250709", "EnquiryReason":"10", "FinancePurpose":"10"}, {"SubscriberName":"Muthoot finance", "DateOfRequest":"20250709", "EnquiryReason":"2", "FinancePurpose":"2"}, {"SubscriberName":"HDFC", "DateOfRequest":"20250709", "EnquiryReason":"8", "FinancePurpose":"8"}, {"SubscriberName":"SBI", "DateOfRequest":"20250709", "EnquiryReason":"1", "FinancePurpose":"1"}]}}, "vendor":"EXPERIAN"}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/4444444444/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {"creditReports":[{"creditReportData":{"userMessage":{"userMessageText":"Normal Response"}, "creditProfileHeader":{"reportDate":"20210620", "reportTime":"023304"}, "currentApplication":{"currentApplicationDetails":{"enquiryReason":"6", "amountFinanced":"0", "durationOfAgreement":"0", "currentApplicantDetails":{"dateOfBirthApplicant":"19910202"}}}, "creditAccount":{"creditAccountSummary":{"account":{"creditAccountTotal":"6", "creditAccountActive":"6", "creditAccountDefault":"0", "creditAccountClosed":"0", "cadSuitFiledCurrentBalance":"0"}, "totalOutstandingBalance":{"outstandingBalanceSecured":"44000", "outstandingBalanceSecuredPercentage":"59", "outstandingBalanceUnSecured":"31000", "outstandingBalanceUnSecuredPercentage":"41", "outstandingBalanceAll":"75000"}}, "creditAccountDetails":[{"subscriberName":"HDFC Bank", "portfolioType":"I", "accountType":"01", "openDate":"20060110", "highestCreditOrOriginalLoanAmount":"50000", "accountStatus":"83", "paymentRating":"5", "paymentHistoryProfile":"00??????????????????????????????????", "currentBalance":"5000", "amountPastDue":"1000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"11.5", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"ICICI Bank", "portfolioType":"I", "accountType":"03", "openDate":"20060122", "highestCreditOrOriginalLoanAmount":"110000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"44??????????????????????????????????", "currentBalance":"17000", "amountPastDue":"13000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"8.24", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Aditya Brila Finance Limited", "portfolioType":"I", "accountType":"53", "openDate":"20060119", "highestCreditOrOriginalLoanAmount":"95000", "accountStatus":"78", "paymentRating":"2", "paymentHistoryProfile":"33??????????????????????????????????", "currentBalance":"14000", "amountPastDue":"10000", "dateReported":"20201228", "occupationCode":"N", "rateOfInterest":"14", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Bajaj Finance", "portfolioType":"I", "accountType":"04", "openDate":"20060113", "highestCreditOrOriginalLoanAmount":"65000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"11??????????????????????????????????", "currentBalance":"8000", "amountPastDue":"0", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Epifi Capital", "portfolioType":"R", "accountType":"10", "openDate":"20060116", "creditLimitAmount":"500000", "highestCreditOrOriginalLoanAmount":"80000", "accountStatus":"82", "paymentRating":"4", "paymentHistoryProfile":"22??????????????????????????????????", "currentBalance":"11000", "amountPastDue":"7000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Mannapuram Finance", "portfolioType":"I", "accountType":"06", "openDate":"20060125", "highestCreditOrOriginalLoanAmount":"125000", "accountStatus":"71", "paymentRating":"1", "paymentHistoryProfile":"55??????????????????????????????????", "currentBalance":"20000", "amountPastDue":"16000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}]}, "matchResult":{"exactMatch":"Y"}, "totalCapsSummary":{"totalCapsLast7Days":"0", "totalCapsLast30Days":"0", "totalCapsLast90Days":"0", "totalCapsLast180Days":"0"}, "nonCreditCaps":{"nonCreditCapsSummary":{"nonCreditCapsLast7Days":"4", "nonCreditCapsLast30Days":"4", "nonCreditCapsLast90Days":"4", "nonCreditCapsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "FinancePurpose":"10", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"Muthoot finance", "FinancePurpose":"2", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"HDFC", "FinancePurpose":"8", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"SBI", "FinancePurpose":"1", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}]}, "score":{"bureauScore":"746", "bureauScoreConfidenceLevel":"H"}, "segment":{}, "caps":{"capsSummary":{"capsLast7Days":"4", "capsLast30Days":"4", "capsLast90Days":"4", "capsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "DateOfRequest":"20250709", "EnquiryReason":"10", "FinancePurpose":"10"}, {"SubscriberName":"Muthoot finance", "DateOfRequest":"20250709", "EnquiryReason":"2", "FinancePurpose":"2"}, {"SubscriberName":"HDFC", "DateOfRequest":"20250709", "EnquiryReason":"8", "FinancePurpose":"8"}, {"SubscriberName":"SBI", "DateOfRequest":"20250709", "EnquiryReason":"1", "FinancePurpose":"1"}]}}, "vendor":"EXPERIAN"}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/6666666666/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | {"creditReports":[{"creditReportData":{"userMessage":{"userMessageText":"Normal Response"}, "creditProfileHeader":{"reportDate":"20210620", "reportTime":"023304"}, "currentApplication":{"currentApplicationDetails":{"enquiryReason":"6", "amountFinanced":"0", "durationOfAgreement":"0", "currentApplicantDetails":{"dateOfBirthApplicant":"19910202"}}}, "creditAccount":{"creditAccountSummary":{"account":{"creditAccountTotal":"6", "creditAccountActive":"6", "creditAccountDefault":"0", "creditAccountClosed":"0", "cadSuitFiledCurrentBalance":"0"}, "totalOutstandingBalance":{"outstandingBalanceSecured":"44000", "outstandingBalanceSecuredPercentage":"59", "outstandingBalanceUnSecured":"31000", "outstandingBalanceUnSecuredPercentage":"41", "outstandingBalanceAll":"75000"}}, "creditAccountDetails":[{"subscriberName":"HDFC Bank", "portfolioType":"I", "accountType":"01", "openDate":"20060110", "highestCreditOrOriginalLoanAmount":"50000", "accountStatus":"83", "paymentRating":"5", "paymentHistoryProfile":"00??????????????????????????????????", "currentBalance":"5000", "amountPastDue":"1000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"11.5", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"ICICI Bank", "portfolioType":"I", "accountType":"03", "openDate":"20060122", "highestCreditOrOriginalLoanAmount":"110000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"44??????????????????????????????????", "currentBalance":"17000", "amountPastDue":"13000", "dateReported":"20201228", "occupationCode":"S", "rateOfInterest":"8.24", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Aditya Brila Finance Limited", "portfolioType":"I", "accountType":"53", "openDate":"20060119", "highestCreditOrOriginalLoanAmount":"95000", "accountStatus":"78", "paymentRating":"2", "paymentHistoryProfile":"33??????????????????????????????????", "currentBalance":"14000", "amountPastDue":"10000", "dateReported":"20201228", "occupationCode":"N", "rateOfInterest":"14", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Bajaj Finance", "portfolioType":"I", "accountType":"04", "openDate":"20060113", "highestCreditOrOriginalLoanAmount":"65000", "accountStatus":"11", "paymentRating":"0", "paymentHistoryProfile":"11??????????????????????????????????", "currentBalance":"8000", "amountPastDue":"0", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Epifi Capital", "portfolioType":"R", "accountType":"10", "openDate":"20060116", "creditLimitAmount":"500000", "highestCreditOrOriginalLoanAmount":"80000", "accountStatus":"82", "paymentRating":"4", "paymentHistoryProfile":"22??????????????????????????????????", "currentBalance":"11000", "amountPastDue":"7000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}, {"subscriberName":"Mannapuram Finance", "portfolioType":"I", "accountType":"06", "openDate":"20060125", "highestCreditOrOriginalLoanAmount":"125000", "accountStatus":"71", "paymentRating":"1", "paymentHistoryProfile":"55??????????????????????????????????", "currentBalance":"20000", "amountPastDue":"16000", "dateReported":"20201228", "occupationCode":"N", "repaymentTenure":"0", "dateOfAddition":"20201028", "currencyCode":"INR", "accountHolderTypeCode":"1"}]}, "matchResult":{"exactMatch":"Y"}, "totalCapsSummary":{"totalCapsLast7Days":"0", "totalCapsLast30Days":"0", "totalCapsLast90Days":"0", "totalCapsLast180Days":"0"}, "nonCreditCaps":{"nonCreditCapsSummary":{"nonCreditCapsLast7Days":"4", "nonCreditCapsLast30Days":"4", "nonCreditCapsLast90Days":"4", "nonCreditCapsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "FinancePurpose":"10", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"Muthoot finance", "FinancePurpose":"2", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"HDFC", "FinancePurpose":"8", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}, {"SubscriberName":"SBI", "FinancePurpose":"1", "capsApplicantDetails":{}, "capsOtherDetails":{}, "capsApplicantAddressDetails":{}, "capsApplicantAdditionalAddressDetails":{}}]}, "score":{"bureauScore":"746", "bureauScoreConfidenceLevel":"H"}, "segment":{}, "caps":{"capsSummary":{"capsLast7Days":"4", "capsLast30Days":"4", "capsLast90Days":"4", "capsLast180Days":"4"}, "capsApplicationDetailsArray":[{"SubscriberName":"Bajaj finance", "DateOfRequest":"20250709", "EnquiryReason":"10", "FinancePurpose":"10"}, {"SubscriberName":"Muthoot finance", "DateOfRequest":"20250709", "EnquiryReason":"2", "FinancePurpose":"2"}, {"SubscriberName":"HDFC", "DateOfRequest":"20250709", "EnquiryReason":"8", "FinancePurpose":"8"}, {"SubscriberName":"SBI", "DateOfRequest":"20250709", "EnquiryReason":"1", "FinancePurpose":"1"}]}}, "vendor":"EXPERIAN"}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/1313131313/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240521", 10 | "reportTime": "114055" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "0", 15 | "amountFinanced": "0", 16 | "durationOfAgreement": "0", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "19881110" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "3", 26 | "creditAccountActive": "2", 27 | "creditAccountDefault": "0", 28 | "creditAccountClosed": "1", 29 | "cadSuitFiledCurrentBalance": "0" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "0", 33 | "outstandingBalanceSecuredPercentage": "0", 34 | "outstandingBalanceUnSecured": "65000", 35 | "outstandingBalanceUnSecuredPercentage": "100", 36 | "outstandingBalanceAll": "65000" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "HDFC Bank", 42 | "portfolioType": "R", 43 | "accountType": "10", 44 | "openDate": "20180612", 45 | "creditLimitAmount": "750000", 46 | "highestCreditOrOriginalLoanAmount": "750000", 47 | "accountStatus": "11", 48 | "paymentRating": "0", 49 | "paymentHistoryProfile": "000000000000000000000000000000000000", 50 | "currentBalance": "25000", 51 | "amountPastDue": "0", 52 | "dateReported": "20240502", 53 | "occupationCode": "S", 54 | "rateOfInterest": "18.0", 55 | "repaymentTenure": "0", 56 | "dateOfAddition": "20180612", 57 | "currencyCode": "INR", 58 | "accountHolderTypeCode": "1" 59 | }, 60 | { 61 | "subscriberName": "American Express", 62 | "portfolioType": "R", 63 | "accountType": "10", 64 | "openDate": "20200920", 65 | "creditLimitAmount": "1000000", 66 | "highestCreditOrOriginalLoanAmount": "1000000", 67 | "accountStatus": "11", 68 | "paymentRating": "0", 69 | "paymentHistoryProfile": "000000000000000000000000000000000000", 70 | "currentBalance": "40000", 71 | "amountPastDue": "0", 72 | "dateReported": "20240505", 73 | "occupationCode": "S", 74 | "rateOfInterest": "15.5", 75 | "repaymentTenure": "0", 76 | "dateOfAddition": "20200920", 77 | "currencyCode": "INR", 78 | "accountHolderTypeCode": "1" 79 | }, 80 | { 81 | "subscriberName": "State Bank of India", 82 | "portfolioType": "I", 83 | "accountType": "04", 84 | "openDate": "20100715", 85 | "highestCreditOrOriginalLoanAmount": "850000", 86 | "accountStatus": "13", 87 | "paymentRating": "0", 88 | "paymentHistoryProfile": "000000000000000000000000000000000000", 89 | "currentBalance": "0", 90 | "amountPastDue": "0", 91 | "dateReported": "20170801", 92 | "occupationCode": "S", 93 | "rateOfInterest": "11.25", 94 | "repaymentTenure": "84", 95 | "dateOfAddition": "20100715", 96 | "currencyCode": "INR", 97 | "accountHolderTypeCode": "1" 98 | } 99 | ] 100 | }, 101 | "matchResult": { 102 | "exactMatch": "Y" 103 | }, 104 | "totalCapsSummary": { 105 | "totalCapsLast7Days": "0", 106 | "totalCapsLast30Days": "0", 107 | "totalCapsLast90Days": "0", 108 | "totalCapsLast180Days": "0" 109 | }, 110 | "nonCreditCaps": { 111 | "nonCreditCapsSummary": { 112 | "nonCreditCapsLast7Days": "0", 113 | "nonCreditCapsLast30Days": "0", 114 | "nonCreditCapsLast90Days": "0", 115 | "nonCreditCapsLast180Days": "0" 116 | }, 117 | "capsApplicationDetailsArray": [] 118 | }, 119 | "score": { 120 | "bureauScore": "795", 121 | "bureauScoreConfidenceLevel": "H" 122 | }, 123 | "segment": {}, 124 | "caps": { 125 | "capsSummary": { 126 | "capsLast7Days": "0", 127 | "capsLast30Days": "0", 128 | "capsLast90Days": "0", 129 | "capsLast180Days": "0" 130 | }, 131 | "capsApplicationDetailsArray": [] 132 | } 133 | }, 134 | "vendor": "EXPERIAN" 135 | } 136 | ] 137 | } -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | "html/template" 7 | "log" 8 | "net/http" 9 | 10 | "github.com/mark3labs/mcp-go/mcp" 11 | "github.com/mark3labs/mcp-go/server" 12 | 13 | "github.com/epifi/fi-mcp-lite/middlewares" 14 | "github.com/epifi/fi-mcp-lite/pkg" 15 | ) 16 | 17 | var authMiddleware *middlewares.AuthMiddleware 18 | 19 | func main() { 20 | authMiddleware = middlewares.NewAuthMiddleware() 21 | s := server.NewMCPServer( 22 | "Hackathon MCP", 23 | "0.1.0", 24 | // Notifies clients when new tools gets added or any changes in tools 25 | server.WithInstructions("A financial portfolio management MCP server that provides secure access to users' financial data through Fi Money, a financial hub for all things money. This MCP server enables users to:\n- Access comprehensive net worth analysis with asset/liability breakdowns\n- Retrieve detailed transaction histories for mutual funds and Employee Provident Fund accounts\n- View credit reports with scores, loan details, and account histories, this also contains user's date of birth that can be used for calculating their age\n\nIf the person asks, you can tell about Fi Money that it is money management platform that offers below services in partnership with regulated entities:\n\nAVAILABLE SERVICES:\n- Digital savings account with zero Forex cards\n- Invest in Indian Mutual funds, US Stocks (partnership with licensed brokers), Smart and Fixed Deposits.\n- Instant Personal Loans \n- Faster UPI and Bank Transfers payments\n- Credit score monitoring and reports\n\nIMPORTANT LIMITATIONS:\n- This MCP server retrieves only actual user data via Net worth tracker and based on consent provided by the user and does not generate hypothetical or estimated financial information\n- In this version of the MCP server, user's historical bank transactions, historical stocks transaction data, salary (unless categorically declared) is not present. Don't assume these data points for any kind of analysis.\n\nCRITICAL INSTRUCTIONS FOR FINANCIAL DATA:\n\n1. DATA BOUNDARIES: Only provide information that exists in the user's Fi Money Net worth tracker. Never estimate, extrapolate, or generate hypothetical financial data.\n\n2. SPENDING ANALYSIS: If user asks about spending patterns, categories, or analysis tell the user we currently don't offer that data through the MCP:\n - For detailed spending insights, direct them to: \"For comprehensive spending analysis and categorization, please use the Fi Money mobile app which provides detailed spending insights and budgeting tools.\"\n\n3. MISSING DATA HANDLING: If requested data is not available:\n - Clearly state what data is missing\n - Explain how user can connect additional accounts in Fi Money app\n - Never fill gaps with estimated or generic information\n"), 26 | server.WithToolCapabilities(true), 27 | server.WithResourceCapabilities(true, true), 28 | server.WithLogging(), 29 | server.WithToolHandlerMiddleware(authMiddleware.AuthMiddleware), 30 | ) 31 | 32 | // Register tools from pkg.ToolList 33 | for _, tool := range pkg.ToolList { 34 | s.AddTool(mcp.NewTool(tool.Name, mcp.WithDescription(tool.Description)), dummyHandler) 35 | } 36 | 37 | // Configure streamable HTTP server with proper endpoints 38 | httpMux := http.NewServeMux() 39 | httpMux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) 40 | streamableServer := server.NewStreamableHTTPServer(s, 41 | server.WithEndpointPath("/stream"), 42 | ) 43 | httpMux.Handle("/mcp/", streamableServer) 44 | httpMux.HandleFunc("/mockWebPage", webPageHandler) 45 | httpMux.HandleFunc("/login", loginHandler) 46 | port := pkg.GetPort() 47 | log.Println("starting server on port:", port) 48 | if servErr := http.ListenAndServe(fmt.Sprintf(":%s", port), httpMux); servErr != nil { 49 | log.Fatalln("error starting server", servErr) 50 | } 51 | } 52 | 53 | func dummyHandler(_ context.Context, _ mcp.CallToolRequest) (*mcp.CallToolResult, error) { 54 | return mcp.NewToolResultText("dummy handler"), nil 55 | } 56 | 57 | func webPageHandler(w http.ResponseWriter, r *http.Request) { 58 | sessionId := r.URL.Query().Get("sessionId") 59 | if sessionId == "" { 60 | http.Error(w, "sessionId is required", http.StatusBadRequest) 61 | return 62 | } 63 | 64 | tmpl, err := template.ParseFiles("static/login.html") 65 | if err != nil { 66 | http.Error(w, err.Error(), http.StatusInternalServerError) 67 | return 68 | } 69 | 70 | data := struct { 71 | SessionId string 72 | AllowedMobileNumbers []string 73 | }{ 74 | SessionId: sessionId, 75 | AllowedMobileNumbers: pkg.GetAllowedMobileNumbers(), 76 | } 77 | 78 | err = tmpl.Execute(w, data) 79 | if err != nil { 80 | http.Error(w, err.Error(), http.StatusInternalServerError) 81 | } 82 | } 83 | 84 | func loginHandler(w http.ResponseWriter, r *http.Request) { 85 | if r.Method != http.MethodPost { 86 | http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) 87 | return 88 | } 89 | 90 | sessionId := r.FormValue("sessionId") 91 | phoneNumber := r.FormValue("phoneNumber") 92 | 93 | if sessionId == "" || phoneNumber == "" { 94 | http.Error(w, "sessionId and phoneNumber are required", http.StatusBadRequest) 95 | return 96 | } 97 | 98 | authMiddleware.AddSession(sessionId, phoneNumber) 99 | 100 | tmpl, err := template.ParseFiles("static/login_successful.html") 101 | if err != nil { 102 | http.Error(w, err.Error(), http.StatusInternalServerError) 103 | return 104 | } 105 | 106 | err = tmpl.Execute(w, nil) 107 | if err != nil { 108 | http.Error(w, err.Error(), http.StatusInternalServerError) 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240521", 10 | "reportTime": "121545" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "01", 15 | "amountFinanced": "550000", 16 | "durationOfAgreement": "60", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "19870320" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "3", 26 | "creditAccountActive": "3", 27 | "creditAccountDefault": "0", 28 | "creditAccountClosed": "0", 29 | "cadSuitFiledCurrentBalance": "0" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "542000", 33 | "outstandingBalanceSecuredPercentage": "95", 34 | "outstandingBalanceUnSecured": "30000", 35 | "outstandingBalanceUnSecuredPercentage": "5", 36 | "outstandingBalanceAll": "572000" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "HDFC Bank", 42 | "portfolioType": "I", 43 | "accountType": "01", 44 | "openDate": "20240415", 45 | "highestCreditOrOriginalLoanAmount": "550000", 46 | "accountStatus": "11", 47 | "paymentRating": "0", 48 | "paymentHistoryProfile": "000000000000000000000000000000000000", 49 | "currentBalance": "542000", 50 | "amountPastDue": "0", 51 | "dateReported": "20240510", 52 | "occupationCode": "S", 53 | "rateOfInterest": "9.10", 54 | "repaymentTenure": "60", 55 | "dateOfAddition": "20240415", 56 | "currencyCode": "INR", 57 | "accountHolderTypeCode": "1" 58 | }, 59 | { 60 | "subscriberName": "SBI Card", 61 | "portfolioType": "R", 62 | "accountType": "10", 63 | "openDate": "20160210", 64 | "creditLimitAmount": "120000", 65 | "highestCreditOrOriginalLoanAmount": "120000", 66 | "accountStatus": "11", 67 | "paymentRating": "0", 68 | "paymentHistoryProfile": "000000000000000000000000000000000000", 69 | "currentBalance": "18000", 70 | "amountPastDue": "0", 71 | "dateReported": "20240503", 72 | "occupationCode": "S", 73 | "rateOfInterest": "20.0", 74 | "repaymentTenure": "0", 75 | "dateOfAddition": "20160210", 76 | "currencyCode": "INR", 77 | "accountHolderTypeCode": "1" 78 | }, 79 | { 80 | "subscriberName": "ICICI Bank", 81 | "portfolioType": "R", 82 | "accountType": "10", 83 | "openDate": "20210525", 84 | "creditLimitAmount": "80000", 85 | "highestCreditOrOriginalLoanAmount": "80000", 86 | "accountStatus": "11", 87 | "paymentRating": "0", 88 | "paymentHistoryProfile": "000000000000000000000000000000000000", 89 | "currentBalance": "12000", 90 | "amountPastDue": "0", 91 | "dateReported": "20240428", 92 | "occupationCode": "S", 93 | "rateOfInterest": "21.5", 94 | "repaymentTenure": "0", 95 | "dateOfAddition": "20210525", 96 | "currencyCode": "INR", 97 | "accountHolderTypeCode": "1" 98 | } 99 | ] 100 | }, 101 | "matchResult": { 102 | "exactMatch": "Y" 103 | }, 104 | "totalCapsSummary": { 105 | "totalCapsLast7Days": "0", 106 | "totalCapsLast30Days": "1", 107 | "totalCapsLast90Days": "1", 108 | "totalCapsLast180Days": "1" 109 | }, 110 | "nonCreditCaps": { 111 | "nonCreditCapsSummary": { 112 | "nonCreditCapsLast7Days": "0", 113 | "nonCreditCapsLast30Days": "1", 114 | "nonCreditCapsLast90Days": "1", 115 | "nonCreditCapsLast180Days": "1" 116 | }, 117 | "capsApplicationDetailsArray": [ 118 | { 119 | "SubscriberName": "HDFC Bank", 120 | "FinancePurpose": "01", 121 | "capsApplicantDetails": {}, 122 | "capsOtherDetails": {}, 123 | "capsApplicantAddressDetails": {}, 124 | "capsApplicantAdditionalAddressDetails": {} 125 | } 126 | ] 127 | }, 128 | "score": { 129 | "bureauScore": "772", 130 | "bureauScoreConfidenceLevel": "H" 131 | }, 132 | "segment": {}, 133 | "caps": { 134 | "capsSummary": { 135 | "capsLast7Days": "0", 136 | "capsLast30Days": "1", 137 | "capsLast90Days": "1", 138 | "capsLast180Days": "1" 139 | }, 140 | "capsApplicationDetailsArray": [ 141 | { 142 | "SubscriberName": "HDFC Bank", 143 | "DateOfRequest": "20240412", 144 | "EnquiryReason": "01", 145 | "FinancePurpose": "01" 146 | } 147 | ] 148 | } 149 | }, 150 | "vendor": "EXPERIAN" 151 | } 152 | ] 153 | } -------------------------------------------------------------------------------- /static/login_successful.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Fi MCP - Authentication Successful 7 | 148 | 149 | 150 |
151 | 156 | 157 |
158 |
159 | 160 | 161 | 162 |
163 | 164 |

Login Successful!

165 |

You can now close this window and return to your application.

166 | 167 |
168 |
What's Next?
169 |
170 | Open your preferred AI assistant and start asking questions about your financial portfolio, investments, and net worth. Your data is now securely connected! 171 |
172 |
173 |
174 |
175 | 176 | 177 | -------------------------------------------------------------------------------- /test_data_dir/7777777777/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240521", 10 | "reportTime": "104515" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "5", 15 | "amountFinanced": "0", 16 | "durationOfAgreement": "0", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "19930515" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "3", 26 | "creditAccountActive": "3", 27 | "creditAccountDefault": "1", 28 | "creditAccountClosed": "0", 29 | "cadSuitFiledCurrentBalance": "125000" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "110000", 33 | "outstandingBalanceSecuredPercentage": "36", 34 | "outstandingBalanceUnSecured": "196000", 35 | "outstandingBalanceUnSecuredPercentage": "64", 36 | "outstandingBalanceAll": "306000" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "Axis Bank", 42 | "portfolioType": "R", 43 | "accountType": "10", 44 | "openDate": "20220120", 45 | "creditLimitAmount": "75000", 46 | "highestCreditOrOriginalLoanAmount": "75000", 47 | "accountStatus": "83", 48 | "paymentRating": "4", 49 | "paymentHistoryProfile": "000000000000000000000000000000000021", 50 | "currentBalance": "71000", 51 | "amountPastDue": "8500", 52 | "dateReported": "20240430", 53 | "occupationCode": "S", 54 | "rateOfInterest": "24.5", 55 | "repaymentTenure": "0", 56 | "dateOfAddition": "20220120", 57 | "currencyCode": "INR", 58 | "accountHolderTypeCode": "1" 59 | }, 60 | { 61 | "subscriberName": "Bajaj Finserv", 62 | "portfolioType": "I", 63 | "accountType": "05", 64 | "openDate": "20230310", 65 | "highestCreditOrOriginalLoanAmount": "150000", 66 | "accountStatus": "93", 67 | "paymentRating": "7", 68 | "paymentHistoryProfile": "000000000000000000000000000000000332", 69 | "currentBalance": "125000", 70 | "amountPastDue": "12000", 71 | "dateReported": "20240428", 72 | "occupationCode": "S", 73 | "rateOfInterest": "18.0", 74 | "repaymentTenure": "36", 75 | "dateOfAddition": "20230310", 76 | "currencyCode": "INR", 77 | "accountHolderTypeCode": "1" 78 | }, 79 | { 80 | "subscriberName": "HDFC Bank", 81 | "portfolioType": "I", 82 | "accountType": "01", 83 | "openDate": "20210815", 84 | "highestCreditOrOriginalLoanAmount": "500000", 85 | "accountStatus": "11", 86 | "paymentRating": "0", 87 | "paymentHistoryProfile": "000000000000000000000000000000001000", 88 | "currentBalance": "110000", 89 | "amountPastDue": "0", 90 | "dateReported": "20240505", 91 | "occupationCode": "S", 92 | "rateOfInterest": "9.5", 93 | "repaymentTenure": "60", 94 | "dateOfAddition": "20210815", 95 | "currencyCode": "INR", 96 | "accountHolderTypeCode": "1" 97 | } 98 | ] 99 | }, 100 | "matchResult": { 101 | "exactMatch": "Y" 102 | }, 103 | "totalCapsSummary": { 104 | "totalCapsLast7Days": "1", 105 | "totalCapsLast30Days": "2", 106 | "totalCapsLast90Days": "4", 107 | "totalCapsLast180Days": "4" 108 | }, 109 | "nonCreditCaps": { 110 | "nonCreditCapsSummary": { 111 | "nonCreditCapsLast7Days": "1", 112 | "nonCreditCapsLast30Days": "2", 113 | "nonCreditCapsLast90Days": "4", 114 | "nonCreditCapsLast180Days": "4" 115 | }, 116 | "capsApplicationDetailsArray": [ 117 | { 118 | "SubscriberName": "Paytm Postpaid", 119 | "FinancePurpose": "35", 120 | "capsApplicantDetails": {}, 121 | "capsOtherDetails": {}, 122 | "capsApplicantAddressDetails": {}, 123 | "capsApplicantAdditionalAddressDetails": {} 124 | }, 125 | { 126 | "SubscriberName": "IDFC First Bank", 127 | "FinancePurpose": "10", 128 | "capsApplicantDetails": {}, 129 | "capsOtherDetails": {}, 130 | "capsApplicantAddressDetails": {}, 131 | "capsApplicantAdditionalAddressDetails": {} 132 | } 133 | ] 134 | }, 135 | "score": { 136 | "bureauScore": "621", 137 | "bureauScoreConfidenceLevel": "M" 138 | }, 139 | "segment": {}, 140 | "caps": { 141 | "capsSummary": { 142 | "capsLast7Days": "1", 143 | "capsLast30Days": "2", 144 | "capsLast90Days": "4", 145 | "capsLast180Days": "4" 146 | }, 147 | "capsApplicationDetailsArray": [ 148 | { 149 | "SubscriberName": "Paytm Postpaid", 150 | "DateOfRequest": "20240518", 151 | "EnquiryReason": "35", 152 | "FinancePurpose": "35" 153 | }, 154 | { 155 | "SubscriberName": "IDFC First Bank", 156 | "DateOfRequest": "20240425", 157 | "EnquiryReason": "10", 158 | "FinancePurpose": "10" 159 | }, 160 | { 161 | "SubscriberName": "OneCard", 162 | "DateOfRequest": "20240310", 163 | "EnquiryReason": "10", 164 | "FinancePurpose": "10" 165 | }, 166 | { 167 | "SubscriberName": "Navi Finance", 168 | "DateOfRequest": "20240302", 169 | "EnquiryReason": "05", 170 | "FinancePurpose": "05" 171 | } 172 | ] 173 | } 174 | }, 175 | "vendor": "EXPERIAN" 176 | } 177 | ] 178 | } -------------------------------------------------------------------------------- /test_data_dir/2222222222/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...","bankTransactions":[{"bank":"HDFC Bank","txns":[["80085","UPI-SHEETAL RAVINDRA DA-SHEETAL.DAMBAL@OKSBI-SBIN0010411-109209224698-SUFYAN","2025-07-09",1,"CARD_PAYMENT","-79109"],["80677","UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-009400589368-CREDIT CARD BILL P","2025-07-09",2,"FT","1568"],["80267","UPI-RAVISHANKAR-Q78015288@YBL-YESB0YBLUPI-123535728297-PAYMENT FROM PHONE","2025-07-09",1,"OTHERS","-79180"],["80156","UPI-HARDIK AGRAWAL-9971488189.NIYO@IDFCBANK-IDFB0040101-031108651605-UPI","2025-07-09",2,"OTHERS","976"],["80565","UPI-UBER INDIA SYSTEMS P-UBERRIDES@HDFCBANK-HDFC0000499-105117853141-CHARGE","2025-07-09",2,"OTHERS","1087"],["80016","UPI-ABDESH KUMAR YADAV-PAYTMQR28100505010117UM15XIYV9E@PAYTM-PYTM0123456-120209292799-PAYMENT FROM PHONE","2025-07-09",1,"CASH","-79478"],["80768","CREDIT INTEREST CAPITALISED","2025-07-09",2,"OTHERS","538"],["80287","UPI-TREND AUTOMOBILES-105302393@CNRB-CNRB0001074-035222057565-PAYMENT FROM PHONE","2025-07-09",1,"CASH","-80230"],["80083","UPI-MAHESH S-Q60573690@YBL-KKBK0008043-104558209248-PAYMENT FROM PHONE","2025-07-09",2,"ATM","57"],["80984","UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-101057836776-PAYMENT FROM PHONE","2025-07-09",1,"CASH","-80026"],["80994","50200015847022SALAUG 20 108621","2025-07-07",1,"CARD_PAYMENT","-75247"],["80741","IMPS-018422244664-ADITYA BIRLA SUN LIF-HDFC-XXXXXXXX3578-RD3192534-1038644104","2025-07-07",2,"CASH","5494"],["80326","UPI-CRED-CRED@AXISB-UTIB0000114-103219881988-CREDIT CARD BILL P","2025-07-07",1,"CASH","-75231"],["80978","UPI-PARSURAMPURAM SRINIV-6370242870@YBL-ORBC0101157-031627719147-PAYMENT FROM PHONE","2025-07-07",2,"CARD_PAYMENT","5747"],["80769","UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-023113790606-CREDIT CARD BILL P","2025-07-07",1,"CASH","-75437"],["80532","UPI-PINTU GUPTA-PAYTMQR281005050101LK22YFGX0QRX@PAYTM-PYTM0123456-127404613871-PAYMENT FROM PHONE","2025-07-07",2,"CARD_PAYMENT","5095"],["80278","NWD-438624XXXXXX3427-08887405-BANGALORE MET","2025-07-07",1,"FT","-75138"],["80470","UPI-EURONETGPAY-EURONETGPAY.PAY@ICICI-ICIC0000001-035512416953-UPI","2025-07-07",2,"ATM","5332"],["80806","CREDIT INTEREST CAPITALISED","2025-07-07",1,"FT","-75648"],["80788","UPI-MD JAHANGIR-BHARATPE09892849123@YESBANKLTD-YESB0000105-102038302659-PAYMENT FROM PHONE","2025-07-07",2,"CARD_PAYMENT","5140"]]},{"bank":"HDFC Bank","txns":[["80072","UPI-MR MOHAMMED ZAHEERUL-8884442498@YBL-IDIB000B041-118513918994-PAYMENT FROM PHONE","2025-07-09",2,"ATM","3676"],["80558","UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-104264587845-PAYMENT FROM PHONE","2025-07-09",1,"OTHERS","-76396"],["80408","UPI-ACT BROADBAND-PAYTM-ACTBAN4@PAYTM-PYTM0123456-016839849023-PAYMENT FOR SUBSCR","2025-07-09",2,"CARD_PAYMENT","4162"],["80415","UPI-CRED-CRED@AXISB-UTIB0000114-030309272514-CREDIT CARD BILL P","2025-07-09",1,"CARD_PAYMENT","-76246"],["80273","UPI-SATYA NARAYAN BEHER-8328853083@YBL-SBIN0002112-126364354416-PAYMENT FROM PHONE","2025-07-09",2,"CARD_PAYMENT","4169"],["80631","CHQ PAID-MICR CTS-NO-SR POST MASTER HPO","2025-07-09",1,"ATM","-76104"],["80545","UPI-SRI BRAHMALINGESHWAR-PAYTMQR28100505010113CV8CXTZUHG@PAYTM-PYTM0123456-033363246388-PAYMENT FROM PHONE","2025-07-09",2,"FT","4527"],["80870","UPI-BHARATPEMERCHANT-BHARATPE.0850487682@ICICI-ICIC0000001-031703603873-PAYMENT FROM PHONE","2025-07-09",1,"OTHERS","-76018"],["80208","UPI-CRED-CRED@AXISB-UTIB0000114-112115658127-PAYMENT ON CRED","2025-07-09",2,"CARD_PAYMENT","4852"],["80581","UPI-SIDDHANT KUMAR-SIDDHANTKUMAR171@DBS-DBSS0IN0811-101012491647-AMAZON NORD PAYMEN","2025-07-09",1,"ATM","-75356"],["80203","UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-027200895296-CREDIT CARD BILL P","2025-07-07",1,"OTHERS","-74684"],["80547","UPI-ACT BROADBAND-PAYTM-ACTBAN4@PAYTM-PYTM0123456-016839849023-PAYMENT FOR SUBSCR","2025-07-07",2,"OTHERS","5863"],["80935","SALARY FROM MEDISYNC HEALTH MANAGEMENT SERVICES P L","2025-07-07",1,"OTHERS","-75168"],["80687","UPI-SANJAY AGRAWAL-SANJAY30AGRAWAL@OKICICI-ICIC0000274-100922596493-TRANSFER","2025-07-07",2,"CASH","5519"],["80304","NEFT CR-CITI0100000-FTMF REDEMPTION ACCOUNT-PRATEEK PATNAIK-CITIN20100690483","2025-07-07",2,"CARD_PAYMENT","5767"],["80713","UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-101783205806-PAYMENT FROM PHONE","2025-07-07",1,"OTHERS","-74537"],["80572","UPI-PHONEPE-BILLDESKPP@YBL-YESB0YBLUPI-104831200709-PAYMENT FROM PHONE","2025-07-07",1,"CASH","-74676"],["80852","UPI-CRED-CREDCC@YESBANK-YESB0000022-018492205316-CREDIT CARD BILL P","2025-07-07",2,"FT","6176"],["80538","UPI-PRADIP KUMAR -PADDI6877@OKHDFCBANK-SBIN0040171-122195037544-UPI","2025-07-07",2,"OTHERS","5896"],["80448","INST-ALERT CHG INC GST OCT-DEC2020-MIR2101402042013","2025-07-07",1,"CARD_PAYMENT","-74642"]]},{"bank":"HDFC Bank","txns":[["80559","UPI-AISHWARYA MINI MART-Q36365093@YBL-YESB0YBLUPI-104642349580-PAYMENT FROM PHONE","2025-07-09",1,"OTHERS","-77324"],["80805","ACH C- TCS1STINTDIV310720-C2003055611208","2025-07-09",2,"ATM","3481"],["80050","UPI-DUNZO DIGITAL PRIVAT-DUNZO1.PAYU@INDUS-INDB0002201-104767620300-PAYMENT FROM PHONE","2025-07-09",1,"CARD_PAYMENT","-77614"],["80849","UPI-PHONEPE-BILLDESKPP@YBL-YESB0YBLUPI-022533819900-PAYMENT FOR CATEGO","2025-07-09",2,"FT","3235"],["80309","UPI-SANJAY AGRAWAL-SANJAY30AGRAWAL@OKICICI-ICIC0000274-100922596493-TRANSFER","2025-07-09",2,"CARD_PAYMENT","2436"],["80037","UPI-SAFE GOLD-SAFEGOLD@YBL-YESB0YBLUPI-016220690358-PAYMENT FOR CATEGO","2025-07-09",1,"CARD_PAYMENT","-77873"],["80941","UPI-DIVYA DAS-DIVYADAS91@OKHDFCBANK-HDFC0002777-016519304334-UPI","2025-07-09",2,"OTHERS","2164"],["80824","UPI-SUDHANVA MADHURAO RA-7760615177@YBL-HDFC0000877-019884154921-PAYMENT FROM PHONE","2025-07-09",1,"CARD_PAYMENT","-78777"],["80632","UPI-OLA-OLAONLINE@YBL-YESB0YBLUPI-105086855192-PAYMENT FROM PHONE","2025-07-09",1,"CARD_PAYMENT","-78244"],["80291","UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-104139133337-PAYMENT FROM PHONE","2025-07-09",2,"CARD_PAYMENT","2047"],["80135","UPI-MR PRATEEK PATNAIK-PATNAIK.PRATEEK@YBL-IDIB000S176-033939878475-PAYMENT FROM PHONE","2025-07-07",2,"ATM","9964"],["80544","UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-012016383521-CREDIT CARD BILL P","2025-07-07",1,"CARD_PAYMENT","-70171"],["80939","UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-009400741981-CREDIT CARD BILL P","2025-07-07",2,"CASH","10373"],["80652","UPI-SUMAN SWAROOP-SUMANSWAR12@OKSBI-SBIN0006652-006006641672-PETROL","2025-07-07",1,"CARD_PAYMENT","-70566"],["80657","UPI-GIRRAJ MEDICAL STORE-PAYTMQR28100505010111A10BLF7BGA@PAYTM-PYTM0123456-033319425613-UPI","2025-07-07",2,"CARD_PAYMENT","10086"],["80772","UPI-SPORTA TECHNOLOGIES -FANCODE.PAYU@INDUS-INDB0002201-036509119466-UPI TRANSACTION","2025-07-07",1,"CASH","-70571"],["80260","UPI-HARDIK AGRAWAL-HARDIK0406AGRAWAL@OKSBI-SBIN0030261-028317839465-SAVINGS","2025-07-07",1,"FT","-69933"],["80134","UPI-SHANTI MANTRI-9652458674@YBL-SBIN0020380-101654249219-PAYMENT FROM PHONE","2025-07-07",2,"CASH","10201"],["80776","UPI-FX MART PRIVATE LIMI-FXM@YBL-YESB0YBLUPI-010720599609-WALLET TOPUP","2025-07-07",2,"CARD_PAYMENT","10327"],["80163","UPI-RAMA SUDHAKAR PATNAI-9414077884@YBL-SBIN0020702-104321119119-PAYMENT FROM PHONE","2025-07-07",1,"ATM","-70449"]]}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_bank_transactions.json: -------------------------------------------------------------------------------- 1 | {"schemaDescription":"A list of bank transactions. Each 'txns' field is a list of data arrays with schema: [transactionAmount, transactionNarration, transactionDate, transactionType (1 for CREDIT, 2 for DEBIT, 3 for OPENING, 4 for INTEREST, 5 for TDS, 6 for INSTALLMENT, 7 for CLOSING and 8 for OTHERS), transactionMode, currentBalance].\n We currently have have only last two month transaction, older transaction are coming soon...", "bankTransactions":[{"bank":"HDFC Bank", "txns":[["80559", "UPI-AISHWARYA MINI MART-Q36365093@YBL-YESB0YBLUPI-104642349580-PAYMENT FROM PHONE", "2025-07-09", 1, "OTHERS", "-77324"], ["80805", "ACH C- TCS1STINTDIV310720-C2003055611208", "2025-07-09", 2, "ATM", "3481"], ["80050", "UPI-DUNZO DIGITAL PRIVAT-DUNZO1.PAYU@INDUS-INDB0002201-104767620300-PAYMENT FROM PHONE", "2025-07-09", 1, "CARD_PAYMENT", "-77614"], ["80849", "UPI-PHONEPE-BILLDESKPP@YBL-YESB0YBLUPI-022533819900-PAYMENT FOR CATEGO", "2025-07-09", 2, "FT", "3235"], ["80309", "UPI-SANJAY AGRAWAL-SANJAY30AGRAWAL@OKICICI-ICIC0000274-100922596493-TRANSFER", "2025-07-09", 2, "CARD_PAYMENT", "2436"], ["80037", "UPI-SAFE GOLD-SAFEGOLD@YBL-YESB0YBLUPI-016220690358-PAYMENT FOR CATEGO", "2025-07-09", 1, "CARD_PAYMENT", "-77873"], ["80941", "UPI-DIVYA DAS-DIVYADAS91@OKHDFCBANK-HDFC0002777-016519304334-UPI", "2025-07-09", 2, "OTHERS", "2164"], ["80824", "UPI-SUDHANVA MADHURAO RA-7760615177@YBL-HDFC0000877-019884154921-PAYMENT FROM PHONE", "2025-07-09", 1, "CARD_PAYMENT", "-78777"], ["80291", "UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-104139133337-PAYMENT FROM PHONE", "2025-07-09", 2, "CARD_PAYMENT", "2047"], ["80632", "UPI-OLA-OLAONLINE@YBL-YESB0YBLUPI-105086855192-PAYMENT FROM PHONE", "2025-07-09", 1, "CARD_PAYMENT", "-78244"], ["80544", "UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-012016383521-CREDIT CARD BILL P", "2025-07-07", 1, "CARD_PAYMENT", "-70171"], ["80135", "UPI-MR PRATEEK PATNAIK-PATNAIK.PRATEEK@YBL-IDIB000S176-033939878475-PAYMENT FROM PHONE", "2025-07-07", 2, "ATM", "9964"], ["80652", "UPI-SUMAN SWAROOP-SUMANSWAR12@OKSBI-SBIN0006652-006006641672-PETROL", "2025-07-07", 1, "CARD_PAYMENT", "-70566"], ["80939", "UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-009400741981-CREDIT CARD BILL P", "2025-07-07", 2, "CASH", "10373"], ["80772", "UPI-SPORTA TECHNOLOGIES -FANCODE.PAYU@INDUS-INDB0002201-036509119466-UPI TRANSACTION", "2025-07-07", 1, "CASH", "-70571"], ["80657", "UPI-GIRRAJ MEDICAL STORE-PAYTMQR28100505010111A10BLF7BGA@PAYTM-PYTM0123456-033319425613-UPI", "2025-07-07", 2, "CARD_PAYMENT", "10086"], ["80260", "UPI-HARDIK AGRAWAL-HARDIK0406AGRAWAL@OKSBI-SBIN0030261-028317839465-SAVINGS", "2025-07-07", 1, "FT", "-69933"], ["80134", "UPI-SHANTI MANTRI-9652458674@YBL-SBIN0020380-101654249219-PAYMENT FROM PHONE", "2025-07-07", 2, "CASH", "10201"], ["80163", "UPI-RAMA SUDHAKAR PATNAI-9414077884@YBL-SBIN0020702-104321119119-PAYMENT FROM PHONE", "2025-07-07", 1, "ATM", "-70449"], ["80776", "UPI-FX MART PRIVATE LIMI-FXM@YBL-YESB0YBLUPI-010720599609-WALLET TOPUP", "2025-07-07", 2, "CARD_PAYMENT", "10327"]]}, {"bank":"HDFC Bank", "txns":[["80072", "UPI-MR MOHAMMED ZAHEERUL-8884442498@YBL-IDIB000B041-118513918994-PAYMENT FROM PHONE", "2025-07-09", 2, "ATM", "3676"], ["80558", "UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-104264587845-PAYMENT FROM PHONE", "2025-07-09", 1, "OTHERS", "-76396"], ["80408", "UPI-ACT BROADBAND-PAYTM-ACTBAN4@PAYTM-PYTM0123456-016839849023-PAYMENT FOR SUBSCR", "2025-07-09", 2, "CARD_PAYMENT", "4162"], ["80415", "UPI-CRED-CRED@AXISB-UTIB0000114-030309272514-CREDIT CARD BILL P", "2025-07-09", 1, "CARD_PAYMENT", "-76246"], ["80273", "UPI-SATYA NARAYAN BEHER-8328853083@YBL-SBIN0002112-126364354416-PAYMENT FROM PHONE", "2025-07-09", 2, "CARD_PAYMENT", "4169"], ["80631", "CHQ PAID-MICR CTS-NO-SR POST MASTER HPO", "2025-07-09", 1, "ATM", "-76104"], ["80545", "UPI-SRI BRAHMALINGESHWAR-PAYTMQR28100505010113CV8CXTZUHG@PAYTM-PYTM0123456-033363246388-PAYMENT FROM PHONE", "2025-07-09", 2, "FT", "4527"], ["80870", "UPI-BHARATPEMERCHANT-BHARATPE.0850487682@ICICI-ICIC0000001-031703603873-PAYMENT FROM PHONE", "2025-07-09", 1, "OTHERS", "-76018"], ["80208", "UPI-CRED-CRED@AXISB-UTIB0000114-112115658127-PAYMENT ON CRED", "2025-07-09", 2, "CARD_PAYMENT", "4852"], ["80581", "UPI-SIDDHANT KUMAR-SIDDHANTKUMAR171@DBS-DBSS0IN0811-101012491647-AMAZON NORD PAYMEN", "2025-07-09", 1, "ATM", "-75356"], ["80203", "UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-027200895296-CREDIT CARD BILL P", "2025-07-07", 1, "OTHERS", "-74684"], ["80547", "UPI-ACT BROADBAND-PAYTM-ACTBAN4@PAYTM-PYTM0123456-016839849023-PAYMENT FOR SUBSCR", "2025-07-07", 2, "OTHERS", "5863"], ["80935", "SALARY FROM MEDISYNC HEALTH MANAGEMENT SERVICES P L", "2025-07-07", 1, "OTHERS", "-75168"], ["80687", "UPI-SANJAY AGRAWAL-SANJAY30AGRAWAL@OKICICI-ICIC0000274-100922596493-TRANSFER", "2025-07-07", 2, "CASH", "5519"], ["80304", "NEFT CR-CITI0100000-FTMF REDEMPTION ACCOUNT-PRATEEK PATNAIK-CITIN20100690483", "2025-07-07", 2, "CARD_PAYMENT", "5767"], ["80713", "UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-101783205806-PAYMENT FROM PHONE", "2025-07-07", 1, "OTHERS", "-74537"], ["80572", "UPI-PHONEPE-BILLDESKPP@YBL-YESB0YBLUPI-104831200709-PAYMENT FROM PHONE", "2025-07-07", 1, "CASH", "-74676"], ["80852", "UPI-CRED-CREDCC@YESBANK-YESB0000022-018492205316-CREDIT CARD BILL P", "2025-07-07", 2, "FT", "6176"], ["80538", "UPI-PRADIP KUMAR -PADDI6877@OKHDFCBANK-SBIN0040171-122195037544-UPI", "2025-07-07", 2, "OTHERS", "5896"], ["80448", "INST-ALERT CHG INC GST OCT-DEC2020-MIR2101402042013", "2025-07-07", 1, "CARD_PAYMENT", "-74642"]]}, {"bank":"HDFC Bank", "txns":[["80085", "UPI-SHEETAL RAVINDRA DA-SHEETAL.DAMBAL@OKSBI-SBIN0010411-109209224698-SUFYAN", "2025-07-09", 1, "CARD_PAYMENT", "-79109"], ["80677", "UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-009400589368-CREDIT CARD BILL P", "2025-07-09", 2, "FT", "1568"], ["80267", "UPI-RAVISHANKAR-Q78015288@YBL-YESB0YBLUPI-123535728297-PAYMENT FROM PHONE", "2025-07-09", 1, "OTHERS", "-79180"], ["80156", "UPI-HARDIK AGRAWAL-9971488189.NIYO@IDFCBANK-IDFB0040101-031108651605-UPI", "2025-07-09", 2, "OTHERS", "976"], ["80565", "UPI-UBER INDIA SYSTEMS P-UBERRIDES@HDFCBANK-HDFC0000499-105117853141-CHARGE", "2025-07-09", 2, "OTHERS", "1087"], ["80016", "UPI-ABDESH KUMAR YADAV-PAYTMQR28100505010117UM15XIYV9E@PAYTM-PYTM0123456-120209292799-PAYMENT FROM PHONE", "2025-07-09", 1, "CASH", "-79478"], ["80768", "CREDIT INTEREST CAPITALISED", "2025-07-09", 2, "OTHERS", "538"], ["80287", "UPI-TREND AUTOMOBILES-105302393@CNRB-CNRB0001074-035222057565-PAYMENT FROM PHONE", "2025-07-09", 1, "CASH", "-80230"], ["80984", "UPI-SWIGGY-SWIGGY8@YBL-YESB0YBLUPI-101057836776-PAYMENT FROM PHONE", "2025-07-09", 1, "CASH", "-80026"], ["80083", "UPI-MAHESH S-Q60573690@YBL-KKBK0008043-104558209248-PAYMENT FROM PHONE", "2025-07-09", 2, "ATM", "57"], ["80741", "IMPS-018422244664-ADITYA BIRLA SUN LIF-HDFC-XXXXXXXX3578-RD3192534-1038644104", "2025-07-07", 2, "CASH", "5494"], ["80994", "50200015847022SALAUG 20 108621", "2025-07-07", 1, "CARD_PAYMENT", "-75247"], ["80978", "UPI-PARSURAMPURAM SRINIV-6370242870@YBL-ORBC0101157-031627719147-PAYMENT FROM PHONE", "2025-07-07", 2, "CARD_PAYMENT", "5747"], ["80326", "UPI-CRED-CRED@AXISB-UTIB0000114-103219881988-CREDIT CARD BILL P", "2025-07-07", 1, "CASH", "-75231"], ["80532", "UPI-PINTU GUPTA-PAYTMQR281005050101LK22YFGX0QRX@PAYTM-PYTM0123456-127404613871-PAYMENT FROM PHONE", "2025-07-07", 2, "CARD_PAYMENT", "5095"], ["80769", "UPI-DREAMPLUG TECHNOLOGI-CRED@AXISB-UTIB0000114-023113790606-CREDIT CARD BILL P", "2025-07-07", 1, "CASH", "-75437"], ["80278", "NWD-438624XXXXXX3427-08887405-BANGALORE MET", "2025-07-07", 1, "FT", "-75138"], ["80470", "UPI-EURONETGPAY-EURONETGPAY.PAY@ICICI-ICIC0000001-035512416953-UPI", "2025-07-07", 2, "ATM", "5332"], ["80788", "UPI-MD JAHANGIR-BHARATPE09892849123@YESBANKLTD-YESB0000105-102038302659-PAYMENT FROM PHONE", "2025-07-07", 2, "CARD_PAYMENT", "5140"], ["80806", "CREDIT INTEREST CAPITALISED", "2025-07-07", 1, "FT", "-75648"]]}]} 2 | -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_credit_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "creditReports": [ 3 | { 4 | "creditReportData": { 5 | "userMessage": { 6 | "userMessageText": "Normal Response" 7 | }, 8 | "creditProfileHeader": { 9 | "reportDate": "20240521", 10 | "reportTime": "111530" 11 | }, 12 | "currentApplication": { 13 | "currentApplicationDetails": { 14 | "enquiryReason": "0", 15 | "amountFinanced": "0", 16 | "durationOfAgreement": "0", 17 | "currentApplicantDetails": { 18 | "dateOfBirthApplicant": "19900825" 19 | } 20 | } 21 | }, 22 | "creditAccount": { 23 | "creditAccountSummary": { 24 | "account": { 25 | "creditAccountTotal": "6", 26 | "creditAccountActive": "6", 27 | "creditAccountDefault": "0", 28 | "creditAccountClosed": "0", 29 | "cadSuitFiledCurrentBalance": "0" 30 | }, 31 | "totalOutstandingBalance": { 32 | "outstandingBalanceSecured": "4300000", 33 | "outstandingBalanceSecuredPercentage": "93", 34 | "outstandingBalanceUnSecured": "302000", 35 | "outstandingBalanceUnSecuredPercentage": "7", 36 | "outstandingBalanceAll": "4602000" 37 | } 38 | }, 39 | "creditAccountDetails": [ 40 | { 41 | "subscriberName": "State Bank of India", 42 | "portfolioType": "I", 43 | "accountType": "02", 44 | "openDate": "20190410", 45 | "highestCreditOrOriginalLoanAmount": "4000000", 46 | "accountStatus": "11", 47 | "paymentRating": "1", 48 | "paymentHistoryProfile": "000000000000000000000000000000001000", 49 | "currentBalance": "3850000", 50 | "amountPastDue": "0", 51 | "dateReported": "20240501", 52 | "occupationCode": "S", 53 | "rateOfInterest": "8.75", 54 | "repaymentTenure": "240", 55 | "dateOfAddition": "20190410", 56 | "currencyCode": "INR", 57 | "accountHolderTypeCode": "1" 58 | }, 59 | { 60 | "subscriberName": "Punjab National Bank", 61 | "portfolioType": "I", 62 | "accountType": "01", 63 | "openDate": "20220720", 64 | "highestCreditOrOriginalLoanAmount": "700000", 65 | "accountStatus": "11", 66 | "paymentRating": "0", 67 | "paymentHistoryProfile": "000000000000000000000000000000000000", 68 | "currentBalance": "450000", 69 | "amountPastDue": "0", 70 | "dateReported": "20240505", 71 | "occupationCode": "S", 72 | "rateOfInterest": "9.20", 73 | "repaymentTenure": "60", 74 | "dateOfAddition": "20220720", 75 | "currencyCode": "INR", 76 | "accountHolderTypeCode": "1" 77 | }, 78 | { 79 | "subscriberName": "ICICI Bank", 80 | "portfolioType": "R", 81 | "accountType": "10", 82 | "openDate": "20200115", 83 | "creditLimitAmount": "150000", 84 | "highestCreditOrOriginalLoanAmount": "150000", 85 | "accountStatus": "11", 86 | "paymentRating": "2", 87 | "paymentHistoryProfile": "000000000000000000000000000000010100", 88 | "currentBalance": "135000", 89 | "amountPastDue": "6500", 90 | "dateReported": "20240428", 91 | "occupationCode": "S", 92 | "rateOfInterest": "22.0", 93 | "repaymentTenure": "0", 94 | "dateOfAddition": "20200115", 95 | "currencyCode": "INR", 96 | "accountHolderTypeCode": "1" 97 | }, 98 | { 99 | "subscriberName": "HDFC Bank", 100 | "portfolioType": "R", 101 | "accountType": "10", 102 | "openDate": "20180510", 103 | "creditLimitAmount": "100000", 104 | "highestCreditOrOriginalLoanAmount": "100000", 105 | "accountStatus": "11", 106 | "paymentRating": "1", 107 | "paymentHistoryProfile": "000000000000000000000000000000000010", 108 | "currentBalance": "92000", 109 | "amountPastDue": "4800", 110 | "dateReported": "20240429", 111 | "occupationCode": "S", 112 | "rateOfInterest": "21.5", 113 | "repaymentTenure": "0", 114 | "dateOfAddition": "20180510", 115 | "currencyCode": "INR", 116 | "accountHolderTypeCode": "1" 117 | }, 118 | { 119 | "subscriberName": "American Express", 120 | "portfolioType": "R", 121 | "accountType": "10", 122 | "openDate": "20211101", 123 | "creditLimitAmount": "200000", 124 | "highestCreditOrOriginalLoanAmount": "200000", 125 | "accountStatus": "11", 126 | "paymentRating": "0", 127 | "paymentHistoryProfile": "000000000000000000000000000000000000", 128 | "currentBalance": "45000", 129 | "amountPastDue": "0", 130 | "dateReported": "20240502", 131 | "occupationCode": "S", 132 | "rateOfInterest": "19.0", 133 | "repaymentTenure": "0", 134 | "dateOfAddition": "20211101", 135 | "currencyCode": "INR", 136 | "accountHolderTypeCode": "1" 137 | }, 138 | { 139 | "subscriberName": "Tata Capital", 140 | "portfolioType": "I", 141 | "accountType": "06", 142 | "openDate": "20231005", 143 | "highestCreditOrOriginalLoanAmount": "80000", 144 | "accountStatus": "11", 145 | "paymentRating": "0", 146 | "paymentHistoryProfile": "000000000000000000000000000000000000", 147 | "currentBalance": "30000", 148 | "amountPastDue": "0", 149 | "dateReported": "20240504", 150 | "occupationCode": "S", 151 | "rateOfInterest": "16.0", 152 | "repaymentTenure": "12", 153 | "dateOfAddition": "20231005", 154 | "currencyCode": "INR", 155 | "accountHolderTypeCode": "1" 156 | } 157 | ] 158 | }, 159 | "matchResult": { 160 | "exactMatch": "Y" 161 | }, 162 | "totalCapsSummary": { 163 | "totalCapsLast7Days": "0", 164 | "totalCapsLast30Days": "1", 165 | "totalCapsLast90Days": "1", 166 | "totalCapsLast180Days": "2" 167 | }, 168 | "nonCreditCaps": { 169 | "nonCreditCapsSummary": { 170 | "nonCreditCapsLast7Days": "0", 171 | "nonCreditCapsLast30Days": "1", 172 | "nonCreditCapsLast90Days": "1", 173 | "nonCreditCapsLast180Days": "2" 174 | }, 175 | "capsApplicationDetailsArray": [] 176 | }, 177 | "score": { 178 | "bureauScore": "645", 179 | "bureauScoreConfidenceLevel": "M" 180 | }, 181 | "segment": {}, 182 | "caps": { 183 | "capsSummary": { 184 | "capsLast7Days": "0", 185 | "capsLast30Days": "1", 186 | "capsLast90Days": "1", 187 | "capsLast180Days": "2" 188 | }, 189 | "capsApplicationDetailsArray": [ 190 | { 191 | "SubscriberName": "Kotak Mahindra Bank", 192 | "DateOfRequest": "20240422", 193 | "EnquiryReason": "10", 194 | "FinancePurpose": "10" 195 | }, 196 | { 197 | "SubscriberName": "Fullerton India", 198 | "DateOfRequest": "20231215", 199 | "EnquiryReason": "05", 200 | "FinancePurpose": "05" 201 | } 202 | ] 203 | } 204 | }, 205 | "vendor": "EXPERIAN" 206 | } 207 | ] 208 | } -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | { 2 | "netWorthResponse": { 3 | "assetValues": [ 4 | { 5 | "netWorthAttribute": "ASSET_TYPE_MUTUAL_FUND", 6 | "value": { 7 | "currencyCode": "INR", 8 | "units": "5260000" 9 | } 10 | }, 11 | { 12 | "netWorthAttribute": "ASSET_TYPE_EPF", 13 | "value": { 14 | "currencyCode": "INR", 15 | "units": "1950000" 16 | } 17 | }, 18 | { 19 | "netWorthAttribute": "ASSET_TYPE_NPS", 20 | "value": { 21 | "currencyCode": "INR", 22 | "units": "2500000" 23 | } 24 | }, 25 | { 26 | "netWorthAttribute": "ASSET_TYPE_INDIAN_SECURITIES", 27 | "value": { 28 | "currencyCode": "INR", 29 | "units": "3000000" 30 | } 31 | }, 32 | { 33 | "netWorthAttribute": "ASSET_TYPE_SAVINGS_ACCOUNTS", 34 | "value": { 35 | "currencyCode": "INR", 36 | "units": "250000" 37 | } 38 | } 39 | ], 40 | "totalNetWorthValue": { 41 | "currencyCode": "INR", 42 | "units": "12960000" 43 | } 44 | }, 45 | "mfSchemeAnalytics": { 46 | "schemeAnalytics": [ 47 | { 48 | "schemeDetail": { 49 | "amc": "PPFAS_MUTUAL_FUND", 50 | "nameData": { 51 | "longName": "Parag Parikh Flexi Cap Fund - Direct - Growth" 52 | }, 53 | "planType": "DIRECT", 54 | "investmentType": "OPEN", 55 | "optionType": "GROWTH", 56 | "nav": { "currencyCode": "INR", "units": "75" }, 57 | "assetClass": "EQUITY", 58 | "isinNumber": "INF247L01578", 59 | "categoryName": "FLEXI_CAP_FUND" 60 | }, 61 | "enrichedAnalytics": { 62 | "analytics": { 63 | "schemeDetails": { 64 | "currentValue": { "currencyCode": "INR", "units": "1500000" }, 65 | "investedValue": { "currencyCode": "INR", "units": "1300000" }, 66 | "XIRR": 20.15, 67 | "unrealisedReturns": { "currencyCode": "INR", "units": "200000" }, 68 | "units": 20000 69 | } 70 | } 71 | } 72 | }, 73 | { 74 | "schemeDetail": { 75 | "amc": "NIPPON_INDIA_MUTUAL_FUND", 76 | "nameData": { 77 | "longName": "Nippon India Small Cap Fund - Direct - Growth" 78 | }, 79 | "planType": "DIRECT", 80 | "investmentType": "OPEN", 81 | "optionType": "GROWTH", 82 | "nav": { "currencyCode": "INR", "units": "165" }, 83 | "assetClass": "EQUITY", 84 | "isinNumber": "INF204K01C95", 85 | "categoryName": "SMALL_CAP_FUND" 86 | }, 87 | "enrichedAnalytics": { 88 | "analytics": { 89 | "schemeDetails": { 90 | "currentValue": { "currencyCode": "INR", "units": "1650000" }, 91 | "investedValue": { "currencyCode": "INR", "units": "961000" }, 92 | "XIRR": 24.88, 93 | "unrealisedReturns": { "currencyCode": "INR", "units": "689000" }, 94 | "units": 10000 95 | } 96 | } 97 | } 98 | }, 99 | { 100 | "schemeDetail": { 101 | "amc": "MOTILAL_OSWAL", 102 | "nameData": { 103 | "longName": "Motilal Oswal Nasdaq 100 FOF - Direct - Growth" 104 | }, 105 | "planType": "DIRECT", 106 | "investmentType": "OPEN", 107 | "optionType": "GROWTH", 108 | "nav": { "currencyCode": "INR", "units": "40" }, 109 | "assetClass": "EQUITY", 110 | "isinNumber": "INF247L01024", 111 | "categoryName": "INTERNATIONAL_FUNDS" 112 | }, 113 | "enrichedAnalytics": { 114 | "analytics": { 115 | "schemeDetails": { 116 | "currentValue": { "currencyCode": "INR", "units": "220000" }, 117 | "investedValue": { "currencyCode": "INR", "units": "185000" }, 118 | "XIRR": 22.5, 119 | "unrealisedReturns": { "currencyCode": "INR", "units": "35000" }, 120 | "units": 5500 121 | } 122 | } 123 | } 124 | }, 125 | { 126 | "schemeDetail": { 127 | "amc": "MIRAE_ASSET", 128 | "nameData": { 129 | "longName": "Mirae Asset ELSS Tax Saver Fund - Direct Plan - Growth" 130 | }, 131 | "planType": "DIRECT", 132 | "investmentType": "OPEN", 133 | "optionType": "GROWTH", 134 | "nav": { "currencyCode": "INR", "units": "45" }, 135 | "assetClass": "EQUITY", 136 | "isinNumber": "INF090I01684", 137 | "categoryName": "ELSS" 138 | }, 139 | "enrichedAnalytics": { 140 | "analytics": { 141 | "schemeDetails": { 142 | "currentValue": { "currencyCode": "INR", "units": "1890000" }, 143 | "investedValue": { "currencyCode": "INR", "units": "1000000" }, 144 | "XIRR": 18.2, 145 | "unrealisedReturns": { "currencyCode": "INR", "units": "890000" }, 146 | "units": 42000 147 | } 148 | } 149 | } 150 | } 151 | ] 152 | }, 153 | "accountDetailsBulkResponse": { 154 | "accountDetailsMap": { 155 | "uuid-mf-1": { 156 | "accountDetails": { "fipId": "fip@kfintech", "maskedAccountNumber": "XXXX-FIRE-001", "accInstrumentType": "ACC_INSTRUMENT_TYPE_MUTUAL_FUNDS" }, 157 | "mutualFundSummary": { "currentValue": { "currencyCode": "INR", "units": "1500000" }, "holdingsInfo": [ { "isin": "INF247L01578", "folioNumber": "FIRE-001" } ] } 158 | }, 159 | "uuid-mf-2": { 160 | "accountDetails": { "fipId": "fip@cams", "maskedAccountNumber": "XXXX-FIRE-002", "accInstrumentType": "ACC_INSTRUMENT_TYPE_MUTUAL_FUNDS" }, 161 | "mutualFundSummary": { "currentValue": { "currencyCode": "INR", "units": "3750000" }, "holdingsInfo": [ { "isin": "INF204K01C95", "folioNumber": "FIRE-002" }, { "isin": "INF247L01024", "folioNumber": "FIRE-INTL1" }, { "isin": "INF090I01684", "folioNumber": "FIRE-TAX1" } ] } 162 | }, 163 | "uuid-epf-1": { 164 | "accountDetails": { "fipId": "fip@epfo", "maskedAccountNumber": "GUGGN-XXXX-XXXX", "accInstrumentType": "ACC_INSTRUMENT_TYPE_EPF" }, 165 | "epfSummary": { "currentBalance": { "currencyCode": "INR", "units": "1950000" } } 166 | }, 167 | "uuid-nps-1": { 168 | "accountDetails": { "fipId": "fip@nps", "maskedAccountNumber": "XXXXXX-NPS1", "accInstrumentType": "ACC_INSTRUMENT_TYPE_NPS" }, 169 | "npsSummary": { "accountId": "uuid-nps-1", "currentValue": { "currencyCode": "INR", "units": "2500000" } } 170 | }, 171 | "uuid-stocks-1": { 172 | "accountDetails": { "fipId": "fip@nsdl", "maskedAccountNumber": "XXXXXX-FIREDP", "accInstrumentType": "ACC_INSTRUMENT_TYPE_EQUITIES" }, 173 | "equitySummary": { 174 | "currentValue": { "currencyCode": "INR", "units": "3000000" }, 175 | "holdingsInfo": [ 176 | { "isin": "INE155A01022", "issuerName": "TATA MOTORS LTD.", "units": 1000, "lastTradedPrice": { "units": "950" } }, 177 | { "isin": "INE021A01026", "issuerName": "ASIAN PAINTS LTD.", "units": 200, "lastTradedPrice": { "units": "2900" } }, 178 | { "isin": "INE118A01012", "issuerName": "TITAN COMPANY LTD", "units": 150, "lastTradedPrice": { "units": "3500" } }, 179 | { "isin": "INE476A01014", "issuerName": "BAJAJ FINANCE LIMITED", "units": 150, "lastTradedPrice": { "units": "6500" } } 180 | ] 181 | } 182 | }, 183 | "uuid-savings-1": { 184 | "accountDetails": { "fipId": "IDFCFirstBank-FIP", "maskedAccountNumber": "XXXXXX-FIRE-SB", "accInstrumentType": "ACC_INSTRUMENT_TYPE_DEPOSIT" }, 185 | "depositSummary": { "currentBalance": { "currencyCode": "INR", "units": "250000" }, "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS" } 186 | }, 187 | "uuid-cc-1": { 188 | "accountDetails": { "fipId": "HDFC-FIP", "maskedAccountNumber": "XXXX-XXXX-XXXX-FIRE", "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD" }, 189 | "creditCardSummary": { "currentBalance": { "currencyCode": "INR", "units": "0" }, "creditLimit": { "currencyCode": "INR", "units": "1500000" } } 190 | } 191 | } 192 | } 193 | } -------------------------------------------------------------------------------- /test_data_dir/3333333333/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | {"netWorthResponse":{"assetValues":[{"netWorthAttribute":"ASSET_TYPE_MUTUAL_FUND", "value":{"currencyCode":"INR", "units":"177605"}}, {"netWorthAttribute":"ASSET_TYPE_EPF", "value":{"currencyCode":"INR", "units":"211111"}}, {"netWorthAttribute":"ASSET_TYPE_SAVINGS_ACCOUNTS", "value":{"currencyCode":"INR", "units":"195297"}}, {"netWorthAttribute":"ASSET_TYPE_INDIAN_SECURITIES", "value":{"currencyCode":"INR", "units":"200642"}}, {"netWorthAttribute":"ASSET_TYPE_US_SECURITIES", "value":{"currencyCode":"INR", "units":"30071"}}], "liabilityValues":[{"netWorthAttribute":"LIABILITY_TYPE_OTHER_LOAN", "value":{"currencyCode":"INR", "units":"42000"}}, {"netWorthAttribute":"LIABILITY_TYPE_HOME_LOAN", "value":{"currencyCode":"INR", "units":"17000"}}, {"netWorthAttribute":"LIABILITY_TYPE_VEHICLE_LOAN", "value":{"currencyCode":"INR", "units":"5000"}}], "totalNetWorthValue":{"currencyCode":"INR", "units":"750726"}}, "mfSchemeAnalytics":{"schemeAnalytics":[{"schemeDetail":{"amc":"ICICI_PRUDENTIAL", "nameData":{"longName":"ICICI Prudential Nifty 50 Index Fund"}, "planType":"DIRECT", "investmentType":"OPEN", "optionType":"GROWTH", "divReinvOptionType":"REINVESTMENT_ONY", "nav":{"currencyCode":"INR", "units":"267", "nanos":68500000}, "assetClass":"EQUITY", "isinNumber":"INF109K012M7", "categoryName":"INDEX_FUNDS", "fundhouseDefinedRiskLevel":"VERY_HIGH_RISK"}, "enrichedAnalytics":{"analytics":{"schemeDetails":{"currentValue":{"currencyCode":"INR", "units":"177605", "nanos":556713877}, "investedValue":{"currencyCode":"INR", "units":"10027", "nanos":25377810}, "XIRR":136.63322048015482, "absoluteReturns":{"currencyCode":"INR", "units":"167578", "nanos":531336067}, "unrealisedReturns":{"currencyCode":"INR", "units":"167578", "nanos":531336067}, "navValue":{"currencyCode":"INR", "units":"267", "nanos":68500000}, "units":665.0187375668689}}}}]}, "accountDetailsBulkResponse":{"accountDetailsMap":{"204a015f-1e87-45b6-b96e-01b9da6835ff":{"accountDetails":{"fipId":"fip@nsdl", "maskedAccountNumber":"XXXXXX2724", "accInstrumentType":"ACC_INSTRUMENT_TYPE_EQUITIES", "accountType":{"equityAccountType":"EQUITY_ACCOUNT_TYPE_DEFAULT_TYPE"}, "fipMeta":{"name":"National Securities Depository Limited", "displayName":"NSDL"}}, "equitySummary":{"accountId":"204a015f-1e87-45b6-b96e-01b9da6835ff", "currentValue":{"currencyCode":"INR", "units":"12000"}, "holdingsInfo":[{"isin":"INE043B01028", "issuerName":"VINTRON INFORMATICS LIMITED", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":12, "lastTradedPrice":{"currencyCode":"INR", "units":"5", "nanos":850000000}, "isinDescription":"VINTRON INFORM-EQ1/-"}, {"isin":"INE916P01025", "issuerName":"TRIVENI-EQ FV 1", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":24, "lastTradedPrice":{"currencyCode":"INR", "units":"13"}, "isinDescription":"TRIVENI-EQ FV 1"}, {"isin":"INE040A01034", "issuerName":"HDFC BANK LIMITED", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":12, "lastTradedPrice":{"currencyCode":"INR", "units":"1625"}, "isinDescription":"HDFC BANK-EQ1/-"}]}}, "27724a0f-cdfb-4ce3-bd2d-7ff97fd3d023":{"accountDetails":{"fipId":"fip@nsdl", "maskedAccountNumber":"XXXXXX1383", "accInstrumentType":"ACC_INSTRUMENT_TYPE_ETF", "accountType":{"etfAccountType":"ETF_ACCOUNT_TYPE_DEFAULT_TYPE"}, "fipMeta":{"name":"National Securities Depository Limited", "displayName":"NSDL"}}, "etfSummary":{"accountId":"27724a0f-cdfb-4ce3-bd2d-7ff97fd3d023", "currentValue":{"currencyCode":"INR", "units":"24913", "nanos":600000000}, "holdingsInfo":[{"isin":"INF204KB14I2", "units":115, "nav":{"currencyCode":"INR", "units":"216", "nanos":640000000}, "lastNavDate":"2023-10-06T00:00:00Z", "isinDescription":"NIP ETF NIFTY50 BEES"}, {"isin":"INF204KB14I3", "units":215, "nav":{"currencyCode":"INR", "units":"400", "nanos":640000000}, "lastNavDate":"2023-10-08T00:00:00Z", "isinDescription":"NIP ETF NIFTY30 BEES"}]}}, "2dd64def-20d8-4920-92b0-82dc6643763a":{"accountDetails":{"fipId":"HDFC-FIP", "maskedAccountNumber":"XXXXXX9026", "accInstrumentType":"ACC_INSTRUMENT_TYPE_DEPOSIT", "ifscCode":"EPIFI000012", "accountType":{"depositAccountType":"DEPOSIT_ACCOUNT_TYPE_SAVINGS"}, "fipMeta":{"name":"HDFC Bank", "displayName":"HDFC", "bank":"HDFC"}}, "depositSummary":{"accountId":"2dd64def-20d8-4920-92b0-82dc6643763a", "currentBalance":{"currencyCode":"INR", "units":"5225"}, "balanceDate":"2025-07-09T15:29:19Z", "depositAccountType":"DEPOSIT_ACCOUNT_TYPE_SAVINGS", "branch":"Test", "ifscCode":"EPIFI000012", "micrCode":"EPIFI1234", "openingDate":"2024-07-08T00:00:00Z", "depositAccountStatus":"DEPOSIT_ACCOUNT_STATUS_ACTIVE"}}, "3bfe07ca-c5d8-454c-882e-513e3d181b1c":{"accountDetails":{"fipId":"fip@nsdl", "maskedAccountNumber":"XXXXXX9872", "accInstrumentType":"ACC_INSTRUMENT_TYPE_REIT", "accountType":{"reitAccountType":"REIT_ACCOUNT_TYPE_DEFAULT_TYPE"}, "fipMeta":{"name":"National Securities Depository Limited", "displayName":"NSDL"}}, "reitSummary":{"accountId":"3bfe07ca-c5d8-454c-882e-513e3d181b1c", "currentValue":{"currencyCode":"INR", "units":"24913", "nanos":600000000}, "holdingsInfo":[{"isin":"INE0FDU25010", "totalNumberUnits":115, "isinDescription":"BROOKFIELD INDIA REAL ESTATE TRUST", "nominee":"NOMINEE_TYPE_REGISTERED", "lastClosingRate":{"currencyCode":"INR", "units":"14", "nanos":550000000}}, {"isin":"INE0CCU25019", "totalNumberUnits":215, "isinDescription":"MINDSPACE BUSINESS PARKS REIT ", "nominee":"NOMINEE_TYPE_REGISTERED", "lastClosingRate":{"currencyCode":"INR", "units":"14", "nanos":550000000}}]}}, "a47a1749-2367-4888-bdc3-4f5a6b5ba067":{"accountDetails":{"fipId":"HDFC-FIP", "maskedAccountNumber":"XXXXXX3885", "accInstrumentType":"ACC_INSTRUMENT_TYPE_DEPOSIT", "ifscCode":"EPIFI000012", "accountType":{"depositAccountType":"DEPOSIT_ACCOUNT_TYPE_SAVINGS"}, "fipMeta":{"name":"HDFC Bank", "displayName":"HDFC", "bank":"HDFC"}}, "depositSummary":{"accountId":"a47a1749-2367-4888-bdc3-4f5a6b5ba067", "currentBalance":{"currencyCode":"INR", "units":"2388"}, "balanceDate":"2025-07-09T15:29:19Z", "depositAccountType":"DEPOSIT_ACCOUNT_TYPE_SAVINGS", "branch":"Test", "ifscCode":"EPIFI000012", "micrCode":"EPIFI1234", "openingDate":"2024-07-08T00:00:00Z", "depositAccountStatus":"DEPOSIT_ACCOUNT_STATUS_ACTIVE"}}, "d9c22d2a-e6b9-4a2d-a3ba-7790db2c80d3":{"accountDetails":{"fipId":"HDFC-FIP", "maskedAccountNumber":"XXXXXX3779", "accInstrumentType":"ACC_INSTRUMENT_TYPE_DEPOSIT", "ifscCode":"EPIFI000012", "accountType":{"depositAccountType":"DEPOSIT_ACCOUNT_TYPE_CURRENT"}, "fipMeta":{"name":"HDFC Bank", "displayName":"HDFC", "bank":"HDFC"}}, "depositSummary":{"accountId":"d9c22d2a-e6b9-4a2d-a3ba-7790db2c80d3", "currentBalance":{"currencyCode":"INR", "units":"958"}, "balanceDate":"2025-07-09T15:29:19Z", "depositAccountType":"DEPOSIT_ACCOUNT_TYPE_CURRENT", "branch":"Test", "ifscCode":"EPIFI000012", "micrCode":"EPIFI1234", "openingDate":"2024-07-08T00:00:00Z", "depositAccountStatus":"DEPOSIT_ACCOUNT_STATUS_ACTIVE"}}, "eaff1026-d931-4ab0-afc3-e9530caa3c5d":{"accountDetails":{"fipId":"HDFC-FIP", "maskedAccountNumber":"XXXXXX7319", "accInstrumentType":"ACC_INSTRUMENT_TYPE_RECURRING_DEPOSIT", "accountType":{"recurringDepositAccountType":"RECURRING_DEPOSIT_ACCOUNT_TYPE_RECURRING"}, "fipMeta":{"name":"HDFC Bank", "displayName":"HDFC", "bank":"HDFC"}}}, "eb247859-dd97-4643-a672-c52139a84371":{"accountDetails":{"fipId":"fip@nsdl", "maskedAccountNumber":"XXXXXX0310", "accInstrumentType":"ACC_INSTRUMENT_TYPE_EQUITIES", "accountType":{"equityAccountType":"EQUITY_ACCOUNT_TYPE_DEFAULT_TYPE"}, "fipMeta":{"name":"National Securities Depository Limited", "displayName":"NSDL"}}, "equitySummary":{"accountId":"eb247859-dd97-4643-a672-c52139a84371", "currentValue":{"currencyCode":"INR", "units":"12000"}, "holdingsInfo":[{"isin":"INE043B01028", "issuerName":"VINTRON INFORMATICS LIMITED", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":12, "lastTradedPrice":{"currencyCode":"INR", "units":"5", "nanos":850000000}, "isinDescription":"VINTRON INFORM-EQ1/-"}, {"isin":"INE916P01025", "issuerName":"TRIVENI-EQ FV 1", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":24, "lastTradedPrice":{"currencyCode":"INR", "units":"13"}, "isinDescription":"TRIVENI-EQ FV 1"}, {"isin":"INE040A01034", "issuerName":"HDFC BANK LIMITED", "type":"EQUITY_HOLDING_TYPE_DEMAT", "units":12, "lastTradedPrice":{"currencyCode":"INR", "units":"1625"}, "isinDescription":"HDFC BANK-EQ1/-"}]}}, "f8ef9d85-6a0d-4aa9-82ba-501d0c1bf2bf":{"accountDetails":{"fipId":"fip@nsdl", "maskedAccountNumber":"XXXXXX2596", "accInstrumentType":"ACC_INSTRUMENT_TYPE_INVIT", "accountType":{"invitAccountType":"INVIT_ACCOUNT_TYPE_DEFAULT_TYPE"}, "fipMeta":{"name":"National Securities Depository Limited", "displayName":"NSDL"}}, "invitSummary":{"accountId":"f8ef9d85-6a0d-4aa9-82ba-501d0c1bf2bf", "currentValue":{"currencyCode":"INR", "units":"24913", "nanos":600000000}, "holdingsInfo":[{"isin":"INE0GGX23010", "totalNumberUnits":115, "isinDescription":"POWERGRID INFRASTRUCTURE INVESTMENT TRUST"}, {"isin":"INE0BWS23018", "totalNumberUnits":215, "isinDescription":"Data Infrastructure Trust"}]}}}}} 2 | -------------------------------------------------------------------------------- /test_data_dir/2020202020/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | { 2 | "netWorthResponse": { 3 | "assetValues": [ 4 | { 5 | "netWorthAttribute": "ASSET_TYPE_MUTUAL_FUND", 6 | "value": { 7 | "currencyCode": "INR", 8 | "units": "435250" 9 | } 10 | }, 11 | { 12 | "netWorthAttribute": "ASSET_TYPE_EPF", 13 | "value": { 14 | "currencyCode": "INR", 15 | "units": "115000" 16 | } 17 | }, 18 | { 19 | "netWorthAttribute": "ASSET_TYPE_SAVINGS_ACCOUNTS", 20 | "value": { 21 | "currencyCode": "INR", 22 | "units": "25000" 23 | } 24 | }, 25 | { 26 | "netWorthAttribute": "LIABILITY_TYPE_LOAN", 27 | "value": { 28 | "currencyCode": "INR", 29 | "units": "-542000" 30 | } 31 | }, 32 | { 33 | "netWorthAttribute": "LIABILITY_TYPE_CREDIT_CARD", 34 | "value": { 35 | "currencyCode": "INR", 36 | "units": "-30000" 37 | } 38 | } 39 | ], 40 | "totalNetWorthValue": { 41 | "currencyCode": "INR", 42 | "units": "3250" 43 | } 44 | }, 45 | "mfSchemeAnalytics": { 46 | "schemeAnalytics": [ 47 | { 48 | "schemeDetail": { 49 | "amc": "SBI_MUTUAL_FUND", 50 | "nameData": { 51 | "longName": "SBI Bluechip Fund - Regular Plan - Growth" 52 | }, 53 | "planType": "REGULAR", 54 | "investmentType": "OPEN", 55 | "optionType": "GROWTH", 56 | "nav": { 57 | "currencyCode": "INR", 58 | "units": "85" 59 | }, 60 | "assetClass": "EQUITY", 61 | "isinNumber": "INF200K01VG7", 62 | "categoryName": "LARGE_CAP_FUND" 63 | }, 64 | "enrichedAnalytics": { 65 | "analytics": { 66 | "schemeDetails": { 67 | "currentValue": { 68 | "currencyCode": "INR", 69 | "units": "84300" 70 | }, 71 | "investedValue": { 72 | "currencyCode": "INR", 73 | "units": "40000" 74 | }, 75 | "XIRR": 15.21, 76 | "unrealisedReturns": { 77 | "currencyCode": "INR", 78 | "units": "44300" 79 | }, 80 | "units": 991.51 81 | } 82 | } 83 | } 84 | }, 85 | { 86 | "schemeDetail": { 87 | "amc": "KOTAK_MAHINDRA", 88 | "nameData": { 89 | "longName": "Kotak Flexi Cap Fund - Direct - Growth" 90 | }, 91 | "planType": "DIRECT", 92 | "investmentType": "OPEN", 93 | "optionType": "GROWTH", 94 | "nav": { 95 | "currencyCode": "INR", 96 | "units": "80" 97 | }, 98 | "assetClass": "EQUITY", 99 | "isinNumber": "INF174K01Z93", 100 | "categoryName": "FLEXI_CAP_FUND" 101 | }, 102 | "enrichedAnalytics": { 103 | "analytics": { 104 | "schemeDetails": { 105 | "currentValue": { 106 | "currencyCode": "INR", 107 | "units": "54840" 108 | }, 109 | "investedValue": { 110 | "currencyCode": "INR", 111 | "units": "25000" 112 | }, 113 | "XIRR": 17.55, 114 | "unrealisedReturns": { 115 | "currencyCode": "INR", 116 | "units": "29840" 117 | }, 118 | "units": 685.5 119 | } 120 | } 121 | } 122 | }, 123 | { 124 | "schemeDetail": { 125 | "amc": "AXIS_MUTUAL_FUND", 126 | "nameData": { 127 | "longName": "Axis Long Term Equity Fund - Direct Plan - Growth" 128 | }, 129 | "planType": "DIRECT", 130 | "investmentType": "OPEN", 131 | "optionType": "GROWTH", 132 | "nav": { 133 | "currencyCode": "INR", 134 | "units": "105" 135 | }, 136 | "assetClass": "EQUITY", 137 | "isinNumber": "INF846K01135", 138 | "categoryName": "ELSS" 139 | }, 140 | "enrichedAnalytics": { 141 | "analytics": { 142 | "schemeDetails": { 143 | "currentValue": { 144 | "currencyCode": "INR", 145 | "units": "296110" 146 | }, 147 | "investedValue": { 148 | "currencyCode": "INR", 149 | "units": "150000" 150 | }, 151 | "XIRR": 16.89, 152 | "unrealisedReturns": { 153 | "currencyCode": "INR", 154 | "units": "146110" 155 | }, 156 | "units": 2820.52 157 | } 158 | } 159 | } 160 | } 161 | ] 162 | }, 163 | "accountDetailsBulkResponse": { 164 | "accountDetailsMap": { 165 | "uuid-mf-1": { 166 | "accountDetails": { 167 | "fipId": "fip@cams", 168 | "maskedAccountNumber": "XXXXXX-908070", 169 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_MUTUAL_FUNDS" 170 | }, 171 | "mutualFundSummary": { 172 | "currentValue": { "currencyCode": "INR", "units": "84300" }, 173 | "holdingsInfo": [ { "isin": "INF200K01VG7", "folioNumber": "GP-908070" } ] 174 | } 175 | }, 176 | "uuid-mf-2": { 177 | "accountDetails": { 178 | "fipId": "fip@kfintech", 179 | "maskedAccountNumber": "XXXXXX-112233", 180 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_MUTUAL_FUNDS" 181 | }, 182 | "mutualFundSummary": { 183 | "currentValue": { "currencyCode": "INR", "units": "54840" }, 184 | "holdingsInfo": [ { "isin": "INF174K01Z93", "folioNumber": "GP-112233" } ] 185 | } 186 | }, 187 | "uuid-mf-3": { 188 | "accountDetails": { 189 | "fipId": "fip@cams", 190 | "maskedAccountNumber": "XXXXXX-TAX4U", 191 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_MUTUAL_FUNDS" 192 | }, 193 | "mutualFundSummary": { 194 | "currentValue": { "currencyCode": "INR", "units": "296110" }, 195 | "holdingsInfo": [ { "isin": "INF846K01135", "folioNumber": "GP-TAX4U" } ] 196 | } 197 | }, 198 | "uuid-epf-1": { 199 | "accountDetails": { 200 | "fipId": "fip@epfo", 201 | "maskedAccountNumber": "KABN-XXXX-XXXX", 202 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_EPF" 203 | }, 204 | "epfSummary": { 205 | "currentBalance": { "currencyCode": "INR", "units": "115000" }, 206 | "accountStatus": "EPF_ACCOUNT_STATUS_INACTIVE" 207 | } 208 | }, 209 | "uuid-savings-1": { 210 | "accountDetails": { 211 | "fipId": "KOTAK-FIP", 212 | "maskedAccountNumber": "XXXXXX4455", 213 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_DEPOSIT" 214 | }, 215 | "depositSummary": { 216 | "currentBalance": { "currencyCode": "INR", "units": "25000" }, 217 | "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS" 218 | } 219 | }, 220 | "uuid-loan-1": { 221 | "accountDetails": { 222 | "fipId": "HDFC-FIP", 223 | "maskedAccountNumber": "XXXXXX-LOAN1", 224 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_LOAN" 225 | }, 226 | "loanSummary": { 227 | "currentOutstanding": { "currencyCode": "INR", "units": "542000" }, 228 | "loanType": "LOAN_ACCOUNT_TYPE_AUTO", 229 | "loanStatus": "LOAN_STATUS_ACTIVE" 230 | } 231 | }, 232 | "uuid-cc-1": { 233 | "accountDetails": { 234 | "fipId": "SBI-FIP", 235 | "maskedAccountNumber": "XXXX-XXXX-XXXX-1001", 236 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD" 237 | }, 238 | "creditCardSummary": { 239 | "currentBalance": { "currencyCode": "INR", "units": "18000" }, 240 | "creditLimit": { "currencyCode": "INR", "units": "120000" } 241 | } 242 | }, 243 | "uuid-cc-2": { 244 | "accountDetails": { 245 | "fipId": "ICICI-FIP", 246 | "maskedAccountNumber": "XXXX-XXXX-XXXX-2002", 247 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD" 248 | }, 249 | "creditCardSummary": { 250 | "currentBalance": { "currencyCode": "INR", "units": "12000" }, 251 | "creditLimit": { "currencyCode": "INR", "units": "80000" } 252 | } 253 | } 254 | } 255 | } 256 | } -------------------------------------------------------------------------------- /test_data_dir/1414141414/fetch_net_worth.json: -------------------------------------------------------------------------------- 1 | { 2 | "netWorthResponse": { 3 | "assetValues": [ 4 | { 5 | "netWorthAttribute": "ASSET_TYPE_EPF", 6 | "value": { 7 | "currencyCode": "INR", 8 | "units": "125000" 9 | } 10 | }, 11 | { 12 | "netWorthAttribute": "ASSET_TYPE_SAVINGS_ACCOUNTS", 13 | "value": { 14 | "currencyCode": "INR", 15 | "units": "12000" 16 | } 17 | }, 18 | { 19 | "netWorthAttribute": "LIABILITY_TYPE_LOAN", 20 | "value": { 21 | "currencyCode": "INR", 22 | "units": "-4330000" 23 | } 24 | }, 25 | { 26 | "netWorthAttribute": "LIABILITY_TYPE_CREDIT_CARD", 27 | "value": { 28 | "currencyCode": "INR", 29 | "units": "-272000" 30 | } 31 | } 32 | ], 33 | "totalNetWorthValue": { 34 | "currencyCode": "INR", 35 | "units": "-4465000" 36 | } 37 | }, 38 | "mfSchemeAnalytics": { 39 | "schemeAnalytics": [] 40 | }, 41 | "accountDetailsBulkResponse": { 42 | "accountDetailsMap": { 43 | "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d": { 44 | "accountDetails": { 45 | "fipId": "fip@epfo", 46 | "maskedAccountNumber": "GJADI-XXXX-XXXX", 47 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_EPF", 48 | "accountType": { 49 | "epfAccountType": "EPF_ACCOUNT_TYPE_DEFAULT_TYPE" 50 | }, 51 | "fipMeta": { 52 | "name": "EPFO", 53 | "displayName": "EPFO" 54 | } 55 | }, 56 | "epfSummary": { 57 | "accountId": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d", 58 | "currentBalance": { 59 | "currencyCode": "INR", 60 | "units": "125000" 61 | }, 62 | "balanceDate": "2024-05-21T00:00:00Z" 63 | } 64 | }, 65 | "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e": { 66 | "accountDetails": { 67 | "fipId": "KOTAK-FIP", 68 | "maskedAccountNumber": "XXXXXX1010", 69 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_DEPOSIT", 70 | "ifscCode": "KKBK0000123", 71 | "accountType": { 72 | "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS" 73 | }, 74 | "fipMeta": { 75 | "name": "Kotak Mahindra Bank", 76 | "displayName": "Kotak", 77 | "bank": "KOTAK" 78 | } 79 | }, 80 | "depositSummary": { 81 | "accountId": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e", 82 | "currentBalance": { 83 | "currencyCode": "INR", 84 | "units": "12000" 85 | }, 86 | "balanceDate": "2024-06-15T18:00:00Z", 87 | "depositAccountType": "DEPOSIT_ACCOUNT_TYPE_SAVINGS", 88 | "depositAccountStatus": "DEPOSIT_ACCOUNT_STATUS_ACTIVE" 89 | } 90 | }, 91 | "3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f": { 92 | "accountDetails": { 93 | "fipId": "SBI-FIP", 94 | "maskedAccountNumber": "XXXXXX1234", 95 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_LOAN", 96 | "accountType": { 97 | "loanAccountType": "LOAN_ACCOUNT_TYPE_HOME" 98 | }, 99 | "fipMeta": { 100 | "name": "State Bank of India", 101 | "displayName": "SBI" 102 | } 103 | }, 104 | "loanSummary": { 105 | "accountId": "3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f", 106 | "currentOutstanding": { 107 | "currencyCode": "INR", 108 | "units": "3850000" 109 | }, 110 | "loanStatus": "LOAN_STATUS_ACTIVE", 111 | "originalLoanAmount": { 112 | "currencyCode": "INR", 113 | "units": "4000000" 114 | } 115 | } 116 | }, 117 | "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9g": { 118 | "accountDetails": { 119 | "fipId": "PNB-FIP", 120 | "maskedAccountNumber": "XXXXXX5678", 121 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_LOAN", 122 | "accountType": { 123 | "loanAccountType": "LOAN_ACCOUNT_TYPE_AUTO" 124 | }, 125 | "fipMeta": { 126 | "name": "Punjab National Bank", 127 | "displayName": "PNB" 128 | } 129 | }, 130 | "loanSummary": { 131 | "accountId": "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9g", 132 | "currentOutstanding": { 133 | "currencyCode": "INR", 134 | "units": "450000" 135 | }, 136 | "loanStatus": "LOAN_STATUS_ACTIVE", 137 | "originalLoanAmount": { 138 | "currencyCode": "INR", 139 | "units": "700000" 140 | } 141 | } 142 | }, 143 | "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9g0h": { 144 | "accountDetails": { 145 | "fipId": "TATA-FIP", 146 | "maskedAccountNumber": "XXXXXX9012", 147 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_LOAN", 148 | "accountType": { 149 | "loanAccountType": "LOAN_ACCOUNT_TYPE_CONSUMER" 150 | }, 151 | "fipMeta": { 152 | "name": "Tata Capital", 153 | "displayName": "Tata Capital" 154 | } 155 | }, 156 | "loanSummary": { 157 | "accountId": "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9g0h", 158 | "currentOutstanding": { 159 | "currencyCode": "INR", 160 | "units": "30000" 161 | }, 162 | "loanStatus": "LOAN_STATUS_ACTIVE", 163 | "originalLoanAmount": { 164 | "currencyCode": "INR", 165 | "units": "80000" 166 | } 167 | } 168 | }, 169 | "6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9g0h1i": { 170 | "accountDetails": { 171 | "fipId": "ICICI-FIP", 172 | "maskedAccountNumber": "XXXX-XXXX-XXXX-1111", 173 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD", 174 | "accountType": { 175 | "creditCardAccountType": "CREDIT_CARD_ACCOUNT_TYPE_DEFAULT_TYPE" 176 | }, 177 | "fipMeta": { 178 | "name": "ICICI Bank", 179 | "displayName": "ICICI Bank" 180 | } 181 | }, 182 | "creditCardSummary": { 183 | "accountId": "6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9g0h1i", 184 | "currentBalance": { 185 | "currencyCode": "INR", 186 | "units": "135000" 187 | }, 188 | "creditLimit": { 189 | "currencyCode": "INR", 190 | "units": "150000" 191 | }, 192 | "amountPastDue": { 193 | "currencyCode": "INR", 194 | "units": "6500" 195 | } 196 | } 197 | }, 198 | "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9g0h1i2j": { 199 | "accountDetails": { 200 | "fipId": "HDFC-FIP", 201 | "maskedAccountNumber": "XXXX-XXXX-XXXX-2222", 202 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD", 203 | "accountType": { 204 | "creditCardAccountType": "CREDIT_CARD_ACCOUNT_TYPE_DEFAULT_TYPE" 205 | }, 206 | "fipMeta": { 207 | "name": "HDFC Bank", 208 | "displayName": "HDFC Bank" 209 | } 210 | }, 211 | "creditCardSummary": { 212 | "accountId": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9g0h1i2j", 213 | "currentBalance": { 214 | "currencyCode": "INR", 215 | "units": "92000" 216 | }, 217 | "creditLimit": { 218 | "currencyCode": "INR", 219 | "units": "100000" 220 | }, 221 | "amountPastDue": { 222 | "currencyCode": "INR", 223 | "units": "4800" 224 | } 225 | } 226 | }, 227 | "8b9c0d1e-2f3a-4b5c-6d7e-8f9g0h1i2j3k": { 228 | "accountDetails": { 229 | "fipId": "AMEX-FIP", 230 | "maskedAccountNumber": "XXXX-XXXX-XXXX-3333", 231 | "accInstrumentType": "ACC_INSTRUMENT_TYPE_CREDIT_CARD", 232 | "accountType": { 233 | "creditCardAccountType": "CREDIT_CARD_ACCOUNT_TYPE_DEFAULT_TYPE" 234 | }, 235 | "fipMeta": { 236 | "name": "American Express", 237 | "displayName": "American Express" 238 | } 239 | }, 240 | "creditCardSummary": { 241 | "accountId": "8b9c0d1e-2f3a-4b5c-6d7e-8f9g0h1i2j3k", 242 | "currentBalance": { 243 | "currencyCode": "INR", 244 | "units": "45000" 245 | }, 246 | "creditLimit": { 247 | "currencyCode": "INR", 248 | "units": "200000" 249 | }, 250 | "amountPastDue": { 251 | "currencyCode": "INR", 252 | "units": "0" 253 | } 254 | } 255 | } 256 | } 257 | } 258 | } -------------------------------------------------------------------------------- /test_data_dir/2121212121/fetch_mf_transactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "mfTransactions": [ 3 | { 4 | "isin": "INF247L01578", 5 | "schemeName": "Parag Parikh Flexi Cap Fund - Direct - Growth", 6 | "folioId": "FIRE-001", 7 | "txns": [ 8 | [1, "2018-01-05", 28.50, 350.87, 10000], 9 | [1, "2018-02-05", 29.10, 343.64, 10000], 10 | [1, "2018-03-05", 28.80, 347.22, 10000], 11 | [1, "2018-04-05", 29.40, 340.13, 10000], 12 | [1, "2018-05-05", 30.10, 332.22, 10000], 13 | [1, "2018-06-05", 30.50, 327.86, 10000], 14 | [1, "2018-07-05", 30.20, 331.12, 10000], 15 | [1, "2018-08-05", 31.00, 322.58, 10000], 16 | [1, "2018-09-05", 31.30, 319.48, 10000], 17 | [1, "2018-10-05", 30.80, 324.67, 10000], 18 | [1, "2018-11-05", 31.50, 317.46, 10000], 19 | [1, "2018-12-05", 31.20, 320.51, 10000], 20 | [1, "2019-01-05", 31.80, 377.35, 12000], 21 | [1, "2019-02-05", 32.40, 370.37, 12000], 22 | [1, "2019-03-05", 33.10, 362.53, 12000], 23 | [1, "2019-04-05", 33.90, 353.98, 12000], 24 | [1, "2019-05-05", 33.50, 358.20, 12000], 25 | [1, "2019-06-05", 34.20, 350.87, 12000], 26 | [1, "2019-07-05", 34.00, 352.94, 12000], 27 | [1, "2019-08-05", 33.60, 357.14, 12000], 28 | [1, "2019-09-05", 34.50, 347.82, 12000], 29 | [1, "2019-10-05", 35.10, 341.88, 12000], 30 | [1, "2019-11-05", 36.20, 331.49, 12000], 31 | [1, "2019-12-05", 37.00, 324.32, 12000], 32 | [1, "2020-01-05", 38.40, 390.62, 15000], 33 | [1, "2020-02-05", 37.90, 395.77, 15000], 34 | [1, "2020-03-05", 34.10, 439.88, 15000], 35 | [1, "2020-03-24", 25.50, 3921.56, 100000], 36 | [1, "2020-04-05", 28.90, 519.03, 15000], 37 | [1, "2020-05-05", 30.50, 491.80, 15000], 38 | [1, "2020-06-05", 33.80, 443.78, 15000], 39 | [1, "2020-07-05", 35.20, 426.13, 15000], 40 | [1, "2020-08-05", 36.90, 406.50, 15000], 41 | [1, "2020-09-05", 37.40, 401.06, 15000], 42 | [1, "2020-10-05", 38.80, 386.59, 15000], 43 | [1, "2020-11-05", 42.10, 356.29, 15000], 44 | [1, "2020-12-05", 44.30, 338.60, 15000], 45 | [1, "2021-01-05", 45.60, 394.73, 18000], 46 | [1, "2021-02-05", 48.20, 373.44, 18000], 47 | [1, "2021-03-05", 47.90, 375.78, 18000], 48 | [1, "2021-04-05", 48.50, 371.13, 18000], 49 | [1, "2021-05-05", 49.10, 366.59, 18000], 50 | [1, "2021-06-05", 50.80, 354.33, 18000], 51 | [1, "2021-07-05", 51.50, 349.51, 18000], 52 | [1, "2021-08-05", 52.90, 340.26, 18000], 53 | [1, "2021-09-05", 54.10, 332.71, 18000], 54 | [1, "2021-10-05", 54.80, 328.46, 18000], 55 | [1, "2021-11-05", 53.90, 333.95, 18000], 56 | [1, "2021-12-05", 54.20, 332.10, 18000], 57 | [1, "2022-01-05", 55.20, 362.31, 20000], 58 | [1, "2022-02-05", 54.80, 364.96, 20000], 59 | [1, "2022-03-05", 52.10, 383.87, 20000], 60 | [1, "2022-04-05", 53.50, 373.83, 20000], 61 | [1, "2022-05-05", 51.90, 385.35, 20000], 62 | [1, "2022-06-05", 50.80, 393.70, 20000], 63 | [1, "2022-07-05", 52.40, 381.67, 20000], 64 | [1, "2022-08-05", 54.10, 369.68, 20000], 65 | [1, "2022-09-05", 53.80, 371.74, 20000], 66 | [1, "2022-10-05", 52.90, 378.07, 20000], 67 | [1, "2022-11-05", 54.60, 366.30, 20000], 68 | [1, "2022-12-05", 55.10, 362.97, 20000], 69 | [1, "2023-01-05", 53.10, 376.64, 20000], 70 | [1, "2023-02-05", 54.50, 366.97, 20000], 71 | [1, "2023-03-05", 54.90, 364.29, 20000], 72 | [1, "2023-04-05", 56.20, 355.87, 20000], 73 | [1, "2023-05-05", 58.10, 344.23, 20000], 74 | [1, "2023-06-05", 60.40, 331.12, 20000], 75 | [1, "2023-07-05", 62.80, 318.47, 20000], 76 | [1, "2023-08-05", 62.10, 322.06, 20000], 77 | [1, "2023-09-05", 63.50, 314.96, 20000], 78 | [1, "2023-10-05", 62.90, 317.96, 20000], 79 | [1, "2023-11-05", 65.70, 304.41, 20000], 80 | [1, "2023-12-05", 68.90, 290.27, 20000], 81 | [1, "2024-01-05", 70.80, 282.48, 20000], 82 | [1, "2024-02-05", 71.50, 279.72, 20000], 83 | [1, "2024-03-05", 72.90, 274.34, 20000] 84 | ] 85 | }, 86 | { 87 | "isin": "INF204K01C95", 88 | "schemeName": "Nippon India Small Cap Fund - Direct - Growth", 89 | "folioId": "FIRE-002", 90 | "txns": [ 91 | [1, "2018-01-05", 45.10, 166.29, 7500], 92 | [1, "2018-02-05", 46.20, 162.33, 7500], 93 | [1, "2018-03-05", 45.80, 163.75, 7500], 94 | [1, "2018-04-05", 47.10, 159.23, 7500], 95 | [1, "2018-05-05", 48.30, 155.27, 7500], 96 | [1, "2018-06-05", 48.55, 154.48, 7500], 97 | [1, "2018-07-05", 50.10, 149.70, 7500], 98 | [1, "2018-08-05", 52.30, 143.40, 7500], 99 | [1, "2018-09-05", 51.80, 144.78, 7500], 100 | [1, "2018-10-05", 49.90, 150.30, 7500], 101 | [1, "2018-11-05", 51.20, 146.48, 7500], 102 | [1, "2018-12-05", 50.80, 147.63, 7500], 103 | [1, "2019-01-05", 52.10, 202.80, 8500], 104 | [1, "2019-02-05", 51.50, 205.82, 8500], 105 | [1, "2019-03-05", 53.40, 198.50, 8500], 106 | [1, "2019-04-05", 55.60, 188.84, 8500], 107 | [1, "2019-05-05", 54.80, 191.60, 8500], 108 | [1, "2019-06-05", 56.10, 187.16, 8500], 109 | [1, "2019-07-05", 54.90, 191.25, 8500], 110 | [1, "2019-08-05", 52.70, 201.13, 8500], 111 | [1, "2019-09-05", 53.10, 197.74, 8500], 112 | [1, "2019-10-05", 54.20, 193.72, 8500], 113 | [1, "2019-11-05", 55.80, 188.17, 8500], 114 | [1, "2019-12-05", 56.90, 184.53, 8500], 115 | [1, "2020-01-05", 58.30, 171.52, 10000], 116 | [1, "2020-02-05", 56.50, 176.99, 10000], 117 | [1, "2020-03-05", 50.10, 199.60, 10000], 118 | [1, "2020-03-24", 35.50, 2816.90, 100000], 119 | [1, "2020-04-05", 42.80, 233.64, 10000], 120 | [1, "2020-05-05", 45.60, 219.29, 10000], 121 | [1, "2020-06-05", 51.20, 195.31, 10000], 122 | [1, "2020-07-05", 54.80, 182.48, 10000], 123 | [1, "2020-08-05", 59.10, 169.20, 10000], 124 | [1, "2020-09-05", 60.30, 165.83, 10000], 125 | [1, "2020-10-05", 62.50, 160.00, 10000], 126 | [1, "2020-11-05", 68.90, 145.13, 10000], 127 | [1, "2020-12-05", 72.40, 138.12, 10000], 128 | [1, "2021-01-05", 75.10, 159.78, 12000], 129 | [1, "2021-02-05", 80.80, 148.51, 12000], 130 | [1, "2021-03-05", 82.30, 145.80, 12000], 131 | [1, "2021-04-05", 84.50, 142.01, 12000], 132 | [1, "2021-05-05", 86.90, 138.08, 12000], 133 | [1, "2021-06-05", 92.10, 130.29, 12000], 134 | [1, "2021-07-05", 95.40, 125.78, 12000], 135 | [1, "2021-08-05", 98.60, 121.70, 12000], 136 | [1, "2021-09-05", 102.30, 117.30, 12000], 137 | [1, "2021-10-05", 105.70, 113.52, 12000], 138 | [1, "2021-11-05", 103.20, 116.27, 12000], 139 | [1, "2021-12-05", 101.80, 117.87, 12000], 140 | [1, "2022-01-05", 106.50, 140.84, 15000], 141 | [1, "2022-02-05", 104.10, 144.09, 15000], 142 | [1, "2022-03-05", 99.80, 150.30, 15000], 143 | [1, "2022-04-05", 103.20, 145.34, 15000], 144 | [1, "2022-05-05", 98.70, 151.97, 15000], 145 | [1, "2022-06-05", 95.90, 156.41, 15000], 146 | [1, "2022-07-05", 101.10, 148.36, 15000], 147 | [1, "2022-08-05", 105.40, 142.31, 15000], 148 | [1, "2022-09-05", 106.80, 140.44, 15000], 149 | [1, "2022-10-05", 104.90, 142.99, 15000], 150 | [1, "2022-11-05", 108.20, 138.63, 15000], 151 | [1, "2022-12-05", 110.30, 135.99, 15000], 152 | [1, "2023-01-05", 108.40, 138.37, 15000], 153 | [1, "2023-02-05", 107.10, 140.05, 15000], 154 | [1, "2023-03-05", 106.50, 140.84, 15000], 155 | [1, "2023-04-05", 110.20, 136.11, 15000], 156 | [1, "2023-05-05", 115.80, 129.53, 15000], 157 | [1, "2023-06-05", 120.40, 124.58, 15000], 158 | [1, "2023-07-05", 128.50, 116.73, 15000], 159 | [1, "2023-08-05", 132.10, 113.55, 15000], 160 | [1, "2023-09-05", 135.60, 110.61, 15000], 161 | [1, "2023-10-05", 133.80, 112.10, 15000], 162 | [1, "2023-11-05", 140.20, 106.99, 15000], 163 | [1, "2023-12-05", 145.90, 102.81, 15000], 164 | [1, "2024-01-05", 148.30, 101.14, 15000], 165 | [1, "2024-02-05", 145.75, 102.91, 15000], 166 | [1, "2024-03-05", 149.10, 100.60, 15000] 167 | ] 168 | }, 169 | { 170 | "isin": "INF247L01024", 171 | "schemeName": "Motilal Oswal Nasdaq 100 FOF - Direct - Growth", 172 | "folioId": "FIRE-INTL1", 173 | "txns": [ 174 | [1, "2022-01-05", 25.10, 199.20, 5000], 175 | [1, "2022-02-05", 24.50, 204.08, 5000], 176 | [1, "2022-03-05", 23.80, 210.08, 5000], 177 | [1, "2022-04-05", 22.90, 218.34, 5000], 178 | [1, "2022-05-05", 22.10, 226.24, 5000], 179 | [1, "2022-06-05", 21.90, 228.31, 5000], 180 | [1, "2022-06-15", 21.80, 2293.57, 50000], 181 | [1, "2022-07-05", 22.40, 223.21, 5000], 182 | [1, "2022-08-05", 23.50, 212.76, 5000], 183 | [1, "2022-09-05", 23.10, 216.45, 5000], 184 | [1, "2022-10-05", 22.80, 219.29, 5000], 185 | [1, "2022-11-05", 23.90, 209.20, 5000], 186 | [1, "2022-12-05", 24.20, 206.61, 5000], 187 | [1, "2023-01-05", 24.80, 201.61, 5000], 188 | [1, "2023-02-05", 25.90, 193.05, 5000], 189 | [1, "2023-03-05", 26.30, 190.11, 5000], 190 | [1, "2023-04-05", 27.80, 179.85, 5000], 191 | [1, "2023-05-05", 29.50, 169.49, 5000], 192 | [1, "2023-06-05", 31.20, 160.25, 5000], 193 | [1, "2023-07-05", 32.40, 154.32, 5000], 194 | [1, "2023-08-05", 31.90, 156.73, 5000], 195 | [1, "2023-09-05", 32.80, 152.43, 5000], 196 | [1, "2023-10-05", 32.10, 155.76, 5000], 197 | [1, "2023-11-05", 34.50, 144.92, 5000], 198 | [1, "2023-12-05", 35.80, 139.66, 5000], 199 | [1, "2024-01-05", 35.20, 142.04, 5000], 200 | [1, "2024-02-05", 36.90, 135.50, 5000], 201 | [1, "2024-03-05", 38.10, 131.23, 5000] 202 | ] 203 | }, 204 | { 205 | "isin": "INF090I01684", 206 | "schemeName": "Mirae Asset ELSS Tax Saver Fund - Direct Plan - Growth", 207 | "folioId": "FIRE-TAX1", 208 | "txns": [ 209 | [1, "2018-03-15", 18.50, 5405.40, 100000], 210 | [1, "2019-03-20", 20.10, 7462.68, 150000], 211 | [1, "2020-03-15", 15.50, 9677.41, 150000], 212 | [1, "2021-03-10", 25.80, 5813.95, 150000], 213 | [1, "2022-03-20", 30.25, 4958.67, 150000], 214 | [1, "2023-03-05", 31.90, 4702.19, 150000], 215 | [1, "2024-03-04", 38.50, 3896.10, 150000] 216 | ] 217 | } 218 | ], 219 | "schemaDescription": "A list of mutual fund investments. We currently support 500 transactions across all mutual funds(mutual funds with older transactions will be trimmed off, if limit exceeds). Each 'txns' field is a list of data arrays with schema: [ orderType(1 for BUY and 2 for SELL), transactionDate, purchasePrice, purchaseUnits, transactionAmount ]." 220 | } --------------------------------------------------------------------------------