Equity and ETF Insights

4 endpoints · WealthSync API

POST

/pfm/api/v2/equities-and-etfs/user-linked-accounts/holding-broker

#

Combined holding-wise brokers for Equities + ETF.

docs.signcare.io/wealthsync/api/equity-and-etf-insights/#post-pfm-api-v2-equities-and-etfs-user-linked-accounts-holding-broker

This API returns a combined view of Equity and ETF holdings grouped by individual stock/ETF, showing which brokers hold each instrument. Each holding shows ISIN, name, total units, current value, and a per-broker 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.

→ 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
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • totalEquityHoldings
    integer (int32)optional
    No description.
    nullable
  • totalETFHoldings
    integer (int32)optional
    No description.
    nullable
  • totalEquityCurrentValue
    number (double)optional
    No description.
    nullable
  • totalETFCurrentValue
    number (double)optional
    No description.
    nullable
  • totalCurrentValue
    number (double)optional
    No description.
    nullable
  • dailyReturns
    number (double)optional
    No description.
    nullable
  • dailyReturnsPercent
    number (double)optional
    No description.
    nullable
  • holdings
    array<object>optional
    No description.
    nullable
    Each item: 15 fields
    • issuerName
      stringoptional
      No description.
      nullable
    • schemeName
      stringoptional
      No description.
      nullable
    • isin
      stringoptional
      No description.
      nullable
    • isinDescription
      stringoptional
      No description.
      nullable
    • bseSymbol
      stringoptional
      No description.
      nullable
    • nseSymbol
      stringoptional
      No description.
      nullable
    • marketCapCategory
      stringoptional
      No description.
      nullable
    • fiType
      stringoptional
      No description.
      nullable
    • units
      number (double)optional
      No description.
      nullable
    • lastTradedPrice
      number (double)optional
      No description.
      nullable
    • lastFetchTime
      stringoptional
      No description.
      nullable
    • currentValue
      number (double)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
        stringoptional
        No description.
        nullable
      • holdingIsin
        stringoptional
        No description.
        nullable
      • totalUnits
        number (double)optional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
    • portfolioWeightagePercent
      number (double)optional
      No description.
      nullable
    • brokers
      array<object>optional
      No description.
      nullable
      Each item: 8 fields
      • brokerName
        stringoptional
        No description.
        nullable
      • brandName
        stringoptional
        No description.
        nullable
      • brokerId
        stringoptional
        No description.
        nullable
      • units
        number (double)optional
        No description.
        nullable
      • lastTradedPrice
        number (double)optional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
      • lastFetchTime
        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
          stringoptional
          No description.
          nullable
        • holdingIsin
          stringoptional
          No description.
          nullable
        • totalUnits
          number (double)optional
          No description.
          nullable
        • currentValue
          number (double)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
  • totalHoldings
    integer (int32)optional
    No description.
    nullable
Example
{ "totalFiData": 0, "totalFiDataToBeFetched": 0, "totalEquityHoldings": 0, "totalETFHoldings": 0, "totalEquityCurrentValue": 0, "totalETFCurrentValue": 0, "totalCurrentValue": 0, "dailyReturns": 0, "dailyReturnsPercent": 0, "holdings": [ { "issuerName": "string", "schemeName": "string", "isin": "string", "isinDescription": "string", "bseSymbol": "string", "nseSymbol": "string", "marketCapCategory": "string", "fiType": "string", "units": 0, "lastTradedPrice": 0, "lastFetchTime": "string", "currentValue": 0, "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "string", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "portfolioWeightagePercent": 0, "brokers": [ { "brokerName": "string", "brandName": "string", "brokerId": "string", "units": 0, "lastTradedPrice": 0, "currentValue": 0, "lastFetchTime": "string", "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "string", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 } } ] } ], "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/equities-and-etfs/user-linked-accounts/holding-broker' \ -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/equities-and-etfs/user-linked-accounts/demat-holding

#

Combined demat-wise holdings for Equities + ETF.

docs.signcare.io/wealthsync/api/equity-and-etf-insights/#post-pfm-api-v2-equities-and-etfs-user-linked-accounts-demat-holding

This API returns a combined view of Equity and ETF holdings grouped by demat account. Each demat account shows broker name, demat ID, total current value, and the list of stock + ETF holdings under it.

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
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • totalEquityDematAccounts
    integer (int32)optional
    No description.
    nullable
  • totalEtfDematAccounts
    integer (int32)optional
    No description.
    nullable
  • currentValue
    number (double)optional
    No description.
    nullable
  • demat
    array<object>optional
    No description.
    nullable
    Each item: 15 fields
    • dematId
      integer (int64)optional
      No description.
      nullable
    • brokerId
      integer (int32)optional
      No description.
      nullable
    • brokerName
      stringoptional
      No description.
      nullable
    • brandName
      stringoptional
      No description.
      nullable
    • fiDataId
      stringoptional
      No description.
      nullable
    • fipId
      stringoptional
      No description.
      nullable
    • fiType
      stringoptional
      No description.
      nullable
    • maskedAccNumber
      stringoptional
      No description.
      nullable
    • accountRefNumber
      stringoptional
      No description.
      nullable
    • units
      number (double)optional
      No description.
      nullable
    • lastTradedPrice
      number (double)optional
      No description.
      nullable
    • currentValue
      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
        stringoptional
        No description.
        nullable
      • holdingIsin
        stringoptional
        No description.
        nullable
      • totalUnits
        number (double)optional
        No description.
        nullable
      • currentValue
        number (double)optional
        No description.
        nullable
    • holdings
      array<object>optional
      No description.
      nullable
      Each item: 17 fields
      • issuerName
        stringoptional
        No description.
        nullable
      • schemeName
        stringoptional
        No description.
        nullable
      • isin
        stringoptional
        No description.
        nullable
      • isinDescription
        stringoptional
        No description.
        nullable
      • bseSymbol
        stringoptional
        No description.
        nullable
      • nseSymbol
        stringoptional
        No description.
        nullable
      • marketCapCategory
        stringoptional
        No description.
        nullable
      • units
        number (double)optional
        No description.
        nullable
      • lastTradedPrice
        number (double)optional
        No description.
        nullable
      • lastFetchTime
        string (date-time)optional
        No description.
        nullable
      • currentValue
        number (double)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
          stringoptional
          No description.
          nullable
        • holdingIsin
          stringoptional
          No description.
          nullable
        • totalUnits
          number (double)optional
          No description.
          nullable
        • currentValue
          number (double)optional
          No description.
          nullable
      • portfolioWeightagePercent
        number (double)optional
        No description.
        nullable
      • fiType
        stringoptional
        No description.
        nullable
      • fiDataId
        stringoptional
        No description.
        nullable
      • oneDayReturnsPercent
        number (double)optional
        No description.
        nullable
      • oneDayReturns
        number (double)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
      stringoptional
      No description.
      nullable
    • holdingIsin
      stringoptional
      No description.
      nullable
    • totalUnits
      number (double)optional
      No description.
      nullable
    • currentValue
      number (double)optional
      No description.
      nullable
Example
{ "totalFiData": 0, "totalFiDataToBeFetched": 0, "totalEquityDematAccounts": 0, "totalEtfDematAccounts": 0, "currentValue": 0, "demat": [ { "dematId": 0, "brokerId": 0, "brokerName": "string", "brandName": "string", "fiDataId": "string", "fipId": "string", "fiType": "string", "maskedAccNumber": "string", "accountRefNumber": "string", "units": 0, "lastTradedPrice": 0, "currentValue": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "string", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "holdings": [ { "issuerName": "string", "schemeName": "string", "isin": "string", "isinDescription": "string", "bseSymbol": "string", "nseSymbol": "string", "marketCapCategory": "string", "units": 0, "lastTradedPrice": 0, "lastFetchTime": "2026-01-01T00:00:00Z", "currentValue": 0, "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "string", "holdingIsin": "string", "totalUnits": 0, "currentValue": 0 }, "portfolioWeightagePercent": 0, "fiType": "string", "fiDataId": "string", "oneDayReturnsPercent": 0, "oneDayReturns": 0 } ] } ], "prevDetails": { "percentageChange": 0, "priceChange": 0, "lastFetchTime": "string", "holdingIsin": "string", "totalUnits": 0, "currentValue": 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/equities-and-etfs/user-linked-accounts/demat-holding' \ -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/equities-and-etfs/user-linked-accounts

#

Get user linked accounts.

docs.signcare.io/wealthsync/api/equity-and-etf-insights/#post-pfm-api-v2-equities-and-etfs-user-linked-accounts

This API returns all linked Equity and ETF accounts for a user in a combined view. Each linked account includes demat ID, broker name, holder info, consent status, and current value.

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
  • totalFiData
    integer (int32)optional
    No description.
    nullable
  • totalFiDataToBeFetched
    integer (int32)optional
    No description.
    nullable
  • fipData
    array<object>optional
    No description.
    nullable
    Each item: 6 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: 27 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
      • maskedDematId
        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
      • holderDematId
        integer (int64)optional
        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
      • holdingsCount
        integer (int32)optional
        No description.
        nullable
      • accountCurrentValue
        number (double)optional
        No description.
        nullable
      • brokerId
        integer (int32)optional
        No description.
        nullable
      • brokerName
        stringoptional
        No description.
        nullable
      • brandName
        stringoptional
        No description.
        nullable
    • currentValue
      number (double)optional
      No description.
      nullable
  • currentValue
    number (double)optional
    No description.
    nullable
  • totalBrokers
    integer (int32)optional
    No description.
    nullable
Example
{ "totalFiData": 0, "totalFiDataToBeFetched": 0, "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", "maskedDematId": "string", "linkedAccountType": "string", "holderName": "string", "holderDob": "2026-01-01T00:00:00Z", "holderMobile": "string", "holderNominee": "string", "holderDematId": 0, "holderLandline": "string", "holderAddress": "string", "holderEmail": "string", "holderPan": "string", "holderCkycCompliance": "string", "holdingsCount": 0, "accountCurrentValue": 0, "brokerId": 0, "brokerName": "string", "brandName": "string" } ], "currentValue": 0 } ], "currentValue": 0, "totalBrokers": 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/equities-and-etfs/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", "filterZeroValueAccounts": "false", "filterZeroValueHoldings": "false" }'
POST

/pfm/api/v2/equities-and-etfs/user-account-statement

#

Combined account statement transactions for Equities + ETF.

docs.signcare.io/wealthsync/api/equity-and-etf-insights/#post-pfm-api-v2-equities-and-etfs-user-account-statement

This API returns the combined transaction history for Equity and ETF accounts. Each transaction includes trade date, ISIN, name, units, price, type (BUY/SELL), and trade value.

Prerequisites:

→ First call POST equities-and-etfs/user-linked-accounts to get the list of linked 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 (optional): The fiDataId of the specific account, to limit the statement to that account.

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

→ isin (optional): Filter transactions by ISIN.

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

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

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

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
    stringoptional
    Optional. The fiDataId of a linked account, taken from the linked-accounts response, to limit the statement to that account.
    nullable
  • brokerId
    stringoptional
    Optional. Filter transactions by broker ID.
    nullable
  • isin
    stringoptional
    Optional. Filter transactions by ISIN.
    nullable
  • txnOrder
    stringoptional
    Optional. Sort order of transactions. Allowed values: ASC (oldest first), DESC (newest first). Default: ASC.
    nullabledefault ASC
  • 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
Sample request body
{ "uniqueIdentifier": "user-12345", "txnOrder": "ASC", "dateRangeFrom": "2024-01-01", "dateRangeTo": "2024-12-31" }

Responses

200OK
Example
[ { "accountId": "string", "brokerId": 0, "brokerName": "string", "brandName": "string", "maskedAccNumber": "string", "txnId": "string", "isin": "string", "isinDescription": "string", "bseSymbol": "string", "nseSymbol": "string", "marketCapCategory": "string", "transactionDateTime": "2026-01-01T00:00:00Z", "units": 0, "orderId": "string", "companyName": "string", "type": "string", "narration": "string", "equityCategory": "string", "rate": 0, "exchange": "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/equities-and-etfs/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", "txnOrder": "ASC", "dateRangeFrom": "2024-01-01", "dateRangeTo": "2024-12-31" }'