Skip to main content
POST
/
api
/
customer
/
createWithCrps
createNewCustomerWithCrp
curl --request POST \
  --url https://api.artemis.cynopsis.co/api/customer/createWithCrps \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Domain-ID: <x-domain-id>' \
  --data '{
  "crps": [
    {
      "active": true,
      "forms": {},
      "id": 123,
      "profileId": 123,
      "profileReferenceId": "<string>",
      "referenceId": "<string>",
      "roles": [
        {
          "appointedDate": "2023-12-25",
          "id": 123,
          "resignedDate": "2023-12-25",
          "role": "<string>"
        }
      ],
      "type": "CORPORATE"
    }
  ],
  "customer": {
    "active": true,
    "assigneeId": 123,
    "batchUploadId": 123,
    "forms": {},
    "id": 123,
    "profileId": 123,
    "profileReferenceId": "<string>",
    "referenceId": "<string>",
    "type": "CORPORATE",
    "vendorEntityGuid": "<string>",
    "vendorName": "<string>"
  },
  "triggerScreening": true,
  "triggerScreeningForCrp": true
}'
{
  "crps": [
    {
      "active": true,
      "assignees": [
        {
          "email": "<string>",
          "firstName": "<string>",
          "fullName": "<string>",
          "id": 123,
          "lastName": "<string>"
        }
      ],
      "createdAt": {
        "date": 123,
        "day": 123,
        "hours": 123,
        "minutes": 123,
        "month": 123,
        "nanos": 123,
        "seconds": 123,
        "time": 123,
        "timezoneOffset": 123,
        "year": 123
      },
      "createdBy": {
        "email": "<string>",
        "firstName": "<string>",
        "fullName": "<string>",
        "id": 123,
        "lastName": "<string>"
      },
      "forms": {},
      "id": 123,
      "lastRiskAssessment": "2023-11-07T05:31:56Z",
      "listRoleAsText": [
        "<string>"
      ],
      "notes": {},
      "other": {},
      "parentId": 123,
      "particular": {},
      "profileId": 123,
      "profileReferenceId": "<string>",
      "referenceId": "<string>",
      "riskRating": "HIGH",
      "roles": [
        {
          "appointedDate": "2023-12-25",
          "createdAt": {
            "date": 123,
            "day": 123,
            "hours": 123,
            "minutes": 123,
            "month": 123,
            "nanos": 123,
            "seconds": 123,
            "time": 123,
            "timezoneOffset": 123,
            "year": 123
          },
          "createdBy": {
            "email": "<string>",
            "firstName": "<string>",
            "fullName": "<string>",
            "id": 123,
            "lastName": "<string>"
          },
          "id": 123,
          "resignedDate": "2023-12-25",
          "role": "<string>",
          "updatedAt": {
            "date": 123,
            "day": 123,
            "hours": 123,
            "minutes": 123,
            "month": 123,
            "nanos": 123,
            "seconds": 123,
            "time": 123,
            "timezoneOffset": 123,
            "year": 123
          },
          "updatedBy": {
            "email": "<string>",
            "firstName": "<string>",
            "fullName": "<string>",
            "id": 123,
            "lastName": "<string>"
          }
        }
      ],
      "status": "ACCEPTED",
      "type": "CORPORATE",
      "updatedAt": {
        "date": 123,
        "day": 123,
        "hours": 123,
        "minutes": 123,
        "month": 123,
        "nanos": 123,
        "seconds": 123,
        "time": 123,
        "timezoneOffset": 123,
        "year": 123
      },
      "updatedBy": {
        "email": "<string>",
        "firstName": "<string>",
        "fullName": "<string>",
        "id": 123,
        "lastName": "<string>"
      },
      "vendorEntityGuid": "<string>",
      "vendorName": "<string>"
    }
  ],
  "customer": {
    "active": true,
    "assignees": [
      {
        "email": "<string>",
        "firstName": "<string>",
        "fullName": "<string>",
        "id": 123,
        "lastName": "<string>"
      }
    ],
    "createdAt": {
      "date": 123,
      "day": 123,
      "hours": 123,
      "minutes": 123,
      "month": 123,
      "nanos": 123,
      "seconds": 123,
      "time": 123,
      "timezoneOffset": 123,
      "year": 123
    },
    "createdBy": {
      "email": "<string>",
      "firstName": "<string>",
      "fullName": "<string>",
      "id": 123,
      "lastName": "<string>"
    },
    "forms": {},
    "id": 123,
    "lastRiskAssessment": "2023-11-07T05:31:56Z",
    "listRoleAsText": [
      "<string>"
    ],
    "notes": {},
    "other": {},
    "parentId": 123,
    "particular": {},
    "profileId": 123,
    "profileReferenceId": "<string>",
    "referenceId": "<string>",
    "riskRating": "HIGH",
    "roles": [
      {
        "appointedDate": "2023-12-25",
        "createdAt": {
          "date": 123,
          "day": 123,
          "hours": 123,
          "minutes": 123,
          "month": 123,
          "nanos": 123,
          "seconds": 123,
          "time": 123,
          "timezoneOffset": 123,
          "year": 123
        },
        "createdBy": {
          "email": "<string>",
          "firstName": "<string>",
          "fullName": "<string>",
          "id": 123,
          "lastName": "<string>"
        },
        "id": 123,
        "resignedDate": "2023-12-25",
        "role": "<string>",
        "updatedAt": {
          "date": 123,
          "day": 123,
          "hours": 123,
          "minutes": 123,
          "month": 123,
          "nanos": 123,
          "seconds": 123,
          "time": 123,
          "timezoneOffset": 123,
          "year": 123
        },
        "updatedBy": {
          "email": "<string>",
          "firstName": "<string>",
          "fullName": "<string>",
          "id": 123,
          "lastName": "<string>"
        }
      }
    ],
    "status": "ACCEPTED",
    "type": "CORPORATE",
    "updatedAt": {
      "date": 123,
      "day": 123,
      "hours": 123,
      "minutes": 123,
      "month": 123,
      "nanos": 123,
      "seconds": 123,
      "time": 123,
      "timezoneOffset": 123,
      "year": 123
    },
    "updatedBy": {
      "email": "<string>",
      "firstName": "<string>",
      "fullName": "<string>",
      "id": 123,
      "lastName": "<string>"
    },
    "vendorEntityGuid": "<string>",
    "vendorName": "<string>"
  }
}

Simple Customer Creation Workflow

In the event any end-user would like to have just one API to create customers and CRP(s), as well as to perform screening for all of them, Cynopsis has provided the following API for end-users to call.

Authentication & Headers

All API calls require:
  • A Bearer Token obtained from the Authentication API
  • The X-Domain-ID header included in every request (this value will be provided by Cynopsis)
Example headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
X-Domain-ID: YOUR_DOMAIN_ID
Content-Type: application/json

🧩 Sample Requests — Simple Customer Creation Workflow

Auth & Headers: All requests must include a valid Bearer token (from the Authentication flow) and the X-Domain-ID header (value provided by Cynopsis). Endpoint: POST /api/customers/workflows/simple Headers
Authorization: Bearer YOUR_ACCESS_TOKEN
X-Domain-ID: PROVIDED_BY_CYNOPSIS
Content-Type: application/json

Sample Request Body 1 — Corporate Primary Customer with one Individual CRP

{
  "customer": {
    "active": true,
    "profileReferenceId": "180162353535",
    "other": {
      "entityType": "ASSOCIATION",
      "corporateWebsite": null,
      "fatfjurisdiction": "",
      "industry": "AGRICULTURE",
      "onBoardingMode": "FACE-TO-FACE",
      "ownershipStructureLayer": "1",
      "paymentMode": ["CHEQUE (LOCAL)"],
      "productServiceComplexity": "SIMPLE",
      "sourceOfFunds": "",
      "natureOfBusinessRelationship": "",
      "bankAccount": [],
      "additionalInformation": ""
    },
    "particular": {
      "incorporated": true,
      "name": "Corporate Primary Customer",
      "alias": [],
      "formerName": [],
      "countryOfIncorporation": "SINGAPORE",
      "countryOfOperation": ["SINGAPORE"],
      "address": [],
      "incorporateNumber": "",
      "phone": [],
      "email": [],
      "dateOfIncorporation": null,
      "dateOfIncorporationExpiry": null,
      "imonumber": null
    },
    "type": "CORPORATE",
    "domainId": [{{domain_id}}],
    "assigneeId": {{assignee_id}}
  },
  "crps": [
    {
      "type": "INDIVIDUAL",
      "roles": [
        {
          "cid": "draft-1",
          "role": "DIRECTOR",
          "appointedDate": "2022-01-01",
          "resignedDate": null
        }
      ],
      "active": true,
      "particular": {
        "salutation": "",
        "name": "Individual CRP",
        "alias": [],
        "formerName": [],
        "gender": "MALE",
        "nationality": ["MALAYSIA"],
        "countryOfResidence": "MALAYSIA",
        "identityDocumentType": "",
        "identityNumber": "",
        "identityIssuedDate": null,
        "identityExpiryDate": null,
        "countryOfBirth": "",
        "dateOfBirth": null,
        "address": [],
        "phone": [],
        "email": []
      },
      "profileReferenceId": "18001181212",
      "other": {
        "status": "CURRENT",
        "sourceOfFunds": "",
        "bankAccountNumber": [],
        "undischargedBankrupt": "",
        "ownershipPercentage": ""
      }
    }
  ],
  "triggerScreening": true,
  "triggerScreeningForCrp": true
}

Sample Request Body 2 — Individual Primary Customer with one Corporate CRP

{
  "customer": {
    "active": true,
    "profileReferenceId": "65999",
    "other": {
      "industry": "EDUCATION",
      "occupation": "TEACHING PROFESSIONAL",
      "onBoardingMode": "NON FACE-TO-FACE",
      "paymentMode": ["CREDIT CARD"],
      "productServiceComplexity": "SIMPLE",
      "sourceOfFunds": "",
      "bankAccount": [],
      "additionalInformation": "",
      "natureOfBusinessRelationship": ""
    },
    "particular": {
      "salutation": "",
      "name": "Individual Primary Customer",
      "alias": [],
      "formerName": [],
      "gender": "MALE",
      "countryOfResidence": "SINGAPORE",
      "nationality": ["SINGAPORE"],
      "countryOfBirth": "",
      "dateOfBirth": null,
      "address": [],
      "phone": [],
      "email": []
    },
    "type": "INDIVIDUAL",
    "domainId": [{{domain_id}}],
    "assigneeId": {{assignee_id}}
  },
  "crps": [
    {
      "type": "CORPORATE",
      "roles": [
        {
          "role": "ULTIMATE HOLDING COMPANY",
          "appointedDate": "2022-01-01",
          "resignedDate": null
        }
      ],
      "active": true,
      "other": {
        "entityType": "BANKS",
        "otherEntityType": "",
        "corporateWebsite": null,
        "status": "CURRENT",
        "sourceOfFunds": "",
        "bankAccountNumber": [],
        "undischargedBankrupt": "",
        "ownershipStructureLayer": "1",
        "variableCapitalCompany": "",
        "businessCessationDate": null
      },
      "particular": {
        "name": "Corporate CRP",
        "alias": [],
        "formerName": [],
        "countryOfIncorporation": "",
        "countryOfOperation": ["MALAYSIA"],
        "dateOfIncorporation": null,
        "email": [],
        "address": [],
        "imonumber": null,
        "incorporateNumber": "",
        "incorporated": "",
        "phone": []
      },
      "profileReferenceId": "65995"
    }
  ],
  "triggerScreening": true,
  "triggerScreeningForCrp": true
}
Placeholders: Replace {{domain_id}} and {{assignee_id}} with your actual values. Keep booleans as true/false (not strings) and null where applicable.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

X-Domain-ID
integer
required

X-Domain-ID

Body

application/json

customerDTO

crps
CRPRequestDto · object[]
customer
object
triggerScreening
boolean
triggerScreeningForCrp
boolean

Response

OK

crps
CustomerResponseDto · object[]
customer
object