Mutual Fund Insights

9 endpoints · WealthSync API

POST

/pfm/api/v2/mutual-fund/user-linked-accounts/holding-folio

#

Get linked accounts holding folio for mutual funds.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-user-linked-accounts-holding-folio

This API returns mutual fund holdings aggregated at the folio level. Each holding includes AMC name, scheme code, ISIN, NAV, units, current value, cost value, and a per-folio breakdown with individual folio numbers, units, and values.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ filterCdslNsdl (optional): Set to "true" to filter out CDSL/NSDL demat-held mutual fund folios. Default: "true".

→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".

→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. Default: "false".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • filterCdslNsdl
    stringoptional
    Optional. Send "true" to exclude mutual fund folios held in demat form (CDSL/NSDL). String "true" or "false". Default: "true".
    nullabledefault true
  • filterZeroValueAccounts
    stringoptional
    Optional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
  • filterZeroValueHoldings
    stringoptional
    Optional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
Sample request body
{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }

Responses

200OK
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • currentValue
    number (double)optional
    No description.
    nullable
  • costValue
    number (double)optional
    No description.
    nullable
  • holdings
    array<object>optional
    No description.
    nullable
    Each item: 20 fields
    • amc
      stringoptional
      No description.
      nullable
    • registrar
      stringoptional
      No description.
      nullable
    • schemeCode
      stringoptional
      No description.
      nullable
    • schemaOption
      stringoptional
      No description.
      nullable
    • schemaTypes
      stringoptional
      No description.
      nullable
    • schemaCategory
      stringoptional
      No description.
      nullable
    • isin
      stringoptional
      No description.
      nullable
    • isinDescription
      stringoptional
      No description.
      nullable
    • ucc
      stringoptional
      No description.
      nullable
    • amfiCode
      stringoptional
      No description.
      nullable
    • closingUnits
      number (double)optional
      No description.
      nullable
    • lienUnits
      number (double)optional
      No description.
      nullable
    • nav
      number (double)optional
      No description.
      nullable
    • avgNav
      number (double)optional
      No description.
      nullable
    • navDate
      string (date-time)optional
      No description.
      nullable
    • lockingUnits
      number (double)optional
      No description.
      nullable
    • lastFetchTime
      string (date-time)optional
      No description.
      nullable
    • prevDetails
      objectoptional
      No description.
      6 fields
      • percentageChange
        number (double)optional
        No description.
        nullable
      • priceChange
        number (double)optional
        No description.
        nullable
      • lastFetchTime
        string (date-time)optional
        No description.
        nullable
      • holdingIsin
        stringoptional
        No description.
        nullable
      • totalUnits
        number (double)optional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • folios
      array<object>optional
      No description.
      nullable
      Each item: 14 fields
      • fipId
        stringoptional
        No description.
        nullable
      • fiDataId
        stringoptional
        No description.
        nullable
      • maskedAccNumber
        stringoptional
        No description.
        nullable
      • accountRefNumber
        stringoptional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
      • folioNo
        stringoptional
        No description.
        nullable
      • closingUnits
        number (double)optional
        No description.
        nullable
      • lienUnits
        number (double)optional
        No description.
        nullable
      • nav
        number (double)optional
        No description.
        nullable
      • navDate
        string (date-time)optional
        No description.
        nullable
      • lockingUnits
        number (double)optional
        No description.
        nullable
      • lastFetchTime
        string (date-time)optional
        No description.
        nullable
      • prevDetails
        objectoptional
        No description.
        6 fields
        • percentageChange
          number (double)optional
          No description.
          nullable
        • priceChange
          number (double)optional
          No description.
          nullable
        • lastFetchTime
          string (date-time)optional
          No description.
          nullable
        • holdingIsin
          stringoptional
          No description.
          nullable
        • totalUnits
          number (double)optional
          No description.
          nullable
        • currentValue
          number (double)optional
          No description.
          nullable
      • source
        stringoptional
        No description.
        nullable
  • prevDetails
    objectoptional
    No description.
    6 fields
    • percentageChange
      number (double)optional
      No description.
      nullable
    • priceChange
      number (double)optional
      No description.
      nullable
    • lastFetchTime
      string (date-time)optional
      No description.
      nullable
    • holdingIsin
      stringoptional
      No description.
      nullable
    • totalUnits
      number (double)optional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
  • totalHoldings
    integer (int32)optional
    No description.
    nullable
Example
{ "totalFiData": 0, "totalFiDataToBeFetched": 0, "currentValue": 0, "costValue": 0, "holdings": [ { "amc": "string", "registrar": "string", "schemeCode": "string", "schemaOption": "string", "schemaTypes": "string", "schemaCategory": "string", "isin": "string", "isinDescription": "string", "ucc": "string", "amfiCode": "string", "closingUnits": 0, "lienUnits": 0, "nav": 0, "avgNav": 0, "navDate": "2026-01-01T00:00:00Z", "lockingUnits": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "currentValue": 0, "folios": [ { "fipId": "string", "fiDataId": "string", "maskedAccNumber": "string", "accountRefNumber": "string", "currentValue": 0, "folioNo": "string", "closingUnits": 0, "lienUnits": 0, "nav": 0, "navDate": "2026-01-01T00:00:00Z", "lockingUnits": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "source": "string" } ] } ], "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "totalHoldings": 0 }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/user-linked-accounts/holding-folio' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/mutual-fund/user-linked-accounts

#

Get user linked accounts for mutual funds.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-user-linked-accounts

This API returns all linked Mutual Fund accounts for a user, grouped by FIP (Financial Information Provider). Each linked account includes AMC, folio number, holder info (name, PAN, DOB, email, mobile), consent status, holdings count, and current/cost values.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ filterCdslNsdl (optional): Set to "true" to filter out CDSL/NSDL demat-held mutual fund folios. Default: "true".

→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".

→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. Default: "false".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • filterCdslNsdl
    stringoptional
    Optional. Send "true" to exclude mutual fund folios held in demat form (CDSL/NSDL). String "true" or "false". Default: "true".
    nullabledefault true
  • filterZeroValueAccounts
    stringoptional
    Optional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
  • filterZeroValueHoldings
    stringoptional
    Optional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
Sample request body
{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }

Responses

200OK
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • lastFetchDate
    stringoptional
    No description.
    nullable
  • fipData
    array<object>optional
    No description.
    nullable
    Each item: 7 fields
    • fipId
      stringoptional
      No description.
      nullable
    • fipName
      stringoptional
      No description.
      nullable
    • totalFiData
      integer (int32)optional
      No description.
      nullable
    • totalFiDataToBeFetched
      integer (int32)optional
      No description.
      nullable
    • linkedAccounts
      array<object>optional
      No description.
      nullable
      Each item: 26 fields
      • fiDataId
        stringoptional
        No description.
        nullable
      • accountRefNumber
        stringoptional
        No description.
        nullable
      • dataFetched
        stringoptional
        No description.
        nullable
      • lastFetchDateTime
        string (date-time)optional
        No description.
        nullable
      • fiRequestCountOfCurrentMonth
        integer (int32)optional
        No description.
        nullable
      • fipId
        stringoptional
        No description.
        nullable
      • fipName
        stringoptional
        No description.
        nullable
      • latestConsentPurposeText
        stringoptional
        No description.
        nullable
      • latestConsentExpiryTime
        string (date-time)optional
        No description.
        nullable
      • consentPurposeVersion
        stringoptional
        No description.
        nullable
      • amc
        stringoptional
        No description.
        nullable
      • maskedFolioNo
        stringoptional
        No description.
        nullable
      • linkedAccountType
        stringoptional
        No description.
        nullable
      • holderName
        stringoptional
        No description.
        nullable
      • holderDob
        string (date-time)optional
        No description.
        nullable
      • holderMobile
        stringoptional
        No description.
        nullable
      • holderNominee
        stringoptional
        No description.
        nullable
      • holderFolioNo
        stringoptional
        No description.
        nullable
      • holderLandline
        stringoptional
        No description.
        nullable
      • holderAddress
        stringoptional
        No description.
        nullable
      • holderEmail
        stringoptional
        No description.
        nullable
      • holderPan
        stringoptional
        No description.
        nullable
      • holderCkycCompliance
        stringoptional
        No description.
        nullable
      • mutualFundHoldingsCount
        integer (int32)optional
        No description.
        nullable
      • accountCurrentValue
        number (double)optional
        No description.
        nullable
      • accountCostValue
        number (double)optional
        No description.
        nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • costValue
      number (double)optional
      No description.
      nullable
  • currentValue
    number (double)optional
    No description.
    nullable
  • costValue
    number (double)optional
    No description.
    nullable
Example
{ "totalFiData": 0, "totalFiDataToBeFetched": 0, "lastFetchDate": "string", "fipData": [ { "fipId": "string", "fipName": "string", "totalFiData": 0, "totalFiDataToBeFetched": 0, "linkedAccounts": [ { "fiDataId": "string", "accountRefNumber": "string", "dataFetched": "string", "lastFetchDateTime": "2026-01-01T00:00:00Z", "fiRequestCountOfCurrentMonth": 0, "fipId": "string", "fipName": "string", "latestConsentPurposeText": "string", "latestConsentExpiryTime": "2026-01-01T00:00:00Z", "consentPurposeVersion": "string", "amc": "string", "maskedFolioNo": "string", "linkedAccountType": "string", "holderName": "string", "holderDob": "2026-01-01T00:00:00Z", "holderMobile": "string", "holderNominee": "string", "holderFolioNo": "string", "holderLandline": "string", "holderAddress": "string", "holderEmail": "string", "holderPan": "string", "holderCkycCompliance": "string", "mutualFundHoldingsCount": 0, "accountCurrentValue": 0, "accountCostValue": 0 } ], "currentValue": 0, "costValue": 0 } ], "currentValue": 0, "costValue": 0 }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/user-linked-accounts' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/mutual-fund/user-details

#

Get user details for mutual funds.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-user-details

This API retrieves the user's subscription status along with a summary of all Mutual Fund FI data. It shows subscription start/end dates and a per-FIP account breakdown.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
Sample request body
{ "uniqueIdentifier": "user-12345" }

Responses

200OK
  • subscriptionStatus
    stringoptional
    No description.
    nullable
  • subscriptionStartDate
    stringoptional
    No description.
    nullable
  • subscriptionEndDate
    stringoptional
    No description.
    nullable
  • fiDatas
    anyoptional
    No description.
    nullable
Example
{ "subscriptionStatus": "string", "subscriptionStartDate": "string", "subscriptionEndDate": "string", "fiDatas": null }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/user-details' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345" }'
POST

/pfm/api/v2/mutual-fund/user-account-statement

#

Get user account statement for mutual funds.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-user-account-statement

This API returns the transaction history for mutual fund accounts. Each transaction includes ISIN, AMC, NAV, units, amount, folio number, tax details, and more. You can filter by specific ISIN, folio, broker, or date range.

Prerequisites:

→ First call POST mutual-fund/user-linked-accounts to get the list of linked mutual fund accounts.

→ From the response, pick the fiDataId of the desired account.

→ Pass that fiDataId as the "accountId" parameter in this API.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ accountId (required): The fiDataId of the specific account.

→ dateRangeFrom (optional): Start date for filtering transactions. Format: yyyy-MM-dd.

→ dateRangeTo (optional): End date for filtering transactions. Format: yyyy-MM-dd.

→ txnOrder (optional): Sort order — "ASC" (oldest first) or "DESC" (newest first). Default: "ASC".

→ brokerId (optional): Filter transactions by specific broker ID.

→ folioNo (optional): Filter transactions by specific folio number.

→ isin (optional): Filter transactions by specific ISIN code.

→ isins (optional): Filter transactions by multiple ISIN codes (array of strings).

→ accountIds (optional): Filter transactions by multiple account IDs (array of strings).

→ maskedFolioNos (optional): Filter transactions by masked folio numbers (array of strings).

→ filterCdslNsdl (optional): Set to "true" to filter out CDSL/NSDL demat-held mutual fund folios. Default: "True".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • accountId
    stringrequired
    Required. The fiDataId of the linked account, taken from the linked-accounts response.
    minLength 1default YOUR_FI_DATA_ID
  • dateRangeFrom
    stringoptional
    Optional. Start date to filter transactions, in yyyy-MM-dd format.
    nullabledefault 2024-01-01
  • dateRangeTo
    stringoptional
    Optional. End date to filter transactions, in yyyy-MM-dd format.
    nullabledefault 2024-12-31
  • txnOrder
    stringoptional
    Optional. Sort order of transactions. Allowed values: ASC (oldest first), DESC (newest first). Default: ASC.
    nullabledefault ASC
  • brokerId
    stringoptional
    Optional. Filter transactions by broker ID.
    nullable
  • folioNo
    stringoptional
    Optional. Filter transactions by folio number.
    nullable
  • isin
    stringoptional
    Optional. Filter transactions by ISIN.
    nullable
  • isins
    array<string>optional
    Optional. Filter transactions by a list of ISINs.
    nullable
  • accountIds
    array<string>optional
    Optional. Filter transactions by a list of account IDs (fiDataId values).
    nullable
  • maskedFolioNos
    array<string>optional
    Optional. Filter transactions by a list of masked folio numbers.
    nullable
  • filterCdslNsdl
    stringoptional
    Optional. Send "true" to exclude mutual fund folios held in demat form (CDSL/NSDL). String "true" or "false". Default: "True".
    nullabledefault true
Sample request body
{ "uniqueIdentifier": "user-12345", "accountId": "YOUR_FI_DATA_ID", "dateRangeFrom": "2024-01-01", "dateRangeTo": "2024-12-31", "txnOrder": "ASC", "filterCdslNsdl": "true" }

Responses

200OK
Example
[ { "accountId": "string", "txnId": "string", "isin": "string", "amc": "string", "nav": 0, "mode": "string", "type": "string", "subType": "string", "units": 0, "amount": 0, "navDate": "2026-01-01T00:00:00Z", "amfiCode": "string", "narration": "string", "registrar": "string", "lockInDays": 0, "lockInFlag": "string", "isinDescription": "string", "transactionDateTime": "2026-01-01T00:00:00Z", "folioNo": "string", "sttTax": 0, "tax": 0, "totalTax": 0, "stampDuty": 0, "txnCharge": 0, "dataSource": "string", "brokerCode": "string" } ]
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/user-account-statement' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "accountId": "YOUR_FI_DATA_ID", "dateRangeFrom": "2024-01-01", "dateRangeTo": "2024-12-31", "txnOrder": "ASC", "filterCdslNsdl": "true" }'
POST

/pfm/api/v2/mutual-fund/insights-no-pii

#

Get mutual funds related insights (no PII).

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-insights-no-pii

This API returns portfolio-level mutual fund insights WITHOUT any Personally Identifiable Information (PII). The response includes an overall summary with current value, invested value, absolute return, XIRR, daily returns, plus distribution breakdowns by category, sub-category, market cap, AMC, and sector. Per-holding insights include fund name, ISIN, returns, NAV, units, and SIP info.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".

→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. Default: "false".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • filterZeroValueAccounts
    stringoptional
    Optional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
  • filterZeroValueHoldings
    stringoptional
    Optional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
Sample request body
{ "uniqueIdentifier": "user-12345", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }

Responses

200OK
  • overallSummary
    objectoptional
    No description.
    15 fields
    • pan
      stringoptional
      No description.
      nullable
    • mobile
      stringoptional
      No description.
      nullable
    • totalHoldings
      integer (int32)optional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • investedValue
      number (double)optional
      No description.
      nullable
    • absoluteReturn
      number (double)optional
      No description.
      nullable
    • absoluteReturnPercentage
      number (double)optional
      No description.
      nullable
    • xirr
      number (double)optional
      No description.
      nullable
    • dailyReturns
      number (double)optional
      No description.
      nullable
    • dailyReturnsPercent
      number (double)optional
      No description.
      nullable
    • categoryDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • category
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • subCategoryDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • subCategory
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsMarketCapDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • marketCap
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsAmcDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • amc
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsSectorDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • sector
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
  • holdings
    array<object>optional
    No description.
    nullable
    Each item: 27 fields
    • fundName
      stringoptional
      No description.
      nullable
    • isin
      stringoptional
      No description.
      nullable
    • registrar
      stringoptional
      No description.
      nullable
    • schemeOption
      stringoptional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • investedValue
      number (double)optional
      No description.
      nullable
    • absoluteReturn
      number (double)optional
      No description.
      nullable
    • absoluteReturnPercentage
      number (double)optional
      No description.
      nullable
    • benchmarkName
      stringoptional
      No description.
      nullable
    • benchmarkReturns
      stringoptional
      No description.
      nullable
    • xirr
      number (double)optional
      No description.
      nullable
    • currentNavDate
      string (date-time)optional
      No description.
      nullable
    • currentNav
      number (double)optional
      No description.
      nullable
    • totalUnits
      number (double)optional
      No description.
      nullable
    • lienUnits
      number (double)optional
      No description.
      nullable
    • lockedInUnits
      number (double)optional
      No description.
      nullable
    • availableUnits
      number (double)optional
      No description.
      nullable
    • dailyReturns
      number (double)optional
      No description.
      nullable
    • dailyReturnsPercent
      number (double)optional
      No description.
      nullable
    • sip
      stringoptional
      No description.
      nullable
    • subcategory
      stringoptional
      No description.
      nullable
    • category
      stringoptional
      No description.
      nullable
    • amcName
      stringoptional
      No description.
      nullable
    • amfiCode
      stringoptional
      No description.
      nullable
    • distributionStatus
      stringoptional
      No description.
      nullable
    • firstTransactionDate
      stringoptional
      No description.
      nullable
    • perFolioHoldingInsights
      array<object>optional
      No description.
      nullable
      Each item: 18 fields
      • folio
        stringoptional
        No description.
        nullable
      • brokerCode
        stringoptional
        No description.
        nullable
      • brokerName
        stringoptional
        No description.
        nullable
      • isDemat
        stringoptional
        No description.
        nullable
      • fatcaStatus
        stringoptional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
      • investedValue
        number (double)optional
        No description.
        nullable
      • absoluteReturn
        number (double)optional
        No description.
        nullable
      • absoluteReturnPercentage
        number (double)optional
        No description.
        nullable
      • xirr
        number (double)optional
        No description.
        nullable
      • averageNav
        number (double)optional
        No description.
        nullable
      • totalUnits
        number (double)optional
        No description.
        nullable
      • lienUnits
        number (double)optional
        No description.
        nullable
      • lockedInUnits
        number (double)optional
        No description.
        nullable
      • availableUnits
        number (double)optional
        No description.
        nullable
      • dailyReturns
        number (double)optional
        No description.
        nullable
      • dailyReturnsPercent
        number (double)optional
        No description.
        nullable
      • sip
        stringoptional
        No description.
        nullable
Example
{ "overallSummary": { "pan": "string", "mobile": "string", "totalHoldings": 0, "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "xirr": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "categoryDistribution": [ { "category": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "subCategoryDistribution": [ { "subCategory": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsMarketCapDistribution": [ { "marketCap": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsAmcDistribution": [ { "amc": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsSectorDistribution": [ { "sector": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ] }, "holdings": [ { "fundName": "string", "isin": "string", "registrar": "string", "schemeOption": "string", "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "benchmarkName": "string", "benchmarkReturns": "string", "xirr": 0, "currentNavDate": "2026-01-01T00:00:00Z", "currentNav": 0, "totalUnits": 0, "lienUnits": 0, "lockedInUnits": 0, "availableUnits": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "sip": "string", "subcategory": "string", "category": "string", "amcName": "string", "amfiCode": "string", "distributionStatus": "string", "firstTransactionDate": "string", "perFolioHoldingInsights": [ { "folio": "string", "brokerCode": "string", "brokerName": "string", "isDemat": "string", "fatcaStatus": "string", "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "xirr": 0, "averageNav": 0, "totalUnits": 0, "lienUnits": 0, "lockedInUnits": 0, "availableUnits": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "sip": "string" } ] } ] }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/insights-no-pii' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/mutual-fund/insights

#

Get mutual fund insights.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-insights

This API returns full mutual fund insights WITH PII (Personally Identifiable Information). The response includes the overall summary (PAN, mobile, total holdings, current value, invested value, absolute return, XIRR, daily returns) and per-holding breakdown with benchmark comparison, per-folio insights, and distribution data.

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".

→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. Default: "false".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • filterZeroValueAccounts
    stringoptional
    Optional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
  • filterZeroValueHoldings
    stringoptional
    Optional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
Sample request body
{ "uniqueIdentifier": "user-12345", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }

Responses

200OK
  • overallSummary
    objectoptional
    No description.
    15 fields
    • pan
      stringoptional
      No description.
      nullable
    • mobile
      stringoptional
      No description.
      nullable
    • totalHoldings
      integer (int32)optional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • investedValue
      number (double)optional
      No description.
      nullable
    • absoluteReturn
      number (double)optional
      No description.
      nullable
    • absoluteReturnPercentage
      number (double)optional
      No description.
      nullable
    • xirr
      number (double)optional
      No description.
      nullable
    • dailyReturns
      number (double)optional
      No description.
      nullable
    • dailyReturnsPercent
      number (double)optional
      No description.
      nullable
    • categoryDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • category
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • subCategoryDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • subCategory
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsMarketCapDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • marketCap
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsAmcDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • amc
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
    • mutualFundsSectorDistribution
      array<object>optional
      No description.
      nullable
      Each item: 4 fields
      • sector
        stringoptional
        No description.
        nullable
      • totalFunds
        integer (int32)optional
        No description.
        nullable
      • totalCurrentValue
        number (double)optional
        No description.
        nullable
      • percentage
        number (double)optional
        No description.
        nullable
  • holdings
    array<object>optional
    No description.
    nullable
    Each item: 27 fields
    • fundName
      stringoptional
      No description.
      nullable
    • isin
      stringoptional
      No description.
      nullable
    • registrar
      stringoptional
      No description.
      nullable
    • schemeOption
      stringoptional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • investedValue
      number (double)optional
      No description.
      nullable
    • absoluteReturn
      number (double)optional
      No description.
      nullable
    • absoluteReturnPercentage
      number (double)optional
      No description.
      nullable
    • benchmarkName
      stringoptional
      No description.
      nullable
    • benchmarkReturns
      stringoptional
      No description.
      nullable
    • xirr
      number (double)optional
      No description.
      nullable
    • currentNavDate
      string (date-time)optional
      No description.
      nullable
    • currentNav
      number (double)optional
      No description.
      nullable
    • totalUnits
      number (double)optional
      No description.
      nullable
    • lienUnits
      number (double)optional
      No description.
      nullable
    • lockedInUnits
      number (double)optional
      No description.
      nullable
    • availableUnits
      number (double)optional
      No description.
      nullable
    • dailyReturns
      number (double)optional
      No description.
      nullable
    • dailyReturnsPercent
      number (double)optional
      No description.
      nullable
    • sip
      stringoptional
      No description.
      nullable
    • subcategory
      stringoptional
      No description.
      nullable
    • category
      stringoptional
      No description.
      nullable
    • amcName
      stringoptional
      No description.
      nullable
    • amfiCode
      stringoptional
      No description.
      nullable
    • distributionStatus
      stringoptional
      No description.
      nullable
    • firstTransactionDate
      stringoptional
      No description.
      nullable
    • perFolioHoldingInsights
      array<object>optional
      No description.
      nullable
      Each item: 18 fields
      • folio
        stringoptional
        No description.
        nullable
      • brokerCode
        stringoptional
        No description.
        nullable
      • brokerName
        stringoptional
        No description.
        nullable
      • isDemat
        stringoptional
        No description.
        nullable
      • fatcaStatus
        stringoptional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
      • investedValue
        number (double)optional
        No description.
        nullable
      • absoluteReturn
        number (double)optional
        No description.
        nullable
      • absoluteReturnPercentage
        number (double)optional
        No description.
        nullable
      • xirr
        number (double)optional
        No description.
        nullable
      • averageNav
        number (double)optional
        No description.
        nullable
      • totalUnits
        number (double)optional
        No description.
        nullable
      • lienUnits
        number (double)optional
        No description.
        nullable
      • lockedInUnits
        number (double)optional
        No description.
        nullable
      • availableUnits
        number (double)optional
        No description.
        nullable
      • dailyReturns
        number (double)optional
        No description.
        nullable
      • dailyReturnsPercent
        number (double)optional
        No description.
        nullable
      • sip
        stringoptional
        No description.
        nullable
Example
{ "overallSummary": { "pan": "string", "mobile": "string", "totalHoldings": 0, "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "xirr": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "categoryDistribution": [ { "category": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "subCategoryDistribution": [ { "subCategory": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsMarketCapDistribution": [ { "marketCap": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsAmcDistribution": [ { "amc": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ], "mutualFundsSectorDistribution": [ { "sector": "string", "totalFunds": 0, "totalCurrentValue": 0, "percentage": 0 } ] }, "holdings": [ { "fundName": "string", "isin": "string", "registrar": "string", "schemeOption": "string", "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "benchmarkName": "string", "benchmarkReturns": "string", "xirr": 0, "currentNavDate": "2026-01-01T00:00:00Z", "currentNav": 0, "totalUnits": 0, "lienUnits": 0, "lockedInUnits": 0, "availableUnits": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "sip": "string", "subcategory": "string", "category": "string", "amcName": "string", "amfiCode": "string", "distributionStatus": "string", "firstTransactionDate": "string", "perFolioHoldingInsights": [ { "folio": "string", "brokerCode": "string", "brokerName": "string", "isDemat": "string", "fatcaStatus": "string", "currentValue": 0, "investedValue": 0, "absoluteReturn": 0, "absoluteReturnPercentage": 0, "xirr": 0, "averageNav": 0, "totalUnits": 0, "lienUnits": 0, "lockedInUnits": 0, "availableUnits": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "sip": "string" } ] } ] }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/insights' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/mutual-fund/analysis

#

Get mutual fund analysis.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-analysis

This API returns mutual fund analysis with scheme category and scheme type distribution. It shows current value, cost value, total holdings, and how holdings are distributed across different scheme categories (e.g., Equity, Debt, Hybrid) and scheme types (e.g., Open-Ended, Close-Ended).

Request Body Parameters:

→ uniqueIdentifier (required): The primary identifier added at the time of subscription. It must be the exact same value used during the initial subscription and MUST never change for this user.

→ filterCdslNsdl (optional): Set to "true" to filter out CDSL/NSDL demat-held mutual fund folios. Default: "true".

→ filterZeroValueAccounts (optional): Set to "true" to exclude accounts with zero balance. Default: "false".

→ filterZeroValueHoldings (optional): Set to "true" to exclude holdings with zero value. Default: "false".

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • uniqueIdentifier
    stringrequired
    Required. Your identifier for the user, exactly as sent when the user was subscribed. Never changes for a user. Non-empty string.
    minLength 1default user-12345
  • filterCdslNsdl
    stringoptional
    Optional. Send "true" to exclude mutual fund folios held in demat form (CDSL/NSDL). String "true" or "false". Default: "true".
    nullabledefault true
  • filterZeroValueAccounts
    stringoptional
    Optional. Send "true" to exclude accounts with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
  • filterZeroValueHoldings
    stringoptional
    Optional. Send "true" to exclude holdings with zero current value. String "true" or "false". Default: "false".
    nullabledefault false
Sample request body
{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }

Responses

200OK
  • fipId
    stringoptional
    No description.
    nullable
  • fipName
    stringoptional
    No description.
    nullable
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • currentValue
    number (double)optional
    No description.
    nullable
  • costValue
    number (double)optional
    No description.
    nullable
  • totalHoldings
    integer (int32)optional
    No description.
    nullable
  • schemeCategory
    array<object>optional
    No description.
    nullable
    Each item: 3 fields
    • schemeCategory
      stringoptional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • totalHoldings
      integer (int32)optional
      No description.
      nullable
  • schemeType
    array<object>optional
    No description.
    nullable
    Each item: 3 fields
    • schemeTypes
      stringoptional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
    • totalHoldings
      integer (int32)optional
      No description.
      nullable
Example
{ "fipId": "string", "fipName": "string", "totalFiData": 0, "totalFiDataToBeFetched": 0, "currentValue": 0, "costValue": 0, "totalHoldings": 0, "schemeCategory": [ { "schemeCategory": "string", "currentValue": 0, "totalHoldings": 0 } ], "schemeType": [ { "schemeTypes": "string", "currentValue": 0, "totalHoldings": 0 } ] }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/analysis' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345", "filterCdslNsdl": "true", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/mutual-fund/benchmark/comparison/trailing

#

Get benchmark trailing comparison.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-benchmark-comparison-trailing

This API compares mutual fund benchmark trailing returns across configurable time ranges. It shows how a benchmark index performed over a trailing period (e.g., last 1 month) starting from a given date. This helps users see how their mutual fund returns compare against market benchmarks.

Request Body Parameters:

→ benchmarks (required): The benchmark code/ID to compare against (e.g., "OB48").

This is a Wealthsync internal code for a specific benchmark index (e.g., Nifty 50, Sensex, etc.).

You can pass one or multiple comma-separated codes.

→ from (required): The starting date from which trailing returns should be calculated. Format: yyyy-MM-dd.

→ ranges (required): The trailing return period.

Supported values: "1D" (1 day), "1W" (1 week), "1M" (1 month), "3M" (3 months), "6M" (6 months),

"1Y" (1 year), "3Y" (3 years), "5Y" (5 years), etc.

You can pass multiple comma-separated ranges like "1M,3M,1Y".

Example: { "benchmarks": "OB48", "from": "2024-02-01", "ranges": "1M" } This means: "Show me the trailing 1-month return of benchmark OB48 starting from February 1, 2024."

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • benchmarks
    stringrequired
    Required. Benchmark code. Pass several codes as a comma-separated string.
    minLength 1default OB48
  • from
    stringrequired
    Required. Date from which the trailing returns are calculated, in yyyy-MM-dd format.
    minLength 1default 2024-02-01
  • ranges
    stringrequired
    Required. Trailing period or comma-separated periods, for example "1M" or "1M,3M,1Y".
    minLength 1default 1M
Sample request body
{ "benchmarks": "OB48", "from": "2024-02-01", "ranges": "1M" }

Responses

200OK
  • status
    objectoptional
    No description.
    2 fields
    • code
      integer (int32)optional
      No description.
      nullable
    • message
      stringoptional
      No description.
      nullable
  • data
    anyoptional
    No description.
    nullable
  • legendInfo
    anyoptional
    No description.
    nullable
Example
{ "status": { "code": 0, "message": "string" }, "data": null, "legendInfo": null }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/benchmark/comparison/trailing' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "benchmarks": "OB48", "from": "2024-02-01", "ranges": "1M" }'
POST

/pfm/api/v2/mutual-fund/benchmark/comparison/point-to-point

#

Get benchmark point-to-point comparison.

docs.signcare.io/wealthsync/api/mutual-fund-insights/#post-pfm-api-v2-mutual-fund-benchmark-comparison-point-to-point

This API compares mutual fund benchmark returns between two specific date points. It shows how a benchmark index performed from one specific date to another.

Request Body Parameters:

→ benchmarks (required): The benchmark code/ID to compare against (e.g., "OB48").

This is a Wealthsync internal code for a specific benchmark index.

You can pass one or multiple comma-separated codes.

→ point_1 (required): The start date for the comparison period. Format: yyyy-MM-dd.

→ point_2 (required): The end date for the comparison period. Format: yyyy-MM-dd.

Example: { "benchmarks": "OB48", "point_1": "2024-01-01", "point_2": "2024-06-01" } This means: "Show me how benchmark OB48 performed between January 1, 2024 and June 1, 2024."

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • benchmarks
    stringrequired
    Required. Benchmark code. Pass several codes as a comma-separated string.
    minLength 1default OB48
  • point_1
    stringrequired
    Required. Start date of the comparison period, in yyyy-MM-dd format.
    minLength 1default 2024-01-01
  • point_2
    stringrequired
    Required. End date of the comparison period, in yyyy-MM-dd format.
    minLength 1default 2024-06-01
Sample request body
{ "benchmarks": "OB48", "point_1": "2024-01-01", "point_2": "2024-06-01" }

Responses

200OK
  • status
    objectoptional
    No description.
    2 fields
    • code
      integer (int32)optional
      No description.
      nullable
    • message
      stringoptional
      No description.
      nullable
  • data
    anyoptional
    No description.
    nullable
Example
{ "status": { "code": 0, "message": "string" }, "data": null }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/pfm/api/v2/mutual-fund/benchmark/comparison/point-to-point' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "benchmarks": "OB48", "point_1": "2024-01-01", "point_2": "2024-06-01" }'