Nudges and Cohorts

2 endpoints · WealthSync API

POST

/pfm/api/v2/nudges

#

Get personalized financial nudges and alerts.

docs.signcare.io/wealthsync/api/nudges-and-cohorts/#post-pfm-api-v2-nudges

This API returns personalized financial nudges (actionable insights/alerts) for a user. Each nudge includes a title, subtitle, background color/image, icon, and action buttons. Nudges are configured per use-case and filtered by cohort membership.

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.

→ useCase (optional): Array of use-case strings to filter nudges. Default: ["DEFAULT"].

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
  • useCase
    array<string>optional
    Optional. Use-case names (strings) to filter by. Default: ["DEFAULT"].
    nullable
Sample request body
{ "uniqueIdentifier": "user-12345" }

Responses

200OK
  • userNudges
    array<object>optional
    No description.
    nullable
    Each item: 7 fields
    • nudgeId
      stringoptional
      No description.
      nullable
    • useCase
      stringoptional
      No description.
      nullable
    • fiTypes
      stringoptional
      No description.
      nullable
    • nudgeConfig
      objectoptional
      No description.
      6 fields
      • title
        stringoptional
        No description.
        nullable
      • subtitle
        stringoptional
        No description.
        nullable
      • bgColor
        stringoptional
        No description.
        nullable
      • bgImage
        stringoptional
        No description.
        nullable
      • icon
        stringoptional
        No description.
        nullable
      • actions
        array<object>optional
        No description.
        nullable
        Each item: 3 fields
        • label
          stringoptional
          No description.
          nullable
        • actionType
          stringoptional
          No description.
          nullable
        • payload
          objectoptional
          No description.
          1 field
          • url
            stringoptional
            No description.
            nullable
    • createdAt
      stringoptional
      No description.
      nullable
    • updatedAt
      stringoptional
      No description.
      nullable
    • cohorts
      stringoptional
      No description.
      nullable
Example
{ "userNudges": [ { "nudgeId": "string", "useCase": "string", "fiTypes": "string", "nudgeConfig": { "title": "string", "subtitle": "string", "bgColor": "string", "bgImage": "string", "icon": "string", "actions": [ { "label": "string", "actionType": "string", "payload": { "url": null } } ] }, "createdAt": "string", "updatedAt": "string", "cohorts": "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/nudges' \ -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/cohorts/fetch

#

Get all cohorts by user Id.

docs.signcare.io/wealthsync/api/nudges-and-cohorts/#post-pfm-api-v2-cohorts-fetch

This API returns the cohorts (user segments) that a user belongs to. Cohorts are rule-based groupings evaluated by Wealthsync (e.g., "high spender", "saver", "investor"). The response includes both user-level cohorts and account-level cohorts with cohort ID, name, description, condition, evaluation date, use-case, tag, and type.

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.

→ useCase (optional): Array of use-case strings to filter cohorts. Default: ["DEFAULT"].

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
  • useCase
    array<string>optional
    Optional. Use-case names (strings) to filter by. Default: ["DEFAULT"].
    nullable
Sample request body
{ "uniqueIdentifier": "user-12345" }

Responses

200OK
  • uniqueIdentifier
    stringoptional
    No description.
    nullable
  • accountCohorts
    array<object>optional
    No description.
    nullable
    Each item: 2 fields
    • accountId
      stringoptional
      No description.
      nullable
    • cohorts
      array<object>optional
      No description.
      nullable
      Each item: 8 fields
      • cohortId
        stringoptional
        No description.
        nullable
      • description
        stringoptional
        No description.
        nullable
      • condition
        stringoptional
        No description.
        nullable
      • evaluatedOn
        string (date-time)optional
        No description.
        nullable
      • cohortName
        stringoptional
        No description.
        nullable
      • useCase
        stringoptional
        No description.
        nullable
      • tag
        stringoptional
        No description.
        nullable
      • cohortType
        stringoptional
        No description.
        nullable
  • userCohorts
    array<object>optional
    No description.
    nullable
    Each item: 8 fields
    • cohortId
      stringoptional
      No description.
      nullable
    • description
      stringoptional
      No description.
      nullable
    • condition
      stringoptional
      No description.
      nullable
    • evaluatedOn
      string (date-time)optional
      No description.
      nullable
    • cohortName
      stringoptional
      No description.
      nullable
    • useCase
      stringoptional
      No description.
      nullable
    • tag
      stringoptional
      No description.
      nullable
    • cohortType
      stringoptional
      No description.
      nullable
Example
{ "uniqueIdentifier": "string", "accountCohorts": [ { "accountId": "string", "cohorts": [ { "cohortId": "string", "description": "string", "condition": "string", "evaluatedOn": "2026-01-01T00:00:00Z", "cohortName": "string", "useCase": "string", "tag": "string", "cohortType": "string" } ] } ], "userCohorts": [ { "cohortId": "string", "description": "string", "condition": "string", "evaluatedOn": "2026-01-01T00:00:00Z", "cohortName": "string", "useCase": "string", "tag": "string", "cohortType": "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/cohorts/fetch' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "uniqueIdentifier": "user-12345" }'