Skip to main content
This endpoint allows you to create a Customer Related Party (CRP) using an existing profile. This is a two-step process that involves searching for an existing profile and then creating the CRP using that profile’s data. This approach allows you to reuse existing customer data when creating related parties, ensuring data consistency while allowing for CRP-specific customizations.

Important Rules - Read Before Implementation

Profile Linkage Requirements
  • profileId and profileReferenceId must be populated from the profile search response (Step 1)
  • The profileId tells the system which existing profile to use for the new CRP
  • Without these fields, the system will not link to the existing profile
Synced Fields (Shared with Original Profile)The following fields are synced with the original customer profile. Changes to these fields will affect both the CRP and the original profile:
  • profileReferenceId: Can be changed, but changes will reflect on the original customer
  • particular: All fields within the particular object are synced including:
    • name, alias, formerName
    • email, phone, address
    • nationality, countryOfResidence, countryOfBirth
    • gender, dateOfBirth, salutation
    • identityDocumentType, identityNumber, identityIssuedDate, identityExpiryDate
Important: Any modification to these fields in the CRP will update the original profile and affect all other CRPs using the same profile.
CRP-Specific Fields (Not Synced)The following fields are specific to the CRP. Changes to these fields will NOT sync with the original profile:
  • other: All fields within the other object including:
    • industry, occupation
    • sourceOfFunds, sourceOfWealth
    • bankAccount, paymentMode
    • onBoardingMode, transactionBehaviour
    • additionalInformation, productServiceComplexity
    • natureOfBusinessRelationship
    • undischargedBankrupt, ownershipPercentage, status
These fields are carried over from the original profile during creation but are maintained separately for the CRP. You can modify them without affecting the original profile or other CRPs.

Key Differences: Creating CRP with Existing Profile vs New Profile

AspectWith Existing ProfileNew Profile
Profile SearchRequired (Step 1)Not required
profileIdMust be provided from search resultsSystem generates new profileId
profileReferenceIdTaken from existing profile (can be modified, affects original)Must be provided as new value
particularSynced with original profile (changes affect original)Independent data
otherCarried over but not synced (changes don’t affect original)Independent data
Use CaseReusing existing customer as CRPCreating brand new CRP
Data ConsistencyEnsures consistency across related profilesEach profile is independent

Two-Step Process Overview

Creating a CRP with an existing profile requires:
  1. Step 1: Search for and retrieve the existing profile using the profile search API
  2. Step 2: Create the CRP using the profile information obtained from Step 1

Step 1: Search for Existing Profile

First, search for the existing profile you want to use for the CRP.
Full API Reference: For complete API documentation, see Search Profile for CRP Creation

Endpoint

GET /api/customer/profile/{type}/{mainCustomerId}

Path Parameters

ParameterTypeRequiredDescription
typestringYesCustomer type: INDIVIDUAL or CORPORATE
mainCustomerIdnumberYesThe ID of the main customer to which the CRP will be associated

Query Parameters

ParameterTypeRequiredDescription
searchStringstringNoName of the profile to search for

Headers

HeaderTypeRequiredDescription
x-domainnumberYesDomain identifier

Sample Request

GET /api/customer/profile/INDIVIDUAL/1234?searchString=Aiden
Headers:
  x-domain: 1

Sample Response - Success (200)

{
  "content": [
    {
      "customerCandidate": {
        "id": 8851,
        "createdAt": "2025-12-31T02:44:30.474+00:00",
        "updatedAt": "2026-01-05T08:56:22.829+00:00",
        "createdBy": null,
        "updatedBy": {
          "id": 17548,
          "updatedAt": "2026-01-13T07:46:27.966+00:00",
          "createdAt": null,
          "firstName": "Zen",
          "lastName": "",
          "email": "[email protected]",
          "externalId": "17548",
          "active": true,
          "verified": true,
          "provider": "CRM",
          "fullName": "Zen",
          "rawFirstName": "Zen",
          "rawLastName": "",
          "deleted": 0,
          "role": "USER"
        },
        "active": true,
        "parentId": null,
        "profileId": 8521,
        "type": "INDIVIDUAL",
        "subType": null,
        "referenceId": null,
        "profileReferenceId": "sdsds342342",
        "particular": {
          "name": "Aiden test 2",
          "alias": [],
          "email": [],
          "phone": [],
          "gender": "UNKNOWN",
          "address": [],
          "formerName": [],
          "salutation": "",
          "dateOfBirth": null,
          "nationality": ["ALAND ISLANDS"],
          "countryOfBirth": "",
          "identityNumber": "",
          "countryOfResidence": "AFGHANISTAN",
          "identityExpiryDate": null,
          "identityIssuedDate": null,
          "identityDocumentType": ""
        },
        "other": {
          "industry": "NOT APPLICABLE - NOT APPLICABLE",
          "occupation": "NOT APPLICABLE - NOT APPLICABLE",
          "bankAccount": [],
          "paymentMode": ["NOT APPLICABLE"],
          "documentList": null,
          "sourceOfFunds": [
            {
              "id": "9aefb2d3-6ab9-48c5-b111-fb6992794f8b",
              "category": "LOTTERY/WINDFALL",
              "isLegacy": false,
              "amountDeclared": 10000000,
              "contributionPct": 33.33,
              "evidenceCorroborated": "YES"
            },
            {
              "id": "a07a86f2-2fb1-45ba-a8fb-e46b52cb2d8d",
              "category": "INHERITANCE",
              "isLegacy": false,
              "amountDeclared": 20000000,
              "contributionPct": 66.67,
              "evidenceCorroborated": "YES"
            }
          ],
          "sourceOfWealth": [
            {
              "id": "42c52ac2-e43d-4d0a-90a5-58690e851b8a",
              "category": "SAVINGS",
              "isLegacy": false,
              "amountDeclared": 150000.0,
              "contributionPct": 75.0,
              "evidenceCorroborated": "YES"
            },
            {
              "id": "93c026dc-dfb1-466b-95cb-d8f8d37afe3f",
              "category": "INVESTMENT RETURNS",
              "isLegacy": false,
              "amountDeclared": 50000.0,
              "contributionPct": 25.0,
              "evidenceCorroborated": "YES"
            }
          ],
          "onBoardingMode": "NOT APPLICABLE",
          "transactionBehaviour": ["NOT APPLICABLE"],
          "additionalInformation": "",
          "productServiceComplexity": "NOT APPLICABLE",
          "natureOfBusinessRelationship": ""
        },
        "notes": {
          "id": null,
          "diff": null,
          "createdAt": null,
          "createdBy": null,
          "srcDomain": {
            "id": 1,
            "name": "CYNOPSIS"
          },
          "updatedAt": null,
          "updatedBy": null,
          "reasonType": "PROFILE_UPDATED",
          "srcCustomerId": 8851,
          "srcReferenceId": null,
          "srcCustomerName": "Aiden test 2",
          "targetCustomerId": 8851,
          "targetReferenceId": null,
          "targetCustomerName": "Aiden test 2",
          "secondaryReasonTypes": [],
          "srcProfileReferenceId": "sdsds342342",
          "targetProfileReferenceId": "sdsds342342"
        },
        "vendorName": null,
        "vendorEntityGuid": null,
        "lastRiskAssessment": "2026-01-05T08:56:22.827+00:00",
        "nextReviewDate": null,
        "submittedKYCAt": null,
        "linkedCustomerId": null,
        "status": "PENDING",
        "riskRating": "UNKNOWN",
        "roles": [],
        "assignees": [],
        "watchers": [],
        "forms": null,
        "listRoleAsText": []
      }
    }
  ]
}

Step 2: Create CRP Using the Profile

Once you have retrieved the profile information, use it to create the CRP using the standard CRP creation endpoint.

Endpoint

POST /api/customer/{customerId}/crp

Path Parameters

ParameterTypeRequiredDescription
customerIdnumberYesThe ID of the primary customer to which the CRP will be associated

Headers

HeaderTypeRequiredDescription
x-domainnumberYesDomain identifier
Content-TypestringYesMust be application/json

Sample Request Body - Individual CRP with Existing Profile

{
  "type": "INDIVIDUAL",
  "profileId": 8521,
  "profileReferenceId": "sdsds342342",
  "roles": [
    {
      "cid": "draft-1",
      "role": "DIRECTOR",
      "appointedDate": "2024-01-01",
      "resignedDate": null
    }
  ],
  "active": true,
  "particular": {
    "salutation": "",
    "name": "Aiden test 2",
    "alias": [],
    "formerName": [],
    "gender": "UNKNOWN",
    "nationality": ["ALAND ISLANDS"],
    "countryOfResidence": "AFGHANISTAN",
    "identityDocumentType": "",
    "identityNumber": "",
    "identityIssuedDate": null,
    "identityExpiryDate": null,
    "countryOfBirth": "",
    "dateOfBirth": null,
    "address": [],
    "phone": [],
    "email": []
  },
  "other": {
    "industry": "NOT APPLICABLE - NOT APPLICABLE",
    "occupation": "NOT APPLICABLE - NOT APPLICABLE",
    "bankAccount": [],
    "paymentMode": ["NOT APPLICABLE"],
    "sourceOfFunds": [
      {
        "id": "9aefb2d3-6ab9-48c5-b111-fb6992794f8b",
        "category": "LOTTERY/WINDFALL",
        "isLegacy": false,
        "amountDeclared": 10000000,
        "contributionPct": 33.33,
        "evidenceCorroborated": "YES"
      },
      {
        "id": "a07a86f2-2fb1-45ba-a8fb-e46b52cb2d8d",
        "category": "INHERITANCE",
        "isLegacy": false,
        "amountDeclared": 20000000,
        "contributionPct": 66.67,
        "evidenceCorroborated": "YES"
      }
    ],
    "sourceOfWealth": [
      {
        "id": "42c52ac2-e43d-4d0a-90a5-58690e851b8a",
        "category": "SAVINGS",
        "isLegacy": false,
        "amountDeclared": 150000.0,
        "contributionPct": 75.0,
        "evidenceCorroborated": "YES"
      },
      {
        "id": "93c026dc-dfb1-466b-95cb-d8f8d37afe3f",
        "category": "INVESTMENT RETURNS",
        "isLegacy": false,
        "amountDeclared": 50000.0,
        "contributionPct": 25.0,
        "evidenceCorroborated": "YES"
      }
    ],
    "onBoardingMode": "NOT APPLICABLE",
    "transactionBehaviour": ["NOT APPLICABLE"],
    "additionalInformation": "",
    "productServiceComplexity": "NOT APPLICABLE",
    "natureOfBusinessRelationship": ""
  }
}

Sample Response Body - Success (200)

{
  "id": 8852,
  "createdAt": "2026-01-13T08:00:00.000+00:00",
  "updatedAt": "2026-01-13T08:00:00.000+00:00",
  "createdBy": {
    "id": 17548,
    "firstName": "Zen",
    "lastName": "",
    "email": "[email protected]",
    "fullName": "Zen"
  },
  "updatedBy": null,
  "active": true,
  "parentId": 1234,
  "profileId": 8521,
  "type": "INDIVIDUAL",
  "referenceId": null,
  "profileReferenceId": "sdsds342342",
  "particular": {
    "name": "Aiden test 2",
    "alias": [],
    "email": [],
    "phone": [],
    "gender": "UNKNOWN",
    "address": [],
    "formerName": [],
    "salutation": "",
    "dateOfBirth": null,
    "nationality": ["ALAND ISLANDS"],
    "countryOfBirth": "",
    "identityNumber": "",
    "countryOfResidence": "AFGHANISTAN",
    "identityExpiryDate": null,
    "identityIssuedDate": null,
    "identityDocumentType": ""
  },
  "other": {
    "industry": "NOT APPLICABLE - NOT APPLICABLE",
    "occupation": "NOT APPLICABLE - NOT APPLICABLE",
    "bankAccount": [],
    "paymentMode": ["NOT APPLICABLE"],
    "documentList": null,
    "sourceOfFunds": [
      {
        "id": "9aefb2d3-6ab9-48c5-b111-fb6992794f8b",
        "category": "LOTTERY/WINDFALL",
        "isLegacy": false,
        "amountDeclared": 10000000,
        "contributionPct": 33.33,
        "evidenceCorroborated": "YES"
      },
      {
        "id": "a07a86f2-2fb1-45ba-a8fb-e46b52cb2d8d",
        "category": "INHERITANCE",
        "isLegacy": false,
        "amountDeclared": 20000000,
        "contributionPct": 66.67,
        "evidenceCorroborated": "YES"
      }
    ],
    "sourceOfWealth": [
      {
        "id": "42c52ac2-e43d-4d0a-90a5-58690e851b8a",
        "category": "SAVINGS",
        "isLegacy": false,
        "amountDeclared": 150000.0,
        "contributionPct": 75.0,
        "evidenceCorroborated": "YES"
      },
      {
        "id": "93c026dc-dfb1-466b-95cb-d8f8d37afe3f",
        "category": "INVESTMENT RETURNS",
        "isLegacy": false,
        "amountDeclared": 50000.0,
        "contributionPct": 25.0,
        "evidenceCorroborated": "YES"
      }
    ],
    "onBoardingMode": "NOT APPLICABLE",
    "transactionBehaviour": ["NOT APPLICABLE"],
    "additionalInformation": "",
    "productServiceComplexity": "NOT APPLICABLE",
    "natureOfBusinessRelationship": ""
  },
  "vendorName": null,
  "vendorEntityGuid": null,
  "lastRiskAssessment": null,
  "nextReviewDate": null,
  "submittedKYCAt": null,
  "linkedCustomerId": null,
  "status": "PENDING",
  "riskRating": "UNKNOWN",
  "roles": [
    {
      "id": 52,
      "createdAt": "2026-01-13T08:00:00.000+00:00",
      "updatedAt": "2026-01-13T08:00:00.000+00:00",
      "createdBy": null,
      "updatedBy": null,
      "role": "DIRECTOR",
      "appointedDate": "2024-01-01",
      "resignedDate": null
    }
  ],
  "assignees": [],
  "watchers": [],
  "forms": null,
  "listRoleAsText": ["DIRECTOR"]
}

Complete Workflow Example

Here’s a complete example of creating a CRP with an existing profile:

1. Search for Profile

GET /api/customer/profile/INDIVIDUAL/1234?searchString=Aiden
Headers:
  x-domain: 1

2. Extract Key Fields from Response

From the response, extract:
  • profileId: 8521
  • profileReferenceId: “sdsds342342”
  • particular: (entire object)
  • other: (entire object)

3. Create CRP Request

POST /api/customer/1234/crp
Headers:
  x-domain: 1
  Content-Type: application/json

Body:
{
  "type": "INDIVIDUAL",
  "profileId": 8521,
  "profileReferenceId": "sdsds342342",
  "roles": [
    {
      "role": "DIRECTOR",
      "appointedDate": "2024-01-01"
    }
  ],
  "particular": { ... },
  "other": { ... }
}

4. Verify CRP Creation

The response will contain the newly created CRP with:
  • New CRP id
  • Original profileId maintained
  • Linked to the main customer via parentId