createNewCRP
curl --request POST \
--url https://api.artemis.cynopsis.co/api/customer/{customerId}/crp \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Domain-ID: <x-domain-id>' \
--data '
{
"active": true,
"forms": {},
"id": 123,
"profileId": 123,
"profileReferenceId": "<string>",
"referenceId": "<string>",
"roles": [
{
"role": "<string>",
"appointedDate": "2023-12-25",
"id": 123,
"resignedDate": "2023-12-25"
}
]
}
'import requests
url = "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp"
payload = {
"active": True,
"forms": {},
"id": 123,
"profileId": 123,
"profileReferenceId": "<string>",
"referenceId": "<string>",
"roles": [
{
"role": "<string>",
"appointedDate": "2023-12-25",
"id": 123,
"resignedDate": "2023-12-25"
}
]
}
headers = {
"X-Domain-ID": "<x-domain-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Domain-ID': '<x-domain-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
active: true,
forms: {},
id: 123,
profileId: 123,
profileReferenceId: '<string>',
referenceId: '<string>',
roles: [
{
role: '<string>',
appointedDate: '2023-12-25',
id: 123,
resignedDate: '2023-12-25'
}
]
})
};
fetch('https://api.artemis.cynopsis.co/api/customer/{customerId}/crp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'active' => true,
'forms' => [
],
'id' => 123,
'profileId' => 123,
'profileReferenceId' => '<string>',
'referenceId' => '<string>',
'roles' => [
[
'role' => '<string>',
'appointedDate' => '2023-12-25',
'id' => 123,
'resignedDate' => '2023-12-25'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Domain-ID: <x-domain-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp"
payload := strings.NewReader("{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domain-ID", "<x-domain-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.artemis.cynopsis.co/api/customer/{customerId}/crp")
.header("X-Domain-ID", "<x-domain-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.artemis.cynopsis.co/api/customer/{customerId}/crp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domain-ID"] = '<x-domain-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"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>",
"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>"
}
}
],
"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>"
}Step 2 — Create a CRP
Create a Corporate CRP
POST
/
api
/
customer
/
{customerId}
/
crp
createNewCRP
curl --request POST \
--url https://api.artemis.cynopsis.co/api/customer/{customerId}/crp \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Domain-ID: <x-domain-id>' \
--data '
{
"active": true,
"forms": {},
"id": 123,
"profileId": 123,
"profileReferenceId": "<string>",
"referenceId": "<string>",
"roles": [
{
"role": "<string>",
"appointedDate": "2023-12-25",
"id": 123,
"resignedDate": "2023-12-25"
}
]
}
'import requests
url = "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp"
payload = {
"active": True,
"forms": {},
"id": 123,
"profileId": 123,
"profileReferenceId": "<string>",
"referenceId": "<string>",
"roles": [
{
"role": "<string>",
"appointedDate": "2023-12-25",
"id": 123,
"resignedDate": "2023-12-25"
}
]
}
headers = {
"X-Domain-ID": "<x-domain-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Domain-ID': '<x-domain-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
active: true,
forms: {},
id: 123,
profileId: 123,
profileReferenceId: '<string>',
referenceId: '<string>',
roles: [
{
role: '<string>',
appointedDate: '2023-12-25',
id: 123,
resignedDate: '2023-12-25'
}
]
})
};
fetch('https://api.artemis.cynopsis.co/api/customer/{customerId}/crp', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'active' => true,
'forms' => [
],
'id' => 123,
'profileId' => 123,
'profileReferenceId' => '<string>',
'referenceId' => '<string>',
'roles' => [
[
'role' => '<string>',
'appointedDate' => '2023-12-25',
'id' => 123,
'resignedDate' => '2023-12-25'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Domain-ID: <x-domain-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp"
payload := strings.NewReader("{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domain-ID", "<x-domain-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.artemis.cynopsis.co/api/customer/{customerId}/crp")
.header("X-Domain-ID", "<x-domain-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.artemis.cynopsis.co/api/customer/{customerId}/crp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domain-ID"] = '<x-domain-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"active\": true,\n \"forms\": {},\n \"id\": 123,\n \"profileId\": 123,\n \"profileReferenceId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"roles\": [\n {\n \"role\": \"<string>\",\n \"appointedDate\": \"2023-12-25\",\n \"id\": 123,\n \"resignedDate\": \"2023-12-25\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"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>",
"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>"
}
}
],
"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>"
}This endpoint allows you to create a Customer Related Party (CRP) that is associated with an existing Primary Customer.
A CRP can be either Individual or Corporate, and it must include:
- A designated role (e.g., DIRECTOR, ULTIMATE HOLDING COMPANY).
- Required particulars depending on whether it is an individual or a corporate entity.
evidenceCorroborated: Enum field that accepts either"YES"or"NO". Used insourceOfFundsandsourceOfWealtharrays.
Create an Corporate CRP
Any CRP(s) will be associated with at least one primary customer. To create an corporate CRP, certain particulars must be filled in and a designated role must be given to the CRP. The CRP type in this case shall beCORPORATE.
Sample Request Body - Corporate CRP
{
"type": "CORPORATE",
"roles": [
{
"cid": "draft-4",
"role": "ULTIMATE HOLDING COMPANY",
"appointedDate": "2022-01-01",
"resignedDate": null
}
],
"active": true,
"other": {
"entityType": "BANKS",
"otherEntityType": "",
"corporateWebsite": null,
"status": "CURRENT",
"sourceOfFunds": [
{
"id": "",
"category": "",
"amountDeclared": null,
"evidenceCorroborated": "YES"
}
],
"sourceOfWealth": [
{
"id": "",
"category": "",
"amountDeclared": null,
"evidenceCorroborated": "YES",
}
],
"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": "18011121212"
}
Sample Response Body - Success (200)
{
"id": 928,
"createdAt": "2022-07-26T04:37:52.221+00:00",
"updatedAt": "2022-07-26T04:37:52.377+00:00",
"createdBy": null,
"updatedBy": null,
"active": null,
"parentId": 926,
"profileId": 918,
"type": "CORPORATE",
"referenceId": null,
"profileReferenceId": "18011121212",
"particular": {
"incorporated": null,
"name": "Corporate CRP",
"alias": [],
"formerName": [],
"countryOfIncorporation": "",
"countryOfOperation": [
"MALAYSIA"
],
"address": [],
"incorporateNumber": "",
"phone": [],
"email": [],
"dateOfIncorporation": null,
"dateOfIncorporationExpiry": null,
"vendorName": null,
"vendorEntityGuid": null,
"imonumber": null
},
"other": {
"entityType": "BANKS",
"variableCapitalCompany": "",
"ownershipStructureLayer": "1",
"ownershipPercentage": 0.0,
"dateOfIncorporation": null,
"dateOfIncorporationExpiry": null,
"sourceOfFunds": [
{
"id": "",
"category": "",
"amountDeclared": null,
"evidenceCorroborated": "YES"
}
],
"sourceOfWealth": [
{
"id": "",
"category": "",
"amountDeclared": null,
"evidenceCorroborated": "YES",
}
],
"status": "CURRENT",
"bankAccountNumber": [],
"undischargedBankrupt": null,
"documentList": null,
"businessCessationDate": null,
"corporateWebsite": null
},
"vendorName": null,
"vendorEntityGuid": null,
"lastRiskAssessment": null,
"roles": [
{
"id": 52,
"createdAt": "2022-07-26T04:37:52.288+00:00",
"updatedAt": "2022-07-26T04:37:52.289+00:00",
"createdBy": null,
"updatedBy": null,
"role": "ULTIMATE HOLDING COMPANY",
"appointedDate": "2022-01-01",
"resignedDate": null
}
],
"listRoleAsText": [
"ULTIMATE HOLDING COMPANY"
]
}
Authorizations
OAuth2_Client_CredentialsOAuth2_Password
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
X-Domain-ID
Path Parameters
customerId
Body
application/json
crpRequestDto
Response
OK
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
HIGH, LOW, MEDIUM, MEDIUM_HIGH, MEDIUM_LOW, UNKNOWN Show child attributes
Show child attributes
Available options:
ACCEPTED, CLEARED, DRAFT, PENDING, REJECTED, REQUEST_CHANGES Available options:
CORPORATE, INDIVIDUAL Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
