# List case ageing distribution Source: https://docs.cynopsis.co//athena-api-reference/ageing/list-case-ageing-distribution athena-api-reference/athena_openapi.json get /api/ageing Retrieve case ageing distribution across all cases. # Retrieve case ageing data for a specific user Source: https://docs.cynopsis.co//athena-api-reference/ageing/retrieve-case-ageing-data-for-a-specific-user athena-api-reference/athena_openapi.json get /api/ageing/{id} Fetch ageing distribution of cases assigned to a specific user. # Get App Config Source: https://docs.cynopsis.co//athena-api-reference/app-config/get-app-config athena-api-reference/athena_openapi.json get /api/appconfig/{key} This endpoint returns the value of the app config key. # Get Metabase analytics URL Source: https://docs.cynopsis.co//athena-api-reference/app-config/get-metabase-analytics-url athena-api-reference/athena_openapi.json get /api/appconfig/analytics This endpoint returns the Metabase analytics URL for the dashboard ID configured in the database. The URL is valid for 1 hour. # Simple authentication check Source: https://docs.cynopsis.co//athena-api-reference/authentication/simple-authentication-check athena-api-reference/athena_openapi.json get /health/test-auth-request # Create a Blacklist record Source: https://docs.cynopsis.co//athena-api-reference/blacklist/create-a-blacklist-record athena-api-reference/athena_openapi.json post /api/blacklist A blacklist record is created with the name of the subject and the reference_id, We check for a whitelist record with the blacklist name before adding to blacklist # Deactivate a Blacklist record Source: https://docs.cynopsis.co//athena-api-reference/blacklist/deactivate-a-blacklist-record athena-api-reference/athena_openapi.json delete /api/blacklist/{id} # List all Blacklist records Source: https://docs.cynopsis.co//athena-api-reference/blacklist/list-all-blacklist-records athena-api-reference/athena_openapi.json get /api/blacklist # Retrieve a Blacklist record Source: https://docs.cynopsis.co//athena-api-reference/blacklist/retrieve-a-blacklist-record athena-api-reference/athena_openapi.json get /api/blacklist/{id} # Update a Blacklist record Source: https://docs.cynopsis.co//athena-api-reference/blacklist/update-a-blacklist-record athena-api-reference/athena_openapi.json patch /api/blacklist/{id} # Insert a transaction into a bucket Source: https://docs.cynopsis.co//athena-api-reference/bucket-content/insert-a-transaction-into-a-bucket athena-api-reference/athena_openapi.json post /api/bucketcontent Insert a transaction into specified buckets by client transaction ID. # List all transaction in buckets Source: https://docs.cynopsis.co//athena-api-reference/bucket-content/list-all-transaction-in-buckets athena-api-reference/athena_openapi.json get /api/bucketcontent Retrieve a list of all transaction buckets with optional filtering. # Create a bucket Source: https://docs.cynopsis.co//athena-api-reference/buckets/create-a-bucket athena-api-reference/athena_openapi.json post /api/buckets Create a new bucket. # Delete a bucket Source: https://docs.cynopsis.co//athena-api-reference/buckets/delete-a-bucket athena-api-reference/athena_openapi.json delete /api/buckets/{id} Delete a bucket by its ID, The bucket will be deactivated. # Export transactions to CSV for a bucket Source: https://docs.cynopsis.co//athena-api-reference/buckets/export-transactions-to-csv-for-a-bucket athena-api-reference/athena_openapi.json get /api/buckets/export_csv Export transactions to a CSV file for a specific bucket with optional date range filtering, An email will be sent to you, including the CSV file. # List all buckets Source: https://docs.cynopsis.co//athena-api-reference/buckets/list-all-buckets athena-api-reference/athena_openapi.json get /api/buckets # Retrieve a specific bucket Source: https://docs.cynopsis.co//athena-api-reference/buckets/retrieve-a-specific-bucket athena-api-reference/athena_openapi.json get /api/buckets/{id} Retrieve a specific bucket by its ID. # Update a bucket Source: https://docs.cynopsis.co//athena-api-reference/buckets/update-a-bucket athena-api-reference/athena_openapi.json patch /api/buckets/{id} Update a bucket by its ID. # Add document to a case Source: https://docs.cynopsis.co//athena-api-reference/case/add-document-to-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/document Add a document to a specific case by its ID. # Add findings to a case Source: https://docs.cynopsis.co//athena-api-reference/case/add-findings-to-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/findings Add findings to a specific case by its ID. # Add report code to a case Source: https://docs.cynopsis.co//athena-api-reference/case/add-report-code-to-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/report_code Add a report code to a specific case by its ID. # Add report indicator to a case Source: https://docs.cynopsis.co//athena-api-reference/case/add-report-indicator-to-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/report_indicator Add a report indicator to a specific case by its ID. # Approve a case Source: https://docs.cynopsis.co//athena-api-reference/case/approve-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/approval Approve a case. # Assign a case to a checker Source: https://docs.cynopsis.co//athena-api-reference/case/assign-a-case-to-a-checker athena-api-reference/athena_openapi.json patch /api/cases/{id}/assign_checker Assign a case to a checker. # Assign a case to a maker Source: https://docs.cynopsis.co//athena-api-reference/case/assign-a-case-to-a-maker athena-api-reference/athena_openapi.json patch /api/cases/{id}/assign_maker Assign a case to a maker. # Bulk assign cases Source: https://docs.cynopsis.co//athena-api-reference/case/bulk-assign-cases athena-api-reference/athena_openapi.json patch /api/cases/bulk_assign Assign multiple cases to a specific assignee. # Delete a specific case Source: https://docs.cynopsis.co//athena-api-reference/case/delete-a-specific-case athena-api-reference/athena_openapi.json delete /api/cases/{id} Delete a specific case by its ID. A soft delete is performed. # Delete document from a case Source: https://docs.cynopsis.co//athena-api-reference/case/delete-document-from-a-case athena-api-reference/athena_openapi.json delete /api/cases/{id}/delete_document Delete a document from a specific case by its ID. # Delete findings from a case Source: https://docs.cynopsis.co//athena-api-reference/case/delete-findings-from-a-case athena-api-reference/athena_openapi.json delete /api/cases/{id}/delete_findings Delete findings from a specific case by its ID. # Export cases to CSV Source: https://docs.cynopsis.co//athena-api-reference/case/export-cases-to-csv athena-api-reference/athena_openapi.json get /api/cases/export_csv Export cases to a CSV file, A CSV file will be generated and sent to the user's email. # Generate case report Source: https://docs.cynopsis.co//athena-api-reference/case/generate-case-report athena-api-reference/athena_openapi.json get /api/cases/{id}/generate_case_report Generate a case report for a specific case by its ID. The report will be sent to the user's email. # Get active cases Source: https://docs.cynopsis.co//athena-api-reference/case/get-active-cases athena-api-reference/athena_openapi.json get /api/cases/active Retrieve a list of active cases, A case is considered active if its status is not TRUE_HIT nor FALSE_HIT. # Get active cases statistics Source: https://docs.cynopsis.co//athena-api-reference/case/get-active-cases-statistics athena-api-reference/athena_openapi.json get /api/cases/active_cases # Get case status options Source: https://docs.cynopsis.co//athena-api-reference/case/get-case-status-options athena-api-reference/athena_openapi.json get /api/cases/case_status Retrieve a list of all case status options, including their key and value. # Get cases by assignee Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-by-assignee athena-api-reference/athena_openapi.json get /api/cases/assignee Retrieve statistics for cases grouped by assignee. # Get cases by bucket Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-by-bucket athena-api-reference/athena_openapi.json get /api/cases/bucket Retrieve statistics for cases grouped by bucket. # Get cases by priority Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-by-priority athena-api-reference/athena_openapi.json get /api/cases/priority Retrieve statistics for cases grouped by priority. # Get cases by rule Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-by-rule athena-api-reference/athena_openapi.json get /api/cases/rule Retrieve statistics for cases grouped by rule. # Get cases by status Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-by-status athena-api-reference/athena_openapi.json get /api/cases/status Retrieve statistics for cases grouped by status. # Get cases timeline Source: https://docs.cynopsis.co//athena-api-reference/case/get-cases-timeline athena-api-reference/athena_openapi.json get /api/cases/timeline Retrieve a timeline of cases. # Get closed cases Source: https://docs.cynopsis.co//athena-api-reference/case/get-closed-cases athena-api-reference/athena_openapi.json get /api/cases/closed_cases Retrieve statistics for closed cases, A case is considered closed if it is in either TRUE_HIT or FALSE_HIT status. # Get inactive cases Source: https://docs.cynopsis.co//athena-api-reference/case/get-inactive-cases athena-api-reference/athena_openapi.json get /api/cases/not_active Retrieve a list of inactive cases. # Get violations statistics Source: https://docs.cynopsis.co//athena-api-reference/case/get-violations-statistics athena-api-reference/athena_openapi.json get /api/cases/violations # List all cases Source: https://docs.cynopsis.co//athena-api-reference/case/list-all-cases athena-api-reference/athena_openapi.json get /api/cases Retrieve a list of all cases with optional filtering and ordering. # List transactions for a specific case Source: https://docs.cynopsis.co//athena-api-reference/case/list-transactions-for-a-specific-case athena-api-reference/athena_openapi.json get /api/cases/{id}/transactions Retrieve transactions associated with a specific case, including both direct case transactions and relevant transactions based on rule parameters. # Reopen a case Source: https://docs.cynopsis.co//athena-api-reference/case/reopen-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/reopen Reopen a case. # Retrieve a specific case Source: https://docs.cynopsis.co//athena-api-reference/case/retrieve-a-specific-case athena-api-reference/athena_openapi.json get /api/cases/{id} # Update a specific case Source: https://docs.cynopsis.co//athena-api-reference/case/update-a-specific-case athena-api-reference/athena_openapi.json patch /api/cases/{id} # Update alert risk rating for a case Source: https://docs.cynopsis.co//athena-api-reference/case/update-alert-risk-rating-for-a-case athena-api-reference/athena_openapi.json patch /api/cases/{id}/alert Update the alert risk rating for a specific case. # Retrieve a list of currencies Source: https://docs.cynopsis.co//athena-api-reference/currency/retrieve-a-list-of-currencies athena-api-reference/athena_openapi.json get /api/currency # Retrieve a specific currency Source: https://docs.cynopsis.co//athena-api-reference/currency/retrieve-a-specific-currency athena-api-reference/athena_openapi.json get /api/currency/{alphabetic_code} # Create group Source: https://docs.cynopsis.co//athena-api-reference/group/create-group athena-api-reference/athena_openapi.json post /api/groups # Delete group Source: https://docs.cynopsis.co//athena-api-reference/group/delete-group athena-api-reference/athena_openapi.json delete /api/groups/{id} # List groups Source: https://docs.cynopsis.co//athena-api-reference/group/list-groups athena-api-reference/athena_openapi.json get /api/groups # Retrieve group Source: https://docs.cynopsis.co//athena-api-reference/group/retrieve-group athena-api-reference/athena_openapi.json get /api/groups/{id} # Update group Source: https://docs.cynopsis.co//athena-api-reference/group/update-group athena-api-reference/athena_openapi.json patch /api/groups/{id} # Simple health check Source: https://docs.cynopsis.co//athena-api-reference/health-check/simple-health-check athena-api-reference/athena_openapi.json get /health/ # List all permissions Source: https://docs.cynopsis.co//athena-api-reference/permission/list-all-permissions athena-api-reference/athena_openapi.json get /api/permissions # Retrieve a single permission by id Source: https://docs.cynopsis.co//athena-api-reference/permission/retrieve-a-single-permission-by-id athena-api-reference/athena_openapi.json get /api/permissions/{id} # Get profile information Source: https://docs.cynopsis.co//athena-api-reference/profile-info/get-profile-information athena-api-reference/athena_openapi.json get /api/shared/profile-info # Retrieve a list of risk assessments Source: https://docs.cynopsis.co//athena-api-reference/risk-assessment/retrieve-a-list-of-risk-assessments athena-api-reference/athena_openapi.json get /api/risk_assessment # Retrieve a specific risk assessment Source: https://docs.cynopsis.co//athena-api-reference/risk-assessment/retrieve-a-specific-risk-assessment athena-api-reference/athena_openapi.json get /api/risk_assessment/{id} # List all rule information Source: https://docs.cynopsis.co//athena-api-reference/rule-detail/list-all-rule-information athena-api-reference/athena_openapi.json get /api/ruleinformation # Retrieve a rule information Source: https://docs.cynopsis.co//athena-api-reference/rule-detail/retrieve-a-rule-information athena-api-reference/athena_openapi.json get /api/ruleinformation/{id} # Update a rule information record Source: https://docs.cynopsis.co//athena-api-reference/rule-detail/update-a-rule-information-record athena-api-reference/athena_openapi.json patch /api/ruleinformation/{id} # List all RuleAlert records Source: https://docs.cynopsis.co//athena-api-reference/rulealert/list-all-rulealert-records athena-api-reference/athena_openapi.json get /api/rulealert # Retrieve a RuleAlert record Source: https://docs.cynopsis.co//athena-api-reference/rulealert/retrieve-a-rulealert-record athena-api-reference/athena_openapi.json get /api/rulealert/{id} # Update a RuleAlert record Source: https://docs.cynopsis.co//athena-api-reference/rulealert/update-a-rulealert-record athena-api-reference/athena_openapi.json patch /api/rulealert/{id} # Retrieve subject information by client_subject_id Source: https://docs.cynopsis.co//athena-api-reference/subject-info/retrieve-subject-information-by-client_subject_id athena-api-reference/athena_openapi.json get /api/subjectinfo/{id} # Create a subject Source: https://docs.cynopsis.co//athena-api-reference/subjects/create-a-subject athena-api-reference/athena_openapi.json post /api/subjects # Export subjects to CSV Source: https://docs.cynopsis.co//athena-api-reference/subjects/export-subjects-to-csv athena-api-reference/athena_openapi.json get /api/subjects/export_csv Export subjects to a CSV file. # Generate subject report Source: https://docs.cynopsis.co//athena-api-reference/subjects/generate-subject-report athena-api-reference/athena_openapi.json get /api/subjects/{client_subject_id}/generate-subject-report Generate a report for a specific subject and send it via email. # Get risk assessment report Source: https://docs.cynopsis.co//athena-api-reference/subjects/get-risk-assessment-report athena-api-reference/athena_openapi.json get /api/subjects/risk_assessment_report Retrieve a risk assessment report for all subjects. # List all subjects Source: https://docs.cynopsis.co//athena-api-reference/subjects/list-all-subjects athena-api-reference/athena_openapi.json get /api/subjects # Retrieve a specific subject Source: https://docs.cynopsis.co//athena-api-reference/subjects/retrieve-a-specific-subject athena-api-reference/athena_openapi.json get /api/subjects/{client_subject_id} Retrieve a specific subject by its client subject ID. # Update a subject Source: https://docs.cynopsis.co//athena-api-reference/subjects/update-a-subject athena-api-reference/athena_openapi.json patch /api/subjects/{client_subject_id} # Upload subjects Source: https://docs.cynopsis.co//athena-api-reference/subjects/upload-subjects athena-api-reference/athena_openapi.json post /api/subjects/upload Upload a CSV file to create or update subjects, An email will be sent to you, including upload status. # Create a transaction Source: https://docs.cynopsis.co//athena-api-reference/transactions/create-a-transaction athena-api-reference/athena_openapi.json post /api/transactions # Get Summary Stats Source: https://docs.cynopsis.co//athena-api-reference/transactions/get-summary-stats athena-api-reference/athena_openapi.json get /api/transactions/summary Retrieve a summary of transaction statistics. # Get Transactions by Country Source: https://docs.cynopsis.co//athena-api-reference/transactions/get-transactions-by-country athena-api-reference/athena_openapi.json get /api/transactions/countries Retrieve a list of transactions by country. # Get Transactions timeline Source: https://docs.cynopsis.co//athena-api-reference/transactions/get-transactions-timeline athena-api-reference/athena_openapi.json get /api/transactions/timeline Retrieve a timeline of transactions. # List all transactions Source: https://docs.cynopsis.co//athena-api-reference/transactions/list-all-transactions athena-api-reference/athena_openapi.json get /api/transactions # Retrieve a specific transaction Source: https://docs.cynopsis.co//athena-api-reference/transactions/retrieve-a-specific-transaction athena-api-reference/athena_openapi.json get /api/transactions/{id} Override the method to optimise query used, while using only necessary Django/DRF's implementation of [get_object_or_404()] # Upload transactions Source: https://docs.cynopsis.co//athena-api-reference/transactions/upload-transactions athena-api-reference/athena_openapi.json post /api/transactions/upload Upload a CSV file to create or update transactions, An email will be sent to you, including the upload status. # Create user Source: https://docs.cynopsis.co//athena-api-reference/user/create-user athena-api-reference/athena_openapi.json post /api/users # Delete user Source: https://docs.cynopsis.co//athena-api-reference/user/delete-user athena-api-reference/athena_openapi.json delete /api/users/{id} Logical Deletion a user, When a user is deleted, the user will be marked as inactive, and the user will not be able to log in anymore, all of the user's permissions will be removed, a possible email will be sent to the admin to notify that a user has been deleted # List users Source: https://docs.cynopsis.co//athena-api-reference/user/list-users athena-api-reference/athena_openapi.json get /api/users # List users ordered by email Source: https://docs.cynopsis.co//athena-api-reference/user/list-users-ordered-by-email athena-api-reference/athena_openapi.json get /api/assignees # Login Source: https://docs.cynopsis.co//athena-api-reference/user/login athena-api-reference/athena_openapi.json post /api/login Login with email, We use an authentication mechanism that is based on AWS Cognito, So we do not store the password in our database, to validate the user, we will check if the email exists in our database in addition to that the user should be active # Logout Source: https://docs.cynopsis.co//athena-api-reference/user/logout athena-api-reference/athena_openapi.json post /api/logout Logout a user by revoking the token from AWS Cognito # Retrieve a single user by id Source: https://docs.cynopsis.co//athena-api-reference/user/retrieve-a-single-user-by-id athena-api-reference/athena_openapi.json get /api/assignees/{id} # Retrieve user Source: https://docs.cynopsis.co//athena-api-reference/user/retrieve-user athena-api-reference/athena_openapi.json get /api/users/{id} # Update user Source: https://docs.cynopsis.co//athena-api-reference/user/update-user athena-api-reference/athena_openapi.json patch /api/users/{id} Update user information including name, email, groups, and permissions. # Create a Whitelist record Source: https://docs.cynopsis.co//athena-api-reference/whitelist/create-a-whitelist-record athena-api-reference/athena_openapi.json post /api/whitelist Create a new whitelist record with rules, bucket, and subject. # Delete a Whitelist record Source: https://docs.cynopsis.co//athena-api-reference/whitelist/delete-a-whitelist-record athena-api-reference/athena_openapi.json delete /api/whitelist/{id}/delete Allows users to delete a whitelist row using either `pk` (URL) or a combination of `subject` and `bucket` in the request body. # List all Whitelist records Source: https://docs.cynopsis.co//athena-api-reference/whitelist/list-all-whitelist-records athena-api-reference/athena_openapi.json get /api/whitelist # Retrieve a Whitelist record Source: https://docs.cynopsis.co//athena-api-reference/whitelist/retrieve-a-whitelist-record athena-api-reference/athena_openapi.json get /api/whitelist/{id} # Update a Whitelist record Source: https://docs.cynopsis.co//athena-api-reference/whitelist/update-a-whitelist-record athena-api-reference/athena_openapi.json patch /api/whitelist/{id} # Authentication Source: https://docs.cynopsis.co/ares/authentication If you have your own application developed for your users, it is likely that you would already have your own authentication system in place. Having users to register an account on your application, then again on Ares for the KYC on-boarding can be an awkward process for the users. The aim of the Integrated Authentication Workflow is to reduce friction by allowing users who already have an account in your application to start the KYC on-boarding process on Ares without having to authenticate themselves again. ## How to Request an Access Token To start using Cynopsis APIs (Ares or Artemis), you must first obtain an **access token** from the CRM using your issued **client\_id** and **client\_secret** credentials via the OAuth 2.0 `client_credentials` grant flow. Below you will find ready-to-use code examples and tables of request parameters for both Demo and Production environments. You can try executing the code samples interactively in Mintlify by using the "Run" / "Copy" buttons. ## Request Parameters **CRM Access Token Endpoints** | Environment | URL | | -------------- | ------------------------------------------ | | **Demo** | `https://crm-demo.cynopsis.co/oauth/token` | | **Production** | `https://crm.cynopsis.co/oauth/token` | ```request theme={null} POST /oauth/token Host: crm-demo.cynopsis.co or crm.cynopsis.co Content-Type: application/x-www-form-urlencoded grant_type=client_credentials client_id=your_client_id client_secret=your_secret_key ``` > Replace the values as follows: > > * `client_id`: Your assigned client ID from Cynopsis > * `client_secret`: Your assigned client secret from Cynopsis > * Select the Demo or Production URL as appropriate. ## Sample Access Token Response A successful request will return a response similar to this: ```json theme={null} { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...", "expires_in": 28800, "token_type": "Bearer" } ``` * **access\_token**: The string to be used in API requests as a Bearer token in the `Authorization` header. * **expires\_in**: Validity of the token in seconds (typically 8 hours). * **token\_type**: Always `Bearer`. *** ## How to Use the Access Token After obtaining the token, add it to the `Authorization` header for all subsequent API calls: ```http theme={null} Authorization: Bearer ``` # Get started Source: https://docs.cynopsis.co/ares/face-compare/get-started # Face Comparison API - Getting Started This guide explains how to perform face comparison using the `/service/facecompare` API endpoint. ## Example Request The following example demonstrates how to call the Face Compare API using `curl`: ```bash theme={null} curl --location '/service/facecompare' \ --header 'X-Domain-Id: ' \ --form 'file0=@"/Users/ryan/Documents/cynopsis/USPP2.jpg"' \ --form 'file1=@"/Users/ryan/Documents/cynopsis/selfie1.jpeg"' ``` * `file0`: The first image (e.g., a photo from a document). * `file1`: The second image (e.g., a selfie taken by the user). * `X-Domain-Id`: (Required) Your assigned domain identifier. > Ensure both files are valid image formats and that you have provided your correct domain ID header. ## Example Response A sample response from the API would look like: ```json theme={null} { "id": "cde55a87-88e5-4484-90d3-8b13eef8c04f", "status": "MATCHED/NOT MATCHED/UNCERTAIN/ERROR", "status_task": "SUCCESS/FAILURE", "result": { "simiarity": "string", "matched": true, "error": "string" }, "error": "string" } ``` ### Response Fields * **id**: Unique identifier for this face comparison task. * **status**: Indicates the face comparison result. Possible values: * `MATCHED`: The faces are considered a match. * `NOT MATCHED`: The faces do not match. * `UNCERTAIN`: The result is unclear (e.g., poor image quality). * `ERROR`: An error occurred during comparison. * **status\_task**: Processing status - either `SUCCESS` or `FAILURE`. * **result**: * `simiarity`: The similarity score returned as a string (expected to be a number/percentage as string). * `matched`: Boolean indicating if the comparison was a definite match (`true`) or not (`false`). * `error`: If any occurred, error details. * **error**: Any error message at the top level. ## Face Comparison & Similarity Logic The `similarity` score helps to quantify how closely the two faces match: * If similarity is **100%**, the system interprets this as potential duplication (e.g., both images are exactly the same), and **matched will be `false`** to prevent fraud or duplicate faces. * A similarity in the **30%-70% range** is generally considered uncertain and may result in an `UNCERTAIN` status. * In real use, most matched faces return a similarity of **80-99%**. * The `matched` boolean is set to `true` if the faces are recognized as belonging to the same person (within the accepted, practical similarity range). * The `similarity` value is also provided to allow clients to apply custom thresholds or logic for their specific requirements. > **Note:** The precise cut-off logic may be tuned by your organization's policies. Consult the technical team or support if you wish to customize the acceptance threshold. *** # Get Access Token Source: https://docs.cynopsis.co/ares/get-access-token /openapi/ares_openapi.yaml post /oauth/token Get JWT access token from Cynopsis CRM (Demo or Production) using the OAuth2 client_credentials flow. Only the following server URLs are used for this endpoint: - Demo: https://crm-demo.cynopsis.co - Production: https://crm.cynopsis.co # Introduction Source: https://docs.cynopsis.co/ares/introduction This documentation is for the Ares to Artemis 3.0 integration workflow and also to give a concise description of the modules involved. The left panel shows a list of major workflows. Inside each workflow tab, there will be a sublist shown on the right for more details for each step. The general worklfow is as per the below diagram. Client stack refers here to the entire stack of resources that is created for the client including Ares and Artemis 2 instance setup. # Liveness - Get Result Source: https://docs.cynopsis.co/ares/liveness--get-result /openapi/ares_openapi.yaml get /service/liveness-v2/liveness_result/{session_id} Get the result of a liveness check using the session ID. Requires Bearer token and domain ID. Use the following URLs depending on your environment: - Demo: https://d1.cynopsis.co - Production: https://util.cynopsis.co # Liveness - Get Session ID Source: https://docs.cynopsis.co/ares/liveness--get-session-id /openapi/ares_openapi.yaml get /service/liveness-v2/liveness_session Get a liveness session ID. Requires Bearer token and domain ID. Use the following URLs depending on your environment: - Demo: https://d1.cynopsis.co - Production: https://util.cynopsis.co # Liveness - Get Session Token Source: https://docs.cynopsis.co/ares/liveness--get-session-token /openapi/ares_openapi.yaml get /service/liveness-v2/get_session_token Get a session token for liveness check. Requires Bearer token and domain ID. Use the following URLs depending on your environment: - Demo: https://d1.cynopsis.co - Production: https://util.cynopsis.co # Download SDK Source: https://docs.cynopsis.co/ares/liveness-sdk/download Introduction to the Liveness SDK — available for Web, Android, and iOS applications. Download and integrate the SDK into your platform of choice. | Platform | Download Link | Filename | | --------------- | ------------------------------------------------------------------------------------------ | ------------------------------ | | **Web Browser** | Download Web SDK | `react-cs-liveness-3.4.46.tgz` | | **Android** | Download Android SDK | `liveness-release.aar` | | **iOS** | Download iOS SDK | `Liveness.xcframework.zip` | *Note: Please choose the SDK that matches your application platform.\ Refer to the [Get Started](./get-started) guide for integration instructions.* # Get Started Source: https://docs.cynopsis.co/ares/liveness-sdk/get-started Learn how to get started integrating the Liveness SDK into your app with step-by-step instructions for Web Browser, Android, and iOS platforms. ### Required Parameters When integrating the Liveness SDK, you will need to provide the following parameters: * **serviceBaseUrl**\ The endpoint where the liveness service is hosted.\   • For **Demo** environments, use: `https://d1.cynopsis.co/service`\   • For **Production** environments, use: `https://util.cynopsis.co/service` * **accessToken**\ The authentication token required to access the SDK services.\ Obtain your access token by referring to the **Authentication** section above. * **domainId**\ Your unique domain identifier, provided by Cynopsis Solutions or your system administrator. * **provider**\ The liveness provider version. Currently, set this to: `V2` These parameters must be passed into the SDK initialization as shown in the integration examples below. ### Intergrate SDK To start integrating the SDK with your application codebase, follow the sample code provided for your platform below. Each example shows how to initialize and configure the SDK using the required parameters, helping you get up and running quickly. ### Web Browser Integration 1. [Download Web SDK](/sdk/react-cs-liveness-3.4.44.tgz) 2. **Install the SDK** in your React project: > **Note:** The Web SDK requires `react` and `react-dom` (version `>=16.8.0`), as well as `react-cs-liveness`. ```bash theme={null} npm install react@^16.8.0 react-dom@^16.8.0 npm install ./react-cs-liveness-3.4.44.tgz # or yarn add react@^16.8.0 react-dom@^16.8.0 yarn add ./react-cs-liveness-3.4.44.tgz ``` 3. **Integrate the Liveness component** Select your frontend framework below for sample code: ```html theme={null} ``` ```jsx theme={null} import { LivenessCheck } from 'react-cs-liveness'; function App() { return ( { // handle ready }} onResult={result => { // handle result }} /> ); } ``` ```vue theme={null} ``` > **Update your `angular.json` to include the following style configuration:** > > ```json theme={null} > { > "projects": { > "angular-cli-cs-liveness-demo": { > "architect": { > "build": { > "options": { > "styles": [ > "node_modules/@aws-amplify/ui-react/styles.css", > "src/styles.css" > ] > } > } > } > } > } > } > ``` > > Ensure that `"node_modules/@aws-amplify/ui-react/styles.css"` appears **before** your custom styles in the `styles` array under the appropriate project's build options. ```html theme={null} ``` ```typescript theme={null} // In your Angular component apiUrl = "YOUR_SERVICE_BASE_URL"; domainId = "YOUR_DOMAIN_ID"; accessToken = "YOUR_ACCESS_TOKEN"; onReady() { // handle ready } onResult(result: any) { // handle result console.log(result); } ``` #### About Code Splitting & Custom Chunking If your project uses custom code-splitting or defines manual chunks (such as in a Vite or Webpack config), make sure all `react-cs-liveness` dependencies are kept together in the same chunk. Incorrect configuration may cause runtime issues related to duplicate React instances or missing dependencies, especially when using React 18+ or advanced bundling. * We recommend not setting custom chunking rules for the SDK or to use our provided plugins (see below) to ensure correct bundling. * If you are not sure about your chunking setup, test your build to ensure the Liveness component loads and works as expected. If your project uses [Vite](https://vitejs.dev/), we strongly recommend using our official `liveness()` Vite plugin from `react-cs-liveness/config`. This plugin ensures correct code-splitting and chunking for all `react-cs-liveness` dependencies, avoiding runtime errors (like React 18+ createRoot issues) that commonly occur when custom `manualChunks` are defined. For example, with a Vue project: ```js theme={null} // vite.config.js import { defineConfig } from 'vite' import { liveness } from 'react-cs-liveness/config' export default defineConfig({ plugins: [ liveness({ mergeWithExisting: true, // Merge safely with your existing manualChunks }), ], }) ``` This setup ensures `react-cs-liveness` and all its internal dependencies are correctly bundled—no matter your framework or chunking rules. The `mergeWithExisting: true` option integrates seamlessly with your app’s existing Vite code-splitting configuration. ### Android Integration 1. **Download the SDK:** [Download Android SDK](/sdk/liveness-release.aar) 2. **Add dependencies to your app-level `build.gradle`:** > **Tested with Gradle 8.13.0:**\ > The following configuration has been verified with [Gradle 8.13.0](https://docs.gradle.org/8.13.0/release-notes.html). ```groovy theme={null} // Enable core library desugaring in your build.gradle android { compileOptions { coreLibraryDesugaringEnabled true // other compile options if any } } dependencies { implementation project(path: ':liveness-release') implementation 'com.amplifyframework:core:2.30.1' implementation 'com.amplifyframework.ui:liveness:1.7.1' implementation 'androidx.compose.material3:material3:1.4.0' implementation 'androidx.compose.material:material-icons-extended:1.7.8' implementation 'com.amplifyframework:aws-auth-cognito:2.30.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' } ``` 3. **Implementing the Liveness SDK in Your Activity** Here's a simple and practical example to get you quickly started with the Liveness SDK in your Android app: ```java theme={null} // 1. Create LivenessTestConfig with your access token and service URL LivenessTestConfig config = new LivenessTestConfig( Provider.V2, "https://d1.cynopsis.co/service", 1L, // your domain ID "YOUR_ACCESS_TOKEN" ); // 2. Setup LivenessOnLoad callback to handle SDK ready or failure state LivenessOnLoad livenessOnLoad = new LivenessOnLoad() { @Override public void succeed(String message) { // SDK initialized successfully setLivenessCustomization(); } @Override public void failed(String message) { // SDK initialization failed } }; // Initialize the LivenessTest LivenessTest liveness = new LivenessTest(this, config, livenessOnLoad); // 3. Start liveness detection with custom delegate to receive results LivenessTestDelegate livenessTestDelegate = new LivenessTestDelegate() { @Override public void onResponse(LivenessTestResults response) { switch (response.getStatus()) { case PASSED: // Success: handle result break; case ERROR: case FAILED: // Handle error or failed attempt break; } } }; liveness.startLiveness(livenessTestDelegate); // 4. Customization color (optional) private void setLivenessCustomization() { LivenessV2Customization customization = new LivenessV2Customization().getDefault(); customization.setBackground(0xFFf2e8cf); customization.setPrimary(0xffbc4749); customization.setOnPrimary(0xFFf2e8cf); customization.setOnBackground(0xffbc4749); LivenessTestV2GlobalState.setCustomization(customization); } ``` > **Tip:** Replace `"YOUR_ACCESS_TOKEN"` with your real access token provided via onboarding, and make sure IDs like `startButton`, `messageResult`, `messageStatus`, and `imageResult` exist in your `activity_main.xml`. This example will initialize the SDK, show status and liveness selfie results, and display passed/failed messages for your users. ### iOS Integration 1. **Download the SDK:** [Download iOS SDK](/sdk/Liveness.xcframework.zip) 2. **Add the SDK framework to your Xcode project:** * Unzip `Liveness.xcframework.zip` and drag the `Liveness.xcframework` folder into the `Frameworks` group of your Xcode project. 3. **Add the Amplify UI Swift Liveness package:** * In Xcode, go to **File > Add Packages...** * Paste the following URL into the search bar:\ `https://github.com/Cynopsis/amplify-ui-swift-liveness` * Click **Add Package** when it appears. 4. **Embed Liveness.xcframework:** * In your Xcode project settings, go to **General > Frameworks, Libraries, and Embedded Content**. * Make sure **Liveness.xcframework** is listed, and its embed option is set to **Embed & Sign**. 5. **Import and use the framework in your code:** ```swift theme={null} import Liveness class ViewController: UIViewController { // 1. Prepare session credentials and configuration let credentials = LivenessCredentials( serviceBaseUrl: "YOUR_SERVICE_BASE_URL", // e.g. "https://util.cynopsis.co/service" accessToken: "YOUR_ACCESS_TOKEN", // OAuth token from onboarding domainId: "YOUR_DOMAIN_ID", // Provided by Cynopsis provider: "V2" // Use "V2" ) // 2. (Optional) Set up color customization func customColorConfig() -> LivenessColorConfiguration { let config = LivenessColorConfiguration() config.background = 0xFFf2e8cf config.primary = 0xffbc4749 config.onPrimary = 0xFFf2e8cf config.onBackground = 0xffbc4749 return config } // 3. Start liveness detection and handle results func startLivenessCheck() { _ = LivenessTestV2Processor( fromVC: self, config: credentials, complete: { result in switch result.status { case .PASSED: // Success: handle result print("Liveness passed: \(result)") case .FAILED, .ERROR: // Handle failed attempt or error print("Liveness failed: \(result.message ?? "Unknown error")") default: break } }, customization: customColorConfig() ) } } ``` > **Tip:** Replace `"YOUR_ACCESS_TOKEN"` and other credentials with your actual values. Make sure your ViewController is presented correctly in your app flow. This example initializes the SDK, applies optional color customization, and shows how to handle pass/fail messages for user feedback. # Server integration Source: https://docs.cynopsis.co/ares/liveness-sdk/server-integration # Server-side Integration: Securely Proxy Your Liveness API Calls Integrating the Liveness SDK requires access to protected API endpoints and sensitive credentials such as your `client_id` and `client_secret`. Exposing these credentials—or directly accessing Cynopsis Liveness APIs from the browser or mobile app—can lead to serious security risks. Instead, we **highly recommend** implementing a *proxy server* as a backend component of your system to handle all interactions with the Liveness APIs, as well as securely generate and store access tokens. *** ## Why Use a Proxy Server? * **Credential Protection:** Your OAuth2 secrets (`client_id` and `client_secret`) should never be exposed to frontend or mobile code, as this risks misuse by malicious actors. * **Token Management:** The proxy backend is responsible for generating and refreshing the `access_token` using the /oauth/token endpoint. The frontend will only receive temporary tokens or use tokenized API calls via your backend. * **Enhanced Security:** All sensitive API requests and responses (including session IDs and liveness results) are managed on the server side, reducing attack surface and mitigating credential leakage. * **Auditing & Monitoring:** Keeping all API interactions on your backend allows you to monitor, log, and audit API usage more efficiently. *** ## Liveness APIs to Integrate via Proxy Your backend proxy should securely connect to the following Liveness endpoints and expose controlled interfaces to your frontend as needed: ### 1. **Get Session Token** `POST /service/liveness-v2/get_session_token` * **Purpose:** Initiate a new liveness workflow by getting a one-time session token. * **Backend responsibility:** * Receive an accessToken (generated from your backend using `/oauth/token`). * Pass required headers, including `X-Domain-Id` (your domain ID), and any other required metadata as specified in the API documentation. * Return the session token to your frontend client. ### 2. **Create Liveness Session** `POST /service/liveness-v2/liveness_session` * **Purpose:** Create a liveness session to start the verification process. * **Backend responsibility:** * Use the access token and include the `X-Domain-Id` header. * Optionally, log or pre-validate incoming requests. * Return the created session details to the frontend. ### 3. **Get Liveness Result** `GET /service/liveness-v2/liveness_result/{session_id}` * **Purpose:** Query the final result/status of the liveness check by session ID. * **Backend responsibility:** * Restrict this call to authenticated/authorized users. * Attach the accessToken and the `X-Domain-Id` header as required. * Forward the result to the frontend for UI display or further processing. *** ## Example Sequence Diagram ```mermaid theme={null} sequenceDiagram participant Client participant Proxy Server participant Cynopsis API %% Step 1: Initiate Session Client->>Proxy Server: Initiate session (e.g., /initiate-session) Proxy Server->>Cynopsis API: POST /oauth/token (with client credentials) Cynopsis API-->>Proxy Server: access_token Proxy Server->>Cynopsis API: POST /service/liveness-v2/get_session_token (+ X-Domain-Id) Cynopsis API-->>Proxy Server: session_token Proxy Server-->>Client: session_token %% Step 2: Start Liveness Client->>Proxy Server: Start liveness (pass session_token/required params) Proxy Server->>Cynopsis API: POST /service/liveness-v2/liveness_session (+ X-Domain-Id) Cynopsis API-->>Proxy Server: session_id Proxy Server-->>Client: session_id %% Step 3: Retrieve Result Client->>Proxy Server: Get liveness result (session_id) Proxy Server->>Cynopsis API: GET /service/liveness-v2/liveness_result/{session_id} (+ X-Domain-Id) Cynopsis API-->>Proxy Server: result Proxy Server-->>Client: result ``` *** ## Proxy Server Implementation Tips * **Use HTTPS** to communicate between your frontend, backend, and the Cynopsis API endpoints. * **Never expose** your OAuth2 client credentials in frontend code, environment, or mobile apps. * **Implement authentication** on your proxy endpoints to ensure only authorized clients/users can initiate liveness sessions or retrieve results. * **Cache or refresh tokens** as needed on your backend to optimize performance. *** ### Next steps * Build simple REST endpoints (Node.js, Python, etc.) in your backend to wrap each of the 3 critical Liveness endpoints, ensuring you pass the `X-Domain-Id` header in each relevant request. * Ensure your frontend calls only your backend's proxy endpoints for all liveness operations. *** By following this architecture, you will keep your credentials secure, comply with security best practices, and maintain full control over your integration with Cynopsis Liveness APIs. # Document verification code Source: https://docs.cynopsis.co/ares/ocr/document-verification-code # Document Verification Codes and Meanings This reference explains the `docver_check.reasonCode` values and related fields returned during Identity and Document Verification via the Cynopsis OCR & IDV APIs. *** ## Document Types The `docver_check.document.type` field indicates the type of document identified. Possible values include: * `PASSPORT` * `ID_CARD` – National identity cards * `DRIVERS_LICENSE` – Driver's licenses * `RESIDENCE_PERMIT` – Residence permits and residence cards * `VISA` – Visa documents attached in a passport or issued as a separate document * `OTHER` – Other or unspecified document types *** ## Verification Codes During the verification process, your document undergoes multiple checks. The result is communicated in the verification object (e.g., `docver_check.status` and `docver_check.reasonCode`).\ Use the tables below to interpret reason codes. ### When `docver_check.status` is `declined` | Code | Description | | ---- | --------------------------------------------------- | | 105 | Suspicious behaviour | | 112 | Restricted IP location | | 127 | Face match with blocklist | | 504 | Attempted deceit, device screen used | | 505 | Attempted deceit, printout used | | 508 | Presented document tampered, similarity to specimen | ### When `docver_check.status` is `resubmission_requested` | Code | Description | | ---- | --------------------------------- | | 608 | Document front missing | | 609 | Document back missing | | 614 | Document front not fully in frame | | 615 | Document back not fully in frame | | 619 | Document data not visible | | 620 | Presented document expired | | 621 | Document annulled or damaged | | 625 | Unable to collect surname | | 626 | Unable to collect first names | | 627 | Unable to collect date of birth | | 628 | Unable to collect issue date | | 629 | Unable to collect expiry date | | 630 | Unable to collect gender | | 631 | Unable to collect document number | | 632 | Unable to collect personal number | | 633 | Unable to collect nationality | | 634 | Unable to collect home address | *** ### Example ```json theme={null} "docver_check": { "id": "8fd56097-caad-410b-8e57-fcaf24524007", "code": 9102, "person": { ... }, "reason": "Presented document tampered, document similarity to specimen", "status": "declined", "document": { "type": "RESIDENCE_PERMIT", ... }, "reasonCode": 508, ... } ``` In the example above, `reasonCode`: **508** indicates the document was declined because it was tampered with or matched a known specimen/image. *** > If you need details for any additional status or reason codes not listed here, please contact support or refer to the full API documentation. # Get started Source: https://docs.cynopsis.co/ares/ocr/get-started # OCR API - Getting Started This guide shows you how to use the OCR API to extract information from your document images. ## Endpoint `POST https://crm-demo.cynopsis.co/service/v2/ocr` ## Request Example Send a **multipart/form-data** request with at least the front document image (`file0`) and optionally the back image (`file1`). ```bash theme={null} curl --request POST \ --url https://crm-demo.cynopsis.co/service/v2/ocr \ --header 'Authorization: Bearer ' \ --header 'Content-Type: multipart/form-data' \ --header 'X-Domain-Id: ' \ --form file0=@example-file \ --form file1=@example-file ``` **Required headers:** * `Authorization: Bearer `: Your JWT access token. * `X-Domain-Id: `: Your assigned Domain ID. * `Content-Type: multipart/form-data`: Required for file uploads. **Form fields:** * `file0` (required): Main document file (front image). * `file1` (optional): Secondary document file (back image, if needed). > ⚠️ **Note:**\ > Ensure that the file being uploaded is in a supported image format for OCR processing. ## Response **Status Code:** `201 Created`\ **Content-Type:** `application/json` #### Fields Returned: * `task_id`: Unique identifier for the OCR processing task. * `status_task`: The current processing status. Example: `SUCCESS`. * `result`: Contains extracted data such as: * `first_name` * `last_name` * `full_name` (combination of `first_name` and `last_name`) * `full_name2` (combination of `last_name` and `first_name`) * `gender` * `date_of_birth` * `passport_number` * `document_type` * Other fields including `address`, `issuing_country`, and more. * Fields that cannot be extracted will have a `null` or empty value. **Example:**\ If `first_name` is `"MICHAEL"` and `last_name` is `"LEE"`: * `full_name` would be `"MICHAEL LEE"` * `full_name2` would be `"LEE MICHAEL"` * `docver_check`: Contains document verification details such as `id`, `code`, `person` (with extracted personal details), `document`, `reason`, `status`, etc. This provides insights into the verification and validity of the uploaded document. #### Sample Response ```json theme={null} { "task_id": "156f047d-f8ad-4ba1-9296-a491675d0620", "status_task": "SUCCESS", "result": { "last_name": "LEE", "first_name": "WANG", "full_name": "WANG LEE", "full_name2": "LEE WANG" "gender": "", "race": "", "date_of_birth": null, "domicile": "", "address": "", "passport_number": "", "document_number": null, "personal_id_number": null, "issuing_country": "SINGAPORE", "country_of_birth": null, "nationality": null, "passport_expiry_date": "", "expiry_date": null, "issue_date": null, "optional_data": null, "final hash": "", "document number hash": "", "birth date hash": "", "profession": "", "expiry date hash": "", "optional data hash": "", "document type format": "", "valid country code": "", "valid nationality code": "", "birth date": null, "expiry date": null, "valid genre format": "", "mrz_raw_string": "", "identifier": "", "document number format": "", "optional data format": "", "employer": "", "status": "UNCERTAIN", "document_type": "RESIDENCE_PERMIT", "document_type_name": "NATIONAL ID", "docver_check": { "id": "8fd56097-caad-410b-8e57-fcaf24524007", "code": 9102, "person": { "gender": null, "idNumber": null, "lastName": null, "addresses": [], "firstName": "STEVANIE", "citizenship": null, "dateOfBirth": null, "nationality": null, "yearOfBirth": null, "placeOfBirth": null, "pepSanctionMatch": null }, "reason": "Presented document tampered, document similarity to specimen", "status": "declined", "comments": [], "document": { "type": "RESIDENCE_PERMIT", "state": null, "number": null, "country": "SG", "validFrom": null, "validUntil": null }, "attemptId": "f85ac94c-5927-4a01-b9e1-f84a40cc9b1e", "endUserId": null, "reasonCode": 508, "vendorData": null, "decisionTime": "2025-06-16T06:21:13.759386Z", "acceptanceTime": "2025-06-16T06:21:06.082696Z", "additionalVerifiedData": {}, "recommendation": "" } } } ``` *** ### Additional Notes * Some fields in the response may be `null` or omitted, depending on the document and extraction quality. * The `docver_check` object gives detailed information about the document verification outcome including codes and reasoning. If you have further questions, please refer to the full [API Reference](/api-reference/perform-ocr-and-idv) or contact support. # Perform Face Compare Source: https://docs.cynopsis.co/ares/perform-face-compare /openapi/ares_openapi.yaml post /service/facecompare Perform face comparison between two images. Requires Bearer token and domain ID. Use the following URLs depending on your environment: - Demo: https://d1.cynopsis.co - Production: https://util.cynopsis.co # Perform OCR and IDV Source: https://docs.cynopsis.co/ares/perform-ocr-and-idv /openapi/ares_openapi.yaml post /service/v2/ocr Perform OCR (Optical Character Recognition) and document verification. Requires a Bearer token and domain ID. Use the following URLs depending on your environment: - Demo: https://d1.cynopsis.co - Production: https://util.cynopsis.co # getAllConfigs Source: https://docs.cynopsis.co/artemis3-api-reference/app-config-controller/getallconfigs get /api/app-config # getConfigByKey Source: https://docs.cynopsis.co/artemis3-api-reference/app-config-controller/getconfigbykey get /api/app-config/{key} # getConfigsByKeys Source: https://docs.cynopsis.co/artemis3-api-reference/app-config-controller/getconfigsbykeys get /api/app-config/bulk/{keys} # getCreditInfo Source: https://docs.cynopsis.co/artemis3-api-reference/app-config-controller/getcreditinfo get /api/app-config/creditInfo # checkAssignedSource Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/checkassignedsource get /api/asia-verify/check-source # getAsiaVerifyAuthToken Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/getasiaverifyauthtoken post /api/asia-verify/login # getRequestedProfile Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/getrequestedprofile get /api/asia-verify/profile/check-exist/{vendorEntityGuid} # importAsiaVerifyProfileReportToDb Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/importasiaverifyprofilereporttodb post /api/asia-verify/profile/import # requestEntityProfileReport Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/requestentityprofilereport post /api/asia-verify/profile # searchForEntityWithBasicSearch Source: https://docs.cynopsis.co/artemis3-api-reference/asia-verify-controller/searchforentitywithbasicsearch post /api/asia-verify/search # Authentication Source: https://docs.cynopsis.co/artemis3-api-reference/authentication Setting up Artemis authentication access **Prerequisite**: In order to run the collection below, a **Authentication\_URL** is required which will be provided by Cynopsis, which can then be set as a global variable or in the enviroment created for Artemis in the Introduction section. [Artemis3 Postman Collection Link](https://www.getpostman.com/collections/74daad63426fa5c7b3c6) ## Authentication URLs Use the appropriate authentication URL depending on your environment. | Environment | Authentication URL | | ----------- | ------------------------------ | | **UAT** | `https://crm-demo.cynopsis.co` | | **PROD** | `https://crm.cynopsis.co` | *** ## Generate Token for a Guest To generate a token, please make a `POST` API call to the following endpoint: ```bash theme={null} POST {{authentication_url}}/oauth/token ``` ### Requirements The request must use the `application/x-www-form-urlencoded` format. #### Headers ```http theme={null} Content-Type: application/x-www-form-urlencoded ``` #### Body (form data) ``` grant_type=client_credentials client_id=YOUR_CLIENT_ID client_secret=YOUR_CLIENT_SECRET ``` Replace `YOUR_CLIENT_ID` and `YOUR_CLIENT_SECRET` with the credentials provided by Cynopsis. ### Sample HTTP Request ```bash theme={null} curl -X POST {{authentication_url}}/oauth/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" ``` ### Sample HTTP Response ```json theme={null} { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...", "token_type": "Bearer", "expires_in": 3600 } ``` ## Get Access Token/Refresh Token Using Username and Password ```bash theme={null} POST {{authentication_url}}/oauth/token ``` ### Requirements Use the `application/x-www-form-urlencoded` content type. #### Headers ```http theme={null} Content-Type: application/x-www-form-urlencoded ``` #### Body (form data) ``` grant_type=password client_id=YOUR_CLIENT_ID client_secret=YOUR_CLIENT_SECRET username=USER_EMAIL password=USER_PASSWORD ``` Replace the values accordingly. These credentials are required for authenticating the user. *** ### Sample Request Use `application/x-www-form-urlencoded` and URL-encode all values. ```bash theme={null} # Get access + refresh tokens with username/password curl --location '{{authentication_url}}/oauth/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id=YOUR_CLIENT_ID' \ --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \ --data-urlencode 'username=USER_EMAIL' \ --data-urlencode 'password=USER_PASSWORD' ``` *** ### Sample Response ```json theme={null} { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...", "token_type": "Bearer", "expires_in": 3600 } ``` *** ## Using Refresh Token for User To obtain a new access token using a valid refresh token (from above), make the following request: ```bash theme={null} POST {{authentication_url}}/oauth/token ``` #### Headers ```http theme={null} Content-Type: application/x-www-form-urlencoded ``` #### Body (form data) ``` grant_type=refresh_token refresh_token=USER_REFRESH_TOKEN client_id=YOUR_CLIENT_ID client_secret=YOUR_CLIENT_SECRET ``` *** ### Sample Request (Refresh) ```bash theme={null} # Refresh access token using a refresh token curl --location '{{authentication_url}}/oauth/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=refresh_token' \ --data-urlencode 'refresh_token=YOUR_REFRESH_TOKEN' \ --data-urlencode 'client_id=YOUR_CLIENT_ID' \ --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' ``` *** ### Sample Response ```json theme={null} { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...", "token_type": "Bearer", "expires_in": 3600 } ``` # activateForgetPasswordProcess Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/activateforgetpasswordprocess post /api/authentication/forget-password/{code}/activate # changePassword Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/changepassword post /api/authentication/change-password # firstTimeActivatePassword Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/firsttimeactivatepassword post /api/authentication/first-time/{code}/activate # forgetPassword Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/forgetpassword post /api/authentication/forget-password # getAccessToken Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/getaccesstoken post /api/authentication/token # getFirstTimeMfaCodeInfo Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/getfirsttimemfacodeinfo get /api/authentication/first-time/{code} # getForgetPasswordInfo Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/getforgetpasswordinfo get /api/authentication/forget-password/{code} # login Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/login post /api/authentication/login # loginWithMfa Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/loginwithmfa post /api/authentication/login/mfa # redeemRefreshToken Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-controller/redeemrefreshtoken post /api/authentication/refresh # addUserPermission Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/adduserpermission post /api/authentication-manager/user/{id}/permission # addUserPermissionBatch Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/adduserpermissionbatch post /api/authentication-manager/user/{id}/permission/batch # addUserRole Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/adduserrole post /api/authentication-manager/user/{id}/role # createRole Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/createrole post /api/authentication-manager/role # deleteRole Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/deleterole delete /api/authentication-manager/role/{id} # getAllPermissions Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getallpermissions get /api/authentication-manager/permission # getAllRoles Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getallroles get /api/authentication-manager/role # getAllRolesNoPagination Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getallrolesnopagination get /api/authentication-manager/role/all # getAllUsersPermissionAndRoles Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getalluserspermissionandroles get /api/authentication-manager/user # getASingleUsersPermissionAndRoles Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getasingleuserspermissionandroles get /api/authentication-manager/user/{id} # getRoleById Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/getrolebyid get /api/authentication-manager/role/{id} # removeUserPermission Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/removeuserpermission delete /api/authentication-manager/user/{id}/permission/{permissionType} # removeUserRole Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/removeuserrole delete /api/authentication-manager/user/{id}/role/{roleId} # updateRole Source: https://docs.cynopsis.co/artemis3-api-reference/authentication-manager-controller/updaterole put /api/authentication-manager/role/{id} # error Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error get /api/error # error Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-1 put /api/error # error Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-2 post /api/error # error Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-3 delete /api/error # Error 4 Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-4 options /api/error # Error 5 Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-5 head /api/error # error Source: https://docs.cynopsis.co/artemis3-api-reference/basic-error-controller/error-6 patch /api/error # addNewComments Source: https://docs.cynopsis.co/artemis3-api-reference/comment-controller/addnewcomments post /api/comment/{type} # deleteComment Source: https://docs.cynopsis.co/artemis3-api-reference/comment-controller/deletecomment delete /api/comment/{type}/{objectId}/{id} # getAllComment Source: https://docs.cynopsis.co/artemis3-api-reference/comment-controller/getallcomment get /api/comment/{type}/{objectId} # updateComment Source: https://docs.cynopsis.co/artemis3-api-reference/comment-controller/updatecomment put /api/comment/{type}/{objectId}/{id} # Artemis Customer Callback Specification Source: https://docs.cynopsis.co/artemis3-api-reference/customer-callback/callback-specification HTTP callback that Artemis sends to your endpoint when a customer record is created or when its status changes. Artemis notifies your system via an HTTP callback when a customer record is created or when its status changes. This page describes the outbound request Artemis makes: HTTP method, headers, JSON body and the allowed enum values. *** ## 1. When the callback fires Artemis sends a callback when either of the following happens for a customer in your domain: | Event | `action` value | | ------------------------------------------------ | -------------- | | New customer onboarded (risk assessment created) | `INSERT` | | Customer status changes | `UPDATE` | > **Notes** > > * `UPDATE` is triggered by status transitions (e.g. `DRAFT → PENDING`, `PENDING → CLEARED`, `* → REQUIRE_UPDATE`), **not** by every field edit. > * Callbacks are delivered **after** the change is committed in Artemis. If the customer is subsequently modified again, you may receive another callback. *** ## 2. The HTTP request ### 2.1 Method and URL The HTTP method and target URL are those registered for your domain. Artemis typically calls with `POST`; `PUT` and `PATCH` are also supported. ### 2.2 Headers ```http theme={null} Content-Type: application/json ``` No authentication or signature headers are sent by Artemis. If your endpoint requires authentication, front it with an IP allowlist or a gateway that injects credentials server-side. ### 2.3 Body The callback body is a single JSON object with the following fields: | Field | Type | Nullable | Description | | --------------------- | ------------- | -------- | -------------------------------------------------------------------------------- | | `customerId` | number | no | Internal numeric ID of the customer in Artemis. Stable across updates. | | `customerReferenceId` | string | no | Your customer reference (the one you provided when the customer was onboarded). | | `profileReferenceId` | string | no | Reference ID of the underlying profile (shared across related customer records). | | `status` | string (enum) | no | Current customer status. See [§3 Enum values](#3-enum-values). | | `riskRating` | string (enum) | yes | Current risk rating. See [§3 Enum values](#3-enum-values). | | `action` | string (enum) | no | `INSERT` or `UPDATE`. | | `message` | string | yes | Free-text note. `null` for normal create/update events. | | `customerType` | string (enum) | no | `INDIVIDUAL` or `CORPORATE`. | *** ## 3. Enum values | Field | Allowed values | | -------------- | ----------------------------------------------------------------------- | | `status` | `DRAFT`, `PENDING`, `CLEARED`, `REQUIRE_UPDATE`, `REJECTED`, `ACCEPTED` | | `riskRating` | `LOW`, `MEDIUM_LOW`, `MEDIUM`, `MEDIUM_HIGH`, `HIGH` | | `action` | `INSERT`, `UPDATE` | | `customerType` | `INDIVIDUAL`, `CORPORATE` | > Treat the enum sets as **additive** — your parser should not hard-fail on unrecognised values. *** ## 4. Example payloads ### 4.1 New customer (`INSERT`) ```http theme={null} POST /hooks/artemis HTTP/1.1 Host: your-domain.example.com Content-Type: application/json { "customerId": 12345, "customerReferenceId": "CUST-2026-000123", "profileReferenceId": "PROF-2026-000042", "status": "PENDING", "riskRating": "LOW", "action": "INSERT", "message": null, "customerType": "CORPORATE" } ``` ### 4.2 Status change (`UPDATE`) ```http theme={null} POST /hooks/artemis HTTP/1.1 Host: your-domain.example.com Content-Type: application/json { "customerId": 12345, "customerReferenceId": "CUST-2026-000123", "profileReferenceId": "PROF-2026-000042", "status": "CLEARED", "riskRating": "MEDIUM", "action": "UPDATE", "message": null, "customerType": "CORPORATE" } ``` *** ## 5. Expected response * Return any `2xx` status code to acknowledge receipt. * The response body is ignored. * There is **no automatic retry** on failure. Your endpoint should: * Respond quickly (treat the work as *acknowledge-and-enqueue*). * Be **idempotent** — use `customerId` + `action` + the current `status` / `riskRating` to dedupe if you receive repeats. * Not depend on strict ordering — if you need the absolute latest state, re-fetch the customer from the Artemis API using `customerId` or `customerReferenceId`. *** ## 6. Integration checklist * [ ] Expose an HTTPS endpoint that accepts the configured HTTP method and a JSON body. * [ ] Parse the payload using the field table in [§2.3](#2-3-body); tolerate unknown enum values. * [ ] Respond `2xx` quickly; process asynchronously on your side. * [ ] Dedupe on `customerId` + `status` + `riskRating` (no retries, but repeats can happen across multiple status changes). * [ ] Protect the endpoint at the network layer (no auth header is sent by Artemis). # Create a Primary Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/1-create-primary ## Important Information 1. **Customer vs Record**\ A *customer* refers to a unique case, while a *record* refers to an individual entity. 2. **Unique Identifier**\ Every customer must have a mandatory `profileReferenceId`, which serves as the key unique identifier. * No two customers can share the same `profileReferenceId`. * Exception: if the customer is inherited as an existing record, the `profileId` (the record ID from Artemis2) can be used. 3. **Workflow Options**\ In Step 1 and Step 3 of the customer creation workflow, the end-user may choose: * **One individual primary customer** without any associated CRP(s), **or** * **One corporate primary customer** with multiple CRPs (e.g., two individual CRPs and one corporate CRP). > The example above is non-exhaustive; other combinations may be valid. 4. **Dynamic Values**\ Fields like `{{domain_id}}` and `{{assignee_id}}` are dynamic values obtained from the application itself. * `{{domain_id}}` → the current domain. * `{{assignee_id}}` → the assignee selected by the user.\ These values are usually managed via the Postman Environment. *** ## Next Step: Choose a Path * **Individual Primary Customer** → [Create Individual Primary Customer](/workflows/customer-comprehensive/1a-create-individual-primary) * **Corporate Primary Customer** → [Create Corporate Primary Customer](/workflows/customer-comprehensive/1b-create-corporate-primary) # Create an Individual Primary Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/1a-create-individual-primary POST /api/customer ## Description This endpoint creates a new **Individual Primary Customer**. You can submit either: * A minimal request with only the mandatory fields, or * A full request with all optional fields. **Important:** * To create a new individual primary customer, it is mandatory for the end user to provide their `profileReferenceId` and personal particulars (`name`, `gender`, `countryOfResidence`, and `nationality`) inside the request body. * The `type` field must be set to `INDIVIDUAL`. **Field Specifications:** * `evidenceCorroborated`: Enum field that accepts either `"YES"` or `"NO"`. Used in `sourceOfFunds` and `sourceOfWealth` arrays. ## Sample Request Body 1 — Mandatory Fields Only ```json theme={null} { "active": true, "profileReferenceId": "180062353535", "other": { "industry": "EDUCATION", "occupation": "TEACHING PROFESSIONAL", "onBoardingMode": "NON FACE-TO-FACE", "paymentMode": [ "CREDIT CARD" ], "productServiceComplexity": "SIMPLE" }, "particular": { "name": "Individual Primary Customer", "gender": "MALE", "countryOfResidence": "SINGAPORE", "nationality": [ "SINGAPORE" ] }, "type": "INDIVIDUAL", "domainId": [ {{domain_id}} ], "assigneeId": {{assignee_id}} } ``` ## Sample Request Body 2 — All Fields ```json theme={null} { "active": true, "profileReferenceId": "180062353535", "other": { "industry": "EDUCATION", "occupation": "TEACHING PROFESSIONAL", "onBoardingMode": "NON FACE-TO-FACE", "paymentMode": [ "CREDIT CARD" ], "productServiceComplexity": "SIMPLE", "sourceOfFunds": [ { "id": "9aefb2d3-6ab9-48c5-b111-fb6992794f8b", "category": "LOTTERY/WINDFALL", "amountDeclared": 10000000, "evidenceCorroborated": "YES" } ], "sourceOfWealth": [ { "id": "7bcde1f2-5ab8-47c4-a222-eb5881683c9a", "category": "INHERITANCE", "amountDeclared": 5000000, "evidenceCorroborated": "YES" } ], "bankAccount": [], "additionalInformation": "", "natureOfBusinessRelationship": "" }, "particular": { "salutation": "", "name": "Individual Primary Customer", "alias": [], "formerName": [], "gender": "MALE", "countryOfResidence": "SINGAPORE", "nationality": [ "SINGAPORE" ], "countryOfBirth": "", "dateOfBirth": null, "address": [], "phone": [], "email": [], "identityDocumentType": "", "identityNumber": "", "identityIssuedDate": null, "identityExpiryDate": null }, "type": "INDIVIDUAL", "domainId": [ {{domain_id}} ], "assigneeId": {{assignee_id}} } ``` ## Success Response — 200 OK ```json theme={null} { "id": 925, "createdAt": "2022-07-26T04:21:41.616+00:00", "updatedAt": "2022-07-26T04:21:41.636+00:00", "createdBy": null, "updatedBy": null, "active": true, "parentId": null, "profileId": 915, "type": "INDIVIDUAL", "referenceId": null, "profileReferenceId": "180062353535B", "particular": { "salutation": "", "name": "Individual Primary Customer", "alias": [], "formerName": [], "gender": "MALE", "countryOfResidence": "SINGAPORE", "nationality": [ "SINGAPORE" ], "countryOfBirth": "", "dateOfBirth": null, "address": [], "phone": [], "email": [], "identityDocumentType": "", "identityNumber": "", "identityIssuedDate": null, "identityExpiryDate": null }, "other": { "industry": "EDUCATION", "occupation": "TEACHING PROFESSIONAL", "onBoardingMode": "NON FACE-TO-FACE", "paymentMode": [ "CREDIT CARD" ], "productServiceComplexity": "SIMPLE", "sourceOfFunds": [ { "id": "9aefb2d3-6ab9-48c5-b111-fb6992794f8b", "category": "LOTTERY/WINDFALL", "amountDeclared": 10000000, "evidenceCorroborated": "YES" } ], "sourceOfWealth": [ { "id": "7bcde1f2-5ab8-47c4-a222-eb5881683c9a", "category": "INHERITANCE", "amountDeclared": 5000000, "evidenceCorroborated": "YES" } ], "bankAccount": [], "natureOfBusinessRelationship": "", "additionalInformation": "", "documentList": null }, "vendorName": "", "vendorEntityGuid": "", "lastRiskAssessment": null, "status": "DRAFT", "riskRating": "UNKNOWN", "roles": [], "listRoleAsText": [] } ``` # Create a Corporate Primary Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/1b-create-corporate-primary POST /api/customer ## Description This endpoint creates a new **Corporate Primary Customer**. You can submit either: * A minimal request with only the mandatory fields, or * A full request with all optional fields. **Important:** * To create a new corporate primary customer, it is mandatory for the end user to provide their `profileReferenceId` and corporate particulars (`name`, `incorporationStatus`, `countryOfIncorporation`, and `operation`) inside the request body. * The `type` field must be set to `CORPORATE`. **Field Specifications:** * `evidenceCorroborated`: Enum field that accepts either `"YES"` or `"NO"`. Used in `sourceOfFunds` and `sourceOfWealth` arrays. ### Sample Request Body 1 - Corporate Customer (Mandatory fields only) ```json theme={null} { "active": true, "profileReferenceId": "180162353535F", "other": { "entityType": "ASSOCIATION", "corporateWebsite": null, "industry": "AGRICULTURE", "onBoardingMode": "FACE-TO-FACE", "ownershipStructureLayer": "1", "paymentMode": [ "CHEQUE (LOCAL)" ], "productServiceComplexity": "SIMPLE" }, "particular": { "incorporated": true, "name": "Corporate Primary Customer", "countryOfIncorporation": "SINGAPORE", "countryOfOperation": [ "SINGAPORE" ] }, "type": "CORPORATE", "domainId": [ {{domain_id}} ], "assigneeId": {{assignee_id}} } ``` ### Sample Request Body 2 - Corporate Customer (All fields) ```json theme={null} { "active": true, "profileReferenceId": "180162353535", "other": { "entityType": "ASSOCIATION", "corporateWebsite": null, "fatfjurisdiction": "", "industry": "AGRICULTURE", "onBoardingMode": "FACE-TO-FACE", "ownershipStructureLayer": "1", "paymentMode": [ "CHEQUE (LOCAL)" ], "productServiceComplexity": "SIMPLE", "sourceOfFunds": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES" } ], "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}} } ``` ### Below is the following sample JSON response body when it is successful in creating a new customer.S #### Success Code 200 ```json theme={null} { "id": 926, "createdAt": "2022-07-26T04:28:23.297+00:00", "updatedAt": "2022-07-26T04:28:23.302+00:00", "createdBy": null, "updatedBy": null, "active": true, "parentId": null, "profileId": 916, "type": "CORPORATE", "referenceId": null, "profileReferenceId": "180162353535F", "particular": { "incorporated": true, "name": "Corporate Primary Customer", "alias": null, "formerName": null, "countryOfIncorporation": "SINGAPORE", "countryOfOperation": [ "SINGAPORE" ], "address": null, "incorporateNumber": null, "phone": null, "email": null, "dateOfIncorporation": null, "dateOfIncorporationExpiry": null, "vendorName": null, "vendorEntityGuid": null, "imonumber": null }, "other": { "ownershipStructureLayer": "1", "industry": "AGRICULTURE", "onBoardingMode": "FACE-TO-FACE", "paymentMode": [ "CHEQUE (LOCAL)" ], "productServiceComplexity": "SIMPLE", "bankAccount": null, "corporateWebsite": null, "sourceOfFunds": null, "natureOfBusinessRelationship": null, "additionalInformation": null, "documentList": null, "entityType": "ASSOCIATION", "variableCapitalCompany": null, "fatfjurisdiction": false }, "vendorName": null, "vendorEntityGuid": null, "lastRiskAssessment": null, "status": "DRAFT", "riskRating": "UNKNOWN", "roles": [], "listRoleAsText": [] } ``` # Create a CRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/2-create-crp This section explains how to create **Customer Related Parties (CRPs)** under a Primary Customer. A CRP can be created in the following ways: * [Create CRP with Existing Profile](./2c-create-crp-with-existing-profile) - Reuse an existing profile to create a CRP * [Create an Individual CRP](./2a-create-individual-crp) - Create a new individual CRP with fresh data * [Create a Corporate CRP](./2b-create-corporate-crp) - Create a new corporate CRP with fresh data Select the relevant page to view request/response examples. # Create an Individual CRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/2a-create-individual-crp POST /api/customer/{customerId}/crp 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. **Field Specifications:** * `evidenceCorroborated`: Enum field that accepts either `"YES"` or `"NO"`. Used in `sourceOfFunds` and `sourceOfWealth` arrays. ### Create an Individual CRP Any CRP(s) will be associated with at least one primary customer. To create an individual CRP, certain particulars must be filled in and a designated role must be given to the CRP. The CRP type in this case shall be `INDIVIDUAL`. #### Sample Request Body - Individual CRP ```json theme={null} { "type": "INDIVIDUAL", "roles": [ { "cid": "draft-1", "role": "DIRECTOR", "appointedDate": "2022-01-01", "resignedDate": null } ], "active": "", "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": "18001181212C", "other": { "status": "CURRENT", "sourceOfFunds": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES", } ], "bankAccountNumber": [], "undischargedBankrupt": "", "ownershipPercentage": "" } } ``` #### Sample Response Body - Success (200) ```json theme={null} { "id": 927, "createdAt": "2022-07-26T04:33:35.623+00:00", "updatedAt": "2022-07-26T04:33:35.694+00:00", "createdBy": null, "updatedBy": null, "active": null, "parentId": 926, "profileId": 917, "type": "INDIVIDUAL", "referenceId": null, "profileReferenceId": "18001181212C", "particular": { "salutation": "", "name": "Individual CRP", "alias": [], "formerName": [], "gender": "MALE", "countryOfResidence": "MALAYSIA", "nationality": [ "MALAYSIA" ], "countryOfBirth": "", "dateOfBirth": null, "address": [], "phone": [], "email": [], "identityDocumentType": "", "identityNumber": "", "identityIssuedDate": null, "identityExpiryDate": null }, "other": { "status": "CURRENT", "sourceOfFunds": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "YES", } ], "bankAccountNumber": [], "undischargedBankrupt": null, "documentList": null, "ownershipPercentage": 0.0 }, "vendorName": null, "vendorEntityGuid": null, "lastRiskAssessment": null, "roles": [ { "id": 51, "createdAt": "2022-07-26T04:33:35.645+00:00", "updatedAt": "2022-07-26T04:33:35.645+00:00", "createdBy": null, "updatedBy": null, "role": "DIRECTOR", "appointedDate": "2022-01-01", "resignedDate": null } ], "listRoleAsText": [ "DIRECTOR" ] } ``` # Create a Corporate CRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/2b-create-corporate-crp POST /api/customer/{customerId}/crp 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. **Field Specifications:** * `evidenceCorroborated`: Enum field that accepts either `"YES"` or `"NO"`. Used in `sourceOfFunds` and `sourceOfWealth` arrays. ### 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 be `CORPORATE`. #### Sample Request Body - Corporate CRP ```json theme={null} { "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) ```json theme={null} { "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" ] } ``` # Create CRP with Existing Profile Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/2c-create-crp-with-existing-profile 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 | Aspect | With Existing Profile | New Profile | | ---------------------- | --------------------------------------------------------------- | ------------------------------ | | **Profile Search** | Required (Step 1) | Not required | | **profileId** | Must be provided from search results | System generates new profileId | | **profileReferenceId** | Taken from existing profile (can be modified, affects original) | Must be provided as new value | | **particular** | Synced with original profile (changes affect original) | Independent data | | **other** | Carried over but not synced (changes don't affect original) | Independent data | | **Use Case** | Reusing existing customer as CRP | Creating brand new CRP | | **Data Consistency** | Ensures consistency across related profiles | Each 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](/artemis3-api-reference/customer-related-apis/search-profile-for-crp) ### Endpoint ``` GET /api/customer/profile/{type}/{mainCustomerId} ``` ### Path Parameters | Parameter | Type | Required | Description | | ---------------- | ------ | -------- | --------------------------------------------------------------- | | `type` | string | Yes | Customer type: `INDIVIDUAL` or `CORPORATE` | | `mainCustomerId` | number | Yes | The ID of the main customer to which the CRP will be associated | ### Query Parameters | Parameter | Type | Required | Description | | -------------- | ------ | -------- | --------------------------------- | | `searchString` | string | No | Name of the profile to search for | ### Headers | Header | Type | Required | Description | | ---------- | ------ | -------- | ----------------- | | `x-domain` | number | Yes | Domain identifier | ### Sample Request ```bash theme={null} GET /api/customer/profile/INDIVIDUAL/1234?searchString=Aiden Headers: x-domain: 1 ``` ### Sample Response - Success (200) ```json theme={null} { "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": "zen+1@cynopsis.co", "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 | Parameter | Type | Required | Description | | ------------ | ------ | -------- | ------------------------------------------------------------------ | | `customerId` | number | Yes | The ID of the primary customer to which the CRP will be associated | ### Headers | Header | Type | Required | Description | | -------------- | ------ | -------- | -------------------------- | | `x-domain` | number | Yes | Domain identifier | | `Content-Type` | string | Yes | Must be `application/json` | ### Sample Request Body - Individual CRP with Existing Profile ```json theme={null} { "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) ```json theme={null} { "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": "zen+1@cynopsis.co", "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 ```bash theme={null} 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 ```bash theme={null} 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` # Step 3 — Get Customer or CRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/3-get-customer-or-crp This section covers the different ways to **retrieve customers and their associated CRPs** from the system.\ You can either fetch all customers, a specific customer by ID, or all CRPs belonging to a customer. *** ### Endpoints in this section * [Step 3a — Get All Primary Customers](./3a-get-all-primary-customers)\ Retrieve a list of all primary customers within the domain. Useful for listing, searching, or pagination. * [Step 3b — Get a Single Primary Customer](./3b-get-single-primary-customer)\ Retrieve full details of a single primary customer by their unique `customerId`. * [Step 3c — Get CRPs of a Customer](./3c-get-crps-of-a-customer)\ Retrieve all **Customer Related Parties (CRPs)** that belong to a given primary customer, including their roles and particulars. # Step 3a — Get All Primary Customers Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/3a-get-all-primary-customers GET /api/customer This endpoint retrieves a **list of all primary customers** within the current domain. The response is paginated and may include filtering or search options depending on your backend configuration. Each customer object in the response contains its profile details, status, and identifiers. Use this endpoint when you need to display or manage all customers at once, for example in an admin dashboard or during batch processing. # Step 3b — Get a Single Primary Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/3b-get-single-primary-customer GET /api/customer/{customerId} This endpoint retrieves the full details of a **single primary customer**. You can retrieve a customer in two ways: 1. **By unique `customerId` (path parameter)** * Standard usage: ``` GET /api/customer/{customerId} ``` 2. **By query parameters** * Instead of `customerId`, you may search with: * `caseId` Example (using `customer_reference_id`): ```bash theme={null} curl -X GET "{{backend_url}}/api/customer?customer_reference_id={{caseId}}" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` # Step 3c — Get CRPs of a Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/3c-get-crps-of-a-customer GET /api/customer/{customerId}/crp This endpoint retrieves all **Customer Related Parties (CRPs)** that belong to a given **Primary Customer**, identified by `customerId`. Use this endpoint to view the associated parties (individual or corporate) of a primary customer, along with their roles, particulars, and relationship details. # Step 4 — Document Management Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/4-append-document-to-customer Step 4 of the **Comprehensive Customer Creation Workflow** focuses on handling documents for both **Primary Customers** and their related entities. Documents serve as supporting evidence for identity verification, compliance, and record-keeping. This step allows you to **append new documents** to a customer and **retrieve existing documents** when needed. *** ## Available Operations * **[Step 4a — Append Document to Customer](./4a-append-document-to-customer)**\ Upload one or two document images (`front`, `back`) along with structured JSON metadata (`document`) to associate with a customer record. * **[Step 4b — Get Documents from Customer](./4b-get-documents-from-customer)**\ Retrieve all documents already attached to a customer or CRP, including file URLs, document metadata, and status. *** ## Notes * Both operations require authentication via **Bearer token** and the **X-Domain-ID** header. * Document metadata must include a `type` field, with allowed values: `NATIONAL_ID`, `PASSPORT`, `DRIVING_LICENSE`, `OTHERS`. * If no documents are found for a given customer, retrieval endpoints will return an empty array `[]`. # 4a - Append Document to Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/4a-append-document-to-customer POST /api/customer/{customerId}/document This endpoint allows you to upload one or two document images (`front`, `back`) and attach them to a **Primary Customer** record. The request is multipart/form-data and includes: * **front** (required): front image file. * **back** (optional): back image file. * **document** (required): JSON metadata describing the document. *** ## Document Type Values The field **`document.type`** must be one of the following values: * `NATIONAL_ID` * `PASSPORT` * `DRIVING_LICENSE` * `OTHERS` *** ## How to Retrieve Customer IDs You'll need identifiers to call these endpoints: * **`customerId` (Primary Customer):** * Returned in the response when you create a customer, or * Retrieve via search → [Step 3b — Get a Single Primary Customer](./3b-get-single-primary-customer) * **`customerId` (CRP under a Primary Customer):** * Returned in the response when you create as a CRP, or * Listed under the customer's CRPs → [Step 3c — Get CRPs of a Customer](./3c-get-crps-of-a-customer) *** ## Example Requests ### Primary Customer — with only `front` and `document` ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{customerId}/document" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: 6603" \ -F "front=@front.png;type=image/png" \ -F 'document={"type":"NATIONAL_ID","number":"S1234567A","authenticity":"ORIGINAL","issueDate":"2020-01-01","expiryDate":"2030-01-01","showExpiryNotification":true};type=application/json' ``` # 4b — Get Documents from Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/4b-get-documents-from-customer GET /api/customer/{customerId}/document This endpoint retrieves all documents that have been uploaded and associated with a primary customer or CRP. Use this endpoint when you need to fetch the list of documents (such as IDs, passports, or other supporting files) that were previously appended via [Step 4a — Append Document to Customer](./4a-append-document-to-primary-customer). # Step 5 — Screening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5-screening The **Screening** stage is a critical part of the Comprehensive Customer Creation Workflow.\ It ensures that both **Primary Customers** and their **CRPs (Customer Related Parties)** are screened against subscribed compliance engines and conclude them as no hit , sanctions, PEP, adverse media, and own restricted lists. This stage provides a structured flow: from initiating screening, checking its progress, retrieving results, concluding hits, and finalizing the overall screening outcome. *** ## Subsections * **[Step 5a — Screen Customer and CRPs](./5a-screen-customer-and-crps)**\ Initiate the screening process for a Primary Customer. Options allow including CRPs and controlling whether to re-screen only updated profiles. * **[Step 5b — Get Summary of Latest Screening](./5b-summary-latest-screening)**\ Retrieve the latest screening summary, including screening ID, status, and results for both the customer and associated CRPs. * **[Step 5c — Get Status and Validity of Latest Screening](./5c-status-validity)**\ Poll the system to check if the screening has been completed and whether the results are valid. * **[Step 5d — Get Hit Details from Latest Screening](./5d-get-hits-from-customer-screening)**\ Fetch the full details of specific screening hits, such as matched fields, sources, and scoring, for both Primary Customers and CRPs. * **[Step 5e — Conclude Screening Results](./5e-conclude-hits)**\ Conclude individual screening hits by marking them as either `TRUE_HIT` or `FALSE_HIT`. * **[Step 5f — Update Screening Conclusion](./5f-update-screening-conclusion)**\ Finalize the overall outcome of a screening by setting one or more conclusion values (`NO_HIT`, `PEP`, `SANCTION`, etc.). *** ## Notes * Screening results may be updated multiple times as customers’ profiles change. * Always retrieve `screeningId` from the summary endpoint (5b) before checking status, fetching hits, or concluding results. * The order of usage typically follows this flow:\ **5a → 5b → 5c → 5d → 5e → 5f**. # Step 5a — Screen Customer and CRPs Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5a-screen-customer-and-crps POST /api/customer/{customerId}/screen This endpoint initiates a **screening process** for a customer. Screening is used to check the customer's information against the subscribed engine type. Both query parameters are **required** and must always be provided, set to either `true` or `false`: * **`customerId`** — This must be the **Primary Customer's ID**. * **`includeCrp`** — screen customer only (`false`) or customer + CRPs (`true`). * **`onlyUpdated`** — always run (`false`) or only run if profile updated (`true`). ## ⚠️ Important Notice > You must **always include both query parameters** (`includeCrp` and `onlyUpdated`) in the request URL.\ > Even if the value is `false`, it still needs to be explicitly set. ## Example Requests ### 1. Screen Primary Customer Only, it will create new screening ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/screen?includeCrp=false&onlyUpdated=false" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### 2. Screen Primary Customer + CRPs, it will create new screening ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/screen?includeCrp=true&onlyUpdated=false" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### 3. Screen Primary Customer Only, create new screening only if updated profile is updated ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/screen?includeCrp=false&onlyUpdated=true" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### 4. Screen Primary Customer + CRPs, create new screening only if updated profile is updated ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/screen?includeCrp=true&onlyUpdated=true" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` Success Code 200 will be shown with an empty message if it manages to conduct screening. # Step 5b — Get Summary of Latest Screening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5b-summary-latest-screening GET /api/customer/{customerId}/screen/summary This endpoint returns the **latest screening summary** for a **Primary Customer** and all of its associated CRP(s). * If multiple screenings were initiated for the same customer, only the most recent one is returned. * The response includes a unique `screeningId` and its `status`, which indicates whether the screening providers have concluded their checks. ## Path Parameter * **`customerId`** — This must be the **Primary Customer's ID**. *** ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/customer/{{customerId}}/screen/summary" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ## Example Success Response ### Succes code 200 ```json theme={null} Success Code 200 { "content": [ { "customer": { "id": 926, "createdAt": "2022-07-26T04:28:23.297+00:00", "updatedAt": "2022-07-26T04:43:55.636+00:00", "createdBy": null, "updatedBy": {...}, "active": true, "parentId": null, "profileId": 916, "type": "CORPORATE", "referenceId": null, "profileReferenceId": "180162353535F", "particular": {...}, "other": {...}, "vendorName": null, "vendorEntityGuid": null, "lastRiskAssessment": null, "status": "PENDING", "riskRating": "UNKNOWN", "roles": [], "listRoleAsText": [] }, "screening": { "id": 1682, "createdAt": "2022-07-26T04:41:21.228+00:00", "updatedAt": "2022-07-26T04:41:31.086+00:00", "createdBy": {...}, "updatedBy": {...}, "customerId": 926, "finalStatus": "DONE", "isPeriodic": null, "hasHit": false, "status": { "id": 1682, "createdAt": "2022-07-26T04:41:21.252+00:00", "updatedAt": "2022-07-26T04:41:31.056+00:00", "createdBy": {...}, "updatedBy": {...}, "screeningId": 1682, "customerId": 926, "status": { "DJ": { "status": "DONE", "message": "" }, "TR": { "status": "DONE", "message": "" }, "ARTEMISCAN": { "status": "DONE", "message": "" }, "INTERNET_SEARCH": { "status": "DONE", "message": "" }, "OWN_RESTRICTED_LIST": { "status": "DONE", "message": "" } } }, "screenedWith": [ "INTERNET_SEARCH", "TR", "DJ", "ARTEMISCAN", "OWN_RESTRICTED_LIST" ], "screeningConclusion": [ "NO_HIT" ], "valid": true, "remarks": null, "quickscanName": null, "quickscanType": null, "additionalInformation": { "djMonitoringCaseId": "2c64f19f-e903-4524-9458-7f5a8117e80b", "djMonitoringTxId": "ad99364f-2c10-4eb4-a405-1c6b45ade42c", "faceCompareDocumentId": null, "faceCompareSelfieId": null, "ocrDocumentId": null }, "ocrInformation": null, "facInformation": null } ], "pageable": { "sort": { "sorted": true, "unsorted": false, "empty": false }, "offset": 0, "pageNumber": 0, "pageSize": 20, "paged": true, "unpaged": false }, "totalPages": 1, "totalElements": 1, "last": true, "size": 20, "number": 0, "sort": { "sorted": true, "unsorted": false, "empty": false }, "numberOfElements": 1, "first": true, "empty": false } ``` # Step 5c — Get Status and Validity of Latest Screening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5c-status-validity GET /api/customer/{customerId}/screen/status This endpoint returns the **status and validity** of the latest screening for a given **Primary Customer**. It provides three crucial keys: * **`concluded`** — final outcome of the screening process (e.g., whether the result indicates a sanction hit, a PEP hit, or no hits at all). * **`screeningValid`** — a boolean indicating whether the screening result is valid. This will be `true` unless system errors prevent proper screening. * **`screeningStatus`** — the current state of the screening process, useful for polling until the screening has finished. ## Path Parameter * **`customerId`** — This must be the **Primary Customer's ID**. ## Example Request ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/screen/status" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ## Example Success Responses ### ✅ Screening Completed and Valid Below is the following sample JSON response body when it is successful in polling for the validity of the latest screening, which the screening has been completed and it is considered as a valid screening. ```json theme={null} { "concluded": false, "screeningValid": true, "screeningStatus": "DONE" } ``` ### ⏳ Screening Still Pending Below is the following sample JSON response body when it is successful in polling for the validity of the latest screening, which the server is still trying to ascertain if the system has completed its screening. ```json theme={null} { "concluded": false, "screeningValid": false, "screeningStatus": "PENDING" } ``` ## Notes This endpoint is useful for polling the system to check when a screening has finished. Once screeningStatus is DONE and screeningValid is true, you can rely on the concluded field for the final outcome. Typical screening statuses may include: PENDING, IN\_PROGRESS, DONE, or FAILED. # Step 5d — Get Hit Details from Latest Screening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5d-get-hits-from-customer-screening GET /api/customer/{customerId}/screen/{screeningId}/hit This endpoint retrieves the **full details of a specific screening hit** for a **Primary Customer** from the latest screening results. Use it when you need the granular record behind a match (e.g., a sanctions or PEP hit), including source lists, matched fields, scores, and references. ## Path Parameters * **`customerId`** — The respective **Customer ID**. * For a **Primary Customer**, retrieve from [Step 3b — Get a Single Primary Customer](./3b-get-single-primary-customer). * For a **CRP**, retrieve from [Step 3c — Get CRPs of a Customer](./3c-get-crps-of-a-customer). * **`screeningId`** — The identifier of the **latest screening** run for the customer.\ Retrieve from [Step 5b — Get Summary of Latest Screening](./5b-summary-latest-screening). * **`screeningType`** — The **screening engine** that produced the hit. Supported values: * `DJ` * `ARTEMISCAN` * `TR` * `INTERNET_SEARCH` * `OWN_RESTRICTED_LIST` ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/customer/{{customerId}}/screen/{{latest_screening_id}}/hit?&screeningType={{screening_type}}" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` # Step 5e — Conclude Screening Results Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5e-conclude-hits PUT /api/customer/{customerId}/screen/{screeningId}/hit This step allows the compliance teams can classify each hit as either a **true hit** or a **false hit**. ## Inputs * **`screeningHitIds`**\ An array of one or more hit IDs that you want to conclude.\ These IDs are retrieved from [Step 5d — Get Hit Details from Latest Screening](./5d-get-hits-from-customer-screening). * **`match`**\ The conclusion decision. Supported values: * `TRUE_HIT` * `FALSE_POSITIVE` * `NO_ACTION` ## Example Request ```bash theme={null} curl -X PUT "{{backend_url}}/api/customer/4424/screen/991/hit" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" -H "Content-Type: application/json" \ -d '{ "screeningHitIds": [38997], "match": "TRUE_HIT" }' ``` ## Notes * Use this step after you have retrieved hit IDs in Step 5d. * Multiple `screeningHitIds` can be processed together. * Once concluded, the hit will reflect its final status in the screening results. # Step 5f — Update Screening Conclusion Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/5f-update-screening-conclusion PUT /api/customer/{customerId}/screen/{screeningId} This step allows the user to **update the overall conclusion** of a customer’s latest screening. It is used when compliance teams want to change or finalize the decision for a given screening run after reviewing all hits and results. *** ## Inputs * **`customerId`** The respective **Primary Customer's** CustomerId. * **`screeningId`**\ The identifier of the specific screening run that requires an updated conclusion. * Retrieve from [Step 5b — Get Summary of Latest Screening](../5b-summary-latest-screening). * **`conclusions`**\ The screening conclusion decision. Supported values: * `NO_HIT` * `ADVERSE_MEDIA` * `OWN_RESTRICTED_LIST` * `PEP` * `SANCTION` *** ```bash theme={null} curl -X PUT "{{backend_url}}/api/customer/4424/screen/991" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" \ -H "Content-Type: application/json" \ -d '{ "conclusions": ["NO_HIT"] }' ``` ## Notes * This step is performed **after hits have been concluded** in [Step 5e — Conclude Screening Results](../5e-conclude-results). * It allows the compliance officer to finalize the **overall outcome** of the screening, ensuring the system reflects the most accurate conclusion. * Updating a screening conclusion may override previous results, so it should be used carefully. # Step 6 — Risk Assessment Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/6-risk-report The **Risk Assessment** stage evaluates the overall risk profile of a **Primary Customer** based on their profile, activities, and screening results.\ It provides compliance teams with a structured way to review, override, approve, and audit customer risk levels. This stage ensures transparent decision-making and regulatory compliance. *** ## Subsections * **[Step 6a — Get Most Recent Detailed Risk Report of Customer](./6a-get-latest-risk-report)**\ Retrieve the most recent detailed risk report for a customer, including calculated risk rating and contributing factors. * **[Step 6b — Set Risk Rating and Approval Status of a Customer's Risk Assessment](./6b-update-risk-rating-approval-status)**\ Override the automatically calculated risk rating and update the approval status to reflect compliance decisions. * **[Step 6c — Get All Previous Audit Trail for Risk Assessment](./6c-get-audittrail-for-risk)**\ Retrieve the audit trail of all historical changes to a customer’s risk assessments, including overrides, approvals, and reviewer comments. *** ## Notes * Risk assessments are dynamic and may be updated multiple times as new information becomes available. * The typical workflow is:\ **6a → 6b → 6c** * Use the audit trail (6c) to maintain transparency and provide an audit-ready history of decisions. # Step 6a — Get Most Recent Detailed Risk Report of Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/6a-get-latest-risk-report GET /api/customer/{customerId}/risk-assessment This endpoint retrieves the **most recent detailed Risk Report** of a **Primary Customer**.\ The Risk Report provides compliance teams with the latest calculated risk profile based on customer data, screenings, and other assessments. *** ## Path Parameter * **`customerId`** — The **Primary Customer's ID**. * Retrieve from [Step 3b — Get a Single Primary Customer](../3b-get-single-primary-customer). *** ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/customer/{{customerId}}/risk-assessment" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ## Below is the following sample JSON response body of a Risk Report ### Success Code 200 ```json theme={null} { "id": 663, "createdAt": "2022-07-26T06:54:06.903+00:00", "updatedAt": "2022-07-26T06:54:06.903+00:00", "createdBy": {...}, "updatedBy": {...}, "risk": { "comments": { "926": [], "927": [], "928": [ "Marked as Politically Exposed Person.", "Marked as Sanction related person/entity.", "Adverse media found.", "Politically exposed", "Sanctioned" ] }, "risk_score": 57.008335, "risk_rating": "HIGH", "component_score": { "cpi": 6.8, "fsi": 0.8333333333333335, "fatf": 8.958333333333332, "oecd": 10.0, "fatca": 1.25, "industry": 1.6666666666666667, "screening": 0.0, "entity_type": 10.0, "payment_modes": 5.0, "onboarding_mode": 5.0, "ownership_layer": 2.5, "product_complexity": 5.0, "individual_shareholding": 0 }, "weight_settings": { "cpi": 10.0, "fsi": 2.5, "fatf": 10.0, "oecd": 10.0, "fatca": 2.5, "industry": 2.5, "screening": 20.0, "entity_type": 15.0, "payment_modes": 5.0, "primary_weight": 50.0, "onboarding_mode": 5.0, "ownership_layer": 2.5, "product_complexity": 5.0, "individual_shareholding": 10.0 } }, "riskRating": "HIGH", "overrideRiskRating": null, "riskScore": 57.008335, "approvalStatus": null, "customerId": 926 } ``` # Step 6b — Set Risk Rating and Approval Status of a Customer's Risk Assessment Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/6b-update-risk-rating-approval-status POST /api/customer/{customerId}/risk-assessment/approval This endpoint allows you to **set or override the risk rating** of a customer’s most recent risk assessment and update its **approval status**.\ It is typically used by compliance officers to finalize or adjust the customer’s risk evaluation after review. ## Path Parameter * **`customerId`** — The **Primary Customer’s ID**. * Retrieve from [Step 3b — Get a Single Primary Customer](../3b-get-single-primary-customer). ## Request Body Values * **`approvalStatus`** — Available values: * `ACCEPTED` * `DRAFT` * `PENDING` * `REJECTED` * `REQUEST_CHANGES` * **`overrideRiskRating`** — Available values: * `HIGH` * `LOW` * `MEDIUM` * `MEDIUM_HIGH` * `MEDIUM_LOW` * `UNKNOWN` ## Example Request ```bash theme={null} curl -X POST "{{backend_url}}/api/customer/{{customerId}}/risk-assessment/approval" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" \ -H "Content-Type: application/json" \ -d '{ "overrideRiskRating": "LOW", "approvalStatus": "ACCEPTED" }' ``` # Step 6c — Get All Previous Audit Trail for Risk Assessment Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/6c-get-audittrail-for-risk GET /api/customer/{customerId}/risk-assessment/history This endpoint retrieves the **full audit trail** of a customer’s risk assessments, including all historical changes, overrides, and approval decisions. It helps compliance officers review the decision-making process over time for transparency and regulatory purposes. *** ## Path Parameter * **`customerId`** — The **Primary Customer’s ID**. * Retrieve from [Step 3b — Get a Single Primary Customer](../3b-get-single-primary-customer). *** ## Notes * The audit trail shows all previous versions of risk assessments for the given customer. * Each entry typically contains: * `overrideRiskRating` * `approvalStatus` * `updatedBy` (user making the change) * `updatedAt` (timestamp) * `comments` (if provided) * Useful for regulatory reporting and internal audits. # Using Batch Upload to Onboard Customers Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/batch-upload-customers ## Description You can create multiple new customers at once using the **Customer Batch Upload** feature. Simply download the template and populate it according to the required file format. **Navigation:**\ `Log In to Artemis Dashboard → Add New Customers → Batch Upload → Hover the ‘i’ icon in the BATCH UPLOAD card` Location of the batch upload file template ### Important Notes * Do not alter the template file format. * Remove all sample rows before uploading. * Rows after the first empty row will be ignored. * Maximum 1,000 rows per batch upload. * All dates must be in **DD/MM/YYYY** format. * To update an existing customer, specify the **Customer Reference ID**. *** ## Trigger Screening When enabled, **Trigger Screening** will instruct Artemis to start screening **immediately after the entire file is uploaded**. If you prefer to delay screening, simply uncheck the option. *** ## Mandatory Fields and Key Fields to Note ### **Individual** | Field | Requirement | Description | | -------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **customer\_reference\_id** | Mandatory, must be unique | Unique reference ID of the customer. Cannot contain duplicates. | | **is\_active\_customer** | Mandatory | Specifies whether the customer is active. Accepted values: `TRUE` / `FALSE`. | | **reference\_id** | Mandatory | Unique reference number for the individual. | | **name** | Mandatory | Full legal name of the individual. | | **gender** | Mandatory | Gender of the individual. | | **country\_of\_nationality** | Mandatory | Nationality of the individual. [See country list](../static-list-retrieval-apis/get-countries-list) | | **country\_of\_residence** | Mandatory | Country of residence. [See country list](../static-list-retrieval-apis/get-countries-list) | | **id\_type** | Optional | Type of identity document. [See identity document list](../static-list-retrieval-apis/get-identity-document-types) | | **id\_issue\_date** | Optional | Date of ID issuance (DD/MM/YYYY). | | **id\_expiry\_date** | Optional | Date of ID expiry (DD/MM/YYYY). | | **industry** | Mandatory | Industry of the individual. [See industry list](../static-list-retrieval-apis/get-industry-list) | | **occupation** | Mandatory | Occupation of the individual. [See occupation list](../static-list-retrieval-apis/get-occupation-list) | | **onboarding\_mode** | Mandatory | Onboarding mode used. [See onboarding mode list](../static-list-retrieval-apis/get-onboarding-modes) | | **payment\_modes** | Mandatory | At least one of the three payment-mode fields must be filled. [See payment mode list](../static-list-retrieval-apis/get-payment-modes) | | **product\_service\_complexity** | Mandatory | Complexity level of product/service the customer is using. [See product service complexities list](../static-list-retrieval-apis/get-product-service-complexities) | | **source\_of\_funds** | Optional | Source of funds. [See source of funds list](../static-list-retrieval-apis/get-source-of-funds) | | **date\_of\_birth** | Optional | Date of birth (DD/MM/YYYY). | ### **Corporate** | Field | Requirement | Description | | -------------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **customer\_reference\_id** | Mandatory, must be unique | Unique reference ID of the customer. Cannot contain duplicates. | | **is\_active\_customer** | Mandatory | Specifies whether the customer is active. Accepted values: `TRUE` / `FALSE`. | | **is\_incorporated** | Mandatory | Indicates whether the corporation is incorporated. | | **reference\_id** | Mandatory | Unique reference ID of the corporation. | | **name** | Mandatory | Registered legal name of the corporation. | | **entity\_type** | Mandatory | Type of corporate entity. [See entity types list](../static-list-retrieval-apis/get-entity-types) | | **ownership\_structure\_layers** | Mandatory | Number of ownership structure layers for the corporation. [See ownership structure list](../static-list-retrieval-apis/get-ownership-layers) | | **country\_of\_incorporation** | Mandatory | Country where the corporation is incorporated. [See country list](../static-list-retrieval-apis/get-countries-list) | | **incorporation\_date** | Optional | Date of incorporation (DD/MM/YYYY). | | **incorporation\_expiry\_date** | Optional | Expiry date of incorporation (DD/MM/YYYY). | | **country\_of\_operations** | Mandatory | Primary country where business operations take place. [See country list](../static-list-retrieval-apis/get-countries-list) | | **business\_activity** | Mandatory | Primary business activity of the corporation. [See industry list](../static-list-retrieval-apis/get-industry-list) | | **onboarding\_mode** | Mandatory | Onboarding mode used. [See onboarding modes](../static-list-retrieval-apis/get-onboarding-modes) | | **payment\_modes** | Mandatory | At least one of the three payment-mode fields must be filled. [See payment modes](../static-list-retrieval-apis/get-payment-modes) | | **product\_service\_complexity** | Mandatory | Complexity level of the product/service the corporation is using. [See product service complexities](../static-list-retrieval-apis/get-product-service-complexities) | | **source\_of\_funds** | Optional | Source of funds for the corporation. [See source of funds list](../static-list-retrieval-apis/get-source-of-funds) | # Comprehensive Customer Creation Workflow Source: https://docs.cynopsis.co/artemis3-api-reference/customer-comprehensive/overview End-to-end guide to create a customer, attach CRPs/documents, and run screening. The diagram below demonstrates the basic workflow for registering the necessary information to perform screening on the dataset. For more details on each section, please refer to the relevant sub-section. Onboarding workflow image This workflow walks you through: 1. Create a Primary Customer 2. Get essential information 3. Create CRP(s) 4. Append documents 5. Screening and results > Prerequisites: Valid API credentials and base URL. See [Authentication](/artemis3-api-reference/authentication). # addDocument Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/adddocument post /api/customer/{customerId}/document # addRoleToCrp Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/addroletocrp post /api/customer/{customerId}/crp/{CRPId}/role # batchUpload Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/batchupload post /api/customer/batch-upload # batchUpload Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/batchupload-1 get /api/customer/batch-upload/history # changeApprovalStatus Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/changeapprovalstatus post /api/customer/{customerId}/risk-assessment/approval # changeODDStatus Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/changeoddstatus put /api/customer/{customerId}/screen/{screeningId}/odd # checkIfProfileUsedByOthers Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/checkifprofileusedbyothers get /api/customer/check-profile # cloneCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/clonecustomer post /api/customer/{customerId}/clone/{targetDomainId} # createNewAssignee Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/createnewassignee post /api/customer/{customerId}/assignee # createNewAssigneeOnAnotherDomain Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/createnewassigneeonanotherdomain post /api/customer/{customerId}/assignee/domain/{domainId} # createNewCRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/createnewcrp post /api/customer/{customerId}/crp # createNewCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/createnewcustomer post /api/customer # createNewCustomerWithCrp Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/createnewcustomerwithcrp post /api/customer/createWithCrps # Delete a Customer Related Party (CRP) Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/delete-a-customer-related-party-crp /openapi/artemis3_openapi.yaml delete /api/customer/{customerId}/crp/{crpId} # deleteAssignee Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deleteassignee delete /api/customer/{customerId}/assignee/{assigneeId} # deleteCrp Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletecrp delete /api/customer/{customerId}/crp/{id} # deleteCRPRole Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletecrprole delete /api/customer/{customerId}/crp/{CRPId}/role/{roleId} # deleteCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletecustomer delete /api/customer/{id} # deleteCustomerOnAnotherDomain Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletecustomeronanotherdomain delete /api/customer/{id}/domain/{domainId} # deleteDocument Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletedocument delete /api/customer/{customerId}/document/{documentId} # deleteDocumentFile Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/deletedocumentfile delete /api/customer/{customerId}/document/{documentId}/file # downloadBatchUploadFile Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/downloadbatchuploadfile get /api/customer/batch-upload/{id}/file # downloadCustomerCSV Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/downloadcustomercsv get /api/customer/download/csv # generateCustomerAcceptanceForm Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/generatecustomeracceptanceform get /api/customer/{customerId}/acceptance-form # generateCustomerReport Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/generatecustomerreport get /api/customer/{customerId}/detailed-report # getAllCustomers Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getallcustomers get /api/customer # getAllDocumentsForCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getalldocumentsforcustomer get /api/customer/{customerId}/document # getAScreeningHit Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getascreeninghit get /api/customer/{customerId}/screen/{screeningId}/hit/{screeningHitId} # getBatchUploadTemplate Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getbatchuploadtemplate get /api/customer/batch-upload/template # getCRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcrp get /api/customer/{customerId}/crp # getCRPDetails Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcrpdetails get /api/customer/{customerId}/crp/{id} # getCustomerAssignee Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomerassignee get /api/customer/{customerId}/assignee/{assigneeId} # getCustomerAssigneesByCustomerId Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomerassigneesbycustomerid get /api/customer/{customerId}/assignee # getCustomerAssigneesByCustomerIdOnAnotherDomain Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomerassigneesbycustomeridonanotherdomain get /api/customer/{customerId}/assignee/domain/{domainId} # getCustomerCloning Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomercloning get /api/customer/{customerId}/clone # getCustomerDetails Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomerdetails get /api/customer/{customerId} # getCustomerOfCRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomerofcrp get /api/customer/{customerId}/related-customer # getCustomerShareSameProfile Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getcustomersharesameprofile get /api/customer/{customerId}/customer-share-same-profile # getDocumentFromCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getdocumentfromcustomer get /api/customer/{customerId}/document/{documentId} # getFileFromCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getfilefromcustomer get /api/customer/{customerId}/document/{documentId}/file # getProfileListByName Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getprofilelistbyname get /api/customer/profile/{type} # getRiskAssessment Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getriskassessment get /api/customer/{customerId}/risk-assessment # getRiskAssessmentHistory Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getriskassessmenthistory get /api/customer/{customerId}/risk-assessment/history # getRolesFromCrp Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getrolesfromcrp get /api/customer/{customerId}/crp/{CRPId}/role # getScreeningHitPDFReport Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getscreeninghitpdfreport get /api/customer/screen/{screeningId}/hit/{screeningHitId}/report # getScreeningHits Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getscreeninghits get /api/customer/{customerId}/screen/{screeningId}/hit # getScreeningStatus Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getscreeningstatus get /api/customer/{customerId}/screen/status # getScreeningSummary Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/getscreeningsummary get /api/customer/{customerId}/screen/summary # markParticularHitAsAMatch Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/markparticularhitasamatch put /api/customer/{customerId}/screen/{screeningId}/hit # ownershipCheck Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/ownershipcheck get /api/customer/{customerId}/ownership-percentage-check # retrieveLatestOfScreeningDetails Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/retrievelatestofscreeningdetails get /api/customer/{customerId}/screen/latest # retrieveListOfScreeningDetails Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/retrievelistofscreeningdetails get /api/customer/{customerId}/screen # retrieveScreeningDetails Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/retrievescreeningdetails get /api/customer/{customerId}/screen/{screeningId} # retryScreening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/retryscreening post /api/customer/{customerId}/screen/{screeningId}/retry # triggerScreening Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/triggerscreening post /api/customer/{customerId}/screen # updateCRP Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatecrp put /api/customer/{customerId}/crp/{id} # updateCrpRole Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatecrprole put /api/customer/{customerId}/crp/{CRPId}/role/{roleId} # updateCustomerAssignee Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatecustomerassignee put /api/customer/{customerId}/assignee/{assigneeId} # updateCustomerProfile Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatecustomerprofile put /api/customer/{customerId} # updateDocument Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatedocument put /api/customer/{customerId}/document/{documentId} # updateFaceCompareResult Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatefacecompareresult put /api/customer/{customerId}/document/{documentId}/face-compare # updateLivenessResult Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatelivenessresult put /api/customer/{customerId}/document/{documentId}/liveness # updateOcrResult Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updateocrresult put /api/customer/{customerId}/document/{documentId}/ocr # updateScreeningConclusion Source: https://docs.cynopsis.co/artemis3-api-reference/customer-controller/updatescreeningconclusion put /api/customer/{customerId}/screen/{screeningId} # Delete a Customer Related Party (CRP) Source: https://docs.cynopsis.co/artemis3-api-reference/customer-related-apis/delete-crp DELETE /api/customer/{customerId}/crp/{crpId} This endpoint deletes a **Customer Related Party (CRP)** associated with a **Primary Customer**. *** ## Path Parameters * **`customerId`** — The **Primary Customer's ID**. * Retrieve from [Step 3b — Get a Single Primary Customer](../customer-comprehensive/3b-get-single-primary-customer). * **`crpId`** — The **Customer Related Party ID** to be deleted. * Retrieve from the Primary Customer’s CRP list (e.g. via *Get Customer with CRPs* endpoint). *** ## Notes * Only the specified **CRP** will be deleted. * The **Primary Customer** will remain intact. *** ## Example (Batch Delete via Script) ```python theme={null} import requests base_url = "https://api.artemis.cynopsis.co/api/customer/{customerId}/crp/{crpId}" headers = { "Content-Type": "application/json", "Authorization": "Bearer ", "X-Domain-ID": "" } customers = [ ({customer_id}, {crpId}) ] for customerId, crpId in customers: url = base_url.format(customerId=customerId, crpId=crpId) print("Sending DELETE →", url) response = requests.delete(url, headers=headers) print("Status:", response.status_code) ``` # Delete a Primary Customer Source: https://docs.cynopsis.co/artemis3-api-reference/customer-related-apis/delete-primary-customer DELETE /api/customer/{id} This endpoint deletes a **Primary Customer** using customerId *** ## Path Parameters * **`customerId`** — The **Primary Customer's ID**. * Retrieve from [Step 3b — Get a Single Primary Customer](../customer-comprehensive/3b-get-single-primary-customer). *** ## Notes * All associated CRPs (Customer Related Parties) and linked data may also be affected depending on system configuration. * Use with caution in production environments. # Get All Customer List Source: https://docs.cynopsis.co/artemis3-api-reference/customer-related-apis/get-all-customers GET /api/customer This endpoint retrieves a **paginated list of all customers** (Primary Customers). *** ## Query Parameters * **`size`** — The number of records to return per page. * Example: `10` * **`page`** — The page index to retrieve (0-based). * Example: `0` *** ## Notes * Use `size` and `page` together to implement pagination. * Default values may apply if these parameters are not provided. * This endpoint is useful when building **customer lists** or **searching across multiple records**. # Search Profile for CRP Creation Source: https://docs.cynopsis.co/artemis3-api-reference/customer-related-apis/search-profile-for-crp GET /api/customer/profile/{type}/{mainCustomerId} This endpoint retrieves a **list of existing profiles** that can be used to create a Customer Related Party (CRP). It allows you to search for profiles by name and filter by customer type. This API is typically used as the **first step** in the process of creating a CRP with an existing profile. *** ## Use Cases * **Reuse Existing Profile**: Search for an existing customer profile to reuse when creating a new CRP * **Profile Selection**: Find profiles that match specific criteria before linking them to a main customer * **Data Consistency**: Ensure consistency by using existing, validated profiles for new CRPs *** ## Path Parameters * **`type`** — The customer type to search for. * **Required**: Yes * **Enum**: `INDIVIDUAL` or `CORPORATE` * Example: `INDIVIDUAL` * **`mainCustomerId`** — The ID of the main customer to which the CRP will be associated. * **Required**: Yes * **Type**: Number * Example: `1234` *** ## Query Parameters * **`searchString`** — The name or partial name of the profile to search for. * **Required**: No * **Type**: String * Example: `Aiden` *** ## Headers * **`x-domain`** — Domain identifier for the request. * **Required**: Yes * **Type**: Number * Example: `1` *** ## Response Fields The response contains a paginated list of customer candidates matching the search criteria. ### Key Fields to Extract When creating a CRP with an existing profile, you'll need to extract these fields from the response: * **`customerCandidate.profileId`** — The unique identifier of the profile (required for CRP creation) * **`customerCandidate.profileReferenceId`** — The reference ID of the profile * **`customerCandidate.particular`** — Complete particular information (synced with original profile) * **`customerCandidate.other`** — Other information (carried over but not synced) *** ## Important Notes **Profile Linkage** When using the search results to create a CRP: * The `profileId` must be included in the CRP creation request * The `profileReferenceId` can be modified but will affect the original profile * The `particular` fields are synced between the CRP and original profile * The `other` fields are copied but maintained separately for the CRP **Search Behavior** * If `searchString` is not provided, all profiles matching the type will be returned * The search is typically case-insensitive and supports partial matches * Results are paginated and sorted by creation date (most recent first) *** ## Next Steps After retrieving the profile: 1. Extract the `profileId` and `profileReferenceId` from the response 2. Use these values in the [Create CRP](/artemis3-api-reference/customer-comprehensive/2c-create-crp-with-existing-profile) request 3. Include the `particular` and `other` objects from the profile in the CRP creation payload For a complete workflow example, see [Create CRP with Existing Profile](/artemis3-api-reference/customer-comprehensive/2c-create-crp-with-existing-profile). *** ## Example Usage ```bash theme={null} GET /api/customer/profile/INDIVIDUAL/1234?searchString=Aiden Headers: x-domain: 1 ``` This will return all individual profiles containing "Aiden" in the name that can be linked to customer ID 1234. # getCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getcustomerfordashboard get /api/dashboard/manager/stats/status/detail # getCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getcustomerfordashboard-1 get /api/dashboard/stats/status/detail # getExpiringDocumentCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getexpiringdocumentcustomerfordashboard get /api/dashboard/manager/stats/expiring-document/detail # getManagerExpiringDocumentCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getmanagerexpiringdocumentcustomerfordashboard get /api/dashboard/stats/expiring-document/detail # getManagerOddForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getmanageroddfordashboard get /api/dashboard/manager/stats/odd/detail # getManagerPRForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getmanagerprfordashboard get /api/dashboard/manager/stats/periodic-review/detail # getManagerTaskStats Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getmanagertaskstats get /api/dashboard/manager/stats/tasks # getOddForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getoddfordashboard get /api/dashboard/stats/odd/detail # getPendingCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getpendingcustomerfordashboard get /api/dashboard/manager/stats/unassigned/detail # getPendingMyTaskCustomerForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getpendingmytaskcustomerfordashboard get /api/dashboard/stats/pending/detail # getPRForDashboard Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getprfordashboard get /api/dashboard/stats/periodic-review/detail # getRiskRatingManagerStats Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getriskratingmanagerstats get /api/dashboard/manager/stats/risk-rating # getStatusManagerStats Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getstatusmanagerstats get /api/dashboard/manager/stats/status # getStatusStats Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/getstatusstats get /api/dashboard/stats/status # getTaskDistributionRequestHeader Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/gettaskdistributionrequestheader get /api/dashboard/manager/stats/tasks-distribution # getTasksByUser Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/gettasksbyuser get /api/dashboard/manager/stats/{userId}/detail # getTaskStats Source: https://docs.cynopsis.co/artemis3-api-reference/dashboard-controller/gettaskstats get /api/dashboard/stats/tasks # getDomainList Source: https://docs.cynopsis.co/artemis3-api-reference/domain-controller/getdomainlist get /api/domain # Error Codes Source: https://docs.cynopsis.co/artemis3-api-reference/error | Status Code | Category | Sample HTTP Response | Description | | ----------- | --------------------- | ----------------------------------------------- | ---------------------------------------------------------------- | | 400 | Bad Request | `{ "error": "Bad Request" }` | Invalid request payload: 'email' field is required. | | 401 | Unauthorized | `{ "error": "Unauthorized }` | Authentication is required. Please provide a valid access token. | | 403 | Forbidden | `{ "error": "Forbidden" }` | You do not have permission to access this resource. | | 404 | Not Found | `{ "error": "Not found." }` | The requested resource was not found. | | 405 | Method Not Allowed | `{ "error": "Method \"DELETE\" not allowed." }` | Request method 'POST' not supported for this endpoint. | | 500 | Internal Server Error | `{ "error": "Internal Server Error" }` | An unexpected error occurred. Please try again later. | # getExpiredDocumentWithCursorPaginate Source: https://docs.cynopsis.co/artemis3-api-reference/expiring-document-controller/getexpireddocumentwithcursorpaginate get /api/expiring-document # checkAssignedSource Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/checkassignedsource get /api/handshake/check-source # checkHandShakeBalance Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/checkhandshakebalance get /api/handshake/check-balance # getRequestedProfile Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/getrequestedprofile get /api/handshake/profile/check-exist/{vendorEntityGuid} # importHandShakeProfileReportToDb Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/importhandshakeprofilereporttodb post /api/handshake/profile/import # importHandShakeProfileReportToDb Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/importhandshakeprofilereporttodb-1 post /api/handshake/profile/import/{customerId} # loginToHandShake Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/logintohandshake post /api/handshake/login # requestEntityProfileReport Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/requestentityprofilereport post /api/handshake/profile # searchForEntityWithBasicSearch Source: https://docs.cynopsis.co/artemis3-api-reference/hand-shake-controller/searchforentitywithbasicsearch post /api/handshake/search # Artemis Introduction Source: https://docs.cynopsis.co/artemis3-api-reference/introduction ARTEMIS is Multiple award-winning KYC case management platform built to handle the full spectrum of AML/KYC/CTF requirements – from onboarding, beneficial ownership discovery, PEPs, sanctions and adverse media screening, continuous risk monitoring, through to case management, audit and reporting. Artemis is designed to reduce manual overhead, strengthen regulatory defensibility, and give compliance teams full visibility into financial crime risk across the customer lifecycle. ✅ PEP / Sanctions / Adverse Media Screening Screen customers against global databases, sanctions lists, adverse media, and internal restricted lists to identify true risks quickly and reduce false positives. ✅ Beneficial Ownership Discovery Uncover ultimate beneficial owners and hidden controllers with interactive relationship maps that clarify complex structures across jurisdictions. ✅ Dynamic Risk Assessment Apply FATF-aligned risk scoring methodology that automatically computes risk ratings with AI, tailored to your institution’s risk factors and operating context. ✅ Ongoing Risk Monitoring Stay ahead of changes in risk factors with continuous monitoring, alerting compliance teams to potential sanctions or PEP updates, with intuitive interface for timely periodic reviews. ✅ Case Management & Collaboration Manage investigations efficiently with role-based workflows, clear escalation paths, and collaborative tools that keep teams aligned and focused. ✅ Audit Trail & Reports Maintain full defensibility with immutable, time-stamped records and exportable reports that speed ups regulatory review and audit preparation. ## Artemis3 API Introduction This documentation is for Artemis3.0 client API users to familiarize themselves with the workflows and APIs. The left panel shows the primary workflows (customer creation, customer screening and evaluating risk profile of client) as well as other APIs that might be essential for end-users to perform their day-to-day task. Below is the attached link to the postman collection along with its accompanying postman environment. This is required to test the APIs provided by the Artemis3.0 application. Prior to testing the APIs, the user is required to set up the authentication credenitals via the authentication section. [Artemis3 Postman Collection Link](https://www.getpostman.com/collections/74daad63426fa5c7b3c6) ## Requirements **Artemis3 API Endpoint (URL)**: will be provided by Cynopsis **Authentication**: We use Bearer token, please generate access\_token base on Authentication section **X-Domain-ID**: will be provided by Cynopsis **API Headers**: We are using content-type **application/json** for all of our APIs Copyright © 2025 Cynopsis Solutions Pte. Ltd. All content in this website, including images, api documentation are the property of Cynopsis Solutions Pte Ltd. Any unauthorised disclosure, dissemination, distribution, copying or re-producing any aspect of this document or the creation of derivative of such content is prohibited. It is intended only for reference and use of the intended recipient(s). All rights reserved. # getFileFromCustomer Source: https://docs.cynopsis.co/artemis3-api-reference/media-controller/getfilefromcustomer get /api/media/ # getOnGoingDueDiligentAggregationSummary Source: https://docs.cynopsis.co/artemis3-api-reference/on-going-due-diligent-controller/getongoingduediligentaggregationsummary post /api/ODD/screen/summary # Get All Restricted List Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-apis/get-all-restricted-list GET /api/own-restricted-list This endpoint retrieves a **list of all Own Restricted Lists (ORL)** within the current domain. *** ## Description * Returns metadata for each **restricted list** created under the domain. * Each list may contain multiple names or entries, which can be managed separately. * Useful for displaying or selecting available restricted lists before adding or searching for names. *** ## Notes * The response typically includes: * `id` — Unique identifier of the restricted list. * `listName` — Name of the restricted list. * `active` — Boolean indicating if the list is currently active. *** ## Subsections * **[Post New Own Restricted List](./post-new-own-restricted-list)**\ Create a brand new restricted list tied to one or more domain IDs. * **[Post Name into Restricted List](./post-name-into-restricted-list)**\ Add new names or entries to an existing restricted list. Supports optional metadata like country, reference number, ID number, comments, and active status. *** # Get Restricted Name Entries Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-apis/get-all-restricted-name GET /api/own-restricted-list/{listId}/name This endpoint retrieves **all the restricted names** inside a specific **Own Restricted List (ORL)**. *** ## Path Parameters * **`listId`** — The unique identifier of the restricted list whose entries you want to retrieve. *** ## Description * Returns all names that belong to the given restricted list. * Each entry may include: * `id` — Unique identifier of the entry. * `name` — Name added into the restricted list. * `country` — Country associated with the name (if provided). * `referenceNumber` — Internal reference number (optional). * `idNumber` — Identification number (optional). * `comment` — Notes or remarks (optional). * `active` — Boolean flag showing if the entry is currently active. *** ## Notes * Use **Get All Restricted List** first to identify the `listId`. * This API is useful for managing and reviewing restricted list contents. * Inactive entries (`active: false`) will still appear in the results but are excluded from screenings. # Own Restricted List Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-apis/own-restricted-list The **Own Restricted List (ORL)** allows users to create and maintain multiple **internal lists** for enhanced monitoring and compliance purposes. * These lists can function as an **internal blacklist** (e.g., known fraudulent individuals/entities) or a **VIP watchlist** for special monitoring within a domain. * Restricted List content is **private** to your domain and is **not shared** with other Cynopsis clients. * Entries can be **activated** or **deactivated**: * **Active entries** are screened by Artemis. * **Inactive entries** remain in the list but will **not be flagged** during screenings. This provides flexibility for organizations to maintain internal watchlists tailored to their business needs, while complementing external screening providers. *** ## Subsections * **[Post New Own Restricted List](./post-new-own-restricted-list)**\ Create a brand new restricted list tied to one or more domain IDs. * **[Post Name into Restricted List](./post-name-into-restricted-list)**\ Add a new name to an existing restricted list, with optional fields such as country, reference number, ID number, comment, and active status. * **[Get All Restricted Lists](./get-all-restricted-list)**\ Retrieve a list of all restricted lists within a domain. * **[Get Restricted List Entries](./get-all-restricted-name)**\ View all entries (names) inside a specific restricted list. *** ## Notes * Always use **Get All Restricted Lists** first to identify the target `orl_id`. * Restricted Lists are domain-specific; changes will only apply to your domain. * Keeping names **inactive** allows temporary suspension without losing historical data. # Post Name into Restricted List Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-apis/post-name-into-restricted-list POST /api/own-restricted-list/{listId}/name This endpoint allows you to **add a new name** into an existing **Own Restricted List (ORL)**. *** ## Path Parameters * **`listId`** — The unique identifier of the restricted list where the name will be added. *** ## Request Body * **`name`** *(required)* — The name to be added into the restricted list. * **`country`** *(optional)* — Country associated with the restricted name. * **`referenceNumber`** *(optional)* — Reference number for internal tracking. * **`idNumber`** *(optional)* — Identification number of the restricted individual/entity. * **`comment`** *(optional)* — Additional notes or remarks about this entry. * **`active`** *(optional)* — Boolean flag to mark the entry as active (`true`) or inactive (`false`). *** ## Notes * The **name field is mandatory**. * This API supports adding **additional metadata** (like country, reference number, or ID number) to strengthen matching precision. * Once added, the name will be included in all screenings against the specified restricted list. # Post New Restricted List Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-apis/post-new-own-restricted-list POST /api/own-restricted-list This endpoint allows you to **create a new Own Restricted List entry**.\ Restricted list entries are tied to one or more **domain IDs**, ensuring they apply only within the specified domains. *** ## Request Body A JSON object containing the details of the restricted entry: * **`listName`** — Name of the restricted entity or keyword. * **`domainIds`** — Array of domain IDs where this restricted entry should apply. * **`active`** — Making the ORL active or inactive. *** ## Notes * You must specify at least one **domainId** in the request body. * Multiple domain IDs can be provided if the entry is meant to be shared across different domains. # activateList Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/activatelist post /api/own-restricted-list/{id}/active # addRestrictedName Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/addrestrictedname post /api/own-restricted-list/{listId}/name # createList Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/createlist post /api/own-restricted-list # deleteList Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/deletelist delete /api/own-restricted-list/{id} # deleteRestrictedName Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/deleterestrictedname delete /api/own-restricted-list/{listId}/name/{id} # getListDetails Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/getlistdetails get /api/own-restricted-list/{id} # getLists Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/getlists get /api/own-restricted-list # getRestrictedNameDetail Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/getrestrictednamedetail get /api/own-restricted-list/{listId}/name/{id} # getRestrictedNames Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/getrestrictednames get /api/own-restricted-list/{listId}/name # updateList Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/updatelist put /api/own-restricted-list/{id} # updateRestrictedName Source: https://docs.cynopsis.co/artemis3-api-reference/own-restricted-list-controller/updaterestrictedname put /api/own-restricted-list/{listId}/name/{id} # getPRWithCursorPagination Source: https://docs.cynopsis.co/artemis3-api-reference/periodic-review-controller/getprwithcursorpagination get /api/periodic-review # Get Quick Scan List Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-apis/get-quick-scan-list GET /api/quickscan/ The **Quick Scan List** endpoint retrieves a **history of Quick Scans** performed within the domain. *** ## Description * Displays all previously executed Quick Scans, including metadata such as: * `id` — Unique identifier of the Quick Scan. * `quickscanName` — The searched individual or corporate name. * `quickscanType` — Type of scan performed: **INDIVIDUAL** or **CORPORATE**. * `screenedWith` — The screening engine(s) used for the scan (e.g., **ARTEMISCAN** , **INTERNET\_SEARCH** , **OWN\_RESTRICTED\_LIST**). * `potentialHits` — Number of potential matches identified by the specified screening engine(s). *** ## Notes * Use this API to **review past Quick Scan activities**. * Results may include both active and archived scans. # Get Quick Scan Screening Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-apis/get-quick-scan-screening GET /api/quickscan/screen/{screeningId} This endpoint retrieves the **details of a specific Quick Scan screening** using its unique `screeningId`. *** ## Path Parameters * **`screeningId`** *(required)* — The unique identifier of the Quick Scan screening to retrieve. *** ## Description * Use this endpoint to check the **results** of a previously triggered Quick Scan. * Typical details may include: * `id` — Screening identifier. * `quickscanName` — The searched name (individual or corporate). * `quickscanType` — Type of scan performed. * `chosenEngines` — Engines used in the scan. * `potentialHits` — Number of potential matches. * `createdAt` — When the screening was triggered. * `status` — Current state of the screening (e.g., PENDING, DONE). *** ## Notes * Retrieve `screeningId` from the [Quick Scan List](./get-quick-scan-list). * Use this API to poll results if the screening may take time to complete. # Get Quick Scan Screening Hits Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-apis/get-quick-scan-screening-hits GET /api/quickscan/screen/{screeningId}/hit This endpoint retrieves **paginated potential hits** for a specific Quick Scan screening, filtered by **screening type** (engine). *** ## Path Parameters | Parameter | Type | Required | Description | | ------------- | --------- | -------- | ------------------------------------------------------------------------------------- | | `screeningId` | `integer` | Yes | The unique identifier of the Quick Scan screening (returned from Trigger Quick Scan). | *** ## Query Parameters | Parameter | Type | Required | Description | | --------------- | --------- | -------- | ----------------------------------------------------- | | `screeningType` | `string` | Yes | The screening engine whose hits you want to retrieve. | | `pageNumber` | `integer` | No | Page number (0-indexed). Default: `0`. | | `pageSize` | `integer` | No | Number of results per page. Default: `20`. | ### Available Screening Types | Value | Description | | --------------------- | ------------------------------------------ | | `ARTEMISCAN` | Cynopsis proprietary screening engine | | `DJ` | Dow Jones | | `TR` | World-Check (Refinitiv / LSEG) | | `INTERNET_SEARCH` | Internet-based adverse media search | | `OWN_RESTRICTED_LIST` | Your organisation's custom restricted list | *** ## Headers | Header | Type | Required | Description | | --------------- | --------- | -------- | ------------------------------------------------------- | | `Authorization` | `string` | Yes | Bearer token obtained from the authentication endpoint. | | `X-Domain-ID` | `integer` | Yes | The domain identifier for your organisation. | *** ## Example Requests ### Get ArtemiScan Hits ```bash theme={null} curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=ARTEMISCAN" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### Get Dow Jones Hits (with Pagination) ```bash theme={null} curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=DJ&pageNumber=0&pageSize=10" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### Get Internet Search Hits ```bash theme={null} curl -X GET "{{backend_url}}/api/quickscan/screen/12345/hit?screeningType=INTERNET_SEARCH" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` *** ## Response A successful response returns a **paginated** `Page` with an HTTP `200` status code. ### Pagination Wrapper | Field | Type | Description | | --------------- | --------- | ---------------------------------------------------------------- | | `content` | `array` | Array of `ScreeningHitResponseDto` objects for the current page. | | `totalElements` | `integer` | Total number of hits across all pages. | | `totalPages` | `integer` | Total number of pages. | | `number` | `integer` | Current page number (0-indexed). | | `size` | `integer` | Page size. | | `first` | `boolean` | Whether this is the first page. | | `last` | `boolean` | Whether this is the last page. | ### Hit Object Fields (`ScreeningHitResponseDto`) | Field | Type | Description | | --------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- | | `id` | `integer` | Unique hit identifier. | | `screeningId` | `integer` | The parent screening ID. | | `screeningType` | `string` | The engine that produced this hit (e.g., `ARTEMISCAN`, `DJ`). | | `externalId` | `string` | External reference ID from the screening provider. | | `body` | `object` | The full hit payload from the screening engine. Structure varies by engine — see [Hit Body by Engine](#hit-body-by-engine) below. | | `diff` | `object` | Differences highlighted between the screened name and the matched entity. | | `matched` | `string` | Resolution status: `TRUE_HIT`, `FALSE_POSITIVE`, or `NO_ACTION` (default). | | `newMatch` | `boolean` | Whether this is a newly identified match (appears for the first time). | | `commentCount` | `integer` | Number of comments on this hit. | | `comment` | `array` | List of comments attached to this hit. | | `filtered` | `boolean` | Whether this hit was filtered by rules. | | `createdAt` | `string` | Timestamp when the hit was identified. | ### Example Response ```json theme={null} { "content": [ { "id": 98765, "screeningId": 12345, "screeningType": "ARTEMISCAN", "externalId": "AC-2025-001", "body": { "name": "John Doe", "matchScore": 95, "categories": ["PEP", "SANCTION"], "country": "US", "dateOfBirth": "1970-01-01", "source": "OFAC SDN List" }, "diff": { "name": { "original": "John Doe", "matched": "John M. Doe" } }, "matched": "NO_ACTION", "newMatch": true, "commentCount": 0, "comment": [], "filtered": false, "createdAt": "2025-01-15T10:31:00.000+00:00", "updatedAt": "2025-01-15T10:31:00.000+00:00" } ], "totalElements": 3, "totalPages": 1, "number": 0, "size": 20, "first": true, "last": true } ``` *** ## Hit Body by Engine The `body` field contains engine-specific data. The structure differs depending on the `screeningType`: Contains structured match data including name, match score, categories (PEP, SANCTION, ADVERSE\_MEDIA), country, date of birth, and source references. Contains Dow Jones profile data including name variants, associated countries, PEP status, sanction lists, and related entities. Contains Refinitiv World-Check profile data including name, category, sub-category, linked countries, and identification details. Contains internet search results including article title, URL, snippet, publication date, and relevance score. Contains matched entries from your organisation's custom restricted list. *** ## Notes * You must first trigger a Quick Scan with [Trigger Quick Scan Screening](./post-quick-scan-screen) and obtain the `screeningId`. * Ensure the screening for the requested `screeningType` has completed (`DONE` status) before fetching hits. You can check this with [Get Quick Scan Screening](./get-quick-scan-screening). * Each `screeningType` returns hits independently — call this endpoint once per engine you want to inspect. * Hits default to `matched: "NO_ACTION"`. Use the Artemis UI or additional APIs to mark hits as `TRUE_HIT` or `FALSE_POSITIVE`. # Trigger Quick Scan Screening Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-apis/post-quick-scan-screen POST /api/quickscan/screen This endpoint triggers a **Quick Scan screening** for an **individual** or a **corporate entity**. The scan runs **asynchronously** — the response returns immediately with a `screeningId` that you can use to poll for results. *** ## Query Parameters | Parameter | Type | Required | Description | | --------------- | ---------- | -------- | ---------------------------------------------------------------------------- | | `name` | `string` | Yes | The name of the individual or corporate entity to screen. | | `customerType` | `string` | Yes | Type of customer. Possible values: `INDIVIDUAL`, `CORPORATE`. | | `chosenEngines` | `string[]` | Yes | One or more screening engines to include (repeat the parameter to add more). | ### Available Screening Engines | Value | Description | | --------------------- | ------------------------------------------ | | `ARTEMISCAN` | Cynopsis proprietary screening engine | | `DJ` | Dow Jones | | `TR` | World-Check (Refinitiv / LSEG) | | `INTERNET_SEARCH` | Internet-based adverse media search | | `OWN_RESTRICTED_LIST` | Your organisation's custom restricted list | *** ## Headers | Header | Type | Required | Description | | --------------- | --------- | -------- | ------------------------------------------------------- | | `Authorization` | `string` | Yes | Bearer token obtained from the authentication endpoint. | | `X-Domain-ID` | `integer` | Yes | The domain identifier for your organisation. | *** ## Example Requests ### Screen an Individual with ArtemiScan ```bash theme={null} curl -X POST "{{backend_url}}/api/quickscan/screen?name=John%20Doe&customerType=INDIVIDUAL&chosenEngines=ARTEMISCAN" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### Screen a Corporate Entity with Multiple Engines ```bash theme={null} curl -X POST "{{backend_url}}/api/quickscan/screen?name=Acme%20Corp&customerType=CORPORATE&chosenEngines=ARTEMISCAN&chosenEngines=DJ&chosenEngines=INTERNET_SEARCH" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` *** ## Response A successful response returns a `ScreeningResponseDto` with an HTTP `200` status code. ### Key Response Fields | Field | Type | Description | | --------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------ | | `id` | `integer` | The unique screening ID. Use this as `screeningId` in subsequent API calls. | | `quickscanName` | `string` | The name that was screened. | | `quickscanType` | `string` | `INDIVIDUAL` or `CORPORATE`. | | `finalStatus` | `string` | Current status: `PENDING`, `DONE`, `FAILED`, or `NEVER`. | | `screenedWith` | `string[]` | List of engines used in this screening. | | `screeningConclusion` | `string[]` | Conclusions after screening completes — e.g., `PEP`, `SANCTION`, `ADVERSE_MEDIA`, `OWN_RESTRICTED_LIST`, `NO_HIT`. | | `hasHit` | `boolean` | Whether any potential hits were found. | | `potentialHits` | `object` | Map of engine name to hit count — e.g., `{ "ARTEMISCAN": 3, "DJ": 1 }`. | | `status` | `object` | Detailed per-engine status — see below. | | `createdAt` | `string` | Timestamp when the screening was created. | ### Status Object The `status` field contains a map of each screening engine to its individual status: ```json theme={null} { "status": { "ARTEMISCAN": "DONE", "DJ": "PENDING", "INTERNET_SEARCH": "DONE" } } ``` Possible values per engine: `PENDING`, `DONE`, `FAILED`. ### Example Response ```json theme={null} { "id": 12345, "quickscanName": "John Doe", "quickscanType": "INDIVIDUAL", "finalStatus": "PENDING", "hasHit": false, "screenedWith": ["ARTEMISCAN", "DJ"], "screeningConclusion": [], "potentialHits": {}, "status": { "id": 67890, "screeningId": 12345, "status": { "ARTEMISCAN": "PENDING", "DJ": "PENDING" } }, "valid": true, "oddStatus": "OPEN", "remarks": [], "createdAt": "2025-01-15T10:30:00.000+00:00", "updatedAt": "2025-01-15T10:30:00.000+00:00" } ``` *** ## What to Do Next 1. **Poll for completion** — Call [`GET /api/quickscan/screen/{screeningId}`](./get-quick-scan-screening) using the returned `id` until `finalStatus` becomes `DONE`. 2. **Retrieve hits** — Call [`GET /api/quickscan/screen/{screeningId}/hit?screeningType=ARTEMISCAN`](./get-quick-scan-screening-hits) to get potential matches for each engine. *** ## Notes * This is an **ad-hoc scan** and does not require a customer record to be created. * Multiple screening engines can be combined by repeating the `chosenEngines` query parameter. * The screening runs asynchronously. The initial response will have `finalStatus: "PENDING"`. * Use **Get Quick Scan List** to retrieve historical Quick Scans and review past results. *** ## Important Notice The **Try-it SEND button** in the documentation UI may not serialize query parameters correctly for this endpoint. **Always copy the generated cURL command** and run it in your terminal or API client (e.g., Postman, Insomnia). # Quick Scan Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-apis/quick-scan The **Quick Scan** feature allows users to perform an **ad-hoc preliminary screening** based on the name of an **individual** or a **corporate entity**. Quick Scan is designed for **fast checks** outside the full customer onboarding workflow, making it useful for spot-checks, investigations, or pre-onboarding assessments. *** ## Workflow Call [`POST /api/quickscan/screen`](./post-quick-scan-screen) with the entity name, customer type, and chosen screening engines. The API returns a `screeningId` you will use in subsequent calls. Call [`GET /api/quickscan/screen/{screeningId}`](./get-quick-scan-screening) to check the screening `finalStatus`. Repeat until the status is `DONE` or `FAILED`. Call [`GET /api/quickscan/screen/{screeningId}/hit`](./get-quick-scan-screening-hits) with the desired `screeningType` to get paginated potential hits. *** ## Key Features * Screen by **individual name** or **corporate name**. * Choose which **screening engines** to include (e.g., `ARTEMISCAN`, `DJ`, `OWN_RESTRICTED_LIST`, `INTERNET_SEARCH`, `TR`). * Retrieve past scans and review **detailed hits** for each screening engine. *** ## Screening Engines | Engine | Description | | --------------------- | ------------------------------------------ | | `ARTEMISCAN` | Cynopsis proprietary screening engine | | `DJ` | Dow Jones screening | | `TR` | World-Check (Refinitiv / LSEG) | | `INTERNET_SEARCH` | Internet-based adverse media search | | `OWN_RESTRICTED_LIST` | Your organisation's custom restricted list | *** ## Notes * Quick Scan results provide a **snapshot** of potential risk indicators. * For ongoing monitoring and audit trails, use the full **Customer Creation and Screening Workflow** instead. *** ## Endpoints in This Section | Endpoint | Description | | ---------------------------------------------------------------- | ---------------------------------------- | | [Trigger Quick Scan Screening](./post-quick-scan-screen) | Start a new Quick Scan | | [Get Quick Scan Screening](./get-quick-scan-screening) | Check screening status and details | | [Get Quick Scan Screening Hits](./get-quick-scan-screening-hits) | Retrieve hits filtered by screening type | | [Get Quick Scan List](./get-quick-scan-list) | List all historical Quick Scans | # getQuickScan Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-controller/getquickscan get /api/quickscan/ # getQuickScan Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-controller/getquickscan-1 get /api/quickscan/screen/{screeningId} # getQuickScanHit Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-controller/getquickscanhit get /api/quickscan/screen/{screeningId}/hit # triggerBatchQuickScan Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-controller/triggerbatchquickscan post /api/quickscan/screen/batch # triggerQuickScan Source: https://docs.cynopsis.co/artemis3-api-reference/quick-scan-controller/triggerquickscan post /api/quickscan/screen # Get Country List Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-countries-list GET /api/app-config/bulk/artemis_countries **Description:** Get a list of allowed values for: * Nationality * Country of Residence * Country of Birth * Country of Incorporation * Country of Major Operation This list is also used for the **Country** field for names in your own restricted list. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_countries" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ```ts Expandable Country List theme={null} "ABKHAZIA", "AFGHANISTAN", "ALAND ISLANDS", "ALBANIA", "ALGERIA", "AMERICAN SAMOA", "ANDORRA", "ANGOLA", "ANGUILLA", "ANTARCTICA", "ANTIGUA AND BARBUDA", "ARGENTINA", "ARMENIA", "ARUBA", "ASCENSION", "ASHMORE AND CARTIER ISLANDS", "AUSTRALIA", "AUSTRALIAN ANTARCTIC TERRITORY", "AUSTRIA", "AZERBAIJAN", "BAHAMAS", "BAHRAIN", "BAKER ISLAND", "BANGLADESH", "BARBADOS", "BELARUS", "BELGIUM", "BELIZE", "BENIN", "BERMUDA", "BHUTAN", "BOLIVIA", "BOSNIA AND HERZEGOVINA", "BOTSWANA", "BOUVET ISLAND", "BRAZIL", "BRITISH ANTARCTIC TERRITORY", "BRITISH INDIAN OCEAN TERRITORY", "BRITISH SOVEREIGN BASE AREAS", "BRITISH VIRGIN ISLANDS", "BRUNEI", "BULGARIA", "BURKINA FASO", "BURMA (REPUBLIC OF THE UNION OF MYANMAR)", "BURUNDI", "CAMBODIA", "CAMEROON", "CANADA", "CAPE VERDE", "CARIBBEAN NETHERLANDS", "CAYMAN ISLANDS", "CENTRAL AFRICAN REPUBLIC", "CHAD", "CHILE", "CHINA", "CHRISTMAS ISLAND", "CLIPPERTON ISLAND", "COCOS (KEELING) ISLANDS", "COLOMBIA", "COMOROS", "CONGO (REPUBLIC OF)", "COOK ISLANDS", "CORAL SEA ISLANDS", "COSTA RICA", "COTE D'IVOIRE (IVORY COAST)", "CROATIA", "CUBA", "CURACAO", "CYPRUS", "CZECH REPUBLIC", "DEMOCRATIC REPUBLIC OF THE CONGO", "DENMARK", "DJIBOUTI", "DOMINICA", "DOMINICAN REPUBLIC", "ECUADOR", "EGYPT", "EL SALVADOR", "EQUATORIAL GUINEA", "ERITREA", "ESTONIA", "ETHIOPIA", "FALKLAND ISLANDS", "FAROE ISLANDS", "FIJI", "FINLAND", "FRANCE", "FRENCH GUIANA", "FRENCH POLYNESIA", "FRENCH SOUTHERN AND ANTARCTIC LANDS", "FRENCH SOUTHERN TERRITORIES", "GABON", "GAMBIA", "GEORGIA", "GERMANY", "GHANA", "GIBRALTAR", "GREECE", "GREENLAND", "GRENADA", "GUADELOUPE", "GUAM", "GUATEMALA", "GUERNSEY", "GUINEA", "GUINEA-BISSAU", "GUYANA", "HAITI", "HEARD AND MCDONALD ISLANDS", "HONDURAS", "HONG KONG", "HOWLAND ISLAND", "HUNGARY", "ICELAND", "INDIA", "INDONESIA", "IRAN", "IRAQ", "IRELAND", "ISLE OF MAN", "ISRAEL", "ITALY", "JAMAICA", "JAPAN", "JARVIS ISLAND", "JERSEY", "JOHNSTON ATOLL", "JORDAN", "KAZAKHSTAN", "KENYA", "KINGMAN REEF", "KIRIBATI", "KOSOVO", "KUWAIT", "KYRGYZSTAN", "LAOS", "LATVIA", "LEBANON", "LESOTHO", "LIBERIA", "LIBYA", "LIECHTENSTEIN", "LITHUANIA", "LUXEMBOURG", "MACAU", "MACEDONIA", "MADAGASCAR", "MALAWI", "MALAYSIA", "MALDIVES", "MALI", "MALTA", "MARSHALL ISLANDS", "MARTINIQUE", "MAURITANIA", "MAURITIUS", "MAYOTTE", "MEXICO", "MICRONESIA", "MIDWAY ISLANDS", "MOLDOVA", "MONACO", "MONGOLIA", "MONTENEGRO", "MONTSERRAT", "MOROCCO", "MOZAMBIQUE", "NAGORNO-KARABAKH", "NAMIBIA", "NAURU", "NAVASSA ISLAND", "NEPAL", "NETHERLANDS", "NEW CALEDONIA", "NEW ZEALAND", "NICARAGUA", "NIGER", "NIGERIA", "NIUE", "NORFOLK ISLAND", "NORTH KOREA", "NORTHERN CYPRUS", "NORTHERN MARIANA ISLANDS", "NORWAY", "OMAN", "PAKISTAN", "PALAU", "PALESTINE", "PALMYRA ATOLL", "PANAMA", "PAPUA NEW GUINEA", "PARAGUAY", "PERU", "PETER I ISLAND", "PHILIPPINES", "PITCAIRN", "PITCAIRN ISLANDS", "POLAND", "PORTUGAL", "PRIDNESTROVIE (TRANSNISTRIA)", "PUERTO RICO", "QATAR", "QUEEN MAUD LAND", "REUNION", "ROMANIA", "ROSS DEPENDENCY", "RUSSIAN FEDERATION", "RWANDA", "SAINT BARTHELEMY", "SAINT HELENA", "SAINT KITTS AND NEVIS", "SAINT LUCIA", "SAINT MARTIN (FRANCE)", "SAINT MARTIN (NETHERLANDS)", "SAINT PIERRE AND MIQUELON", "SAINT VINCENT AND GRENADINES", "SAMOA", "SAN MARINO", "SAO TOME AND PRINCIPE", "SAUDI ARABIA", "SENEGAL", "SERBIA", "SEYCHELLES", "SIERRA LEONE", "SINGAPORE", "SLOVAKIA", "SLOVENIA", "SOLOMON ISLANDS", "SOMALIA", "SOMALILAND", "SOUTH AFRICA", "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS", "SOUTH KOREA", "SOUTH OSSETIA", "SOUTH SUDAN", "SPAIN", "SRI LANKA", "SUDAN", "SURINAME", "SVALBARD AND JAN MAYEN ISLANDS", "SWAZILAND", "SWEDEN", "SWITZERLAND", "SYRIA", "TAIWAN", "TAJIKISTAN", "TANZANIA", "THAILAND", "TIMOR-LESTE", "TOGO", "TOKELAU", "TONGA", "TRINIDAD AND TOBAGO", "TRISTAN DA CUNHA", "TUNISIA", "TURKEY", "TURKMENISTAN", "TURKS AND CAICOS ISLANDS", "TUVALU", "UGANDA", "UKRAINE", "UNITED ARAB EMIRATES", "UNITED KINGDOM", "UNITED STATES MINOR OUTLYING ISLANDS", "UNITED STATES OF AMERICA", "UNITED STATES VIRGIN ISLANDS", "URUGUAY", "UZBEKISTAN", "VANUATU", "VATICAN", "VENEZUELA", "VIETNAM", "WAKE ISLAND", "WALLIS AND FUTUNA ISLANDS", "WESTERN SAHARA", "YEMEN", "ZAMBIA", "ZIMBABWE", "NETHERLANDS ANTILLES", "UNKNOWN" ``` # Get Entity Types Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-entity-types GET /api/app-config/bulk/artemis_entity_types **Description:** Get a list of allowed values for Entity Type field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_entity_types" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Entity Types value: ```ts Expandable Entity Types theme={null} "ASSOCIATION", "BANKS", "CHARITY", "CLUB", "EXEMPT PRIVATE COMPANY LIMITED BY SHARES", "FOREIGN BRANCH", "FOREIGN COMPANY", "FOREIGN ENTITY NOT REGISTERED WITH ACRA", "FUNDS", "GENERAL PARTNERSHIP", "GOVERNMENT BODIES", "INCORPORATED", "LIMITED", "LIMITED LIABILITY COMPANY", "LIMITED LIABILITY PARTNERSHIP", "LIMITED PARTNERSHIP", "LOCAL COMPANY", "LOCAL ENTITY NOT REGISTERED WITH LOCAL REGISTRAR", "LOCAL PRIVATE COMPANY", "LOCAL PUBLIC COMPANY", "MANAGEMENT CORPORATIONS", "FINANCIAL INSTITUTION", "NON-FOR-PROFIT ORGANISATION", "ORGAN OF STATE", "PARTNERSHIP", "PRIVATE COMPANY LIMITED BY SHARES", "PROPRIETARY LIMITED", "PUBLIC COMPANY LIMITED BY GUARANTEE", "PUBLIC COMPANY LIMITED BY SHARES", "PUBLIC LIMITED COMPANY", "SOLE-PROPRIETORSHIP", "TRUST", "VARIABLE CAPITAL COMPANY", "OTHERS", "UNKNOWN" ``` # Get Identity Document Types Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-identity-document-types GET /api/app-config/bulk/artemis_id_types **Description:** Get a list of allowed values for Identity Document Type field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_id_types" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Identity Document Types ```ts theme={null} "INTERNATIONAL PASSPORT", "NATIONAL ID", "DRIVING LICENCE", "OTHERS" ``` # Get Industry List Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-industry-list GET /api/app-config/bulk/artemis_ssic **Description:** Get a list of allowed values for Industry field and Primary Business Activity field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_ssic" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of value (SSIC - Singapore) ```ts Expandable SSIC - Singapore theme={null} "01111 - GROWING OF LEAFY AND FRUIT VEGETABLES", "01112 - GROWING OF MUSHROOMS", "01113 - GROWING OF ROOT CROPS", "01119 - GROWING OF FOOD CROPS (NON-HYDROPONICS) N.E.C.", "01120 - GROWING OF LEAFY AND FRUIT VEGETABLES (HYDROPONICS)", "01130 - GROWING OF FRUITS", "01141 - GROWING OF ORCHIDS", "01142 - GROWING OF ORNAMENTAL PLANTS", "01149 - GROWING OF NURSERY PRODUCTS N.E.C.", "01190 - GROWING OF OTHER CROPS", "01411 - PIG FARMS", "01412 - CATTLE FARMS (INCLUDING DAIRY CATTLE)", "01413 - GOAT FARMS (INCLUDING GOAT'S MILK PRODUCTION)", "01421 - POULTRY BREEDING/HATCHERIES", "01422 - BROILER FARMS (CHICKENS REARED FOR MEAT)", "01423 - LAYER FARMS (CHICKENS REARED FOR EGGS)", "01424 - DUCK FARMS", "01491 - DOG BREEDING", "01492 - BIRD BREEDING", "01493 - CROCODILE FARMS", "01494 - FROG FARMS", "01499 - OTHER ANIMAL PRODUCTION N.E.C.", "01500 - GROWING OF CROPS COMBINED WITH ANIMAL PRODUCTION (MIXED FARMING)", "72109 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON NATURAL SCIENCES N.E.C.", "01600 - AGRICULTURAL AND ANIMAL HUSBANDRY SERVICE ACTIVITIES EXCEPT VETERINARY ACTIVITIES", "02000 - FORESTRY, LOGGING AND RELATED SERVICE ACTIVITIES", "03101 - FISHING IN KELONGS", "03102 - OCEAN FISHING EXCEPT FISHING IN KELONGS", "03103 - COASTAL FISHING EXCEPT FISHING IN KELONGS", "03109 - FISHING N.E.C.", "03201 - FOOD FISH FARMS", "03202 - ORNAMENTAL FISH FARMS", "03209 - OPERATION OF FISH HATCHERIES AND FISH FARMS N.E.C. (INCLUDING TURTLE, PRAWN, CRAB, MUSSEL FARMS)", "84239 - PUBLIC ORDER AND SAFETY ACTIVITIES N.E.C.", "08101 - STONE QUARRYING", "08102 - QUARRYING OF SAND AND CLAY", "08900 - OTHER MINING AND QUARRYING", "09001 - CRUDE PETROLEUM AND NATURAL GAS PRODUCTION", "09002 - SERVICE ACTIVITIES INCIDENTAL TO OIL AND GAS EXTRACTION (EXCLUDING SURVEYING AND ENGINEERING DESIGN AND CONSULTANCY SERVICES SUPPORTING MINING, OIL AND GAS EXTRACTION AND OFFSHORE EXPLORATION ACTIVITIES)", "10101 - SLAUGHTERING OF LIVESTOCK AND POULTRY", "10102 - MANUFACTURE OF SAUSAGE", "10103 - PREPARING, CANNING AND PRESERVING OF LIVESTOCK AND LIVESTOCK PRODUCTS (INCLUDING LARD AND OTHER EDIBLE ANIMAL FATS)", "10104 - PREPARING, CANNING AND PRESERVING OF POULTRY AND POULTRY PRODUCTS", "10109 - PROCESSING AND PRESERVING OF MEAT AND MEAT PRODUCTS N.E.C.", "10200 - PROCESSING AND PRESERVING OF SEAFOOD", "10301 - MANUFACTURE OF JAMS (INCLUDING FRUIT JELLY)", "10302 - OTHER CANNING AND PRESERVING OF FRUITS AND FRUIT JUICES", "10303 - OTHER CANNING AND PRESERVING OF VEGETABLES AND VEGETABLE JUICES (INCLUDING PICKLES)", "10401 - MANUFACTURE OF EDIBLE VEGETABLE AND ANIMAL OILS AND FATS", "10402 - MANUFACTURE OF INEDIBLE VEGETABLE AND ANIMAL OILS AND FATS", "10409 - MANUFACTURE OF VEGETABLE AND ANIMAL OILS AND FATS N.E.C.", "10501 - MANUFACTURE OF CONDENSED AND EVAPORATED MILK (INCLUDING PASTEURISING AND BOTTLING OF FLUID MILK)", "10502 - MANUFACTURE OF MILK POWDER", "10503 - MANUFACTURE OF ICE-CREAM", "10509 - MANUFACTURE OF DAIRY PRODUCTS N.E.C. (E.G. BUTTER, CHEESE, ICE-CREAM MIXES AND POWDER, YOGHURT)", "10611 - RICE MILLING", "10612 - WHEAT MILLING", "10619 - MANUFACTURE OF GRAIN MILL PRODUCTS N.E.C.", "10613 - PROVISION OF MILLING SERVICES", "10620 - MANUFACTURE OF STARCHES AND STARCH PRODUCTS", "10711 - MANUFACTURE OF BISCUITS (INCLUDING WAFERS AND CONES)", "10712 - MANUFACTURE OF BREAD, CAKES AND CONFECTIONERY (EXCLUDING FROZEN BAKERY PRODUCTS)", "10719 - MANUFACTURE OF BAKERY PRODUCTS N.E.C.", "10720 - MANUFACTURE OF SUGAR AND SUGAR PRODUCTS", "10731 - MANUFACTURE OF COCOA AND CHOCOLATE POWDER FROM BEANS", "10732 - MANUFACTURE OF CHOCOLATE AND CHOCOLATE PRODUCTS", "10733 - MANUFACTURE OF NON-CHOCOLATE CONFECTIONERY (E.G. SWEETS, TOFFEES, CRYSTALLISED FRUITS, CHEWING GUMS)", "10740 - MANUFACTURE OF MACARONI, NOODLES, VERMICELLI AND OTHER RELATED PRODUCTS", "10750 - MANUFACTURE OF COOKED-FOOD PREPARATIONS (E.G. FROZEN DINNERS)", "10761 - MANUFACTURE OF INSTANT BEVERAGES", "10762 - PROCESSING OF COFFEE SEEDS", "10763 - MANUFACTURE OF COFFEE POWDER", "10764 - MANUFACTURE OF TEA (INCLUDING PROCESSING OF TEA LEAVES)", "10765 - MANUFACTURE OF NON-DAIRY CREAMER", "10791 - MANUFACTURE OF SAUCES INCLUDING SOYA BEAN SAUCE (E.G. TOMATO SAUCE, CHILLI SAUCE)", "10792 - MANUFACTURE OF SOYA BEAN PRODUCTS EXCEPT SOYA BEAN SAUCE AND SOYA BEAN MILK", "10793 - MANUFACTURE AND PROCESSING OF SPICES (INCLUDING CURRY POWDER AND SPICE EXTRACTS)", "10794 - MANUFACTURE OF CHIPS, CRACKERS AND OTHER TITBITS (EXCLUDING BISCUITS AND CONFECTIONERY)", "10799 - MANUFACTURE OF OTHER FOOD PRODUCTS N.E.C. (EXCEPT FOOD CHEMICALS AND ADDITIVES)", "10800 - MANUFACTURE OF PREPARED ANIMAL FEEDS (INCLUDING ADDITIVES FOR ANIMAL FEED)", "11010 - DISTILLING, RECTIFYING AND BLENDING OF SPIRITS; ETHYL ALCOHOL PRODUCTION FROM FERMENTED MATERIALS (INCLUDING SAMSU AND CHINESE LIQUORS)", "11020 - MANUFACTURE OF WINES", "11030 - MANUFACTURE OF MALT LIQUORS AND MALT (E.G. BEER AND STOUT)", "11041 - MANUFACTURE OF SOFT DRINKS, PRODUCTION OF MINERAL WATERS (INCLUDING CARBONATED WATERS, SOYA BEAN MILK, BARLEY WATER, CHRYSANTHEMUM WATER)", "11042 - MANUFACTURE OF CORDIALS, SYRUPS AND COMPOSITE CONCENTRATES FOR BEVERAGES", "11043 - MANUFACTURE OF ICE EXCEPT DRY ICE", "12001 - MANUFACTURE OF CIGARETTES", "12009 - MANUFACTURE OF TOBACCO PRODUCTS N.E.C. (E.G. CIGARS, LOOSE TOBACCO)", "13100 - SPINNING, WEAVING AND FINISHING OF TEXTILES", "13910 - MANUFACTURE OF KNITTED AND CROCHETED FABRICS AND LACES", "13921 - MANUFACTURE OF CURTAINS, PILLOW CASES, BED SHEETS AND BED SPREADS", "13922 - MANUFACTURE OF OTHER MADE-UP HOUSE FURNISHINGS (E.G. NAPKINS, TABLE CLOTHS)", "13929 - MANUFACTURE OF MADE-UP TEXTILE ARTICLES EXCEPT APPAREL N.E.C. (E.G. SCROLLS, FLAGS AND SAILS, BANNERS, CANVAS PRODUCTS, CUSHIONS, PILLOWS)", "13930 - MANUFACTURE OF CARPETS AND RUGS", "13940 - MANUFACTURE OF CORDAGE, ROPE, TWINE AND NETTING", "13990 - MANUFACTURE OF OTHER TEXTILES N.E.C. (E.G. UPHOLSTERY FILLING)", "14101 - MANUFACTURE OF OUTER GARMENTS", "14102 - MANUFACTURE OF BRASSIERES AND OTHER UNDERGARMENTS", "14103 - TAILORING AND DRESSMAKING (TO INDIVIDUAL ORDER)", "14109 - MANUFACTURE OF WEARING APPAREL EXCEPT FUR APPAREL N.E.C. (E.G. SONGKOKS, CAPS, GLOVES AND MITTENS, GARTERS, HANDKERCHIEFS, RAINCOATS, SHAWLS AND HAIR NETS)", "14200 - MANUFACTURE OF FUR APPAREL AND ARTICLES OF FUR (E.G. FUR RUGS, MATS AND CUSHIONS)", "14301 - MANUFACTURE OF SOCKS, STOCKINGS AND OTHER HOSIERY", "14302 - MANUFACTURE OF BRIEFS, SINGLETS AND OTHER KNITTED OR CROCHETED WEAR (E.G. PULLOVERS, CARDIGANS)", "14309 - MANUFACTURE OF KNITTED AND CROCHETED APPAREL N.E.C.", "15110 - TANNING AND DRESSING OF LEATHER; DRESSING AND DYEING OF FUR", "15121 - MANUFACTURE OF LUGGAGE, BAGS, BRIEF CASES AND THE LIKE", "15122 - MANUFACTURE OF HANDBAGS", "15129 - MANUFACTURE OF SADDLERY, HARNESS AND ARTICLES OF LEATHER N.E.C. (E.G. COIN PURSES, KEY CASES)", "15200 - MANUFACTURE OF FOOTWEAR", "16101 - SAWMILLING", "16102 - PRESERVATION OF WOOD", "16109 - SAWMILLING AND PLANING OF WOOD N.E.C.", "16211 - MANUFACTURE OF PLYWOOD AND VENEER", "16219 - MANUFACTURE OF LAMINBOARD, PARTICLE BOARD AND OTHER PANELS AND BOARDS N.E.C.", "43904 - PRODUCTION OF PRE-CAST COMPONENTS", "43907 - PRODUCTION OF PREFABRICATED PREFINISHED VOLUMETRIC CONSTRUCTION (PPVC) MODULES", "16291 - MANUFACTURE OF WOODEN WINDOW, DOOR AND OTHER MILLWORK, EXCEPT PREFABRICATED WOODEN BUILDING STRUCTURES", "16293 - MANUFACTURE OF WOODEN CONTAINERS", "32909 - OTHER MANUFACTURING INDUSTRIES N.E.C.", "16292 - MANUFACTURE OF HOUSEHOLD AND KITCHEN WOODEN WARE EXCEPT WOODEN FOOTWEAR", "16294 - MANUFACTURE OF ATTAP AND ATTAP PRODUCTS", "16295 - RATTAN PROCESSING", "16299 - MANUFACTURE OF OTHER PRODUCTS OF WOOD AND ARTICLES OF CORK, STRAW AND PLAITING MATERIALS N.E.C.", "17010 - MANUFACTURE OF PULP, PAPER AND PAPERBOARD", "17021 - MANUFACTURE OF CORRUGATED PAPER AND PAPERBOARD", "17022 - MANUFACTURE OF CONTAINERS AND BOXES OF PAPER AND PAPERBOARD", "17091 - MANUFACTURE OF JOSS PAPER AND OTHER RELATED CEREMONIAL PAPER PRODUCTS (INCLUDING EFFIGIES AND OTHER FUNERAL PAPER GOODS AND CHINESE LANTERNS)", "17092 - MANUFACTURE OF SANITARY TOWELS, TOILET PAPER, PAPER TOWELS, DISPOSABLE DIAPERS AND RELATED PAPER PRODUCTS", "17093 - MANUFACTURE OF PAPER CUPS, PLATES AND UTENSILS", "17094 - MANUFACTURE OF CARDS, ENVELOPES AND STATIONERY, UNPRINTED", "17099 - MANUFACTURE OF OTHER ARTICLES OF PAPER AND PAPERBOARD N.E.C. (E.G. PAPIER MACHE, WALLPAPER)", "18111 - PRINTING OF NEWSPAPERS", "18112 - PRINTING OF PERIODICALS, BOOKS AND MAGAZINES", "18113 - COMMERCIAL PRINTING (E.G. PRINTING OF BROCHURES, CARDS, ENVELOPES, LABELS AND STATIONERY)", "18114 - PRINTING OF CONTINUOUS AND FAN-FOLD FORMS", "18115 - SILK SCREEN PRINTING (INCLUDING METAL PRINTING)", "18119 - PRINTING N.E.C.", "18121 - BOOKBINDING (E.G. BOOK PACKAGING)", "18129 - SERVICE ACTIVITIES RELATED TO PRINTING N.E.C. (INCLUDING PLATE-MAKING)", "18122 - COLOUR SEPARATION", "18200 - REPRODUCTION OF RECORDED MEDIA (INCLUDING REPRODUCTION OF PHONOGRAPH RECORDS, RECORDED MAGNETIC TAPES, COMPACT DISCS AND NON-CUSTOMISED SOFTWARE)", "19100 - MANUFACTURE OF COKE OVEN PRODUCTS", "19201 - PETROLEUM REFINERIES", "19202 - MANUFACTURE OF PETROLEUM LUBRICATING OIL", "19209 - MANUFACTURE OF REFINED PETROLEUM PRODUCTS N.E.C.", "20111 - MANUFACTURE OF INDUSTRIAL GASES AND DRY ICE", "20112 - MANUFACTURE OF BASIC INDUSTRIAL ACIDS AND ALKALIS", "20113 - MANUFACTURE OF BASIC CHEMICALS EXCEPT FERTILISERS AND NITROGEN", "20114 - MANUFACTURE OF SOLVENTS", "20119 - MANUFACTURE OF BASIC CHEMICALS N.E.C.", "20120 - MANUFACTURE OF FERTILISERS AND NITROGEN COMPOUNDS", "20131 - MANUFACTURE OF PETROCHEMICAL PRIMARY PRODUCTS (E.G. OLEFINS, AROMATICS, BASIC BUILDING BLOCKS)", "20132 - MANUFACTURE OF DERIVATIVES AND INTERMEDIATES PRODUCED FROM BASIC BUILDING BLOCKS (E.G. ACETYLS, ACRYLICS, OXOCHEMICALS, STYRENE, PHENOLIC, ETHYLENE OXIDE DERIVATIVES AND POLYMERS)", "20133 - MANUFACTURE OF SYNTHETIC RUBBER", "20210 - MANUFACTURE OF PESTICIDES AND OTHER AGRO-CHEMICAL PRODUCTS (INCLUDING INSECTICIDES, HERBICIDES AND DISINFECTANTS)", "20221 - MANUFACTURE OF PAINTS", "20222 - MANUFACTURE OF VARNISHES AND LACQUERS (INCLUDING ENAMELS)", "20229 - MANUFACTURE OF PAINTS, VARNISHES AND SIMILAR COATINGS AND MASTICS N.E.C.", "20231 - MANUFACTURE OF SOAP, DETERGENTS, WASHING AND OTHER CLEANING PREPARATIONS", "20232 - MANUFACTURE OF PERFUMES AND FRAGRANCES", "20233 - MANUFACTURE OF COSMETICS AND TOILETRIES", "20234 - MANUFACTURE OF WAXES AND POLISHES AND DEODORISING PREPARATIONS", "20241 - MANUFACTURE OF FOOD CHEMICALS AND ADDITIVES (E.G. FLAVOURS, PRESERVATIVES AND COLOURINGS)", "20242 - MANUFACTURE OF ADDITIVES FOR MINERAL OIL (E.G. LUBRICANT AND FUEL ADDITIVES)", "20249 - MANUFACTURE OF ADDITIVES N.E.C.", "20291 - MANUFACTURE OF EPOXY MOULDING COMPOUNDS AND PHENOLIC MOULDING COMPOUNDS", "20292 - MANUFACTURE OF ULTRAPURE ELECTRONIC CHEMICALS, MATERIALS AND LAMINATES", "20293 - MANUFACTURE OF WATER TREATMENT, WASTE TREATMENT AND OILFIELD CHEMICALS", "20294 - MANUFACTURE OF INKS, DYESTUFFS, PIGMENTS AND CARBON BLACK", "20295 - MANUFACTURE OF PHOTOGRAPHIC FILM, PAPER, PLATE AND CHEMICALS", "20296 - MANUFACTURE OF ADHESIVES AND SEALANTS", "20297 - MANUFACTURE OF CATALYSTS AND CATALYST REGENERATION", "20298 - MANUFACTURE OF BIOFUELS", "20299 - MANUFACTURE OF OTHER CHEMICAL PRODUCTS N.E.C. (E.G. GELATIN AND DERIVATIVES, LAUNDRY BLUE, EXPLOSIVES, PROCESSED SALTS, INDUSTRIAL STARCH, INCENSE AND JOSS STICKS, CAMPHOR PRODUCTS)", "20300 - MANUFACTURE OF MAN-MADE FIBRES EXCEPT GLASS", "21011 - MANUFACTURE OF PHARMACEUTICAL INTERMEDIATES AND FINE CHEMICALS FOR HUMAN USE", "21012 - MANUFACTURE OF PHARMACEUTICAL PRODUCTS AND PREPARATIONS FOR HUMAN USE (E.G. TABLETED PRODUCTS)", "21013 - MANUFACTURE OF PHARMACEUTICAL PRODUCTS FOR VETERINARY USE", "21021 - MANUFACTURE OF VACCINES FOR HUMAN USE", "21022 - MANUFACTURE OF OTHER BIOLOGICAL PRODUCTS AND PREPARATIONS FOR HUMAN USE", "21023 - MANUFACTURE OF BIOLOGICAL PRODUCTS AND PREPARATIONS FOR VETERINARY USE", "21030 - MANUFACTURE OF TRADITIONAL CHINESE MEDICINE", "22111 - PROCESSING OF RUBBER (INCLUDING PROCESSING OF RUBBER LATEX)", "22112 - GRADING AND PACKING OF RUBBER", "22119 - PROCESSING OF NATURAL GUMS N.E.C. (E.G. GUM DAMAR, JELUTONG)", "22121 - MANUFACTURE OF TYRES AND TUBES", "22122 - RETREADING AND VULCANISING OF TYRES", "22191 - MANUFACTURE OF FOAM RUBBER PRODUCTS (EXCLUDING FOAM RUBBER MATTRESSES)", "22192 - MANUFACTURE OF RUBBER AUTOMOTIVE PARTS", "22193 - MANUFACTURE OF INDUSTRIAL AND MECHANICAL RUBBER GOODS", "22194 - MANUFACTURE OF RUBBER FLOORINGS", "22199 - MANUFACTURE OF OTHER RUBBER PRODUCTS N.E.C. (EXCEPT RUBBER FOOTWEAR AND TOYS)", "22211 - MANUFACTURE OF PLASTIC TABLEWARE, HOUSEHOLD AND KITCHEN WARE (EXCLUDING DISPOSABLE UTENSILS)", "22212 - MANUFACTURE OF STYROFOAM AND PLASTIC DISPOSABLE UTENSILS", "22213 - MANUFACTURE OF PLASTIC SHEET, FILM AND ARTICLES THEREOF (E.G. POLYTHENE AND POLYPROPYLENE BAGS)", "22214 - MANUFACTURE OF PLASTIC BOTTLES, BOXES AND CONTAINERS (EXCEPT FOR HOUSEHOLD USE)", "22215 - MANUFACTURE OF PLASTIC PIPES AND TUBES", "22216 - MANUFACTURE OF PLASTIC PRECISION ENGINEERING PARTS", "22217 - MANUFACTURE OF PVC FILES, HOLDERS AND ALBUMS", "22218 - MANUFACTURE OF PLASTIC CABLE TIES", "22219 - MANUFACTURE OF PLASTIC PRODUCTS N.E.C. (EXCEPT PLASTIC FOOTWEAR AND TOYS)", "22220 - PLASTIC PRODUCT SERVICES", "23100 - MANUFACTURE OF GLASS AND GLASS PRODUCTS (INCLUDING YARN OF GLASS FIBRES)", "23911 - MANUFACTURE OF BRICKS", "23912 - MANUFACTURE OF TILES, PIPES AND CHANNELS (INCLUDING CLAY ROOFING, WALL AND FLOOR TILES, AND EARTHEN AND GLAZED PIPES)", "23919 - MANUFACTURE OF CLAY PRODUCTS N.E.C.", "23931 - MANUFACTURE OF PLUMBING FIXTURES AND FITTINGS OF VITREOUS CHINA, CHINA AND EARTHENWARE (E.G. SINKS, CLOSETS, BOWLS)", "23939 - MANUFACTURE OF OTHER PORCELAIN AND CERAMIC PRODUCTS N.E.C.", "23940 - MANUFACTURE OF CEMENT, LIME AND PLASTER", "23951 - MANUFACTURE OF READY-MIX CONCRETE", "23959 - MANUFACTURE OF ARTICLES OF CONCRETE, CEMENT AND PLASTER N.E.C. (EXCEPT PRECAST CONCRETE COMPONENTS)", "23960 - CUTTING, SHAPING AND FINISHING OF STONE (INCLUDING TOMB-STONES AND FURNITURE OF STONE OR MARBLE)", "23991 - MANUFACTURE OF ASBESTOS PRODUCTS EXCEPT ASBESTOS PAPER", "23992 - MANUFACTURE OF FIBREGLASS AND FIBREGLASS PRODUCTS", "23993 - MANUFACTURE OF OTHER INSULATION PRODUCTS (E.G. CERAMIC IC PACKAGES, REFRACTORY MATERIALS, ROCK WOOL PRODUCTS, INSULATION SERVICES)", "23994 - MANUFACTURE OF NON-STRUCTURAL PRE-CAST COMPONENTS (E.G. LIGHTWEIGHT PARTITIONS, SECONDARY ROOF SLABS)", "23995 - MANUFACTURE OF ASPHALT PREMIX", "23999 - MANUFACTURE OF OTHER NON-METALLIC MINERAL PRODUCTS N.E.C. (E.G. GRAPHITE PRODUCTS)", "24101 - IRON AND STEEL ROLLING MILLS", "24102 - MANUFACTURE OF FERROUS METAL ALLOYS", "24109 - MANUFACTURE OF BASIC IRON AND STEEL N.E.C. (INCLUDING SMELTING)", "24201 - TIN SMELTING", "24202 - MANUFACTURE OF NON-FERROUS METAL ALLOYS", "24209 - MANUFACTURE OF BASIC PRECIOUS AND NON-FERROUS METALS N.E.C.", "24310 - IRON AND STEEL FOUNDRIES", "24320 - NON-FERROUS METAL FOUNDRIES", "25111 - MANUFACTURE OF METAL DOORS, WINDOW AND DOOR FRAMES, GRILLES AND GRATINGS", "25112 - MANUFACTURE OF METAL STRIPS AND SLABS (E.G. AWNINGS)", "25113 - MANUFACTURE OF METAL PIPES AND TUBES", "25114 - MANUFACTURE OF STEEL STRUCTURAL COMPONENT", "25119 - MANUFACTURE OF STRUCTURAL METAL PRODUCTS N.E.C. (E.G. METAL SECTIONS, CORRUGATED SHEETS)", "25120 - MANUFACTURE AND REPAIR OF TANKS, RESERVOIRS AND CONTAINERS OF METAL (E.G. METAL CYLINDERS, STORAGE VESSELS AND CONTAINERS FOR COMPRESSED OR LIQUEFIED GAS)", "25131 - MANUFACTURE AND REPAIR OF HEATING BOILERS, RADIATORS AND CORRECTORS (INCLUDING PARTS)", "25139 - MANUFACTURE AND REPAIR OF STEAM GENERATORS N.E.C. (EXCEPT CENTRAL HEATING HOT WATER BOILERS)", "25200 - MANUFACTURE AND REPAIR OF WEAPONS AND AMMUNITION (E.G. ORDNANCE AND ACCESSORIES)", "25911 - IRON AND STEEL AND NON-FERROUS FORGINGS", "25912 - MANUFACTURE OF METAL CAPS (E.G. CROWN CORKS)", "25913 - MANUFACTURE OF LEADFRAME", "25914 - METAL STAMPINGS EXCEPT METAL CAPS", "25919 - PRESSING AND ROLL-FORMING OF METAL AND POWDER METALLURGY N.E.C.", "25921 - ELECTROPLATING AND PLATING OF METALS AND FORMED PRODUCTS", "25922 - POLISHING OF METALS AND FORMED PRODUCTS", "25923 - RUSTPROOFING OF METALS AND FORMED PRODUCTS", "25924 - HEAT TREATMENT FOR METALS", "25929 - METAL PRODUCT SERVICES N.E.C.", "25931 - MANUFACTURE OF TABLE, KITCHEN AND OTHER CUTLERY", "25932 - MANUFACTURE OF HAND AND EDGE TOOLS", "25939 - MANUFACTURE OF GENERAL HARDWARE (INCLUDING BLACKSMITH SHOPS) N.E.C. (E.G. LOCKS AND KEYS, HINGES, CLAMPS, HOOKS)", "25941 - MANUFACTURE OF UNINSULATED WIRE (E.G. ELECTRONIC COMPONENT WIRE, BONDING WIRE)", "25949 - MANUFACTURE OF METAL WIRE AND CABLE PRODUCTS N.E.C.", "25951 - MANUFACTURE OF TINPLATE CANS", "25952 - MANUFACTURE OF OTHER TINPLATE AND ZINC ARTICLES (E.G. PAILS, BUCKETS, DUSTBINS)", "25959 - MANUFACTURE OF METAL CANS, CONTAINERS AND RELATED PRODUCTS N.E.C. (E.G. BARRELS, STEEL DRUMS, KEGS)", "25991 - MANUFACTURE OF SANITARY WARE OF ENAMELLED IRON AND METAL AND PLUMBERS' WARE OF BRASS", "25992 - MANUFACTURE OF PLUMBING, HEATING AND RELATED PRODUCTS (INCLUDING PARTS) EXCEPT ELECTRIC", "25993 - MANUFACTURE OF BOLTS, NUTS, RIVETS, FASTENERS AND SCREW MACHINE PRODUCTS", "25994 - MANUFACTURE OF PIPE FITTINGS", "25995 - MANUFACTURE OF SPRINGS", "25996 - MANUFACTURE OF KITCHEN AND HOUSEHOLD UTENSILS (E.G. STEEL SHELF, SHOWCASE COUNTERS, KITCHEN TROLLEYS DISPLAY RACKS, SINK BOWLS AND OTHER CUSTOMISED KITCHEN EQUIPMENT)", "25997 - MANUFACTURE OF METAL PRECISION COMPONENTS", "25998 - SLITTING, SHEARING AND PASTING OF METAL SHEETING", "25999 - MANUFACTURE OF OTHER FABRICATED METAL PRODUCTS N.E.C. (INCLUDING VOICE COIL MAGNETS)", "26111 - MANUFACTURE OF DISCRETE DEVICES (E.G. DIODES, LIGHT-EMITTING DIODES, TRANSISTORS AND RECTIFIERS)", "26112 - SEMICONDUCTOR WAFER FABRICATION", "26113 - ASSEMBLY AND TESTING OF SEMICONDUCTORS", "26114 - MANUFACTURE OF SOLAR WAFERS", "26115 - MANUFACTURE OF SOLAR CELLS", "26119 - MANUFACTURE OF SEMICONDUCTOR DEVICES N.E.C.", "26121 - MANUFACTURE OF CAPACITORS", "26129 - MANUFACTURE OF OTHER ELECTRONIC COMPONENTS AND BOARDS N.E.C.", "26122 - MANUFACTURE OF PRINTED CIRCUIT BOARDS WITHOUT ELECTRONIC PARTS", "26123 - MANUFACTURE OF PRINTED CIRCUIT BOARDS WITH ELECTRONIC PARTS", "26124 - MANUFACTURE OF PIEZO-ELECTRIC DEVICES (E.G. QUARTZ CRYSTALS, QUARTZ CRYSTAL FILTERS, DELAY LINES)", "26125 - MANUFACTURE OF ELECTRONIC DISPLAY DEVICES EXCEPT LIGHT EMITTING DIODES", "26126 - MANUFACTURE OF ELECTRONIC CONNECTORS", "26201 - MANUFACTURE OF COMPUTERS AND DATA PROCESSING EQUIPMENT EXCEPT COMPUTER PERIPHERAL EQUIPMENT", "26202 - MANUFACTURE OF DISK DRIVES (INCLUDING CD-ROM DRIVES, DVD-ROM DRIVES, OPTICAL DRIVES, FLASH DRIVES, TAPE DRIVES, SOLID STATE DRIVES, STORAGE SUBSYSTEMS)", "26203 - MANUFACTURE OF PRINTERS", "26204 - MANUFACTURE OF SMART CARDS AND RELATED PRODUCTS (E.G. SMART CARD READERS)", "26209 - MANUFACTURE OF COMPUTERS AND PERIPHERAL EQUIPMENT N.E.C.", "26301 - MANUFACTURE OF TELECOMMUNICATIONS APPARATUS (E.G. PBX EQUIPMENT, TELEPHONES EXCEPT CELLULAR)", "26302 - MANUFACTURE OF NETWORKING PRODUCTS (E.G. ROUTERS, SWITCHES)", "26303 - MANUFACTURE OF WIRELESS COMMUNICATIONS EQUIPMENT (E.G. CELLULAR PHONES)", "26304 - MANUFACTURE OF ELECTRONIC SECURITY SYSTEMS (INCLUDING ELECTRONIC SENSORS, BURGLAR AND FIRE ALARM SYSTEMS)", "26309 - MANUFACTURE OF COMMUNICATIONS EQUIPMENT N.E.C.", "26400 - MANUFACTURE OF CONSUMER ELECTRONICS", "26511 - MANUFACTURE AND REPAIR OF ENGINEERING AND SCIENTIFIC INSTRUMENTS", "26512 - MANUFACTURE AND REPAIR OF MEASURING DEVICES (E.G. METERS)", "26513 - MANUFACTURE AND REPAIR OF PROCESS CONTROL EQUIPMENT AND RELATED PRODUCTS", "26521 - MANUFACTURE OF FULLY ELECTRONIC WATCHES AND CLOCKS", "26522 - MANUFACTURE OF ELECTRO-MECHANICAL WATCHES AND CLOCKS (E.G. WATCHES AND CLOCKS WITH MOVING PARTS AND BATTERY)", "26523 - MANUFACTURE OF MECHANICAL WATCHES AND CLOCKS", "26524 - MANUFACTURE OF PARTS AND ACCESSORIES FOR WATCHES AND CLOCKS", "26601 - MANUFACTURE AND REPAIR OF ELECTROTHERAPEUTIC DEVICES", "26602 - MANUFACTURE AND REPAIR OF IRRADIATION AND ELECTROMEDICAL EQUIPMENT AND INSTRUMENTS", "26701 - MANUFACTURE OF PHOTOGRAPHIC EQUIPMENT AND PARTS (INCLUDING LENSES)", "26709 - MANUFACTURE OF OPTICAL INSTRUMENTS AND PHOTOGRAPHIC EQUIPMENT N.E.C.", "26801 - MANUFACTURE OF DISK MEDIA", "26802 - MANUFACTURE OF BLANK MAGNETIC TAPES, DISKETTES, BLU-RAY TECHNOLOGY DISCS, CDS, DVDS AND VCDS", "27101 - MANUFACTURE AND REPAIR OF ELECTRIC MOTORS", "27102 - MANUFACTURE AND REPAIR OF ELECTRIC GENERATORS", "27103 - MANUFACTURE AND REPAIR OF TRANSFORMERS", "27104 - MANUFACTURE AND REPAIR OF SWITCHGEAR AND SWITCHBOARD APPARATUS (INCLUDING SWITCHES, CIRCUIT BREAKERS AND ELECTRICAL CONTROL PANELS)", "27109 - MANUFACTURE AND REPAIR OF ELECTRIC MOTORS, GENERATORS, TRANSFORMERS AND ELECTRICITY DISTRIBUTION AND CONTROL APPARATUS N.E.C. (E.G. BUSBAR TRUNKING)", "27201 - MANUFACTURE OF PRIMARY BATTERIES", "27202 - MANUFACTURE OF SECONDARY BATTERIES", "27321 - MANUFACTURE OF TELECOMMUNICATIONS CABLES AND WIRES", "27322 - MANUFACTURE OF ELECTRIC POWER CABLES AND WIRES", "27323 - MANUFACTURE OF ENAMELLED WIRES (USED FOR WINDING OF MOTORS, TRANSFORMERS ETC)", "27324 - MANUFACTURE OF WIRE AND CABLE ASSEMBLIES AND HARNESSES", "27329 - MANUFACTURE OF OTHER ELECTRONIC AND ELECTRIC WIRES AND CABLES N.E.C.", "27330 - MANUFACTURE AND REPAIR OF WIRING DEVICES", "27400 - MANUFACTURE AND REPAIR OF ELECTRIC LAMPS AND LIGHTING EQUIPMENT (INCLUDING SILVER REFLECTORS, FITTINGS AND PARTS)", "27501 - MANUFACTURE OF ELECTRICAL HOUSEHOLD APPLIANCES (E.G. REFRIGERATORS, HOT PLATES, TOASTERS, FOOD MIXERS, COOKERS, HAIR DRYERS, FANS, SHAVERS)", "27509 - MANUFACTURE OF DOMESTIC APPLIANCES N.E.C. (E.G. NON-ELECTRIC COOKING RANGES, GRATES, STOVES)", "27901 - MANUFACTURE OF FUEL CELLS", "27902 - MANUFACTURE OF ELECTRICAL MACHINERY, APPARATUS, APPLIANCES AND SUPPLIES (INCLUDING SOUND OR VISUAL SIGNALLING APPARATUS, ELECTRICAL INSULATORS EXCEPT PORCELAIN OR GLASS)", "28111 - MANUFACTURE AND REPAIR OF ENGINES AND TURBINES EXCEPT AIRCRAFT, VEHICLE, CYCLE AND MARINE ENGINES", "28112 - MANUFACTURE AND REPAIR OF MARINE ENGINE", "28121 - MANUFACTURE AND REPAIR OF PUMPS (E.G. HYDRAULIC PUMPS, DRAINAGE PUMPS)", "28122 - MANUFACTURE AND REPAIR OF TAPS, COCKS AND VALVES", "28129 - MANUFACTURE AND REPAIR OF PUMPS, COMPRESSORS, TAPS AND VALVES N.E.C.", "28141 - MANUFACTURE OF BEARINGS (INCLUDING DISC AND BALL BEARINGS)", "28142 - MANUFACTURE AND REPAIR OF GEARS, GEARING AND DRIVING ELEMENTS", "28150 - MANUFACTURE AND REPAIR OF OVENS, FURNACES AND FURNACE BURNERS", "28161 - MANUFACTURE AND REPAIR OF LIFTING AND HOISTING MACHINERY EXCEPT ELECTRICAL", "28162 - MANUFACTURE AND REPAIR OF LIFTS AND ESCALATORS", "28169 - MANUFACTURE AND REPAIR OF LIFTING AND HANDLING EQUIPMENT N.E.C. (INCLUDING CONVEYING SYSTEMS AND INDUSTRIAL AUTOMATED SYSTEMS)", "28171 - MANUFACTURE OF OFFICE MACHINERY AND EQUIPMENT (EXCEPT COMPUTERS AND PERIPHERAL EQUIPMENT)", "28172 - REPAIR AND MAINTENANCE OF OFFICE MACHINERY AND EQUIPMENT", "28181 - MANUFACTURE AND REPAIR OF INDUSTRIAL ROBOTS (INCLUDING AUTOMATED GUIDED VEHICLES (AGVS))", "28182 - MANUFACTURE AND REPAIR OF SERVICE ROBOTS", "28189 - MANUFACTURE AND REPAIR OF ROBOTS N.E.C.", "28191 - MANUFACTURE AND REPAIR OF REFRIGERATING, AIR-CONDITIONING AND VENTILATING MACHINERY AND EQUIPMENT EXCEPT HOUSEHOLD REFRIGERATORS", "28192 - MANUFACTURE AND REPAIR OF SEPARATION/MIXING EQUIPMENT (E.G. FILTERS, SEPARATORS, MIXERS)", "28193 - MANUFACTURE AND REPAIR OF SOLAR MODULES AND PANELS", "28194 - MANUFACTURE AND REPAIR OF WELDING AND SOLDERING EQUIPMENT (INCLUDING ARC WELDING ELECTRODES)", "28195 - MANUFACTURE AND REPAIR OF PACKAGING MACHINERY", "28199 - MANUFACTURE AND REPAIR OF OTHER GENERAL PURPOSE MACHINERY AND EQUIPMENT EXCEPT ELECTRICAL AND ELECTRONIC N.E.C.", "28210 - MANUFACTURE AND REPAIR OF AGRICULTURAL AND FORESTRY MACHINERY", "28221 - MANUFACTURE AND REPAIR OF MACHINERY AND MACHINE-TOOLS - METAL CUTTING TYPES (E.G. LATHES, MILLING MACHINES, SHAPING MACHINES)", "28222 - MANUFACTURE AND REPAIR OF MACHINERY AND MACHINE-TOOLS - METAL FORMING TYPES (E.G. FORGING PRESS, COLD HEADING MACHINES, PRESS BREAKS)", "28223 - MANUFACTURE OF DIES, MOULDS, TOOLS, JIGS AND FIXTURES", "28224 - MANUFACTURE OF MACHINE TOOL ACCESSORIES (E.G. SMALL CUTTING TOOLS, PRECISION MEASURING TOOLS AND OTHER ATTACHMENTS SUCH AS TOOL HOLDERS)", "28225 - MANUFACTURE AND REPAIR OF METAL ADDITIVE MANUFACTURING (AM) EQUIPMENT (INCLUDING METAL POWDER)", "28229 - MANUFACTURE AND REPAIR OF METAL-FORMING MACHINERY AND MACHINE TOOLS N.E.C. (INCLUDING METALWORKING MACHINERY)", "28241 - MANUFACTURE AND REPAIR OF OIL RIGS", "28242 - MANUFACTURE AND REPAIR OF OTHER OILFIELD AND GASFIELD MACHINERY AND EQUIPMENT (E.G. DERRICKS, TOOL JOINTS)", "28243 - MANUFACTURE AND REPAIR OF CONSTRUCTION MACHINERY AND PARTS", "28249 - MANUFACTURE AND REPAIR OF MACHINERY FOR MINING, QUARRYING AND CONSTRUCTION N.E.C.", "28251 - MANUFACTURE AND REPAIR OF MACHINERY FOR FOOD PRODUCTS PROCESSING", "28252 - MANUFACTURE AND REPAIR OF MACHINERY FOR BEVERAGE PRODUCTION", "28253 - MANUFACTURE AND REPAIR OF MACHINERY FOR TOBACCO PROCESSING", "28260 - MANUFACTURE AND REPAIR OF MACHINERY FOR TEXTILE, APPAREL AND LEATHER PRODUCTION", "28271 - MANUFACTURE OF PROBE CARDS", "28272 - MANUFACTURE OF BONDING TOOLS", "28273 - MANUFACTURE AND REPAIR OF SEMICONDUCTOR ASSEMBLY AND TESTING EQUIPMENT (INCLUDING COMPUTER BURN-IN SYSTEM)", "28274 - MANUFACTURE AND REPAIR OF SEMICONDUCTOR FOUNDRY EQUIPMENT", "28291 - MANUFACTURE AND REPAIR OF WATER/WASTE WATER TREATMENT EQUIPMENT", "28292 - MANUFACTURE AND REPAIR OF PLASTIC PROCESSING MACHINERY", "28293 - MANUFACTURE AND REPAIR OF WOODWORKING MACHINERY", "28294 - MANUFACTURE AND REPAIR OF POLYMER ADDITIVE MANUFACTURING (AM) EQUIPMENT", "28299 - MANUFACTURE AND REPAIR OF OTHER SPECIAL PURPOSE MACHINERY N.E.C. (INCLUDING PLATING EQUIPMENT, INDUSTRIAL PAINT MIXERS AND CHEMICAL MIXING EQUIPMENT)", "28300 - INSTALLATION OF INDUSTRIAL MACHINERY AND EQUIPMENT, MECHANICAL ENGINEERING WORKS", "29100 - MANUFACTURE AND ASSEMBLY OF MOTOR VEHICLES", "29200 - MANUFACTURE OF MOTOR VEHICLE BODIES (COACHWORK), TRAILERS AND SEMI-TRAILERS", "29300 - MANUFACTURE OF PARTS AND ACCESSORIES FOR MOTOR VEHICLES (E.G. ENGINE PARTS, BRAKES, CLUTCHES, AXLES, GEAR BOXES)", "30110 - BUILDING AND REPAIRING OF SHIPS, TANKERS AND OTHER OCEAN-GOING VESSELS (INCLUDING CONVERSION OF SHIPS INTO OFF-SHORE STRUCTURES)", "30120 - BUILDING AND REPAIR OF PLEASURE CRAFTS, LIGHTERS AND BOATS", "30200 - MANUFACTURE AND REPAIR OF RAILWAY AND TRAMWAY LOCOMOTIVES AND ROLLING STOCK (INCLUDING SPECIALISED PARTS EXCEPT ENGINES, ELECTRIC MOTORS AND SIGNALLING EQUIPMENT)", "30301 - MANUFACTURE AND ASSEMBLY OF AIRCRAFT AND SPACECRAFT (INCLUDING AIRCRAFT ENGINES AND OTHER PARTS)", "30302 - REPAIR AND SERVICING OF AIRCRAFT AND SPACECRAFT (INCLUDING AIRCRAFT ENGINES AND OTHER PARTS)", "30400 - MANUFACTURE OF MILITARY FIGHTING VEHICLES", "30910 - MANUFACTURE AND ASSEMBLY OF MOTORCYCLES AND SCOOTERS (INCLUDING ENGINES AND OTHER PARTS AND ACCESSORIES)", "30920 - MANUFACTURE AND ASSEMBLY OF BICYCLES, TRICYCLES, TRISHAWS AND INVALID CARRIAGES (INCLUDING PARTS AND ACCESSORIES)", "30990 - MANUFACTURE OF OTHER TRANSPORT EQUIPMENT N.E.C. (E.G. CARTS, WAGONS)", "31001 - MANUFACTURE OF FURNITURE AND FIXTURES OF WOOD (INCLUDING UPHOLSTERY)", "31002 - MANUFACTURE OF FURNITURE OF RATTAN AND CANE", "31003 - MANUFACTURE OF FURNITURE AND FIXTURES PRIMARILY OF METAL", "31004 - MANUFACTURE OF FURNITURE OF OTHER MATERIALS EXCEPT PRIMARILY OF STONE, CERAMIC OR CONCRETE", "31005 - MANUFACTURE OF WINDOW AND DOOR SCREENS AND SHADES", "31006 - MANUFACTURE OF MATTRESSES INCLUDING THOSE OF FOAM RUBBER", "31009 - MANUFACTURE OF FURNITURE N.E.C.", "32111 - MANUFACTURE OF JEWELLERY EXCEPT COSTUME JEWELLERY", "32112 - MANUFACTURE OF PEWTER WARE", "32119 - MANUFACTURE OF JEWELLERY AND RELATED ARTICLES N.E.C. (EXCEPT COSTUME JEWELLERY)", "32120 - MANUFACTURE OF COSTUME JEWELLERY AND RELATED ARTICLES", "32200 - MANUFACTURE OF MUSICAL INSTRUMENTS", "32300 - MANUFACTURE OF SPORTING AND ATHLETIC GOODS (INCLUDING GYM, DIVING AND UNDERWATER EQUIPMENT)", "32400 - MANUFACTURE OF GAMES AND TOYS", "32501 - MANUFACTURE OF MEDICAL RESEARCH AND CLINICAL DIAGNOSTIC INSTRUMENTS AND SUPPLIES (E.G. REAGENTS)", "32502 - MANUFACTURE OF MEDICAL DISPOSABLES AND SURGICAL SUPPLIES (E.G. TEST KITS, SYRINGES, TUBES, FLUID ADMINISTRATION SETS)", "32503 - MANUFACTURE OF IMPLANTABLES AND ARTIFICIAL LIMBS (E.G. HEART VALVES, STENTS, ORTHOPAEDIC IMPLANTS)", "32504 - MANUFACTURE OF OPHTHALMIC GOODS (E.G. SPECTACLES, CONTACT LENSES AND PARTS)", "32509 - MANUFACTURE OF MEDICAL AND DENTAL TOOLS, INSTRUMENTS AND SUPPLIES N.E.C.", "32901 - MANUFACTURE OF SIGNS AND ADVERTISING DISPLAYS (INCLUDING NEON-LIGHTING)", "35101 - GENERATION OF ELECTRICITY BY FOSSIL FUELS", "35102 - GENERATION OF ELECTRICITY BY OTHER SOURCES (E.G. SOLAR POWER, BIOFUELS ETC)", "35103 - TRANSMISSION, DISTRIBUTION AND SALE OF ELECTRICITY", "35104 - OTHER RELATED SERVICES (E.G. ELECTRICITY BROKERS, METER READING)", "35201 - MANUFACTURE OF GAS; DISTRIBUTION OF GASEOUS FUELS THROUGH MAINS", "35202 - PROCESSING OF NATURAL GAS", "35203 - OTHER RELATED SERVICES (E.G. ARRANGING FOR SALE OF NATURAL GAS)", "35300 - SUPPLY OF AIR OR WATER FOR COOLING OR HEATING PURPOSES", "36000 - COLLECTION, PURIFICATION AND DISTRIBUTION OF WATER (INCLUDING DESALINATION OF WATER)", "37000 - OPERATION OF SEWER SYSTEMS (INCLUDING SEWER TREATMENT FACILITIES)", "38100 - COLLECTION OF WASTE", "38200 - TREATMENT AND DISPOSAL OF WASTE (INCLUDING REMEDIATION ACTIVITIES)", "38301 - RECYCLING OF METAL WASTE AND SCRAP", "38309 - RECYCLING OF NON-METAL WASTE N.E.C. (E.G. MARINE CLAY AND OIL SLUDGE)", "41001 - GENERAL CONTRACTORS (BUILDING CONSTRUCTION INCLUDING MAJOR UPGRADING WORKS)", "41002 - STRUCTURAL REPAIR CONTRACTORS", "41009 - BUILDING CONSTRUCTION N.E.C.", "42101 - GENERAL CONTRACTORS (NON-BUILDING CONSTRUCTION)", "42102 - ROAD AND RAILWAY CONSTRUCTION", "42103 - BRIDGE, TUNNEL, VIADUCT AND EXPRESSWAY CONSTRUCTION", "42201 - WATER AND GAS PIPE-LINE AND SEWER CONSTRUCTION", "42202 - COMMUNICATIONS AND POWER LINE CONSTRUCTION", "42901 - LAND RECLAMATION WORKS", "42902 - DAM AND DRAINAGE CONSTRUCTION", "42903 - MARINE CONSTRUCTION (E.G. HARBOURS, PIERS, DOCKS, WHARVES)", "42909 - CONSTRUCTION OF OTHER CIVIL ENGINEERING PROJECTS N.E.C. (E.G. PLAYGROUND SYSTEMS)", "43110 - WRECKING AND DEMOLITION WORKS", "43121 - SOIL INVESTIGATION, TREATMENT AND STABILISATION (INCLUDING GROUTING AND GUNITING)", "43122 - EXCAVATION AND EARTHMOVING WORKS", "43129 - SITE PREPARATION N.E.C.", "43210 - ELECTRICAL WORKS", "43220 - INSTALLATION OF PLUMBING, HEATING (NON-ELECTRIC) AND AIR-CONDITIONING SYSTEMS", "43291 - INSTALLATION AND ERECTION OF BUILDING EQUIPMENT (E.G. LIFTS, ESCALATORS, TRAVELLATORS)", "43292 - INSTALLATION OF FIRE PROTECTION AND SECURITY ALARM SYSTEMS", "43293 - INSTALLATION OF BUILDING AUTOMATED SYSTEMS FOR REMOTE MONITORING", "43294 - INSTALLATION OF AWNING AND WINDOW SHADES", "43295 - INSTALLATION OF THERMAL AND SOUND INSULATION (INCLUDING SOLAR CONTROL FILMS)", "43296 - SIGNCRAFT INSTALLATION", "43299 - OTHER CONSTRUCTION INSTALLATION N.E.C.", "43301 - RENOVATION CONTRACTORS", "43302 - TILE SETTING AND PLASTERING", "43303 - JOINERY AND OTHER WOODWORKS (E.G. LAMINATED OR PARQUET FLOORING)", "43304 - PAINTING AND DECORATING", "43305 - GLASS AND GLAZING WORKS (INCLUDING MIRROR AND SHOWER SCREEN INSTALLATION)", "43306 - CURTAIN WALLING/CLADDING WORKS", "43307 - INSTALLATION OF DOORS, GATES, GRILLES AND WINDOWS", "43309 - BUILDING COMPLETION AND FINISHING N.E.C.", "43901 - FOUNDATION WORKS (INCLUDING MICROPILING, CONVENTIONAL PILING AND UNDERPINNING)", "43902 - BRICK LAYING, STONE SETTING AND CEMENT WORKS", "43903 - ROOFING WORKS (INCLUDING TIMBER CARCASSING)", "43905 - SCAFFOLDING WORKS", "43906 - SANDBLASTING/SHOTBLASTING WORKS (EXCEPT SHIPS)", "43909 - OTHER SPECIALISED CONSTRUCTION AND RELATED ACTIVITIES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "63209 - ONLINE MARKETPLACES FOR SERVICES N.E.C.", "46100 - WHOLESALE ON A FEE OR COMMISSION BASIS (EXCLUDING ONLINE MARKETPLACES)", "63201 - ONLINE MARKETPLACES FOR GOODS (INCLUDING FOOD)", "46211 - WHOLESALE OF CUT FLOWERS AND PLANTS", "46212 - WHOLESALE OF AQUARIUM FISHES (INCLUDING FOOD AND ACCESSORIES)", "46213 - WHOLESALE OF PET BIRDS AND ANIMALS (INCLUDING FOOD AND ACCESSORIES)", "46219 - WHOLESALE OF AGRICULTURAL RAW MATERIALS AND LIVE ANIMALS N.E.C. (EXCLUDING TROPICAL PRODUCE)", "46221 - WHOLESALE OF RUBBER (INCLUDING RUBBER BROKERS)", "46222 - WHOLESALE OF PEPPER AND OTHER SPICES", "46223 - WHOLESALE OF COFFEE, COCOA AND TEA", "46224 - WHOLESALE OF COCONUT", "46225 - WHOLESALE OF PALM OIL", "46229 - WHOLESALE OF TROPICAL PRODUCE N.E.C.", "46301 - WHOLESALE OF FRUITS AND VEGETABLES (INCLUDING FRESH AND FROZEN)", "46302 - WHOLESALE OF LIVESTOCK, MEAT, POULTRY, EGGS AND SEAFOOD (INCLUDING FRESH AND FROZEN)", "46303 - WHOLESALE OF A GENERAL LINE (WIDE RANGE) OF GROCERIES (E.G. CEREALS, SUGAR, EDIBLE OILS, SAUCES AND DAIRY PRODUCTS)", "46304 - WHOLESALE OF CONFECTIONERY AND BAKERY PRODUCTS", "46305 - WHOLESALE OF ICE-CREAM", "46306 - WHOLESALE OF HEALTH SUPPLEMENTS", "46307 - WHOLESALE OF LIQUOR, SOFT DRINKS AND BEVERAGES", "46308 - WHOLESALE OF TOBACCO PRODUCTS", "46309 - WHOLESALE OF FOOD, BEVERAGES AND TOBACCO N.E.C. (INCLUDING DRIED OR CANNED)", "46411 - WHOLESALE OF TEXTILES AND LEATHERS", "46412 - WHOLESALE OF ADULTS' CLOTHING", "46413 - WHOLESALE OF CHILDREN AND INFANTS’ CLOTHING (INCLUDING PRODUCTS AND ACCESSORIES FOR INFANTS)", "46414 - WHOLESALE OF FOOTWEAR", "46415 - WHOLESALE OF BAGS, LUGGAGE AND TRAVEL ACCESSORIES", "46416 - WHOLESALE OF SEWING AND CLOTHING ACCESSORIES (E.G. BUTTON, THREAD, LACE, ZIP, BELT, TIE)", "46421 - WHOLESALE OF JEWELLERY MADE FROM PRECIOUS METALS AND STONES", "46422 - WHOLESALE OF COSTUME JEWELLERY", "46423 - WHOLESALE OF WATCHES AND CLOCKS", "46424 - WHOLESALE OF COSMETICS AND TOILETRIES", "46429 - WHOLESALE OF PERSONAL EFFECTS N.E.C.", "46431 - WHOLESALE OF FURNITURE (INCLUDING MATTRESSES, CUSHIONS)", "46432 - WHOLESALE OF FURNISHINGS (INCLUDING CURTAINS, CARPETS, WALLPAPER)", "46433 - WHOLESALE OF LIGHTING AND LIGHTING ACCESSORIES", "46434 - WHOLESALE OF CROCKERY, CUTLERY AND KITCHEN UTENSILS", "46435 - WHOLESALE OF HOUSEHOLD ELECTRICAL APPLIANCES AND EQUIPMENT (INCLUDING HOUSEHOLD AIR-CONDITIONERS)", "46436 - WHOLESALE OF AUDIO AND VIDEO EQUIPMENT EXCEPT ELECTRICAL AND ELECTRONIC COMPONENTS (E.G. RADIO AND TELEVISION SETS, SOUND REPRODUCING AND RECORDING EQUIPMENT)", "46437 - WHOLESALE OF MUSICAL INSTRUMENTS AND SCORES", "46439 - WHOLESALE OF FURNITURE, HOME FURNISHINGS AND OTHER HOUSEHOLD EQUIPMENT N.E.C.", "46441 - WHOLESALE OF SPORTING GOODS AND EQUIPMENT (INCLUDING BICYCLES AND HEALTHCARE EQUIPMENT)", "46442 - WHOLESALE OF MUSIC AND VIDEO RECORDINGS (E.G. DVDS, BLU-RAY DISCS)", "46443 - WHOLESALE OF TOYS AND GAMES", "46444 - WHOLESALE OF COMPUTER GAMES (INCLUDING ELECTRONIC GAMES AND VIDEO GAME CONSOLES)", "46449 - WHOLESALE OF SPORTING AND OTHER RECREATIONAL GOODS N.E.C.", "46451 - WHOLESALE OF ANTIQUES AND WORKS OF ART", "46452 - WHOLESALE OF HANDICRAFTS AND GIFTS", "46453 - WHOLESALE OF ARTIFICIAL FLOWERS AND PLANTS", "46459 - WHOLESALE OF HANDICRAFTS AND FANCY GOODS N.E.C.", "46461 - WHOLESALE OF MEDICINAL AND PHARMACEUTICAL PRODUCTS (WESTERN)", "46462 - WHOLESALE OF MEDICINE AND HERBS (OTHER THAN WESTERN)", "46471 - WHOLESALE OF PAPER AND PAPER PRODUCTS", "46472 - WHOLESALE OF PACKAGING MATERIALS", "46473 - WHOLESALE OF STATIONERY", "46474 - WHOLESALE OF BOOKS AND MAGAZINES", "46479 - WHOLESALE OF PAPER, PAPER AND CELLOPHANE PRODUCTS AND STATIONERY N.E.C.", "46491 - WHOLESALE OF OPTICAL EQUIPMENT AND SUPPLIES (EXCLUDING BINOCULARS)", "46492 - WHOLESALE OF PHOTOGRAPHIC EQUIPMENT AND SUPPLIES (INCLUDING BINOCULARS)", "46499 - WHOLESALE OF OTHER HOUSEHOLD GOODS N.E.C.", "46511 - WHOLESALE OF COMPUTER HARDWARE AND PERIPHERAL EQUIPMENT (EXCEPT CYBERSECURITY RELATED HARDWARE AND PERIPHERAL EQUIPMENT)", "46512 - WHOLESALE OF COMPUTER SOFTWARE (EXCEPT GAMES AND CYBERSECURITY SOFTWARE)", "46513 - WHOLESALE OF COMPUTER ACCESSORIES (E.G. MEMORY CARDS, COMPUTER CABLES)", "46514 - WHOLESALE OF CYBERSECURITY SOFTWARE, HARDWARE AND PERIPHERAL EQUIPMENT", "46521 - WHOLESALE OF TELECOMMUNICATIONS EQUIPMENT (EXCLUDING HANDPHONES)", "46522 - WHOLESALE OF ELECTRONIC COMPONENTS", "46523 - WHOLESALE OF HANDPHONES, HANDPHONE PERIPHERAL EQUIPMENT AND OTHER TELECOMMUNICATIONS EQUIPMENT", "46530 - WHOLESALE OF AGRICULTURAL MACHINERY, EQUIPMENT AND SUPPLIES", "46541 - WHOLESALE OF INDUSTRIAL MACHINERY AND EQUIPMENT (E.G. INDUSTRIAL CRANE)", "46542 - WHOLESALE OF CONSTRUCTION EQUIPMENT (E.G. CONCRETE MIXER)", "46543 - WHOLESALE OF LIFTS, ESCALATORS AND INDUSTRIAL AND OFFICE AIR-CONDITIONING EQUIPMENT", "46544 - WHOLESALE OF ELECTRICAL AND WIRING ACCESSORIES", "46549 - WHOLESALE OF INDUSTRIAL, CONSTRUCTION AND RELATED MACHINERY AND EQUIPMENT N.E.C.", "46551 - WHOLESALE OF MARINE EQUIPMENT AND ACCESSORIES (INCLUDING MARINE NAVIGATIONAL EQUIPMENT AND RADAR)", "46552 - WHOLESALE OF AIRCRAFT EQUIPMENT AND SUPPLIES (INCLUDING AERONAUTICAL EQUIPMENT)", "46559 - WHOLESALE OF TRANSPORT EQUIPMENT EXCEPT MOTOR VEHICLES AND MOTORCYCLES N.E.C.", "46561 - WHOLESALE OF MOTOR VEHICLES EXCEPT MOTORCYCLES AND SCOOTERS", "46562 - WHOLESALE OF MOTORCYCLES AND SCOOTERS", "46563 - WHOLESALE OF PARTS AND ACCESSORIES FOR VEHICLES", "46591 - WHOLESALE OF OFFICE MACHINES AND EQUIPMENT (INCLUDING ACCESSORIES)", "46592 - WHOLESALE OF MEDICAL, PROFESSIONAL, SCIENTIFIC AND PRECISION EQUIPMENT", "46593 - WHOLESALE OF COMMERCIAL FOOD SERVICE EQUIPMENT (E.G. HOTEL KITCHEN EQUIPMENT)", "46594 - WHOLESALE OF SERVICE ESTABLISHMENT EQUIPMENT AND SUPPLIES (E.G. BEAUTY SALON EQUIPMENT)", "46595 - WHOLESALE OF SECURITY AND SAFETY EQUIPMENT", "46599 - WHOLESALE OF OTHER MACHINERY AND EQUIPMENT N.E.C.", "46610 - WHOLESALE OF FUELS AND RELATED PRODUCTS", "46620 - WHOLESALE OF METALS AND METAL ORES (E.G. STEEL PIPES) EXCEPT GENERAL HARDWARE", "46631 - WHOLESALE OF LOGS, SAWN TIMBER, PLYWOOD AND RELATED PRODUCTS", "46632 - WHOLESALE OF GENERAL HARDWARE (E.G. LOCKS, HINGES)", "46633 - WHOLESALE OF STRUCTURAL CLAY AND CONCRETE PRODUCTS (E.G. MOSAIC TILES, BRICKS)", "46634 - WHOLESALE OF PAINTS (INCLUDING VARNISHES AND SUPPLIES)", "46635 - WHOLESALE OF GLASS", "46639 - WHOLESALE OF CONSTRUCTION MATERIALS, HARDWARE, PLUMBING AND HEATING EQUIPMENT AND SUPPLIES N.E.C. (E.G. CEMENT, SAND)", "46641 - WHOLESALE OF BASIC INDUSTRIAL CHEMICALS (EXCEPT FERTILISERS)", "46642 - WHOLESALE OF CHEMICAL FERTILISERS", "46643 - WHOLESALE OF PETROCHEMICAL PRODUCTS", "46649 - WHOLESALE OF CHEMICALS AND CHEMICAL PRODUCTS N.E.C.", "46651 - WHOLESALE OF SCRAP, JUNK AND WASTE DEALERS", "46659 - WHOLESALE OF OTHER INTERMEDIATE PRODUCTS, WASTE AND SCRAP N.E.C.", "46661 - SHIP CHANDLERS", "46662 - SHIP BUNKERING", "46900 - WHOLESALE TRADE OF A VARIETY OF GOODS WITHOUT A DOMINANT PRODUCT", "47101 - SUPERMARKETS AND HYPERMARKETS", "47102 - MINI-MARTS, CONVENIENCE STORES AND PROVISION SHOPS", "47103 - DEPARTMENT STORES", "47109 - RETAIL SALE IN OTHER NON-SPECIALISED STORES N.E.C.", "47211 - RETAIL SALE OF FRUITS AND VEGETABLES", "47212 - RETAIL SALE OF MEAT, POULTRY, EGGS AND SEAFOOD", "47213 - RETAIL SALE OF CONFECTIONERY AND BAKERY PRODUCTS (NOT MANUFACTURED ON SITE)", "47214 - RETAIL SALE OF HEALTH SUPPLEMENTS", "47219 - RETAIL SALE OF FOOD N.E.C.", "47220 - RETAIL SALE OF BEVERAGES", "47230 - RETAIL SALE OF TOBACCO PRODUCTS", "47311 - RETAIL SALE OF MOTOR VEHICLES EXCEPT MOTORCYCLES AND SCOOTERS", "47312 - RETAIL SALE OF MOTORCYCLES AND SCOOTERS", "47313 - RETAIL SALE OF TYRES AND BATTERIES", "47314 - RETAIL SALE OF SPARE PARTS AND ACCESSORIES FOR MOTOR VEHICLES", "47320 - RETAIL SALE OF AUTOMOTIVE FUEL (E.G. PETROL KIOSKS, CNG REFILLING STATIONS)", "47411 - RETAIL SALE OF HANDPHONES AND PERIPHERAL EQUIPMENT", "47412 - RETAIL SALE OF COMPUTER HARDWARE (INCLUDING HANDHELD COMPUTERS) AND PERIPHERAL EQUIPMENT, AND COMPUTER SOFTWARE (EXCEPT GAMES AND CYBERSECURITY HARDWARE AND SOFTWARE)", "47413 - RETAIL SALE OF COMPUTER GAMES (INCLUDING ELECTRONIC GAMES AND VIDEO GAME CONSOLES)", "47414 - RETAIL SALE OF COMPUTER AND OFFICE EQUIPMENT CONSUMABLES (E.G. PRINTER CARTRIDGES)", "47415 - RETAIL SALE OF CYBERSECURITY SOFTWARE, HARDWARE AND PERIPHERAL EQUIPMENT", "47420 - RETAIL SALE OF AUDIO AND VIDEO EQUIPMENT (E.G. RADIO AND TELEVISION SETS, SOUND REPRODUCING AND RECORDING EQUIPMENT)", "47510 - RETAIL SALE OF TEXTILES", "47521 - RETAIL SALE OF PAINTS", "47522 - RETAIL SALE OF HARDWARE (E.G. CHAINS, CHANGKOLS, AXES)", "47529 - RETAIL SALE OF HARDWARE, PAINT AND GLASS N.E.C. (E.G. WOOD, GLASS, SANITARY WARE, DO-IT-YOURSELF MATERIALS)", "47531 - RETAIL SALE OF FURNITURE (INCLUDING MATTRESSES, CUSHIONS)", "47532 - RETAIL SALE OF FURNISHINGS (E.G. CURTAINS, CARPETS, PILLOW CASES)", "47533 - RETAIL SALE OF LIGHTING AND LIGHTING ACCESSORIES", "47534 - RETAIL SALE OF CROCKERY, CUTLERY AND KITCHEN UTENSILS", "47535 - RETAIL SALE OF HOUSEHOLD ELECTRICAL APPLIANCES AND EQUIPMENT (E.G. VACUUM CLEANERS, WASHING MACHINES, REFRIGERATORS)", "47536 - RETAIL SALE OF MUSICAL INSTRUMENTS AND SCORES", "47537 - RETAIL SALE OF SECURITY AND SAFETY EQUIPMENT", "47539 - RETAIL SALE OF ELECTRICAL HOUSEHOLD APPLIANCES, FURNITURE, LIGHTING EQUIPMENT AND OTHER HOUSEHOLD ARTICLES N.E.C.", "47610 - RETAIL SALE OF BOOKS, NEWSPAPERS AND STATIONERY (INCLUDING NEWSVENDORS)", "47620 - RETAIL SALE OF MUSIC AND VIDEO RECORDINGS (E.G. DVDS, BLU-RAY DISCS)", "47630 - RETAIL SALE OF SPORTS APPAREL AND EQUIPMENT (INCLUDING BICYCLES, BOATS AND HEALTHCARE EQUIPMENT)", "47640 - RETAIL SALE OF GAMES AND TOYS", "47711 - RETAIL SALE OF CLOTHING FOR ADULTS", "47712 - RETAIL SALE OF CHILDREN AND INFANTS’ CLOTHING (INCLUDING PRODUCTS AND ACCESSORIES FOR INFANTS)", "47713 - RETAIL SALE OF FOOTWEAR", "47714 - RETAIL SALE OF BAGS, LUGGAGE AND TRAVEL ACCESSORIES", "47715 - RETAIL SALE OF SEWING AND CLOTHING ACCESSORIES (E.G. BUTTON, THREAD, LACE, ZIP, BELT, TIE)", "47719 - RETAIL SALE OF CLOTHING, FOOTWEAR AND LEATHER ARTICLES N.E.C.", "47721 - RETAIL SALE OF COSMETICS AND TOILETRIES (INCLUDING SKIN CARE PRODUCTS)", "47722 - PHARMACIES AND DRUG STORES (WESTERN)", "47723 - CHINESE MEDICINE SHOPS", "47729 - RETAIL SALE OF PHARMACEUTICAL AND MEDICAL GOODS N.E.C.", "47731 - RETAIL SALE OF JEWELLERY MADE FROM PRECIOUS METALS AND STONES", "47732 - RETAIL SALE OF COSTUME JEWELLERY", "47733 - RETAIL SALE OF WATCHES AND CLOCKS", "47739 - RETAIL SALE OF PERSONAL EFFECTS N.E.C.", "47741 - RETAIL SALE OF ANTIQUES AND WORKS OF ART", "47742 - RETAIL SALE OF HANDICRAFTS, COLLECTIBLES AND GIFTS", "47743 - RETAIL SALE OF CUT FLOWERS (INCLUDING WREATHS)", "47744 - RETAIL SALE OF ARTIFICIAL FLOWERS AND PLANTS", "47745 - RETAIL SALE OF AQUARIUM FISHES (INCLUDING FOOD AND ACCESSORIES)", "47746 - RETAIL SALE OF PET BIRDS AND ANIMALS (INCLUDING FOOD AND ACCESSORIES)", "47749 - RETAIL SALE OF HANDICRAFTS AND FANCY GOODS, FLOWERS, PLANTS AND PET ANIMALS N.E.C.", "47751 - RETAIL SALE OF SPECTACLES AND OTHER OPTICAL GOODS", "47752 - RETAIL SALE OF CAMERAS AND OTHER PHOTOGRAPHIC GOODS", "47759 - RETAIL SALE OF OPTICAL AND PHOTOGRAPHIC GOODS N.E.C.", "47761 - RETAIL SALE OF JOSS PAPER AND OTHER CEREMONIAL PRODUCTS", "47762 - RETAIL SALE OF LIQUEFIED PETROLEUM GAS (LPG)", "47769 - RETAIL SALE OF SPECIFIC COMMODITIES N.E.C.", "47770 - RETAIL SALE OF SECOND-HAND GOODS IN STORES", "47801 - STALLS (INCLUDING PUSHCARTS) SELLING UNCOOKED FOOD", "47802 - STALLS (INCLUDING PUSHCARTS) SELLING OTHER COMMODITIES (OTHER THAN UNCOOKED FOOD)", "49101 - RAILROAD SERVICES", "49102 - MASS RAPID TRANSIT SYSTEMS (INCLUDING LIGHT RAIL)", "49211 - PUBLIC BUS SERVICES (SCHEDULED SERVICES)", "49212 - CHARTERED BUS SERVICES (INCLUDING SCHOOL BUSES)", "49213 - INTER-COUNTRY BUS SERVICES", "49214 - STREET-HAIL AND RIDE-HAIL SERVICE PROVIDERS", "49215 - RENTAL AND LEASING OF CARS WITH DRIVER (EXCLUDING STREET-HAIL AND RIDE-HAIL SERVICE PROVIDERS)", "49220 - AERIAL CABLEWAYS (INCLUDING CABLE CAR SERVICES)", "49231 - FREIGHT TRANSPORT BY ROAD", "49232 - MOVING SERVICES", "49233 - RENTAL AND LEASING OF FREIGHT LAND TRANSPORT VEHICLE (E.G. LORRIES AND TRUCKS) WITH DRIVER", "49300 - TRANSPORT VIA PIPELINES", "50011 - INTERNATIONAL CRUISE SERVICES", "50012 - OTHER SIGHT-SEEING CRUISE SERVICES (E.G. HARBOUR AND RIVER CRUISES)", "50013 - PASSENGER FERRY SERVICES", "50014 - CHARTERING OF SHIPS AND BOATS WITH CREW (PASSENGER)", "50021 - SHIPPING COMPANIES, INCLUDING CHARTERING OF SHIPS AND BOATS WITH CREW (FREIGHT)", "50023 - BRANCHES OF FOREIGN SHIPPING LINES", "50022 - OPERATORS AND CHARTERERS OF BARGES, TUGBOATS AND BUMBOATS (FREIGHT)", "51001 - AIRLINES (PASSENGER)", "51002 - AIRLINES (FREIGHT)", "51003 - BRANCHES OF FOREIGN AIRLINES (PASSENGER)", "51004 - BRANCHES OF FOREIGN AIRLINES (FREIGHT)", "51005 - AIRCRAFT CHARTERING WITH OPERATOR", "52101 - GENERAL WAREHOUSING", "52102 - REFRIGERATED WAREHOUSING AND STORAGE", "52103 - STORAGE FOR DANGEROUS GOODS", "52109 - SPECIALISED STORAGE N.E.C. (E.G. WINE WAREHOUSING, DOCUMENT STORAGE AND WAREHOUSING)", "52211 - CARPARK MANAGEMENT AND OPERATION SERVICES", "52212 - MOTOR VEHICLE TOWING SERVICES", "52219 - SUPPORTING SERVICES TO LAND TRANSPORT N.E.C.", "52221 - REPRESENTATIVE OFFICES OF FOREIGN SHIPPING LINES", "52222 - SHIPPING AGENCIES (FREIGHT)", "52223 - PORT OPERATORS", "52224 - LIGHTERAGE SERVICES", "52225 - SALVAGING OF DISTRESSED VESSELS AND CARGOS", "52226 - SHIP MANAGEMENT SERVICES", "52227 - SHIP BROKERING SERVICES", "52229 - SUPPORTING SERVICES TO WATER TRANSPORT N.E.C.", "52231 - REPRESENTATIVE OFFICES OF FOREIGN AIRLINES", "52232 - AIRLINE AGENCIES (FREIGHT)", "52233 - AIRPORT OPERATION SERVICES", "52234 - AIRPORT TERMINAL SERVICES (E.G. GROUND SERVICE ACTIVITIES)", "52239 - SUPPORTING SERVICES TO AIR TRANSPORT N.E.C.", "52291 - CARGO SURVEYING SERVICES", "52241 - CONTAINER DEPOT SERVICES", "52242 - CRANE SERVICES FOR ALL INDUSTRIES EXCEPT CONSTRUCTION", "52243 - STEVEDORING SERVICES", "52251 - CLASSIFICATION SOCIETIES", "52252 - MARINE SURVEYING SERVICES OTHER THAN CLASSIFICATION SOCIETIES", "52292 - FREIGHT TRANSPORT ARRANGEMENT", "53100 - NATIONAL POST ACTIVITIES (E.G. POSTAL SERVICES)", "53200 - COURIER ACTIVITIES OTHER THAN NATIONAL POST ACTIVITIES", "55101 - HOTELS", "55102 - CHALETS", "55103 - SHORT TERM ACCOMMODATION ACTIVITIES OTHER THAN HOTELS AND CHALETS", "55900 - HOSTELS AND DORMITORIES FOR STUDENTS, WORKERS AND OTHER INDIVIDUALS", "56111 - RESTAURANTS", "56112 - CAFES", "56121 - FAST FOOD OUTLETS", "56122 - FOOD COURTS, COFFEE SHOPS AND CANTEENS (WITH MAINLY FOOD AND BEVERAGE INCOME)", "56123 - FOOD KIOSKS MAINLY FOR TAKEAWAY AND DELIVERY", "56130 - PUBS", "56140 - STALLS SELLING COOKED FOOD AND PREPARED DRINKS (INCLUDING STALLS AT FOOD COURTS AND MOBILE FOOD HAWKERS)", "56200 - FOOD CATERERS", "58110 - PUBLISHING OF BOOKS, BROCHURES, MUSICAL BOOKS AND OTHER PUBLICATIONS", "58120 - PUBLISHING OF DIRECTORIES AND MAILING LISTS (INCLUDING FINANCIAL DATABASES)", "58131 - PUBLISHING OF NEWS", "58132 - PUBLISHING OF JOURNALS, PERIODICALS AND MAGAZINES", "58190 - OTHER PUBLISHING ACTIVITIES (EXCLUDING ONLINE MARKETPLACES)", "63202 - ONLINE MARKETPLACES FOR HEALTH SERVICES", "63203 - ONLINE MARKETPLACES FOR EDUCATION SERVICES", "63204 - ONLINE MARKETPLACES FOR TRAVEL SERVICES", "63205 - ONLINE MARKETPLACES FOR REAL ESTATE SERVICES", "58201 - PUBLISHING OF GAMES SOFTWARE/APPLICATIONS", "58202 - PUBLISHING OF SOFTWARE/APPLICATIONS (NON-GAMES)", "59111 - MOVIE PRODUCTION", "59112 - PRODUCTION OF ADVERTISEMENTS, CORPORATE VIDEOS AND EVENT VIDEOS", "59113 - PRODUCTION OF DRAMAS, VARIETY SHOWS AND DOCUMENTARIES (INCLUDING PRODUCTION OF TELEVISION PROGRAMME)", "59114 - ANIMATION PRODUCTION", "59119 - MOVIE, VIDEO, TELEVISION AND OTHER PROGRAMME PRODUCTION ACTIVITIES N.E.C.", "59120 - MOVIE, VIDEO, TELEVISION AND OTHER PROGRAMME POST-PRODUCTION ACTIVITIES (INCLUDING REMASTERING)", "59131 - MOVIE DISTRIBUTION", "59132 - DISTRIBUTION OF TELEVISION PROGRAMMES (E.G. DRAMAS, VARIETY SHOWS AND DOCUMENTARIES)", "59139 - MOVIE, VIDEO, TELEVISION AND OTHER PROGRAMME DISTRIBUTION ACTIVITIES N.E.C.", "59140 - MOVIE PROJECTION ACTIVITIES (INCLUDING CINEMAS)", "59201 - SOUND RECORDING PRODUCTION", "59202 - MUSIC PUBLISHING AND DISTRIBUTION ACTIVITIES", "60100 - RADIO PROGRAMME PRODUCTION AND BROADCASTING", "60200 - TELEVISION PROGRAMMING AND BROADCASTING (INCLUDING CABLE, SATELLITE, TERRESTRIAL TELEVISION, INTERNET AND MOBILE)", "61011 - WIRED TELECOMMUNICATIONS NETWORK OPERATION (INCLUDING FIXED-LINE, FIBRE OPTICS, LOCAL/INTERNATIONAL PSTN AND LEASED CIRCUITS)", "61012 - MOBILE CELLULAR AND OTHER WIRELESS TELECOMMUNICATIONS NETWORK OPERATION", "61013 - SATELLITE TELECOMMUNICATIONS NETWORK OPERATION", "61091 - TELECOMMUNICATIONS RESELLERS/THIRD PARTY TELECOMMUNICATIONS PROVIDERS (INCLUDING VALUE-ADDED NETWORK OPERATORS)", "61092 - INTERNET ACCESS PROVIDERS, INCLUDE ISPS", "61099 - OTHER TELECOMMUNICATIONS ACTIVITIES N.E.C. (E.G. PROVISION OF VOIP (VOICE OVER INTERNET PROTOCOL SERVICES))", "62011 - DEVELOPMENT OF SOFTWARE AND APPLICATIONS (EXCEPT GAMES AND CYBERSECURITY)", "62012 - DEVELOPMENT OF COMPUTER GAMES", "62013 - DEVELOPMENT OF SOFTWARE FOR CYBERSECURITY", "62021 - INFORMATION TECHNOLOGY CONSULTANCY (EXCEPT CYBERSECURITY)", "62022 - INFORMATION TECHNOLOGY CYBERSECURITY CONSULTANCY", "62023 - COMPUTER FACILITIES MANAGEMENT ACTIVITIES", "62090 - OTHER INFORMATION TECHNOLOGY AND COMPUTER SERVICE ACTIVITIES (E.G. DISASTER RECOVERY SERVICES)", "63112 - HOSTING SERVICES BY NON-DATA CENTRES", "63111 - DATA CENTRES", "63119 - DATA ANALYTICS, PROCESSING AND RELATED ACTIVITIES N.E.C.", "63120 - INTERNET SEARCH ENGINES", "63901 - NEWS AGENCY ACTIVITIES", "63909 - OTHER INFORMATION SERVICE ACTIVITIES N.E.C.", "64110 - CENTRAL BANK", "64120 - FULL BANKS", "64130 - WHOLESALE BANKS", "64140 - MERCHANT BANKS", "64150 - FINANCE COMPANIES (WITH DEPOSIT TAKING FUNCTIONS)", "64190 - OTHER MONETARY INTERMEDIATION", "64201 - BANK/FINANCIAL HOLDING COMPANIES (INCLUDING INSURANCE HOLDING COMPANY)", "64202 - OTHER HOLDING COMPANIES", "64300 - TRUSTS, FUNDS AND SIMILAR FINANCIAL ENTITIES (E.G. COLLECTIVE PORTFOLIO INVESTMENT FUNDS (EXCLUDING THOSE WITH RENTAL INCOME))", "64910 - FINANCIAL LEASING COMPANIES", "64921 - THRIFT AND LOAN SOCIETIES AND CREDIT ASSOCIATIONS", "64922 - CREDIT CARD SERVICES", "64923 - MUTUAL BENEFITS ORGANISATIONS", "64924 - MONEY-LENDING", "64925 - PAWNBROKERAGE", "64929 - OTHER CREDIT AGENCIES N.E.C. (E.G. MOTOR FINANCE)", "64991 - FACTORING COMPANIES", "64992 - REPRESENTATIVE OFFICES OF FOREIGN BANKS", "66126 - MONEY-CHANGING SERVICES", "64993 - REMITTANCE SERVICES", "64994 - TREASURY CENTRES", "64999 - OTHER FINANCIAL SERVICE ACTIVITIES, EXCEPT INSURANCE AND PENSION FUNDING ACTIVITIES N.E.C.", "65110 - LIFE INSURANCE", "65121 - MARINE INSURANCE", "65122 - CAPTIVE INSURANCE", "65123 - IMPORT, EXPORT AND CREDIT INSURANCE", "65124 - GENERAL INSURANCE (EXCEPT MARINE AND IMPORT, EXPORT & CREDIT INSURANCE)", "65201 - LIFE REINSURANCE", "65202 - GENERAL REINSURANCE", "65301 - PROVIDENT FUNDING", "65302 - PENSION FUNDING", "66110 - SECURITIES AND COMMODITIES EXCHANGE", "66121 - STOCK, SHARE AND BOND BROKERS AND DEALERS", "66122 - FOREIGN EXCHANGE BROKERS AND DEALERS", "66123 - GOLD BULLION BROKERS AND DEALERS", "66124 - COMMODITY (EXCLUDING GOLD) AND FUTURES BROKERS AND DEALERS", "66125 - CARBON CREDIT BROKERS/TRADERS", "66129 - SECURITY DEALINGS AND COMMODITY CONTRACTS BROKERAGE ACTIVITIES N.E.C.", "66191 - TRUSTEE, FIDUCIARY AND CUSTODY SERVICES FIRMS (INCLUDING NOMINEE COMPANIES, TRUSTEES AND REIT TRUSTEES)", "66192 - CORPORATE FINANCE ADVISORY SERVICES", "66193 - CLEARING AND SETTLEMENT OF FINANCIAL INSTRUMENTS", "66194 - ACTIVITIES AUXILIARY TO FUND MANAGEMENT ACTIVITIES (E.G. INDEPENDENT FUND ADMINISTRATION FIRMS)", "66195 - TRANSACTION/PAYMENT PROCESSING SERVICES", "66199 - OTHER ACTIVITIES AUXILIARY TO FINANCIAL SERVICE ACTIVITIES N.E.C. (E.G. MORTGAGE ADVISORY FIRMS)", "66210 - RISK AND DAMAGE EVALUATION (E.G. LOSS ADJUSTING, CLAIMS ADJUSTING)", "66221 - INSURANCE AGENCIES AND AGENTS (INCLUDING FINANCIAL PLANNING SERVICES)", "66222 - INSURANCE BROKERS", "66291 - REPRESENTATIVE OFFICES OF FOREIGN INSURERS AND PROFESSIONAL REINSURERS", "66292 - CAPTIVE MANAGERS", "66299 - OTHER ACTIVITIES AUXILIARY TO INSURANCE AND PENSION FUNDING N.E.C. (E.G. ACTIVITIES OF ACTUARIES)", "66301 - TRADITIONAL/LONG-ONLY ASSET/PORTFOLIO MANAGEMENT", "66302 - HEDGE FUND MANAGEMENT", "66303 - PROPERTY FUND MANAGEMENT (INCLUDING REIT MANAGEMENT AND DIRECT PROPERTY FUND MANAGEMENT)", "66304 - PRIVATE EQUITY FIRMS", "66305 - VENTURE CAPITAL ACTIVITIES", "66306 - SINGLE/MULTIPLE FAMILY OFFICES ACTIVITIES (E.G. MANAGING INVESTMENTS AND TRUSTS FOR A SINGLE OR MULTIPLE FAMILIES)", "66307 - PRIVATE DEBT FUNDS", "66309 - FUND MANAGEMENT ACTIVITIES N.E.C.", "68101 - REAL ESTATE DEVELOPERS", "68102 - OPERATING OF SERVICED APARTMENTS", "68103 - LETTING OF SELF-OWNED OR LEASED REAL ESTATE PROPERTY EXCEPT FOOD COURTS, COFFEE SHOPS AND CANTEENS (E.G. OFFICE/EXHIBITION SPACE, SHOPPING MALL, SELF-STORAGE FACILITIES)", "68104 - LETTING AND OPERATING OF SELF-OWNED OR LEASED FOOD COURTS, COFFEE SHOPS AND CANTEENS (WITH MAINLY RENTAL INCOME)", "68105 - COLLECTIVE PORTFOLIO INVESTMENT FUNDS WITH RENTAL INCOME", "68106 - MANAGEMENT OF SELF-OWNED STRATA TITLED PROPERTY (I.E. MANAGEMENT CORPORATION STRATA TITLE)", "68201 - REAL ESTATE AGENCIES AND VALUATION SERVICES", "68202 - TOWN COUNCILS", "68203 - RESIDENTIAL (OTHER THAN TOWN COUNCILS), COMMERCIAL AND INDUSTRIAL REAL ESTATE MANAGEMENT", "68209 - REAL ESTATE ACTIVITIES ON A FEE OR COMMISSION BASIS N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "69101 - LEGAL ACTIVITIES (EXCLUDING ONLINE MARKETPLACES)", "69201 - ACCOUNTING AND AUDITING SERVICES (EXCLUDING ONLINE MARKETPLACES)", "69202 - BOOK-KEEPING SERVICES (EXCLUDING ONLINE MARKETPLACES)", "70101 - ACTIVITIES OF HEAD AND REGIONAL HEAD OFFICES; CENTRALISED ADMINISTRATIVE OFFICES AND SUBSIDIARY MANAGEMENT OFFICES", "70102 - BUSINESS REPRESENTATIVE OFFICES", "70201 - MANAGEMENT CONSULTANCY SERVICES", "70205 - PUBLIC RELATIONS, MARKETING AND BRAND CONSULTANCY SERVICES", "70202 - MANAGEMENT CONSULTANCY SERVICES FOR HEALTHCARE ORGANISATIONS", "70203 - MANAGEMENT CONSULTANCY SERVICES FOR HOTELS", "70204 - HUMAN RESOURCE CONSULTANCY SERVICES", "70206 - PORT, SHIPPING AND MARITIME-RELATED CONSULTANCY SERVICES", "70209 - MANAGEMENT CONSULTANCY SERVICES N.E.C.", "71111 - ARCHITECTURAL SERVICES", "71112 - LANDSCAPE DESIGN AND LANDSCAPE ARCHITECTURE", "71113 - QUANTITY SURVEYING SERVICES", "71114 - LAND SURVEYING SERVICES", "71119 - OTHER SURVEYING SERVICES N.E.C. (E.G. GEOPHYSICAL, GEOLOGIC, SEISMIC, HYDROGRAPHIC SURVEYING SERVICES)", "71121 - GENERAL BUILDING ENGINEERING DESIGN AND CONSULTANCY SERVICES", "71122 - PROCESS AND INDUSTRIAL PLANT ENGINEERING DESIGN AND CONSULTANCY SERVICES", "71123 - ENGINEERING DESIGN AND CONSULTANCY SERVICES IN ENERGY MANAGEMENT AND CLEAN ENERGY SYSTEMS", "71124 - ENVIRONMENTAL ENGINEERING DESIGN AND CONSULTANCY SERVICES (EXCEPT CLEAN ENERGY)", "71125 - INFRASTRUCTURE ENGINEERING DESIGN AND CONSULTANCY SERVICES", "71126 - ENGINEERING DESIGN AND CONSULTANCY SERVICES SUPPORTING MINING, OIL AND GAS EXTRACTION AND OFFSHORE EXPLORATION ACTIVITIES", "71129 - ENGINEERING DESIGN AND CONSULTANCY ACTIVITIES N.E.C.", "71200 - TECHNICAL TESTING AND ANALYSIS SERVICES (INCLUDING CERTIFICATION OF PRODUCTS AND SERVICES)", "72101 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON BIOTECHNOLOGY (EXCLUDING MEDICAL SCIENCE)", "72106 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON MEDICAL SCIENCE", "72102 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON ELECTRONICS (EXCLUDING MEDICAL SCIENCE)", "72103 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON CHEMICALS (EXCLUDING MEDICAL SCIENCE)", "72104 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON ENGINEERING", "72105 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON ENVIRONMENT AND CLEAN TECHNOLOGIES (EXCLUDING BIOTECHNOLOGY)", "72200 - RESEARCH AND EXPERIMENTAL DEVELOPMENT ON SOCIAL SCIENCES AND HUMANITIES", "73100 - ADVERTISING ACTIVITIES", "73200 - MARKET RESEARCH AND PUBLIC OPINION POLLING", "74111 - ELECTRONICS-RELATED INDUSTRIAL DESIGN SERVICES", "74112 - TRANSPORT-RELATED INDUSTRIAL DESIGN SERVICES", "74113 - FURNITURE DESIGN SERVICES", "74119 - INDUSTRIAL DESIGN ACTIVITIES N.E.C.", "74191 - INTERIOR DESIGN SERVICES", "74192 - ART AND GRAPHIC DESIGN SERVICES", "74193 - FASHION (INCLUDING ACCESSORIES) DESIGN SERVICES", "74194 - EXHIBITION STAND DESIGN SERVICES", "74199 - OTHER SPECIALISED DESIGN ACTIVITIES N.E.C.", "74200 - PHOTOGRAPHIC ACTIVITIES", "74901 - TRANSLATION SERVICES", "69102 - ARBITRATION AND MEDIATION SERVICES (EXCLUDING ONLINE MARKETPLACES)", "74902 - BROKERAGE AND CONSULTANCY SERVICES OF INTELLECTUAL PROPERTY ASSETS", "74903 - AGROTECHNOLOGY CONSULTANCY SERVICES", "74904 - CARBON CONSULTANCY SERVICES", "74905 - AGENTS FOR ARTISTES, ATHLETES, MODELS AND OTHER PERFORMERS", "74909 - OTHER PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES N.E.C.", "75000 - VETERINARY ACTIVITIES", "77101 - RENTING AND LEASING OF PRIVATE CARS WITHOUT DRIVER (EXCLUDING ONLINE MARKETPLACES)", "77109 - RENTING AND LEASING OF LAND TRANSPORT EQUIPMENT (EXCEPT CARS) WITHOUT DRIVER N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "77102 - RENTING AND LEASING OF BICYCLES AND INLINE/ROLLER SKATES", "77210 - RENTING AND LEASING OF RECREATIONAL AND SPORTS GOODS", "77220 - RENTING OF VCDS AND DVDS", "77291 - RENTING AND LEASING OF FURNITURE, UTENSILS AND ELECTRONIC EQUIPMENT FOR HOUSEHOLD USE", "77292 - RENTING OF ATTIRE (E.G. COSTUMES)", "77299 - RENTING AND LEASING OF OTHER PERSONAL AND HOUSEHOLD GOODS N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "77310 - RENTING OF WATER TRANSPORT EQUIPMENT WITHOUT OPERATOR (E.G. COMMERCIAL BOATS AND SHIPS WITHOUT OPERATOR)", "77320 - RENTING OF AIR TRANSPORT EQUIPMENT WITHOUT OPERATOR (E.G. AIRPLANES WITHOUT OPERATOR)", "77330 - RENTING OF CONSTRUCTION AND CIVIL ENGINEERING MACHINERY AND EQUIPMENT", "77341 - RENTING OF COMPUTERS AND PERIPHERAL EQUIPMENT", "77342 - RENTING OF OFFICE MACHINERY AND EQUIPMENT", "77391 - RENTING AND LEASING OF PROFESSIONAL RADIO AND TELEVISION SETS AND SOUND REPRODUCING AND RECORDING EQUIPMENT", "77392 - RENTING OF INDUSTRIAL MACHINERY AND EQUIPMENT", "77399 - RENTING OF OTHER MACHINERY, EQUIPMENT AND TANGIBLE GOODS N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "77400 - LEASING OF NON-FINANCIAL INTANGIBLE ASSETS (E.G. PATENTS, TRADE MARKS, BRAND NAMES ETC)", "78101 - IT MANPOWER CONTRACTING SERVICES", "78102 - MANPOWER CONTRACTING SERVICES (EXCLUDING IT MANPOWER)", "78103 - DOMESTIC WORKER EMPLOYMENT PLACEMENT AGENCIES (EXCLUDING ONLINE MARKETPLACES)", "78104 - EMPLOYMENT AGENCIES (EXCLUDING DOMESTIC WORKER EMPLOYMENT PLACEMENT AGENCIES AND ONLINE MARKETPLACES)", "78300 - MANAGEMENT OF HUMAN RESOURCE FUNCTIONS", "79101 - TRAVEL AGENCIES AND TOUR OPERATORS (MAINLY INBOUND)", "79102 - TRAVEL AGENCIES AND TOUR OPERATORS (MAINLY OUTBOUND)", "79200 - TIMESHARING SERVICE ACTIVITIES", "80200 - DETECTIVE AND INVESTIGATION ACTIVITIES", "80100 - PRIVATE SECURITY ACTIVITIES", "81211 - GENERAL CLEANING SERVICES (INCLUDING CLEANING OF PUBLIC AREAS, OFFICES AND FACTORIES) EXCEPT HOUSEHOLD CLEANING AND ONLINE MARKETPLACES", "81212 - DOMESTIC/HOUSEHOLD CLEANING SERVICES (EXCLUDING ONLINE MARKETPLACES)", "81291 - PEST CONTROL SERVICES NOT IN CONNECTION WITH AGRICULTURE", "81292 - CLEANING OF SWIMMING POOLS, SPAS AND FOUNTAINS", "81299 - OTHER CLEANING SERVICES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "81300 - LANDSCAPE PLANTING, CARE AND MAINTENANCE SERVICE ACTIVITIES (E.G. GARDEN INSTALLATION AND MAINTENANCE, GRASS CUTTING, TREE FELLING, PRUNING)", "82110 - OFFICE ADMINISTRATIVE SERVICES ON A FEE OR CONTRACT BASIS (E.G. BILLING AND RECORD KEEPING)", "82191 - STENOGRAPHIC AND SECRETARIAL SERVICES", "82192 - DUPLICATING AND PHOTO-COPYING SERVICES", "82199 - OTHER SPECIALISED OFFICE SUPPORT ACTIVITIES N.E.C.", "82200 - CALL CENTRES", "82301 - EXHIBITION ORGANISERS", "82302 - CONVENTION/CONFERENCE ORGANISERS", "82303 - EVENT/CONCERT ORGANISERS", "82304 - EXHIBITION STAND CONTRACTORS", "82911 - DEBT COLLECTION SERVICES", "82912 - CREDIT RATING AGENCIES", "82920 - PACKAGING ACTIVITIES", "82991 - ACTIVITIES OF AUCTION HOUSES", "82999 - OTHER BUSINESS SUPPORT SERVICE ACTIVITIES (E.G. ADMINISTRATION OF LOYALTY PROGRAMMES)", "84110 - EXECUTIVE, LEGISLATIVE AND OTHER GENERAL PUBLIC ADMINISTRATION (E.G. ISTANA, PARLIAMENT, TAX AUTHORITY)", "84120 - PUBLIC ADMINISTRATION OF ECONOMIC AND SOCIAL PROGRAMMES", "84210 - FOREIGN AFFAIRS", "84221 - ARMED FORCES", "84229 - DEFENCE ACTIVITIES N.E.C.", "84231 - JUDICIARY AND RELATED SERVICES", "84232 - POLICE", "84233 - PRISONS", "84234 - OTHER PLACES OF DETENTION, CORRECTION AND REHABILITATION", "84235 - CIVIL DEFENCE", "85101 - NURSERIES AND KINDERGARTENS", "85102 - PRIMARY SCHOOLS", "85230 - INTERNATIONAL AND FOREIGN SYSTEM SCHOOLS", "85240 - SCHOOLS FOR SPECIAL NEEDS", "85211 - SECONDARY SCHOOLS INCLUDING COMBINED PRIMARY AND SECONDARY SCHOOLS", "85250 - SPECIALISED EDUCATION SCHOOLS", "85212 - JUNIOR COLLEGES AND CENTRALISED PRE-UNIVERSITY INSTITUTES (POST-SECONDARY NON-TERTIARY) INCLUDING COMBINED SECONDARY SCHOOLS AND POST-SECONDARY NON-TERTIARY SCHOOLS", "85213 - COMMERCIAL SCHOOLS OFFERING GENERAL SECONDARY AND POST-SECONDARY NON-TERTIARY EDUCATION PROGRAMMES", "85220 - TECHNICAL AND VOCATIONAL SECONDARY AND POST-SECONDARY NON-TERTIARY EDUCATION", "85403 - TRAINING COURSES FOR FOOD AND BEVERAGE, RETAIL AND ACCOMMODATION, TOUR OPERATORS, TRAVEL AGENCIES & TRAVEL-RELATED RESERVATION SERVICES", "85409 - TRAINING COURSES N.E.C.", "85301 - POLYTECHNICS", "85302 - UNIVERSITIES", "85303 - TEACHERS' TRAINING INSTITUTE", "85304 - COMMERCIAL SCHOOLS OFFERING HIGHER EDUCATION PROGRAMMES", "85407 - TRAINING COURSES FOR SPORTS AND GAMES", "85408 - TRAINING COURSES FOR MUSIC, DANCING, ART, SPEECH AND DRAMA", "85401 - TRAINING COURSES FOR CONSTRUCTION, REAL ESTATE, SECURITY AND INVESTIGATION SERVICES, CLEANING, LANDSCAPING, WASTE MANAGEMENT AND PEST MANAGEMENT", "85402 - TRAINING COURSES FOR HEALTHCARE, EDUCATION, COMMUNITY AND SOCIAL SERVICES", "85404 - TRAINING COURSES FOR MANUFACTURING", "85405 - TRAINING COURSES FOR INFORMATION AND COMMUNICATIONS, FINANCE AND PROFESSIONAL SERVICES", "85406 - TRAINING COURSES FOR WHOLESALE TRADE, LOGISTICS AND TRANSPORT", "85501 - STUDENT RECRUITMENT AGENCIES", "85502 - EXAMINATION AND ACCREDITATION AGENCIES FOR EDUCATION SERVICES", "85509 - EDUCATIONAL SUPPORT SERVICES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "86101 - ACUTE HOSPITALS", "86102 - COMMUNITY HOSPITALS", "86109 - OTHER HOSPITALS N.E.C. (E.G. PSYCHIATRIC HOSPITAL)", "86201 - CLINICS AND OTHER GENERAL MEDICAL SERVICES (WESTERN)", "86202 - CLINICS AND OTHER GENERAL MEDICAL SERVICES (NON-WESTERN)", "86203 - SPECIALISED MEDICAL SERVICES (INCLUDING DAY SURGICAL CENTRES)", "86204 - DENTAL SERVICES", "86901 - MEDICAL LABORATORIES (E.G. BLOOD ANALYSIS LABORATORIES)", "86902 - MEDICAL DIAGNOSTIC IMAGING CENTRES (E.G. X-RAY SERVICES)", "86903 - AMBULANCE AND MEDICAL EVACUATION SERVICES", "86904 - HOME HEALTHCARE SERVICES", "86905 - DIALYSIS SERVICES", "86909 - OTHER HEALTH SERVICES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "87010 - NURSING AND PERSONAL CARE FACILITIES (INCLUDING NURSING HOMES AND HOSPICES)", "87021 - RESIDENTIAL CARE SERVICES FOR THE ELDERLY (E.G. HOME FOR THE AGED)", "87022 - RESIDENTIAL CARE SERVICES FOR CHILDREN (E.G. CHILDREN’S HOMES, ORPHANAGES)", "87029 - OTHER RESIDENTIAL CARE SERVICES N.E.C.", "88101 - SOCIAL SERVICES FOR THE ELDERLY (E.G. BEFRIENDER SERVICES, MEAL SERVICES, DROP-IN CENTRES)", "88102 - SOCIAL SERVICES FOR PERSONS WITH DISABILITIES (E.G. DAY ACTIVITY CENTRES FOR PEOPLE WITH DISABILITIES)", "88911 - CHILD CARE SERVICES FOR PRE-SCHOOL CHILDREN (INCLUDING INFANT CARE SERVICES)", "88912 - CHILD/STUDENT CARE SERVICES FOR SCHOOL-GOING CHILDREN (E.G. BEFORE AND AFTER-SCHOOL CARE CENTRES, STUDENT CARE CENTRES)", "88913 - SOCIAL SERVICES FOR CHILDREN AND YOUTHS (E.G. YOUTH OUTREACH SERVICES, ADOPTION SERVICES)", "88919 - SOCIAL SERVICES WITHOUT ACCOMMODATION FOR CHILDREN, YOUTH AND FAMILIES N.E.C.", "88920 - COMMUNITY DEVELOPMENT COUNCILS AND GRASSROOTS ORGANISATIONS", "88991 - JOB TRAINING AND VOCATIONAL REHABILITATION SERVICES", "88992 - CHARITABLE AND OTHER SUPPORTING ACTIVITIES AIMED AT HUMANITARIAN WORK", "88999 - OTHER SOCIAL SERVICES WITHOUT ACCOMMODATION N.E.C.", "90001 - PRODUCTION OF LIVE STAGE PRESENTATIONS", "90002 - PERFORMING ARTS VENUE OPERATION", "90003 - ORCHESTRAS, MUSICAL BANDS, CHOIRS AND DANCE GROUPS", "90009 - DRAMATIC ARTS, MUSIC AND OTHER ARTS PRODUCTION-RELATED ACTIVITIES N.E.C. (E.G. STAGE, LIGHTING AND SOUND SERVICES)", "91010 - LIBRARIES AND ARCHIVES ACTIVITIES", "91021 - MUSEUMS", "91029 - PRESERVATION OF HISTORICAL SITES, BUILDINGS, ARTEFACTS AND PAINTINGS, CULTURAL VILLAGES AND OTHER RELATED ACTIVITIES N.E.C.", "91030 - BOTANICAL AND ZOOLOGICAL GARDENS AND NATURE RESERVES ACTIVITIES", "92001 - HORSE-RACING AND OTHER BETTING ACTIVITIES", "92002 - CASINOS", "93111 - FITNESS CENTRES AND GYMNASIUMS", "93119 - OPERATION OF SPORTS FACILITIES N.E.C. (E.G. BOWLING ALLEYS, TENNIS CENTRES, BILLIARD HALLS, FOOTBALL STADIUM)", "93120 - ACTIVITIES OF SPORTS CLUBS/ASSOCIATIONS AND RELATED ACTIVITIES", "93201 - AMUSEMENT THEME PARKS", "93202 - GAME ARCADE, ONLINE GAME AGGREGATOR, LAN GAME OPERATORS AND GAMING CENTRES", "93203 - NIGHT CLUBS, DISCOTHEQUES, DANCE CLUBS AND KARAOKE LOUNGES", "93204 - RECREATION CLUBS (INCLUDING COUNTRY CLUBS)", "93209 - OTHER AMUSEMENT AND RECREATION ACTIVITIES N.E.C. (INCLUDING RECREATION PARKS/BEACHES AND RECREATIONAL FISHING)", "94110 - ACTIVITIES OF BUSINESS AND EMPLOYERS' MEMBERSHIP ORGANISATIONS", "94120 - ACTIVITIES OF PROFESSIONAL MEMBERSHIP ORGANISATIONS (E.G. MEDICAL ASSOCIATIONS, LAW SOCIETIES, ACCOUNTANCY BODIES)", "94200 - ACTIVITIES OF TRADE UNIONS", "94911 - CHURCHES", "94912 - MOSQUES", "94913 - BUDDHIST/TAOIST TEMPLES", "94914 - HINDU/SIKH TEMPLES", "94919 - ACTIVITIES OF RELIGIOUS ORGANISATIONS N.E.C.", "94920 - ACTIVITIES OF POLITICAL ORGANISATIONS", "94991 - PHILANTHROPIC TRUSTS, FOUNDATIONS AND RELATED ACTIVITIES", "94992 - ETHNIC ASSOCIATIONS (INCLUDING CLAN ASSOCIATIONS, HUAY KUANS)", "94993 - ASSOCIATIONS FOR HOBBIES, RECREATIONAL, CULTURAL AND EXTRA-CURRICULAR ACTIVITIES (E.G. SCOUTS/GIRL GUIDES ASSOCIATION, BOOK CLUBS AND PHOTO, MUSIC, ART AND CRAFT CLUBS)", "94994 - STUDENT/ALUMNI BODIES AND RELATED ASSOCIATIONS (E.G. PARENT-TEACHER ASSOCIATIONS, OLD BOYS' ASSOCIATIONS)", "94995 - ORGANISATIONS FOR THE PROTECTION OF THE ENVIRONMENT AND ANIMALS", "94999 - ACTIVITIES OF OTHER MEMBERSHIP ORGANISATIONS N.E.C.", "95110 - REPAIR AND MAINTENANCE OF COMPUTER HARDWARE, DATA PROCESSING EQUIPMENT AND COMPUTER PERIPHERALS", "95120 - REPAIR OF COMMUNICATIONS EQUIPMENT (E.G. MOBILE PHONES AND FAX MACHINES)", "95210 - REPAIR OF AUDIO AND VIDEO EQUIPMENT (E.G. TELEVISION SETS, SPEAKERS AND DVD PLAYERS)", "95220 - REPAIR OF DOMESTIC ELECTRICAL/ELECTRONIC APPLIANCES EXCEPT AUDIO AND VIDEO EQUIPMENT (E.G. REFRIGERATORS, WASHING MACHINES AND ROOM AIR-CONDITIONERS)", "95230 - REPAIR OF FOOTWEAR AND LEATHER GOODS", "95240 - REPAIR AND RESTORATION OF CABINETS, FURNITURE, UPHOLSTERY, WINDOW SHADES AND OTHER FIXTURES", "95291 - REPAIR OF BICYCLES AND TRICYCLES", "95292 - REPAIR OF WATCHES AND CLOCKS", "95293 - REPAIR OF JEWELLERY", "95299 - REPAIR OF OTHER PERSONAL AND HOUSEHOLD GOODS N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "95301 - REPAIR AND MAINTENANCE OF MOTOR VEHICLES (INCLUDING INSTALLATION OF PARTS & ACCESSORIES)", "95302 - CAR WASHING AND RELATED SERVICES", "95303 - VEHICLE INSPECTION AND VALUATION SERVICES", "96011 - LAUNDRY AND DRY CLEANING SERVICES EXCEPT SELF-OPERATED LAUNDRIES", "96012 - SELF-OPERATED LAUNDRIES", "96021 - HAIRDRESSING SALONS/SHOPS (INCLUDING BARBER SHOPS)", "96022 - BEAUTY SALONS AND SPAS (INCLUDING SLIMMING, SKIN CARE AND HAIR CARE CENTRES)", "96023 - MANICURE AND PEDICURE SERVICES", "96024 - MASSAGE PARLOURS AND FOOT REFLEXOLOGY", "96029 - BEAUTY AND OTHER PERSONAL CARE SERVICES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "96030 - FUNERAL AND RELATED ACTIVITIES (INCLUDING EMBALMING, CREMATING AND CEMETERY SERVICES, UPKEEP OF CEMETERIES)", "96040 - WEDDING AND RELATED ACTIVITIES (INCLUDING BRIDAL STUDIOS AND WEDDING PLANNERS)", "96091 - FRIENDSHIP, MATCH-MAKING AND DATING SERVICES", "96092 - SOCIAL ESCORT SERVICES", "96093 - ASTROLOGY, PALMISTRY AND OTHER FORTUNE TELLING SERVICES", "96094 - TRAINING OF PETS AND ANIMALS", "96095 - CARE SERVICES FOR PETS AND ANIMALS", "96099 - OTHER PERSONAL SERVICE ACTIVITIES N.E.C. (EXCLUDING ONLINE MARKETPLACES)", "97001 - ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS OF DOMESTIC WORKERS", "97002 - ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS OF OTHER DOMESTIC PERSONNEL (E.G. HOUSEKEEPERS)", "99010 - FOREIGN EMBASSIES AND TRADE REPRESENTATIVE OFFICES", "99020 - FOREIGN ARMED FORCES", "99090 - OTHER EXTRA-TERRITORIAL ORGANISATIONS AND BODIES", "UNKNOWN - UNKNOWN", "NOT APPLICABLE - NOT APPLICABLE" ``` ## List of value (Industry - International): ```ts Expandable International Industry theme={null} "ACCOUNTING/AUDIT/CONSULTING", "AGRICULTURE", "ANTIQUES & ARTPIECE", "BANKING/FINANCIAL/INSURANCE", "CONSTRUCTION & DEVELOPMENT", "EDUCATION", "ENGINEERING", "ENTERTAINMENT & RECREATION", "FOOD & BEVERAGES", "FORESTRY & LOGGING", "GOVERNMENT BODIES", "HOTEL & LODGING", "INFORMATION TECHNOLOGY", "LEGAL & JUDICIARY", "LOGISTICS", "MANUFACTURING", "MEDIA & COMMUNICATIONS", "MEDICAL & HEALTHCARE", "MINING & QUARRYING", "MONEY LENDING", "NON-PROFIT ORGANISATION", "OIL & GAS", "PAWNSHOP", "PROFESSIONAL SERVICES FIRM", "REAL ESTATE", "TRADING/RETAIL/WHOLESALE", "TRANSPORTATION", "UTILITIES", "TRAVEL/TOURISM", "UNKNOWN - UNKNOWN", "OTHERS", "NOT APPLICABLE - NOT APPLICABLE" ``` # Get Occupation List Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-occupation-list GET /api/app-config/bulk/artemis_ssoc **Description:** Get a list of allowed values for Occupation field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_ssoc" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of value (SSOC - Singapore) ```ts Expandable SSOC - Singapore theme={null} "11110 - LEGISLATOR", "11121 - SENIOR GOVERNMENT OFFICIAL", "11122 - SENIOR STATUTORY BOARD OFFICIAL", "11140 - SENIOR OFFICIAL OF POLITICAL PARTY ORGANISATION", "11150 - SENIOR OFFICIAL OF EMPLOYERS', WORKERS' AND OTHER ECONOMIC-INTEREST ORGANISATION", "11160 - SENIOR OFFICIAL OF HUMANITARIAN AND OTHER SPECIAL-INTEREST ORGANISATION", "11201 - MANAGING DIRECTOR/CHIEF EXECUTIVE OFFICER", "11202 - COMPANY DIRECTOR", "11203 - CHIEF OPERATING OFFICER/GENERAL MANAGER", "12111 - BUDGETING AND FINANCIAL ACCOUNTING MANAGER (INCLUDING FINANCIAL CONTROLLER)", "12113 - AUDIT MANAGER", "12112 - ADMINISTRATION MANAGER", "12121 - PERSONNEL/HUMAN RESOURCE MANAGER", "12122 - INDUSTRIAL RELATIONS MANAGER", "12123 - TRAINING MANAGER", "12131 - POLICY MANAGER", "12132 - STRATEGIC PLANNING MANAGER", "12133 - RISK MANAGEMENT MANAGER", "12191 - PREMISES AND FACILITIES MAINTENANCE MANAGER (EXCLUDING BUILDING SECURITY MANAGER)", "12192 - LANDSCAPE MANAGER", "12221 - ADVERTISING/PUBLIC RELATIONS MANAGER", "12194 - SECURITY MANAGER", "12230 - RESEARCH AND DEVELOPMENT MANAGER", "12215 - ONLINE SALES CHANNEL MANAGER", "12212 - BUSINESS DEVELOPMENT MANAGER", "12211 - SALES MANAGER", "12199 - OTHER BUSINESS SERVICES AND ADMINISTRATION MANAGERS N.E.C.", "12241 - CUSTOMER SERVICE MANAGER", "12213 - REGIONAL SALES MANAGER", "12242 - CALL CENTRE MANAGER", "12214 - MERCHANDISING/CATEGORY MANAGER", "12195 - INTELLECTUAL PROPERTY MANAGER", "12193 - CLEANING OPERATIONS MANAGER", "12222 - MARKETING MANAGER", "13100 - PRODUCTION MANAGER IN AGRICULTURE AND FISHERIES", "13210 - MANUFACTURING MANAGER", "13230 - CONSTRUCTION MANAGER", "13241 - SUPPLY AND DISTRIBUTION/LOGISTICS/WAREHOUSING MANAGER", "13242 - PROCUREMENT/PURCHASING MANAGER", "13243 - TRANSPORT/TECHNICAL OPERATIONS MANAGER (EXCEPT PORT/SHIPPING OPERATIONS)", "13244 - POSTAL SERVICE MANAGER", "13245 - PORT/SHIPPING OPERATIONS MANAGER", "13291 - TECHNICAL/ENGINEERING SERVICES MANAGER (EXCLUDING TRANSPORT)", "13292 - QUALITY CONTROL/ASSURANCE MANAGER", "13299 - OTHER PRODUCTION AND OPERATIONS MANAGERS N.E.C. (E.G. MINING MANAGER)", "13301 - CHIEF INFORMATION OFFICER/CHIEF TECHNOLOGY OFFICER/CHIEF SECURITY OFFICER", "13302 - SOFTWARE AND APPLICATIONS MANAGER", "13303 - NETWORK, COMMUNICATIONS AND INFRASTRUCTURE MANAGER", "13304 - ICT SERVICE MANAGER", "13410 - PRE-SCHOOL EDUCATION MANAGER", "13420 - HEALTH SERVICES MANAGER", "13430 - AGED CARE SERVICES MANAGER", "13441 - SOCIAL SERVICE MANAGER", "13442 - VOLUNTEER MANAGER", "13451 - SCHOOL PRINCIPAL", "13459 - OTHER EDUCATION MANAGERS (INCLUDING REGISTRARS, DEANS OF EDUCATION INSTITUTIONS AND HEADS OF TRAINING INSTITUTIONS)", "13463 - FINANCIAL RISK MANAGER", "13461 - FINANCIAL SERVICES MANAGER", "13462 - INSURANCE SERVICES MANAGER", "13499 - OTHER PROFESSIONAL, FINANCIAL, COMMUNITY AND SOCIAL SERVICES MANAGERS N.E.C.", "13492 - COMMUNITY, PARTNERSHIP AND RELATIONS MANAGER", "13493 - MEDIA AND BROADCASTING MANAGER", "13491 - NATIONAL SECURITY, CIVIL DEFENCE AND IMMIGRATION MANAGERIAL OFFICER", "14110 - HOTEL OPERATIONS/LODGING SERVICES MANAGER", "14121 - RESTAURANT MANAGER", "14122 - CATERING MANAGER", "14391 - EVENT MANAGER", "14123 - FOOD AND BEVERAGE OPERATIONS MANAGER", "14201 - RETAIL MANAGER", "14202 - WHOLESALE TRADE MANAGER", "14310 - SPORTS CENTRE MANAGER", "14321 - CASINO OPERATIONS MANAGER", "14322 - ATTRACTIONS MANAGER", "14329 - OTHER RECREATION CENTRE MANAGERS", "14323 - DISCOTHEQUE/KARAOKE/NIGHTCLUB MANAGER", "14324 - WELLNESS CENTRE MANAGER (E.G. HAIR/BEAUTY/SLIMMING/SPA/MANICURE/MASSAGE)", "14325 - COMMUNITY/COUNTRY CLUB MANAGER", "14330 - ARTS AND CULTURAL CENTRE MANAGER (INCLUDING GALLERY AND MUSEUM MANAGER)", "14392 - TRAVEL AGENCY MANAGER", "14399 - OTHER SERVICES MANAGERS N.E.C.", "21110 - PHYSICIST/ASTRONOMER", "21120 - METEOROLOGIST", "21130 - CHEMIST", "21141 - GEOLOGIST", "21142 - GEOPHYSICIST", "21149 - OTHER PHYSICAL SCIENCE PROFESSIONALS", "21211 - MATHEMATICIAN", "21212 - OPERATIONS RESEARCH ANALYST", "21213 - ACTUARY", "21221 - STATISTICIAN", "21231 - STATISTICAL OFFICER/DATA ANALYST", "21239 - OTHER STATISTICAL, MATHEMATICAL AND ACTUARIAL PROFESSIONALS", "21311 - BIOLOGIST", "21319 - OTHER BIOLOGISTS, BOTANISTS, ZOOLOGISTS AND RELATED PROFESSIONALS", "21312 - ZOOLOGIST", "21329 - OTHER FARMING, FORESTRY AND FISHERY ADVISERS", "21321 - HORTICULTURIST/ARBORIST", "21331 - ENVIRONMENTAL OFFICER (ENVIRONMENTAL PROTECTION)", "21332 - ENVIRONMENT RESEARCH SCIENTIST (E.G. ECOLOGIST)", "21496 - ENERGY ENGINEER", "21339 - OTHER ENVIRONMENTAL PROTECTION AND RELATED PROFESSIONALS", "21341 - PHARMACOLOGIST", "21349 - OTHER PHARMACOLOGISTS AND RELATED PROFESSIONALS", "21343 - BIOCHEMIST", "21344 - PHYSIOLOGIST", "21345 - ANIMAL SCIENTIST", "21346 - MEDICAL SCIENTIST", "21347 - CLINICAL RESEARCH PROFESSIONAL", "21342 - MEDICAL LABORATORY SCIENTIST", "21411 - MANUFACTURING ENGINEER", "21412 - PRODUCTION ENGINEER", "21413 - AUTOMATION ENGINEER (INCLUDING ROBOTICS ENGINEER)", "21414 - QUALITY CONTROL/ASSURANCE ENGINEER", "21421 - CIVIL ENGINEER", "21422 - BUILDING CONSTRUCTION ENGINEER", "21430 - ENVIRONMENTAL ENGINEER", "21441 - MECHANICAL ENGINEER", "21442 - INDUSTRIAL MACHINERY AND TOOLS ENGINEER", "21473 - MARINE ENGINEER", "21474 - NAVAL ARCHITECT", "21471 - AERONAUTICAL ENGINEER", "21472 - AUTOMOTIVE ENGINEER", "21443 - AIR-CONDITIONING/REFRIGERATION ENGINEER", "21444 - PORT EQUIPMENT ENGINEER", "21475 - ROLLING STOCK ENGINEER", "21451 - CHEMICAL ENGINEER", "21452 - CHEMICAL ENGINEER (PETROLEUM)", "21453 - CHEMICAL ENGINEER (PETROCHEMICALS)", "21460 - MINING ENGINEER, METALLURGIST AND RELATED PROFESSIONAL", "21491 - BIOMEDICAL ENGINEER", "21492 - MATERIALS ENGINEER", "21493 - INDUSTRIAL SAFETY ENGINEER", "21494 - QUANTITY SURVEYOR", "21499 - OTHER ENGINEERING PROFESSIONALS N.E.C.", "21454 - FOOD AND DRINK TECHNOLOGIST", "21497 - OPTICAL ENGINEER (INCLUDING LASER ENGINEER)", "33394 - SAFETY AND SECURITY CONSULTANT", "21495 - INTELLECTUAL PROPERTY ENGINEER", "21498 - PROCUREMENT ENGINEER", "21511 - ELECTRICAL ENGINEER", "21512 - POWER GENERATION AND DISTRIBUTION ENGINEER", "21513 - LIFT ENGINEER", "21521 - ELECTRONICS ENGINEER", "21522 - COMPUTER ENGINEER", "21523 - SEMI-CONDUCTOR ENGINEER", "21524 - AUDIO AND VIDEO EQUIPMENT ENGINEER", "21525 - INSTRUMENTATION ENGINEER", "21526 - EMBEDDED SYSTEMS ENGINEER (INCLUDING PORT SYSTEMS ENGINEER)", "21415 - PROCESS ENGINEER", "21532 - TELECOMMUNICATIONS ENGINEER", "21531 - MEDIA AND BROADCASTING ENGINEER", "21610 - BUILDING ARCHITECT", "21621 - LANDSCAPE ARCHITECT", "21631 - FASHION DESIGNER", "21632 - PRODUCT AND INDUSTRIAL DESIGNER", "21641 - URBAN PLANNER", "21649 - OTHER RELATED PLANNERS (E.G. TRAFFIC PLANNER)", "21659 - OTHER SURVEYORS AND CARTOGRAPHERS", "21652 - HYDROGRAPHIC SURVEYOR", "21651 - LAND SURVEYOR", "21661 - GRAPHIC DESIGNER", "21662 - MULTIMEDIA (INCLUDING GAMES) DESIGNER", "21663 - MULTIMEDIA ARTIST AND ANIMATOR", "21664 - INTERACTION DESIGNER", "21669 - OTHER GRAPHIC AND MULTIMEDIA DESIGNERS AND ARTISTS", "21670 - SERVICE DESIGNER", "21711 - CHIEF ENGINEER/SECOND ENGINEER (SHIP)", "21712 - MARINE SUPERINTENDENT (ENGINEER)", "21713 - SHIP CAPTAIN / CHIEF MATE", "21714 - MARINE SUPERINTENDENT", "21721 - COMMERCIAL AIRLINE PILOT", "21722 - AIRCRAFT PILOT (EXCEPT COMMERCIAL AIRLINE AND AIR FORCE)", "21729 - OTHER AIRCRAFT PILOTS AND RELATED ASSOCIATE PROFESSIONALS", "21723 - FLYING INSTRUCTOR (EXCEPT AIR FORCE)", "21724 - FLIGHT ENGINEER", "22110 - GENERAL PRACTITIONER/PHYSICIAN", "22121 - CARDIOLOGIST", "22122 - DERMATOLOGIST", "22123 - GASTROENTEROLOGIST", "22124 - INTERNAL MEDICINE PHYSICIAN", "22125 - MEDICAL ONCOLOGIST", "22126 - PAEDIATRICIAN", "22127 - RESPIRATORY PHYSICIAN", "22128 - PSYCHIATRIST", "22129 - OTHER SPECIALIST MEDICAL PRACTITIONERS (MEDICAL) (E.G. ENDOCRINOLOGIST, GERIATRICIAN, HAEMATOLOGIST, INFECTIOUS DISEASES PHYSICIAN, NEUROLOGIST, NUCLEAR MEDICINE PHYSICIAN, REHABILITATION PHYSICIAN, RENAL PHYSICIAN, RHEUMATOLOGIST)", "22131 - GENERAL SURGEON", "22132 - CARDIOTHORACIC SURGEON", "22133 - HAND SURGEON", "22134 - NEUROSURGEON", "22135 - ORTHOPAEDIC SURGEON", "22136 - PAEDIATRIC SURGEON", "22137 - PLASTIC SURGEON", "22138 - UROLOGIST", "22139 - OTHER SPECIALIST MEDICAL PRACTITIONERS (SURGICAL)", "22141 - ANAESTHESIOLOGIST", "22142 - DIAGNOSTIC RADIOLOGIST", "22143 - EMERGENCY PHYSICIAN", "22144 - OBSTETRICIAN/GYNAECOLOGIST", "22145 - OPHTHALMOLOGIST", "22146 - PATHOLOGIST", "22147 - PUBLIC HEALTH PHYSICIAN", "22148 - OTORHINOLARYNGOLOGIST/EAR, NOSE, THROAT (ENT) SPECIALIST", "22150 - OTHER SPECIALIST MEDICAL PRACTITIONER (OTHER SPECIALISATIONS) (E.G. OCCUPATIONAL PHYSICIAN, RADIATION ONCOLOGIST)", "22200 - REGISTERED NURSE AND OTHER NURSING PROFESSIONALS (E.G. CLINICAL NURSE, NURSE EDUCATOR, EXCLUDING ENROLLED NURSE)", "22301 - TRADITIONAL CHINESE MEDICINE PRACTITIONER", "22302 - TRADITIONAL CHINESE MEDICINE ACUPUNCTURIST", "22500 - VETERINARIAN", "22611 - GENERAL DENTAL PRACTITIONER", "22612 - SPECIALISED DENTIST (E.G. ORTHODONTIST)", "22621 - PHARMACIST (PATIENT CARE)", "22629 - OTHER PHARMACISTS", "22631 - OCCUPATIONAL HEALTH AND SAFETY PROFESSIONAL", "22632 - ENVIRONMENTAL OFFICER (PUBLIC HEALTH)", "22639 - OTHER ENVIRONMENTAL AND OCCUPATIONAL HEALTH AND HYGIENE PROFESSIONALS", "22640 - PHYSIOTHERAPIST", "22651 - DIETITIAN", "22652 - NUTRITIONIST", "22661 - AUDIOLOGIST", "22662 - SPEECH THERAPIST", "22670 - OPTOMETRIST", "22680 - OCCUPATIONAL THERAPIST", "22699 - OTHER HEALTH PROFESSIONALS N.E.C.", "22691 - CHIROPRACTOR", "22692 - PODIATRIST", "22693 - MEDICAL DIAGNOSTIC RADIOGRAPHER", "22694 - RADIATION THERAPIST", "23101 - UNIVERSITY LECTURER", "23102 - POLYTECHNIC LECTURER", "23103 - TEACHING ASSISTANT/TUTOR IN UNIVERSITY", "23109 - OTHER UNIVERSITY, POLYTECHNIC AND HIGHER EDUCATION TEACHERS", "23200 - JUNIOR COLLEGE AND PRE-UNIVERSITY TEACHER (INCLUDING INTEGRATED PROGRAMME YEAR 5-6 TEACHER)", "23300 - TECHNICAL/VOCATIONAL/COMMERCIAL EDUCATION INSTITUTE TEACHER AND TRAINER", "23400 - SECONDARY SCHOOL TEACHER (INCLUDING INTEGRATED PROGRAMME YEAR 1-4 TEACHER)", "23500 - PRIMARY SCHOOL TEACHER", "23611 - EDUCATION METHODS ADVISER", "23612 - INSTRUCTIONAL DESIGNER AND TECHNOLOGIST", "23619 - OTHER EDUCATION METHODS SPECIALISTS", "23621 - TEACHER OF THE VISUALLY IMPAIRED", "23629 - OTHER SPECIAL EDUCATION TEACHERS", "23622 - EARLY INTERVENTION TEACHER FOR INFANTS AND CHILDREN", "23690 - OTHER TEACHING PROFESSIONAL N.E.C.", "24111 - ACCOUNTANT (EXCLUDING TAX ACCOUNTANT)", "24112 - AUDITOR (ACCOUNTING)", "24113 - TAX ACCOUNTANT", "24122 - BUSINESS VALUER", "24121 - FINANCIAL/INVESTMENT ADVISER (E.G. RELATIONSHIP MANAGER)", "24131 - FINANCIAL ANALYST (E.G. EQUITIES ANALYST, CREDIT ANALYST, INVESTMENT RESEARCH ANALYST)", "24132 - COMPLIANCE OFFICER/RISK ANALYST (FINANCIAL)", "24133 - FUND/PORTFOLIO MANAGER (INCLUDING ASSET ALLOCATOR)", "24134 - TREASURY MANAGER", "24139 - OTHER FINANCIAL ANALYSTS AND RELATED PROFESSIONALS", "24135 - FINANCIAL PRODUCT STRUCTURER", "24151 - SECURITIES AND FINANCE BROKER", "24141 - SECURITIES AND FINANCE DEALER", "24142 - FOREIGN EXCHANGE DEALER", "24152 - FOREIGN EXCHANGE BROKER", "24143 - FINANCIAL DERIVATIVES DEALER", "24153 - FINANCIAL DERIVATIVES BROKER", "24154 - COMMODITIES AND FREIGHT DERIVATIVES BROKER", "24159 - OTHER FINANCE BROKERS", "24149 - OTHER FINANCE DEALERS", "24160 - INSURANCE UNDERWRITER", "24211 - MANAGEMENT CONSULTANT", "24212 - BUSINESS CONSULTANT", "24213 - BUSINESS AND FINANCIAL PROJECT MANAGEMENT PROFESSIONAL", "24220 - POLICY ADMINISTRATION PROFESSIONAL (E.G. POLICY ANALYST)", "24231 - HUMAN RESOURCE CONSULTANT (EXCLUDING EXECUTIVE SEARCH CONSULTANT)", "24232 - EXECUTIVE SEARCH CONSULTANT", "24291 - RESEARCH OFFICER (NON-STATISTICAL)", "24252 - INTELLECTUAL PROPERTY EXAMINER", "24299 - OTHER ADMINISTRATION PROFESSIONALS N.E.C.", "24311 - CREATIVE ADVERTISING PROFESSIONAL", "24312 - MARKET RESEARCH PROFESSIONAL", "24313 - MARKETING STRATEGY/PLANNING PROFESSIONAL", "24314 - DIGITAL MARKETING PROFESSIONAL (E.G. ONLINE, SOCIAL MEDIA, E-COMMERCE MARKETING PROFESSIONAL)", "24315 - REVENUE SPECIALIST", "24320 - PUBLIC RELATIONS/CORPORATE COMMUNICATIONS PROFESSIONAL", "24331 - TECHNICAL SALES PROFESSIONAL", "24332 - MEDICAL AND PHARMACEUTICAL PRODUCTS SALES PROFESSIONAL", "24333 - ICT SALES AND SERVICES PROFESSIONAL", "24334 - SALES PROFESSIONALS (INSTITUTIONAL SALES OF FINANCIAL PRODUCTS)", "24339 - OTHER SPECIALISED GOODS SALES PROFESSIONALS", "24352 - OIL AND BUNKER TRADER", "24351 - COMMODITIES TRADER (EXCLUDING OIL AND BUNKER)", "24361 - TRADE BROKER", "24362 - SHIP BROKER (E.G. CHARTER OR SALES & PURCHASE)", "24353 - SHIP CHARTERER", "25111 - SYSTEMS DESIGNER/ANALYST", "25112 - ICT BUSINESS PROCESS CONSULTANT/BUSINESS ANALYST", "25113 - ENTERPRISE/SOLUTION ARCHITECT", "25121 - SOFTWARE DEVELOPER", "25122 - WEB AND MOBILE APPLICATIONS DEVELOPER", "25123 - MULTIMEDIA (INCLUDING GAMES) DEVELOPER", "25140 - APPLICATIONS/SYSTEMS PROGRAMMER", "25151 - ICT QUALITY ASSURANCE SPECIALIST", "25152 - ICT AUDITOR", "25190 - SOFTWARE AND APPLICATIONS DEVELOPER AND ANALYST N.E.C.", "25211 - DATABASE ADMINISTRATOR", "25212 - DATABASE ARCHITECT", "25220 - NETWORK, SERVERS AND COMPUTER SYSTEMS ADMINISTRATOR", "25232 - IT INFRASTRUCTURE SPECIALIST", "25239 - OTHER COMPUTER NETWORK, INFRASTRUCTURE AND PLATFORM PROFESSIONALS", "25231 - CLOUD SPECIALIST", "25245 - CYBERSECURITY ARCHITECT", "25242 - PENETRATION TESTING SPECIALIST", "25243 - SECURITY OPERATIONS SPECIALIST", "25249 - OTHER CYBERSECURITY PROFESSIONALS", "25241 - CYBER RISK SPECIALIST", "25244 - DIGITAL FORENSICS SPECIALIST", "21222 - DATA SCIENTIST", "25291 - DATA CENTRE ENGINEER", "25299 - DATABASE AND NETWORK PROFESSIONALS N.E.C.", "26111 - ADVOCATE/SOLICITOR (PRACTISING)", "26112 - IN-HOUSE LEGAL COUNSEL (EXCEPT JUDICIARY, MINISTRIES AND STATUTORY BOARDS)", "26119 - OTHER LAWYERS (E.G. PROSECUTORS, LEGAL COUNSEL IN MINISTRIES AND STATUTORY BOARDS)", "26120 - JUDGE (INCLUDING REGISTRAR IN JUDICIARY)", "26191 - ARBITRATOR AND MEDIATOR", "26199 - OTHER LEGAL PROFESSIONALS N.E.C.", "26211 - ARCHIVIST", "26212 - CURATOR", "26213 - CONSERVATOR", "26221 - LIBRARIAN", "26229 - OTHER INFORMATION PROFESSIONALS", "26310 - ECONOMIST", "26321 - SOCIOLOGIST AND ANTHROPOLOGIST", "26322 - SOCIAL SCIENCE RESEARCHER", "26339 - OTHER SOCIAL SCIENCE PROFESSIONALS (E.G. PHILOSOPHER)", "26331 - POLITICAL SCIENTIST", "26349 - OTHER PSYCHOLOGISTS", "26342 - EDUCATIONAL PSYCHOLOGIST", "26343 - INDUSTRIAL AND ORGANISATIONAL PSYCHOLOGIST", "26341 - CLINICAL PSYCHOLOGIST", "26351 - SOCIAL WORKER (GENERAL)", "26352 - YOUTH WORK PROFESSIONAL", "26353 - MEDICAL SOCIAL WORKER", "26371 - COUNSELLOR (REHABILITATION)", "26372 - COUNSELLOR (DRUGS AND ALCOHOL)", "26373 - COUNSELLOR (FAMILY)", "26374 - SCHOOL COUNSELLOR", "26375 - CAREER COACH (COUNSELLING)", "26379 - OTHER COUNSELLING PROFESSIONALS", "26359 - OTHER SOCIAL SERVICE PROFESSIONALS", "26411 - AUTHOR", "26412 - SCRIPT WRITER AND EDITOR", "26413 - CONTENT WRITER", "26414 - TECHNICAL WRITER", "26415 - BOOK EDITOR", "26419 - OTHER AUTHORS AND RELATED WRITERS", "26421 - JOURNALIST", "26422 - EDITOR (NEWS AND PERIODICALS)", "26431 - TRANSLATOR", "26432 - INTERPRETER", "26519 - OTHER VISUAL ARTISTS", "26511 - PAINTER", "26521 - INSTRUMENTALIST", "26522 - COMPOSER/ORCHESTRATOR", "26523 - CONDUCTOR/DIRECTOR OF ORCHESTRA/BAND/CHOIR", "26524 - SINGER", "26529 - OTHER MUSICIANS, COMPOSERS AND SINGERS", "26530 - DANCER AND CHOREOGRAPHER", "26541 - PRODUCER (STAGE, FILM, TELEVISION, GAME, COMMERCIAL, VIDEO AND RADIO)", "26542 - DIRECTOR (STAGE, FILM, TELEVISION, GAME, COMMERCIAL, VIDEO AND RADIO)", "26543 - ARTISTIC DIRECTOR (STAGE, FILM, TELEVISION, GAME AND RADIO)", "26544 - EDITOR (RADIO, TELEVISION AND VIDEO)", "26549 - OTHER FILM, STAGE AND RELATED DIRECTORS AND PRODUCERS", "26550 - ACTOR", "26561 - RADIO AND TELEVISION PRESENTER", "26569 - OTHER RADIO AND TELEVISION PRESENTERS AND RELATED PROFESSIONALS", "26361 - MINISTER OF RELIGION", "26369 - OTHER RELIGIOUS PROFESSIONALS", "24251 - INTELLECTUAL PROPERTY AGENT", "31001 - ASSISTANT CIVIL AND STRUCTURAL ENGINEER", "31002 - ASSISTANT ELECTRICAL ENGINEER", "31003 - ASSISTANT ELECTRONICS ENGINEER", "31004 - ASSISTANT MECHANICAL ENGINEER", "31005 - ASSISTANT CHEMICAL ENGINEER", "31006 - ASSISTANT MANUFACTURING ENGINEER", "31009 - OTHER ASSISTANT ENGINEERS", "31111 - CHEMISTRY TECHNICIAN", "31112 - PHYSICS TECHNICIAN", "31119 - OTHER CHEMICAL AND PHYSICAL SCIENCE TECHNICIANS", "31121 - CIVIL ENGINEERING TECHNICIAN", "31122 - BUILDING TECHNICIAN", "31123 - LAND SURVEYING TECHNICIAN", "31124 - RESIDENT TECHNICAL OFFICER", "31129 - OTHER CIVIL ENGINEERING AND RELATED TECHNICIANS", "31131 - ELECTRICAL ENGINEERING TECHNICIAN", "31132 - LIFT TECHNICIAN", "31141 - ELECTRONICS ENGINEERING TECHNICIAN", "31142 - SEMI-CONDUCTOR TECHNICIAN", "31143 - AUDIO AND VIDEO EQUIPMENT TECHNICIAN", "31144 - INSTRUMENTATION TECHNICIAN", "31151 - MECHANICAL ENGINEERING TECHNICIAN", "31211 - AERONAUTICAL ENGINEERING TECHNICIAN", "31212 - AUTOMOTIVE ENGINEERING TECHNICIAN", "31152 - AIR-CONDITIONING/REFRIGERATION ENGINEERING TECHNICIAN", "31153 - MACHINING/TOOLING TECHNICIAN", "31213 - MARINE SURVEYOR (SHIP AND NAUTICAL)", "31214 - ROLLING STOCK ENGINEERING TECHNICIAN", "31161 - CHEMICAL ENGINEERING TECHNICIAN", "31162 - CHEMICAL ENGINEERING TECHNICIAN (PETROLEUM AND NATURAL GAS)", "31163 - CHEMICAL ENGINEERING TECHNICIAN (PETROCHEMICALS)", "31171 - MANUFACTURING ENGINEERING TECHNICIAN", "31172 - PRODUCTION ENGINEERING TECHNICIAN", "31174 - AUTOMATION TECHNICIAN", "31175 - QUALITY ASSURANCE TECHNICIAN", "31183 - CIVIL/STRUCTURAL ENGINEERING DRAUGHTSMAN", "31182 - ELECTRICAL/ELECTRONICS DRAUGHTSMAN", "31185 - MARINE DRAUGHTSMAN", "31189 - OTHER DRAUGHTSMEN (E.G. CARTOGRAPHICAL DRAUGHTSMAN)", "31184 - ARCHITECTURAL DRAUGHTSMAN", "31181 - MECHANICAL DRAUGHTSMAN", "31291 - MECHATRONICS TECHNICIAN", "31292 - METALLURGICAL TECHNICIAN", "31299 - OTHER PHYSICAL AND ENGINEERING SCIENCE TECHNICIANS N.E.C.", "31293 - PRECISION OPTICS TECHNICIAN", "31294 - QUANTITY SURVEYING TECHNICIAN", "31173 - PROCESS ENGINEERING TECHNICIAN", "31295 - AIRPORT MAINTENANCE TECHNICIAN", "31411 - BIOLOGICAL TECHNICIAN", "31164 - FOOD SCIENCE TECHNICIAN", "31412 - CLINICAL RESEARCH COORDINATOR", "31419 - OTHER LIFE SCIENCE TECHNICIANS", "31421 - HORTICULTURAL TECHNICIAN (INCLUDING IRRIGATION SPECIALIST)", "31422 - PLANT TISSUE CULTURE TECHNICIAN", "31423 - FARMING TECHNICIAN (ANIMAL PRODUCTION)", "31510 - MARINE ENGINEERING OFFICER (INCLUDING THIRD, FOURTH AND FIFTH ENGINEER)", "31521 - SHIP'S DECK NAVIGATING OFFICER (INCLUDING SECOND, THIRD AND FOURTH MATE)", "31522 - HARBOUR PILOT", "31529 - OTHER SHIPS' DECK OFFICERS AND PILOTS", "31540 - AIR TRAFFIC CONTROLLER", "31560 - SEA TRAFFIC CONTROLLER", "31571 - AIR TRANSPORT SERVICE SUPERVISOR", "31572 - TRAIN SERVICE SUPERVISOR", "31573 - ROAD TRANSPORT SUPERVISOR", "31574 - PORT/SHIPPING OPERATIONS SUPERVISOR (INCLUDING POST-FIXTURE AND PLANNER)", "31579 - OTHER TRANSPORT OPERATIONS SUPERVISORS", "31591 - PORT MASTER/DOCKMASTER", "31592 - PORT CAPTAIN", "31593 - FLIGHT OPERATIONS OFFICER", "31594 - AIR CARGO OFFICER", "31595 - LOAD CONTROL OFFICER (AIRCRAFT)", "31596 - TRAIN OPERATIONS OFFICER", "31599 - OTHER TRANSPORT CONTROLLERS AND RELATED WORKERS N.E.C.", "31597 - ROAD TRANSPORT OPERATIONS OFFICER", "31601 - PREMISES AND FACILITIES MAINTENANCE OFFICER", "31602 - LANDSCAPE OPERATIONS OFFICER", "31603 - PARKS OFFICER", "31711 - FIRE AND SAFETY INSPECTOR", "31719 - OTHER BUILDING AND FIRE INSPECTORS", "31720 - SAFETY INSPECTOR (VEHICLES, PROCESSES AND PRODUCTS)", "32111 - SONOGRAPHER", "32112 - MEDICAL X-RAY TECHNICIAN", "32119 - OTHER MEDICAL IMAGING, THERAPEUTIC EQUIPMENT TECHNICIANS AND RELATED ASSOCIATE PROFESSIONALS", "32120 - MEDICAL AND PATHOLOGY LABORATORY TECHNICIAN", "32130 - PHARMACY TECHNICIAN", "32142 - PROSTHETIC AND ORTHOTIC TECHNICIAN", "32141 - PROSTHETIST AND ORTHOTIST", "32143 - DENTAL TECHNICIAN", "32200 - ENROLLED/ASSISTANT NURSE (EXCLUDING REGISTERED NURSE)", "32300 - TRADITIONAL AND COMPLEMENTARY MEDICINE ASSOCIATE PROFESSIONAL (E.G. HOMEOPATH AND NATUROPATH)", "32400 - VETERINARY TECHNICIAN/ASSISTANT", "53203 - DENTAL AIDE/ASSISTANT", "32510 - ORAL HEALTH THERAPIST (E.G. DENTAL THERAPISTS AND DENTAL HYGIENISTS)", "32530 - COMMUNITY HEALTH WORKER", "32540 - OPTICIAN", "32551 - MASSAGE THERAPIST", "32559 - OTHER PHYSIOTHERAPY TECHNICIANS AND RELATED ASSOCIATED PROFESSIONALS", "32571 - ENVIRONMENTAL INSPECTOR (ENVIRONMENTAL PUBLIC HEALTH)", "32572 - OCCUPATIONAL HEALTH AND SAFETY INSPECTOR", "32591 - PARAMEDIC", "32599 - OTHER HEALTH ASSOCIATE PROFESSIONALS N.E.C.", "33129 - OTHER CREDIT AND LOANS OFFICERS", "33121 - FINANCIAL MARKETS BACK OFFICE ADMINISTRATOR", "33133 - TAX ASSOCIATE PROFESSIONAL", "33132 - AUDIT ASSOCIATE PROFESSIONAL", "33131 - ASSISTANT ACCOUNTANT", "33151 - APPRAISER/VALUER (EXCLUDING INTANGIBLE ASSET VALUER)", "33152 - ASSESSOR", "33153 - INTANGIBLE ASSET VALUER (E.G. INTELLECTUAL PROPERTY VALUATION ANALYST)", "33211 - INSURANCE SALES AGENT/BROKER (INCLUDING INDEPENDENT FINANCIAL PLANNER)", "33219 - OTHER INSURANCE REPRESENTATIVES AND RELATED ASSOCIATE PROFESSIONALS", "33221 - BUSINESS DEVELOPMENT EXECUTIVE", "33222 - AFTER SALES ADVISER/CLIENT ACCOUNT SERVICE EXECUTIVE", "33223 - MARKETING AND SALES EXECUTIVE (FOOD & BEVERAGE SERVICES)", "33224 - ONLINE SALES CHANNEL EXECUTIVE", "33225 - MERCHANDISING/CATEGORY EXECUTIVE", "33229 - OTHER COMMERCIAL AND MARKETING SALES EXECUTIVES", "33231 - BUYER", "33232 - PURCHASING AGENT", "33291 - INTELLECTUAL PROPERTY BROKERS AND TRANSACTION SPECIALIST", "33299 - SALES AND RELATED ASSOCIATE PROFESSIONALS N.E.C.", "33311 - CLEARING AND FORWARDING AGENT", "33312 - SHIPPING AGENT/BOARDING OFFICER", "33313 - FREIGHT INSPECTOR", "33320 - EXHIBITION/CONFERENCE/EVENT PLANNER (INCLUDING WEDDING PLANNER/COORDINATOR)", "33330 - EMPLOYMENT AGENT/LABOUR CONTRACTOR", "33340 - REAL ESTATE AGENT", "33391 - AUCTIONEER", "33392 - ADVERTISING SALESMAN", "33393 - INTERNATIONAL MARKET AGENT/REPRESENTATIVE (E.G. JUNKET OPERATOR)", "33399 - OTHER BUSINESS SERVICES AGENTS N.E.C. (E.G. SPORTS AGENT, ARTISTE AGENT)", "24233 - PERSONNEL/HUMAN RESOURCE OFFICER", "24234 - INDUSTRIAL RELATIONS OFFICER", "24240 - TRAINING AND STAFF DEVELOPMENT PROFESSIONAL", "33493 - CREWING EXECUTIVE (SHIP)", "33462 - MAINTENANCE PLANNER", "33461 - LOGISTICS/PRODUCTION PLANNER", "33491 - MANAGEMENT EXECUTIVE", "33492 - OPERATIONS OFFICER (EXCEPT TRANSPORT OPERATIONS)", "33499 - OTHER ADMINISTRATIVE AND RELATED ASSOCIATE PROFESSIONALS N.E.C.", "33510 - CUSTOMS/IMMIGRATION OFFICER", "33552 - AUXILIARY POLICE OFFICER SUPERVISOR", "33551 - POLICE INSPECTOR", "33591 - GOVERNMENT TAX AND EXCISE OFFICIAL", "33592 - GOVERNMENT SOCIAL BENEFITS OFFICIAL", "33593 - GOVERNMENT LICENSING OFFICIAL", "33599 - OTHER GOVERNMENT ASSOCIATE PROFESSIONALS N.E.C.", "33611 - AIR TRANSPORT EQUIPMENT PROJECT EXECUTIVE", "33612 - RAIL TRANSPORT EQUIPMENT PROJECT EXECUTIVE", "33613 - ROAD TRANSPORT EQUIPMENT PROJECT EXECUTIVE", "33614 - WATER TRANSPORT EQUIPMENT PROJECT EXECUTIVE", "33619 - OTHER TRANSPORT EQUIPMENT PROJECT EXECUTIVES", "34110 - LEGAL ASSOCIATE PROFESSIONAL (E.G. PARALEGAL)", "34121 - YOUTH WORK ASSOCIATE", "34122 - SOCIAL WORK ASSOCIATE", "34123 - VOLUNTEER EXECUTIVE", "34210 - ATHLETE/SPORTSMAN", "34221 - SPORTS COACH", "34222 - MARTIAL ARTS INSTRUCTOR", "34223 - PHYSICAL FITNESS INSTRUCTOR (INCLUDING YOGA INSTRUCTOR AND AEROBICS INSTRUCTOR)", "34224 - SPORTS OFFICIAL", "34229 - OTHER RELATED INSTRUCTORS AND ASSOCIATE PROFESSIONALS (E.G. ADVENTURE TRAINING INSTRUCTOR AND SCUBA DIVING INSTRUCTOR)", "34310 - PHOTOGRAPHER", "34321 - INTERIOR DESIGNER", "21622 - LANDSCAPE DESIGNER", "34323 - VISUAL MERCHANDISER", "34322 - DECORATOR AND RELATED ASSOCIATE PROFESSIONAL (E.G. WINDOW DRESSER, SET DESIGNER)", "34331 - LIBRARY OFFICER", "34332 - GALLERY, MUSEUM AND RELATED TECHNICIAN", "34341 - CHEF", "34342 - KITCHEN OPERATIONS HEAD/SUPERVISOR", "34343 - PASTRY CHEF", "34391 - TATTOOIST", "34399 - OTHER ARTISTIC AND CULTURAL ASSOCIATE PROFESSIONALS N.E.C.", "34409 - OTHER CREATIVE AND PERFORMING ARTS ASSOCIATE PROFESSIONALS", "34401 - DISC JOCKEY", "35110 - COMPUTER SYSTEMS OPERATOR", "35123 - IT SUPPORT TECHNICIAN (INCLUDING IT USER HELPDESK TECHNICIAN)", "35122 - IT SECURITY TECHNICIAN", "35121 - IT INFRASTRUCTURE TECHNICIAN", "35129 - OTHER COMPUTER TECHNICIANS", "35140 - WEBSITE ADMINISTRATOR/WEBMASTER", "35211 - MEDIA AND BROADCASTING OPERATIONS TECHNICIAN", "35212 - VIDEO CAMERA OPERATOR", "35213 - TELEVISION/MOTION PICTURE CAMERA OPERATOR", "35214 - RADIO AND TELEVISION STUDIO EQUIPMENT OPERATOR", "35215 - SOUND ENGINEERING TECHNICIAN", "35219 - OTHER BROADCASTING TECHNICIANS AND AUDIO-VISUAL OPERATORS (E.G. MICROPHONE OPERATOR)", "35220 - TELECOMMUNICATIONS TECHNICIAN", "35231 - TELECOMMUNICATIONS SERVICE SUPERVISOR", "35232 - RADIO-TELEPHONE OPERATOR (LAND-BASED)", "35239 - OTHER TELECOMMUNICATIONS EQUIPMENT OPERATORS", "35290 - OPTICAL AND ELECTRONIC EQUIPMENT OPERATOR N.E.C.", "36100 - PRE-PRIMARY EDUCATION TEACHER", "36201 - LANGUAGE INSTRUCTOR (EXTRACURRICULUM)", "36202 - ART AND CRAFT INSTRUCTOR (EXTRACURRICULUM)", "36203 - INFORMATION TECHNOLOGY TRAINER (EXTRACURRICULUM)", "36204 - MUSIC INSTRUCTOR (EXTRACURRICULUM)", "36205 - DANCE INSTRUCTOR (EXTRACURRICULUM)", "36206 - SPEECH AND DRAMA INSTRUCTOR (EXTRACURRICULUM)", "36209 - OTHER EXTRACURRICULUM INSTRUCTORS", "36910 - PRIVATE TUTOR (ACADEMIC)", "36991 - RELIEF TEACHER", "36999 - OTHER TEACHING ASSOCIATE PROFESSIONALS N.E.C.", "39910 - NON-ORDAINED RELIGIOUS ASSOCIATE PROFESSIONAL", "40000 - OFFICE SUPERVISOR", "41101 - OFFICE CLERK (INCLUDING FILING AND COPYING)", "41102 - PERSONNEL/HUMAN RESOURCE CLERK", "41109 - OTHER ADMINISTRATIVE CLERKS (E.G. PUBLIC RELATIONS CLERK)", "41201 - SECRETARY", "41202 - VERBATIM REPORTER", "41310 - TYPISTS AND WORD PROCESSING OPERATOR", "41320 - DATA ENTRY CLERK", "42111 - BANK TELLER", "42112 - POSTAL SERVICE COUNTER CLERK", "42113 - MONEY CHANGER", "42119 - OTHER TELLERS AND COUNTER CLERKS", "42131 - PAWNBROKER", "42132 - MONEYLENDER", "42141 - BILL COLLECTOR", "42149 - OTHER BILL COLLECTORS AND RELATED WORKERS", "42210 - TRAVEL CONSULTANT/RESERVATION EXECUTIVE", "42230 - TELEPHONE OPERATOR", "42241 - RECEPTIONIST (GENERAL)", "42242 - HOTEL RECEPTIONIST (INCLUDING HOTEL RESERVATION AND FRONT DESK CLERK)", "42243 - MEDICAL/DENTAL RECEPTIONIST", "42244 - PASSENGER SERVICES AGENT", "42245 - CUSTOMER SERVICE OFFICER/CLERK", "42246 - CONTACT CENTRE INFORMATION CLERK", "42247 - HOTEL EXECUTIVE (INCLUDING HOTEL RESERVATION AND FRONT DESK EXECUTIVE)", "42249 - OTHER RECEPTIONISTS AND INFORMATION CLERKS", "42290 - CLIENT INFORMATION CLERK N.E.C.", "43111 - BOOKKEEPER", "43112 - LEDGER AND ACCOUNTS CLERK", "43113 - AUDIT CLERK", "43114 - PAYROLL/WAGES CLERK", "43115 - BILLING CLERK", "43116 - PROCUREMENT/PURCHASING CLERK", "43119 - OTHER ACCOUNTING CLERKS (E.G. COST CLERK)", "43121 - BANK OPERATIONS CLERK", "43122 - INSURANCE/UNDERWRITING CLERK", "43123 - SECURITIES CLERK", "43129 - OTHER FINANCE AND INSURANCE CLERKS (E.G. CREDIT CLERK)", "43141 - STATISTICAL CLERK", "43142 - ENUMERATOR/MARKET RESEARCH INTERVIEWER", "43151 - DATA PROCESSING CONTROL CLERK", "43159 - OTHER COMPUTER OPERATIONS CLERKS", "43211 - STOCK RECORDS CLERK", "43212 - STOREKEEPER", "43219 - OTHER STOCK CLERKS", "43221 - MATERIAL PLANNING CLERK", "43222 - PRODUCTION PLANNING CLERK", "43229 - OTHER PRODUCTION CLERKS", "43231 - SHIPPING CLERK", "43232 - LAND TRANSPORT CLERK", "43233 - AIR TRANSPORT CLERK", "43239 - OTHER TRANSPORT CLERKS", "44110 - LIBRARY CLERK", "44170 - LEGAL CLERK", "44191 - PROOFREADING CLERK", "44199 - OTHER CLERICAL SUPPORT WORKERS N.E.C.", "51111 - CHIEF STEWARD", "51112 - CABIN ATTENDANT/STEWARD", "51121 - RAIL STATION SERVICE ASSISTANT", "51122 - TICKET INSPECTOR", "51129 - OTHER TRANSPORT SERVICE INSPECTORS AND RELATED WORKERS", "51131 - TOUR GUIDE", "51132 - ATTRACTIONS GUIDE", "51201 - COOK (E.G. COMMIS COOK 2/3)", "51202 - SENIOR COOK (E.G. STATION CHEF, COMMIS COOK 1, STATION COOK)", "51311 - CAPTAIN WAITER/WAITER SUPERVISOR", "51312 - WAITER", "51313 - SOMMELIER", "51321 - BARTENDER/MIXOLOGIST", "51322 - BARISTA", "51330 - BAR/LOUNGE HOSTESS", "51390 - WAITER AND BARTENDER N.E.C. (E.G. FOOD CHECKER (CATERING SERVICES))", "51411 - HAIR STYLIST/HAIRDRESSER", "51412 - BARBER", "51419 - OTHER HAIR CARE WORKERS (E.G. HAIR THERAPIST/CONSULTANT)", "51421 - BEAUTICIAN", "51422 - MANICURIST", "51423 - MAKE-UP ARTIST (STAGE, FILM AND STUDIO)", "51491 - MASSEUR (NON-MEDICAL) (INCLUDING FOOT REFLEXOLOGIST)", "51492 - SLIMMING CONSULTANT", "51499 - OTHER WELLNESS RELATED WORKERS N.E.C.", "51501 - HOUSEKEEPER (HOTELS AND OTHER ESTABLISHMENTS)", "51502 - HOUSE STEWARD", "51503 - HOUSEKEEPING MATRON", "51504 - HEAD BUTLER (HOTELS AND OTHER ESTABLISHMENTS)", "51505 - BUTLER (HOTELS AND OTHER ESTABLISHMENTS)", "51509 - OTHER HOUSEKEEPERS AND RELATED WORKERS", "44121 - POSTAL SERVICE SUPERVISOR", "44122 - POSTMAN", "44123 - PROCESS SERVER", "96299 - OTHER ELEMENTARY WORKERS N.E.C.", "93310 - HAND/PEDAL VEHICLE DRIVER", "83229 - OTHER CAR AND LIGHT GOODS VEHICLE DRIVERS", "83223 - VAN DRIVER", "83212 - DELIVERY MAN USING MOTORISED PERSONAL MOBILITY AIDS/DEVICES", "83211 - MOTORCYCLE DELIVERY MAN", "44129 - OTHER MAIL DISTRIBUTION WORKERS (E.G. MAIL SORTER)", "51701 - GAMING SUPERVISOR (E.G. PIT MANAGER/SUPERVISOR, SLOT MANAGER/SUPERVISOR AND CASINO SHIFT MANAGER/SUPERVISOR)", "51702 - BOOKMAKER/CROUPIER/CASINO DEALER AND RELATED GAMING WORKER", "51910 - ASTROLOGER/FORTUNE TELLER AND RELATED WORKER", "51931 - UNDERTAKER", "51932 - EMBALMER", "51941 - PET GROOMER", "51942 - KEEPER/TRAINER IN ZOOLOGICAL, BIRD AND AQUATIC PARKS", "51943 - HORSE TRAINER", "51944 - DOG TRAINER", "51949 - OTHER ANIMAL/BIRD KEEPERS AND ANIMAL CARE WORKERS", "51950 - DRIVING INSTRUCTOR/TESTER", "51991 - SOCIAL ESCORT", "51999 - OTHER PERSONAL SERVICE WORKERS N.E.C.", "52110 - HAWKER/STALL HOLDER (EXCLUDING PREPARED FOOD OR DRINKS)", "52120 - HAWKER/STALL HOLDER (PREPARED FOOD OR DRINKS)", "52130 - NEWSVENDOR", "52190 - OTHER STALL SALES WORKER", "52201 - SALES SUPERVISOR", "52202 - SHOP SALES ASSISTANT", "52301 - CAGE/COUNT SUPERVISOR", "52302 - CASHIER (GENERAL)", "52303 - OFFICE CASHIER", "52309 - OTHER CASHIERS, TICKET AND RELATED CLERKS", "52411 - FASHION MODEL", "52419 - OTHER MODELS (E.G. ARTIST'S MODEL)", "52421 - SALES DEMONSTRATOR", "52422 - SALESPERSON (DOOR-TO-DOOR)", "52440 - TELEMARKETER", "52491 - PETROL STATION ATTENDANT", "52492 - FOOD SERVICE COUNTER ATTENDANT", "52499 - SALES WORKERS N.E.C. (E.G. SHIP CHANDLER)", "53111 - BABYSITTER/INFANT CARE-GIVER", "53112 - CONFINEMENT NANNY", "53113 - CHILD/AFTER SCHOOL CARE CENTRE WORKER", "53114 - CHILD/YOUTH RESIDENTIAL CARE ASSISTANT", "53115 - EDUCARER", "53120 - TEACHER AIDE", "53201 - HEALTHCARE ASSISTANT (E.G. THERAPY AIDE/ASSISTANT)", "53202 - NURSING AIDE/ASSISTANT", "53209 - OTHER PERSONAL CARE WORKERS (E.G. OLD FOLKS' HOME, NURSING HOME, HOME CARE)", "54110 - FIRE-FIGHTING AND RESCUE OFFICER", "54121 - POLICE OFFICER", "54122 - NARCOTICS OFFICER", "54123 - AUXILIARY POLICE OFFICER", "54130 - PRISON OFFICER", "54142 - SECURITY SUPERVISOR", "54141 - SENIOR SECURITY SUPERVISOR", "54144 - PRIVATE SECURITY OFFICER", "54143 - SENIOR PRIVATE SECURITY OFFICER", "54150 - LIFEGUARD", "54191 - PRIVATE INVESTIGATOR", "54192 - INDUSTRIAL INVESTIGATOR", "54193 - INSURANCE INVESTIGATOR", "54194 - PARK RANGER", "54199 - OTHER PROTECTIVE SERVICES AND RELATED WORKERS N.E.C.", "59000 - SERVICE WORKER N.E.C.", "61110 - VEGETABLE FARM WORKER", "61132 - PLANT NURSERY WORKER", "61133 - GARDENERS AND HORTICULTURAL WORKER", "61131 - LANDSCAPE AND PLANT NURSERY SUPERVISOR", "61210 - LIVESTOCK/DAIRY FARM WORKER", "61221 - POULTRY FARM WORKER", "61222 - POULTRY INSEMINATOR", "61900 - AGRICULTURAL WORKER N.E.C.", "62211 - FISH/PRAWN FARM WORKER", "62212 - AQUARIUM FISH FARM WORKER", "62219 - OTHER AQUATIC LIFE CULTIVATION WORKERS (E.G. OYSTER FARM WORKER)", "62220 - COASTAL WATERS/DEEP SEA FISHERY WORKER", "71000 - SUPERVISOR/GENERAL FOREMAN (BUILDING AND RELATED TRADES)", "71120 - BRICKLAYER/BLOCKLAYER", "71130 - STONE CUTTER, SPLITTER, CARVER AND STONEMASON", "71141 - CONCRETE FORM WORKER", "71142 - CEMENT FINISHER/SCREEDER", "71149 - OTHER CONCRETE PLACERS, CONCRETE FINISHERS AND RELATED WORKERS", "71151 - CARPENTER", "71152 - JOINER", "71191 - SCAFFOLDER", "71199 - OTHER BUILDING FRAME AND RELATED TRADES WORKERS N.E.C. (E.G. STEEPLEJACK)", "71192 - CLADDING/CURTAIN WALL ERECTOR", "71210 - ROOFER", "71220 - FLOOR/WALL TILER", "71230 - PLASTERER", "71249 - OTHER INSULATION WORKERS", "71242 - BOILER/PIPE INSULATOR", "71241 - REFRIGERATION/AIR-CONDITIONING EQUIPMENT INSULATOR", "71250 - GLAZIER", "71261 - PLUMBER", "71262 - PIPE FITTER", "71263 - PIPE/DRAIN LAYER", "71271 - AIR-CONDITIONING/REFRIGERATION EQUIPMENT MECHANIC", "71272 - AIR-CONDITIONING/REFRIGERATION PLANT INSTALLER", "71290 - BUILDING FINISHER AND RELATED TRADES WORKER N.E.C.", "71311 - BUILDING PAINTER", "71312 - WALL/CEILING PAPERHANGER", "71321 - STRUCTURAL STEEL/SHIP PAINTER", "71322 - MOTOR VEHICLE SPRAY PAINTER", "71323 - SIGN PAINTER", "71324 - SPRAY PAINTER (EXCEPT SHIPS, MOTOR VEHICLES AND SIGNS)", "71329 - OTHER PAINTERS AND RELATED WORKERS", "71331 - BUILDING MAINTENANCE WORKER", "71332 - BUILDING STRUCTURE CLEANER AND RELATED WORKER", "72000 - SUPERVISOR/GENERAL FOREMAN (METAL, MACHINERY AND RELATED TRADES)", "72110 - METAL MOULDER AND COREMAKER", "72120 - WELDER AND FLAME CUTTER", "72130 - SHEET METAL WORKER", "72140 - STRUCTURAL METAL PREPARER AND ERECTOR", "72150 - RIGGER AND CABLE SPLICER", "72210 - BLACKSMITH, HAMMERSMITH AND FORGING-PRESS WORKER", "72221 - TOOL AND DIE MAKER", "72222 - LOCKSMITH", "72229 - OTHER TOOLMAKERS AND RELATED WORKERS", "72240 - METAL POLISHER, WHEEL GRINDER AND TOOL SHARPENER", "72310 - AUTOMOTIVE MECHANIC", "72320 - AIRCRAFT ENGINE MECHANIC AND REPAIRER", "72391 - MACHINERY MECHANIC", "72392 - INDUSTRIAL/OFFICE MACHINERY MECHANIC", "72350 - MARINE ENGINE MECHANIC AND REPAIRER", "72399 - OTHER MACHINERY MECHANICS AND REPAIRERS N.E.C. (E.G. AGRICULTURAL MACHINERY MECHANIC)", "72340 - BICYCLE AND RELATED REPAIRER", "72330 - ROLLING STOCK MECHANIC", "73000 - SUPERVISOR/GENERAL FOREMAN (PRECISION, HANDICRAFT, PRINTING AND RELATED TRADES)", "73111 - WATCH AND CLOCK ASSEMBLER/REPAIRER", "73112 - OPTICAL INSTRUMENT MAKER/REPAIRER", "73113 - MEDICAL DEVICE ASSEMBLER/REPAIRER", "73119 - OTHER PRECISION INSTRUMENT MAKERS AND REPAIRERS", "73120 - MUSICAL INSTRUMENT MAKER/REPAIRER/TUNER", "73130 - JEWELLERY AND PRECIOUS METAL WORKER", "73140 - POTTER AND RELATED WORKER", "73150 - GLASS MAKER, CUTTER, GRINDER AND FINISHER", "73160 - SIGN WRITER, DECORATIVE PAINTER, ENGRAVER AND ETCHER", "73210 - PRE-PRESS TRADES WORKER", "73220 - PRINTER", "74002 - SUPERVISOR/GENERAL FOREMAN (ELECTRICAL AND ELECTRONIC TRADES, EXCLUDING LIFT)", "74001 - LIFT SUPERVISOR", "74110 - ELECTRICIAN", "74121 - ELECTRICAL FITTER", "74122 - ELECTRICAL LIFT, ESCALATOR AND RELATED EQUIPMENT FITTER", "74123 - ELECTRICAL HOUSEHOLD APPLIANCE REPAIRER", "74131 - ELECTRICAL LINE INSTALLER", "74132 - ELECTRIC CABLE JOINTER", "74133 - UNDERGROUND ELECTRICAL LINE INSTALLER AND REPAIRER", "74211 - ELECTRONICS FITTER", "74212 - CONSUMER AUDIO AND VIDEO EQUIPMENT MECHANIC", "74221 - RADIO, TELEVISION AND RADAR BROADCASTING/TRANSMITTING EQUIPMENT FITTER", "74222 - COMPUTER AND RELATED ELECTRONIC EQUIPMENT MECHANIC", "74223 - TELECOMMUNICATIONS LINEMAN", "74224 - TELECOMMUNICATIONS INSTALLER/SERVICER", "75000 - SUPERVISOR/GENERAL FOREMAN (FOOD PROCESSING, WOODWORKING, GARMENT, LEATHER AND RELATED TRADES).", "75110 - BUTCHER, FISHMONGER AND RELATED FOOD PREPARER", "75121 - BAKER", "75122 - PASTRY AND CONFECTIONERY MAKER", "75150 - FOOD AND BEVERAGE TASTER AND GRADER", "75190 - FOOD PROCESSING AND RELATED TRADES WORKER N.E.C. (E.G. FRUIT PICKLER)", "75210 - WOOD TREATER", "75220 - CABINET MAKER AND WOOD RELATED TRADES WORKER", "75290 - FURNITURE MAKER AND RELATED TRADES WORKER N.E.C.", "75310 - TAILOR/DRESSMAKER", "75320 - GARMENT AND RELATED PATTERN-MAKER AND CUTTER", "75340 - UPHOLSTERER AND RELATED WORKER", "75361 - SHOEMAKER", "75362 - COBBLER", "75363 - LEATHER GOODS MAKER/ASSEMBLER", "75369 - OTHER SHOEMAKERS AND RELATED WORKERS", "75390 - GARMENT AND RELATED TRADES WORKER N.E.C. (E.G. FELLMONGER, TENT SEWER, UMBRELLA MAKER)", "75440 - FUMIGATOR AND OTHER PEST AND WEED CONTROLLER", "75410 - UNDERWATER DIVER", "75490 - CRAFT AND RELATED WORKER N.E.C.", "81000 - STATIONARY PLANT AND MACHINE SUPERVISOR/GENERAL FOREMAN", "81130 - WELL DRILLER AND BORER AND OTHER MINING RELATED WORKER", "81140 - CEMENT AND OTHER MINERAL PRODUCTS MACHINE OPERATOR", "31350 - METAL PRODUCTION PROCESS CONTROLLER", "81210 - METAL MELTER, CASTER AND ROLLING MILL OPERATOR", "81220 - METAL HEAT TREATING PLANT OPERATOR", "81230 - METAL DRAWER AND EXTRUDER", "81240 - METAL FINISHING, PLATING AND COATING MACHINE OPERATOR", "81251 - METALWORKING MACHINE SETTER-OPERATOR", "81252 - PRECISION GRINDING MACHINE SETTER-OPERATOR", "81259 - OTHER MACHINE-TOOL SETTER-OPERATORS", "31331 - CHEMICAL PROCESSING AND CHEMICAL PRODUCTS PLANT CONTROLLER", "81311 - CHEMICAL PROCESSING AND PRODUCTS PLANT AND MACHINE OPERATOR", "81320 - PHOTOGRAPHIC PRODUCTS MACHINE OPERATOR", "31332 - PHARMACEUTICAL PRODUCTS MACHINE CONTROLLER", "81312 - PHARMACEUTICAL PRODUCTS MACHINE OPERATOR", "81390 - CHEMICAL PROCESSING, CHEMICAL AND PHOTOGRAPHIC PRODUCTS PLANT AND MACHINE OPERATOR N.E.C.", "81410 - RUBBER PRODUCTS MACHINE OPERATOR", "81420 - PLASTIC PRODUCTS MACHINE OPERATOR", "81430 - PAPER AND PAPERBOARD PRODUCTS MACHINE OPERATOR", "81509 - OTHER TEXTILE, FUR AND LEATHER PRODUCTS MACHINE OPERATORS (E.G. SHOEMAKING AND RELATED MACHINE OPERATORS)", "81501 - SEWING MACHINE OPERATOR", "81502 - LAUNDRY AND DRY CLEANING WORKER (MACHINE, NON-HOUSEHOLD)", "81601 - MEAT AND FISH PRODUCTS MACHINE OPERATOR", "81602 - DAIRY AND CONFECTIONERY PRODUCTS MACHINE OPERATOR", "81609 - OTHER FOOD AND RELATED PRODUCTS MACHINE OPERATORS", "81603 - BAKED AND CEREAL PRODUCTS MACHINE OPERATOR", "81604 - BREWER AND WINE AND OTHER BEVERAGES MACHINE OPERATOR", "31399 - OTHER PROCESS CONTROL TECHNICIANS N.E.C.", "81700 - WOOD PROCESSING AND PAPERMAKING PLANT OPERATOR", "81811 - GLASS/CERAMICS KILN MACHINE OPERATOR", "81812 - FIBREGLASS MAKER", "81819 - OTHER GLASS AND CERAMICS PLANT OPERATORS", "81821 - BOILER FIREMAN", "81829 - OTHER STEAM TURBINE, BOILER AND ENGINE OPERATORS", "81822 - SHIP'S OILER/GREASER", "81830 - PACKING/BOTTLING/LABELLING MACHINE OPERATOR", "81841 - PRINTING MACHINE OPERATOR", "81842 - BOOKBINDING MACHINE OPERATOR", "81849 - OTHER PRINTING, BINDING AND RELATED MACHINE OPERATORS", "31321 - STATIONARY ENGINE OPERATOR", "31322 - COMPRESSOR OPERATOR", "31323 - PUMPING STATION OPERATOR", "31324 - WATER TREATMENT MACHINE OPERATOR (WATERWORKS)", "31325 - REFRIGERATION SYSTEM OPERATOR", "31329 - OTHER INCINERATOR AND WATER TREATMENT PLANT AND RELATED MACHINE OPERATORS", "31310 - POWER GENERATING PLANT OPERATOR", "31341 - PETROLEUM AND NATURAL GAS REFINING PLANT OPERATOR", "31342 - CYLINDER FILLER/TESTER (COMPRESSED AND LIQUEFIED GASES)", "31392 - AUTOMATED ASSEMBLY LINE/INDUSTRIAL ROBOT OPERATOR", "81890 - STATIONARY PLANT AND MACHINE OPERATOR N.E.C.", "82000 - SUPERVISOR/GENERAL FOREMAN OF ASSEMBLERS AND QUALITY CHECKERS", "82110 - MECHANICAL EQUIPMENT/COMPONENT ASSEMBLER", "82121 - ELECTRICAL EQUIPMENT/COMPONENT ASSEMBLER", "82122 - ELECTRONIC EQUIPMENT/COMPONENT ASSEMBLER", "82123 - BATTERY ASSEMBLER", "82131 - ELECTRICAL/ELECTRONIC PRODUCTS QUALITY CHECKER AND TESTER", "82132 - MECHANICAL PRODUCTS QUALITY CHECKER AND TESTER", "82139 - OTHER QUALITY CHECKERS AND TESTERS", "82190 - ASSEMBLER N.E.C.", "83000 - MOBILE MACHINERY SUPERVISOR AND GENERAL FOREMAN", "83110 - TRAIN OPERATOR", "83121 - RAILWAY BRAKEMAN/SIGNALMAN/SHUNTER", "83129 - OTHER RAILWAY BRAKERS AND RELATED WORKERS", "83221 - TAXI DRIVER", "83222 - CHAUFFEUR", "83224 - AMBULANCE DRIVER", "83225 - PARKING VALET", "83226 - PRIVATE-HIRE CAR DRIVER", "83311 - BUS DRIVER", "83312 - TRAM DRIVER", "83321 - LORRY DRIVER", "83322 - TRAILER-TRUCK DRIVER (INCLUDING PRIME MOVER DRIVER)", "83329 - OTHER HEAVY TRUCK AND LORRY DRIVERS", "83492 - AIRPORT MOBILE EQUIPMENT OPERATOR", "83323 - CONCRETE MIX TRUCK DRIVER", "83324 - WASTE TRUCK DRIVER (INCLUDING HOOKLIFT TRUCKS WITH ROLL-ON CONTAINERS)", "83421 - EXCAVATING/TRENCH DIGGING MACHINE OPERATOR", "83422 - DREDGE OPERATOR", "83423 - PILE DRIVER/DRILLING MACHINE OPERATOR", "83429 - OTHER EARTH MOVING AND RELATED MACHINERY OPERATORS", "83424 - TUNNELLING MACHINE OPERATOR (INCLUDING PIPE JACKING MACHINE OPERATOR)", "31391 - REMOTE CRANE OPERATOR", "83431 - CRANE/HOIST OPERATOR (EXCLUDING PORT)", "83432 - CRANE OPERATOR (ON-SITE)", "83439 - OTHER CRANE, HOIST AND RELATED EQUIPMENT OPERATORS", "83441 - FORK LIFT TRUCK OPERATOR", "83449 - OTHER LIFTING TRUCK OPERATORS", "83491 - MOTORISED SWEEPER OPERATOR", "83499 - MOBILE MACHINERY OPERATORS N.E.C. (E.G. MOBILE FARM PLANT OPERATOR)", "83501 - PORT LIMIT HELMSMAN/STEERSMAN/ENGINE DRIVER/TUGMASTER", "83502 - DECKHAND (INCLUDING LIGHTERMAN)", "83509 - OTHER SHIPS' DECK CREW AND RELATED WORKERS", "91000 - CLEANING SUPERVISOR", "91121 - HOUSEKEEPING/LINEN ROOM ATTENDANT", "91122 - HOTEL CLEANER", "91129 - OTHER CLEANERS AND HELPERS IN HOTELS AND RELATED ESTABLISHMENTS", "91133 - OFFICE, COMMERCIAL AND INDUSTRIAL ESTABLISHMENTS MULTI-SKILLED CLEANER CUM MACHINE OPERATOR", "91132 - OFFICE, COMMERCIAL AND INDUSTRIAL ESTABLISHMENTS OUTDOOR CLEANER", "91131 - OFFICE, COMMERCIAL AND INDUSTRIAL ESTABLISHMENTS INDOOR CLEANER", "91154 - FOOD AND BEVERAGE ESTABLISHMENTS MULTI-SKILLED CLEANER CUM MACHINE OPERATOR", "91151 - FOOD AND BEVERAGE ESTABLISHMENTS GENERAL CLEANER", "91153 - DISHWASHER", "91152 - TABLE-TOP CLEANER", "91162 - RESIDENTIAL AND OPEN AREAS MULTI-SKILLED CLEANER CUM MACHINE OPERATOR", "91161 - RESIDENTIAL AND OPEN AREAS GENERAL CLEANER", "91210 - HAND LAUNDERER/PRESSER (NON-HOUSEHOLD)", "91220 - MOTOR VEHICLE CLEANER/POLISHER", "91230 - WINDOW CLEANER", "91291 - SHIP/SHIP TANK CLEANER", "91292 - AIRCRAFT CLEANER", "91293 - RAILWAY CARRIAGE CLEANER (INCLUDE MRT, LRT AND MONORAIL)", "91299 - OTHER CLEANING WORKERS N.E.C.", "91300 - DOMESTIC HELPER AND CLEANER", "92142 - LANDSCAPE WORKER", "92141 - TREE WORKER/TECHNICIAN", "92149 - OTHER PARK AND GARDEN MAINTENANCE WORKERS", "92190 - AGRICULTURAL AND FISHERY LABOURER AND RELATED WORKER N.E.C. (E.G. FARM LABOURER)", "93100 - CIVIL ENGINEERING/BUILDING CONSTRUCTION LABOURER", "93201 - HAND PACKER", "93209 - OTHER MANUFACTURING LABOURERS AND RELATED WORKERS (E.G. RUBBER SHEETS CLIPPER AND SORTER)", "93331 - STEVEDORE", "93332 - RAILWAY/ROAD VEHICLE LOADER", "93333 - AIRCRAFT LOADER (E.G. AIRPORT BAGGAGE/CARGO HANDLER)", "93334 - WAREHOUSE WORKER", "93335 - VEHICLE ATTENDANT", "93336 - MOVER", "93337 - LASHING WORKER", "93339 - OTHER MATERIAL AND FREIGHT HANDLING WORKERS", "94101 - KITCHEN ASSISTANT", "94102 - FOOD/DRINK STALL ASSISTANT", "94103 - FAST FOOD PREPARER", "94104 - TEA SERVER/STEWARD (EXCLUDING BARTENDER, BARISTA AND FOOD/DRINK STALL ASSISTANT)", "96000 - WASTE COLLECTION, RECYCLING AND MATERIAL RECOVERY SUPERVISOR", "96111 - GENERAL WASTE COLLECTION, RECYCLING AND MATERIAL RECOVERY WORKER", "96112 - WASTE RECYCLING SORTER", "96113 - GREASY WASTE COLLECTION, RECYCLING AND MATERIAL RECOVERY WORKER", "96119 - OTHER WASTE COLLECTION, RECYCLING AND MATERIAL RECOVERY WORKERS", "96211 - BELL CAPTAIN", "96212 - BELLBOY/HOTEL PORTER", "96213 - PORTER (EXCEPT HOTEL)", "96251 - OFFICE/LIBRARY ATTENDANT", "96252 - LABORATORY ATTENDANT", "96253 - HOSPITAL/CLINIC ATTENDANT", "96254 - CAR PARK ATTENDANT", "96255 - SPORTS AND RECREATIONAL ATTENDANT (E.G. GOLF MARSHAL, GOLF CADDIE, FUN FAIR ATTENDANT, BOWLING ALLEY ATTENDANT, SWIMMING POOL ATTENDANT)", "96256 - BUS ATTENDANT", "96257 - RESTROOM ATTENDANT", "96259 - OTHER ATTENDANTS", "96261 - BUILDING CARETAKER/WATCHMAN", "96262 - DOORMAN", "96269 - OTHER WATCHMEN AND RELATED WORKERS (E.G. LIGHTHOUSE KEEPER)", "96271 - CHIEF CONCIERGE (HOTEL)", "96272 - CONCIERGE (HOTEL)", "96291 - LEAFLET AND NEWSPAPER DISTRIBUTOR/DELIVERER", "96292 - METER READER/VENDING-MACHINE COLLECTOR", "96293 - ODD JOB PERSON", "X1000 - WORKER REPORTING UNIDENTIFIABLE OR INADEQUATELY DESCRIBED OCCUPATION", "X2000 - WORKER NOT REPORTING ANY OCCUPATION", "X3000 - SINGAPORE ARMED FORCES PERSONNEL", "X4000 - FOREIGN ARMED FORCES PERSONNEL", "X5000 - FOREIGN DIPLOMATIC PERSONNEL", "UNKNOWN - UNKNOWN", "NOT APPLICABLE - NOT APPLICABLE", "UNEMPLOYED - UNEMPLOYED" ``` ### List of value (Occupation - International): ```ts Expandable International Occupation theme={null} "ACCOUNTANT", "ADMINISTRATION PROFESSIONAL", "ARCHITECT", "ART/ANTIQUE DEALER", "ARTISTE/MUSICIAN/CREW/PRODUCER", "AUCTIONEER", "BANKER", "BUILDING CONSTRUCTION LABOURER", "BUSINESS OWNER/SOLE PROPRIETOR", "C-SUITE OFFICER", "CABIN CREW", "CHEF", "CIVIL SERVANT", "CLEANER/HOUSEKEEPER", "CLERICAL STAFF", "CUSTOMER SERVICE PROFESSIONAL", "DESIGNER", "COMPANY DIRECTOR/PARTNER", "DRIVER", "ELECTRICIAN", "ENGINEER", "FACTORY/MACHINE OPERATOR", "F&B SERVICE CREW", "HAIRDRESSER", "HAWKER", "HOTEL AND RESTAURANT MANAGER", "INFORMATION TECHNOLOGY PROFESSIONAL", "INSURANCE AGENT", "JOURNALIST/REPORTER", "LEGAL PROFESSIONAL", "MEDICAL PROFESSIONAL", "MONEY LENDER", "PAWNBROKER", "PHOTOGRAPHER", "PILOT", "PLUMBER", "GOVERNMENT OFFICIAL/POLITICIAN", "PROFESSOR", "REAL ESTATE BROKER/AGENT", "RECEPTIONIST", "RETIRED", "REMISER/TRADER/DEALER", "SALES, MARKETING AND PUBLIC RELATIONS PROFESSIONAL", "SCHOOL PRINCIPAL", "SKILLED/PRODUCTION WORKER", "SURVEYOR", "TEACHING PROFESSIONAL", "TECHNICIAN", "TRAVEL AGENT/TOUR GUIDE", "UNEMPLOYED", "UNKNOWN - UNKNOWN", "OTHERS", "NOT APPLICABLE - NOT APPLICABLE" ``` # Get Onboarding Modes Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-onboarding-modes GET /api/app-config/bulk/artemis_onboarding_modes **Description:** Get a list of allowed values for Onboarding Mode field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_onboarding_modes" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Ownership Layers value: ```ts theme={null} "FACE-TO-FACE", "NON FACE-TO-FACE", "UNKNOWN", "NOT APPLICABLE" ``` # Get Ownership Layers Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-ownership-layers GET /api/app-config/bulk/artemis_ownership_layers **Description:** Get a list of allowed values for Ownership Structure Layer field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_ownership_layers" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Ownership Layers value: ```ts theme={null} "1", "2", "3 OR MORE", "UNKNOWN" ``` # Get Payment Modes Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-payment-modes GET /api/app-config/bulk/artemis_payment_modes **Description:** Get a list of allowed values for Payment Mode field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_payment_modes" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Payment Modes: ```ts theme={null} "TELEGRAPHIC TRANSFER", "CHEQUE (LOCAL)", "CHEQUE (FOREIGN)", "CREDIT CARD", "VIRTUAL CURRENCY", "CASH", "DIRECT DEBIT / CREDIT", "UNKNOWN", "NOT APPLICABLE" ``` # Get Product Service Complexities Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-product-service-complexities GET /api/app-config/bulk/artemis_product_service_complexities **Description:** Get a list of allowed values for Product Service Complexity field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_product_service_complexities" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Ownership Layers value: ```ts theme={null} "SIMPLE", "COMPLEX", "HIGH RISK", "UNUSUAL", "UNKNOWN", "NOT APPLICABLE" ``` # Get Source Of Funds Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-source-of-funds GET /api/app-config/bulk/artemis_source_of_funds **Description:** Get a list of allowed values for Source Of Funds field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_source_of_funds" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Source Of Funds value: ```ts theme={null} "BUSINESS REVENUE", "INHERITANCE", "INSURANCE/DIVORCE PAYOUT", "INVESTMENT GAIN", "LOAN", "LOTTERY/WINDFALL", "RENTAL INCOME", "SALARY", "OTHERS" ``` # Get Source Of Wealth Source: https://docs.cynopsis.co/artemis3-api-reference/static-list-retrieval-apis/get-source-of-wealth GET /api/app-config/bulk/artemis_source_of_wealth **Description:** Get a list of allowed values for the **Source Of Wealth** field. ## Example Request ```bash theme={null} curl -X GET "{{backend_url}}/api/app-config/bulk/artemis_source_of_wealth" \ -H "Authorization: Bearer " \ -H "X-Domain-ID: {{domain_id}}" ``` ### List of Source Of Wealth values: ```ts theme={null} "SAVINGS", "INVESTMENT RETURNS", "SALES OF PROPERTY", "PROFESSIONAL SALARY/EMPLOYMENT", "GIFT/INHERITANCE", "BUSINESS PROFITS" ``` # C. PUT Face Compare result into Artemis Source: https://docs.cynopsis.co/artemis3-api-reference/update-ocr-liveness-fac-result-api/put-fac-result PUT /api/customer/{customerId}/document/{documentId}/face-compare `Description:` Manually put a new Face Compare result into Artemis via API. # B. PUT Liveness result into Artemis Source: https://docs.cynopsis.co/artemis3-api-reference/update-ocr-liveness-fac-result-api/put-liveness-result PUT /api/customer/{customerId}/document/{documentId}/liveness `Description:` Manually put a new Liveness result into Artemis via API. # A. PUT OCR result into Artemis Source: https://docs.cynopsis.co/artemis3-api-reference/update-ocr-liveness-fac-result-api/put-ocr-result PUT /api/customer/{customerId}/document/{documentId}/ocr `Description:` Manually put a new OCR result into Artemis via API. # createUser Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/createuser post /api/user # enableUserMfa Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/enableusermfa post /api/user/enable-mfa # getAllUsers Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getallusers get /api/user # getAllUsersByRole Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getallusersbyrole get /api/user/role/{roleId} # getAllUsersByRoleNoPagination Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getallusersbyrolenopagination get /api/user/role/{roleId}/all # getCurrentUser Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getcurrentuser get /api/user/me # getCurrentUserPermission Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getcurrentuserpermission get /api/user/permissions # getPermittedUserFromAnotherDomainId Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getpermitteduserfromanotherdomainid get /api/user/permitted-user/domain/{domainId} # getPermittedUserFromDomainId Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getpermitteduserfromdomainid get /api/user/permitted-user # getUserInfo Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getuserinfo get /api/user/{userId}/info # getUserMfa Source: https://docs.cynopsis.co/artemis3-api-reference/user-controller/getusermfa get /api/user/mfa-info # Simple Customer Creation Workflow Source: https://docs.cynopsis.co/artemis3-api-reference/workflow POST /api/customer/createWithCrps ## 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`](/artemis3-api-reference/authentication) API * The `X-Domain-ID` header included in every request (this value will be provided by **Cynopsis**) Example headers: ```http theme={null} 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** > > ```http theme={null} > 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 ```json theme={null} { "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": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "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": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "bankAccountNumber": [], "undischargedBankrupt": "", "ownershipPercentage": "" } } ], "triggerScreening": true, "triggerScreeningForCrp": true } ``` ### Sample Request Body 2 — Individual Primary Customer with one Corporate CRP ```json theme={null} { "customer": { "active": true, "profileReferenceId": "65999", "other": { "industry": "EDUCATION", "occupation": "TEACHING PROFESSIONAL", "onBoardingMode": "NON FACE-TO-FACE", "paymentMode": ["CREDIT CARD"], "productServiceComplexity": "SIMPLE", "sourceOfFunds": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "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": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "sourceOfWealth": [ { "id": "", "category": "", "amountDeclared": null, "evidenceCorroborated": "" } ], "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. # 3. Add Bucket Source: https://docs.cynopsis.co/athena-api-reference/add_bucket post /api/buckets Bucket(s) - Segmentation to suit different customer or transaction profiles A bucket can be described in simple terms as a group of transactions to fit a set of screening metrics. Often, this is done to segment transactions conducted by different customer groups, depending on different business needs. By default, **all transactions** uploaded into Athena will be registered into the Bucket named "Ordinary". Please note that the name and description of this bucket cannot be modified nor deleted. To create your own bucket, perform the following API call. Take note that Bucket names must be **unique**. # Bucket Content Source: https://docs.cynopsis.co/athena-api-reference/add_bucketcontent post /api/bucketcontent Populate existing transaction into other buckets on an ad-hoc basis. The Bucket Content API was designed to allow transactions to be included in a bucket on an ad-hoc basis. For example, some transactions have not been populated to another bucket, so the user decides to perform this API request to pass to other buckets. This can be done via the following API call. # Add Case Document(s) Source: https://docs.cynopsis.co/athena-api-reference/add_case_document patch /api/cases/{id}/document Add Document into a Case **Requirements** * IsCaseAssigneePermission User * Document must be a File * Document extension must be .png, .jpg, .jpeg, or .pdf * Document size must be smaller than 10mb # Rule Source: https://docs.cynopsis.co/athena-api-reference/add_rule patch /api/buckets/{id} Update a bucket by its ID. Rules are defined as prefixed, situation-based scenario to detect suspicious transactions. Parameters on the other hand are configurable settings inside every rule. **Activating** / **Deactivating** a rule in a given Bucket. To activate a given rule, set the field \[activate\_rule] in the following API call to "True". Otherwise, to deactivate the rule from screening, set it to "False". ```bash theme={null} { "rule_id":1 "activate_rule":"True" } ``` ### # Enroll Customer Source: https://docs.cynopsis.co/athena-api-reference/add_subject post /api/subjects Subject(s) - Enrolling of customer profiles **Customer** (used in this doc) and **Subject** (used in the API/backend) mean the same thing: one individual. In order for Athena to accept Transaction records, the Subjects/Customers will need to be enrolled into Athena first. Each customer/subject ID record represents an individual person. Sample HTTP Request (**Mandatory** fields only) ```bash theme={null} HTTP Method: POST URL: {{base_url}}/api/subjects Request Body: e.g. { "client_subject_id":"AS0001Y", "subject_name":"Lim Kay Wee" } ``` Sample HTTP Request (**Mandatory Fields and Optional** Fields Included) ```bash theme={null} HTTP Method: POST URL: {{base_url}}/api/subjects Request Body: e.g. { "client_subject_id": "AS0002Y", "subject_name":"Joseph Tan Kai Song", "customer_segment":"High Net Worth", "date_and_place_of_birth":"13-Jun-1992, Singapore", "nationality":"SINGAPOREAN", "account_type":"REGULAR", "customer_aml_risk_rating":"MEDIUM", "customer_account":"PREMIUM", "account_opening_date":"13 Jun 2010", "source_of_funds":"Unknown", "average_monthly_income":"5000”, "cif_status":"N/A", "occupation":"Software Developer", "industry":"Information Technology", "purpose_of_account":"Savings", "contact_number":"97412572", "email_address":"jasontay@outlook.sg", "unique_identification_number":"123456789", "address":"Marina Bay", "account_type_ii":"-", "account_opening_date_ii":"-", "customer_account_ii":"-" } ``` # Transaction Source: https://docs.cynopsis.co/athena-api-reference/add_transaction post /api/transactions Once the above steps have been completed, you may proceed to upload your transactions into Athena for screening. Please note that once transactions are uploaded into Athena, screening will be done **immediately**. To upload your transactions into Athena, perform the following API call with the given sample request bodies. **Transaction type must conform to one of the following types** * PAY * WITHDRAW * DEPOSIT **Requirements before posting a transaction** * cp\_a\_id and cp\_b\_id needs to be one of the Subjects enrolled via the Subjects API. * If transaction\_type is PAY, both cp\_a\_id and cp\_b\_id must be present. * If transaction\_type is DEPOSIT, at least cp\_b\_id must be present. * If transaction\_type is WITHDRAW, at least cp\_a\_id needs to be present. * transaction\_currency\_id must be the currency set as the master currency.. * cp\_a\_country and cp\_b\_country, where provided, must be a valid three letter country code. * transaction\_timestamp cannot be dated in the future. * If provided, the “populate\_buckets” field must contain a list of bucket names, all of which are available at the time of transaction upload. Otherwise, the record will be rejected and not provided to Athena. **transaction\_timestamp must conform to one of the following time formats** * 2020-08-20T13:31:02.777 (YYYY-MM-DDTHH:MM:SS.SSS) * 2020-08-20T13:31:02 (YYYY-MM-DDTHH:MM:SS) * 2020-08-20T13:31 (YYYY-MM-DDTHH:MM) **Sample Request Body (Mandatory Fields):** ```bash theme={null} { "transaction_currency_id":"SGD" "client_transaction_id":"SAMPLE-TXN-001", "transaction_type":"PAY", "cp_a_id":"AS0001Y" "cp_b_id":"AS0002Y" "transaction_timestamp":"2020-12-12T12:12:12" "amount":"5000.00" } ``` **Sample Request (All Fields):** ```bash theme={null} { "client_transaction_id":"ID10001", "transaction_type":"PAY", "cp_a_id":"AS001Y", "cp_a_country": "SGP", "cp_a_bank": "DBS Bank Pte. Ltd", "cp_b_id":"AS002Y", "cp_b_country": "SGP", "cp_b_bank": "DBS Bank Pte. Ltd", "transaction_timestamp":"2020-08-20T13:31", "transaction_currency_id":"SGD", "amount":123456.78, "alt_currency_id":"IDR", "amount_in_alt_currency":"500000", "payment_mode":"PayLah", “purpose_of_transfer”: “Purchase of goods”, "populate_buckets":["BucketName1","sampleBucket","anotherBucketName"] } ``` **Note**: For cp\_a\_country and cp\_b\_country, it must be a valid three letter country code. Please refer to the link below. [ISO 3166 - 3 Digit Code and Full Country Spelling](https://www.iso.org/obp/ui/#search/code/) ### # Authentication Source: https://docs.cynopsis.co/athena-api-reference/authentication Setting up Athena authentication access **Prerequisite**: In order to run the collection below, a **host** URL is required, which will be provided by Cynopsis. This can then be set as a global variable or in the environment created for Athena in the Introduction section. This documentation covers two methods for obtaining authentication tokens: 1. **Amazon Cognito User Pools API**: The original method for getting tokens via Cognito. 2. **CRM System API**: A newer method for getting tokens directly via the CRM. *** ## Method 1: Using Amazon Cognito User Pools API To get a Cognito access token, we are using the Amazon Cognito User Pools API. [Postman Authentication Service Collection](https://developer.cynopsis.co/assets/postman-collections/athena3-auth.json) ### Health Check of the Authentication API Service ```bash theme={null} GET {{host}}/auth/healthCheck ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "description": "the service is healthy" } ``` ### Get Access Token by Username To generate a token, please make an API call to the following API. ```bash theme={null} POST {{host}}/auth/get-access-token-by-username ``` ### Requirements For the credentials required below, Cynopsis will advise. * username * password * user\_pool\_id * client\_id **Sample HTTP Request** ```bash theme={null} HTTP Method: POST URL: {{host}}/auth/get-access-token-by-username Request Body: e.g. { "username": "username@mycredentials.com", "password": "Th15Is@P4S5W0rd!", "user_pool_id": "Cynopsis to advise", "client_id": "Cynopsis to advise" } ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "token": "Token will be here.", "id_token": "ID of token will be here." } ``` ### Get Refresh Token ```bash theme={null} POST {{host}}/auth/get-refresh-token ``` **Sample HTTP Request** Same requirements as the **Get Access Token by Username** endpoint. ```bash theme={null} HTTP Method: POST URL: {{host}}/auth/get-access-token-by-username Request Body: e.g. { "username": "username@mycredentials.com", "password": "Th15Is@P4S5W0rd!", "user_pool_id": "Cynopsis to advise", "client_id": "Cynopsis to advise" } ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "refresh_token": "Token will be here.", "id_token": "ID of token will be here." } ``` ### Get Access Token by Refresh Token **Sample HTTP Request** Make an API call to the above API and then use that refresh token in this API along with the client ID. ```bash theme={null} HTTP Method: POST URL: {{host}}/auth/get-access-token-by-refresh-token Request Body: e.g. { "refresh_token": "Refresh token will be required here.", "client_id": "Cynopsis to advise" } ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "refresh_token": "Token will be here.", "id_token": "ID of token will be here." } ``` ### Authenticate Token To authenticate a token, make an API call to the following API. ```bash theme={null} POST {{host}}/auth/authenticate-token ``` **Sample HTTP Request** ```bash theme={null} HTTP Method: POST URL: {{host}}/auth/authenticate-token Request Body: e.g. { "token": "Token to be authenticated.", "pool_url": "Cynopsis to advise", "client_id": "Cynopsis to advise" } ``` **Sample HTTP Response** For security reasons, the properties of the response body have been set to an empty string. ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "origin_jti": "", "sub": "", "event_id": "", "token_use": "", "scope": "", "auth_time": "", "iss": "", "exp": "", "iat": "", "jti": "", "client_id": "", "username": "" } ``` *** ## Method 2: Using the CRM System API This method allows you to get access and refresh tokens directly from the CRM system. ### Get Access Token and Refresh Token by Username and Password on CRM To generate a token and refresh token, please make an API call to the following endpoint. ```bash theme={null} POST {{host}}/oauth/token ``` ### Requirements For the credentials required below, Cynopsis will advise. * grant\_type * client\_id * username * password **Sample HTTP Request** ```bash theme={null} HTTP Method: POST URL: {{host}}/oauth/token Request Body: e.g. { "grant_type": "password", "client_id": "client_id", "username": "clientsuccess@cynopsis.co", "password": "pw@123" } ``` **Sample CURL Request** ```bash theme={null} curl --location '{{host}}/oauth/token' --header 'Content-type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=client_id' --data-urlencode 'username=clientsuccess@cynopsis.co' --data-urlencode 'password=pw@123' ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "access_token": "Access token will be here.", "token_type": "bearer", "refresh_token": "Refresh token will be here", "expires_in": 86399, "scope": "read,write", "sub": "", "iss": "https://crm", "identifier_provider": "CRM", "jti": "" } ``` ### Get Access Token by Refresh Token (CRM) Make an API call to the above API and then use that refresh token in this API along with the client ID. **Sample HTTP Request** ```bash theme={null} HTTP Method: POST URL: {{host}}/oauth/token Request Body: e.g. { "grant_type": "refresh_token", "client_id": "Cynopsis to advise", "refresh_token": "Refresh token obtained from the above request" } ``` **Sample CURL Request** ```bash theme={null} curl --location '{{host}}/oauth/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'client_id=client_id' --data-urlencode 'refresh_token=refresh token obtained from the above request' ``` **Sample HTTP Response** ```bash theme={null} Expected Response Code: 200 Response Body: e.g. { "access_token": "New access token will be here.", "token_type": "bearer", "refresh_token": "New refresh token will be here", "expires_in": 86399, "scope": "read,write", "sub": "", "iss": "https://crm", "identifier_provider": "CRM", "jti": "" } ``` *** **Note:** Choose the authentication method that best fits your integration needs. Both methods provide secure access to Athena services, with the CRM method offering a more direct token generation approach. *** # Blacklist Source: https://docs.cynopsis.co/athena-api-reference/blacklist post /api/blacklist A blacklist record is created with the name of the subject and the reference_id, We check for a whitelist record with the blacklist name before adding to blacklist A blacklist can be described in general as a watch list that you may wish to monitor on a tighter scope. To do so, you will need to first register the relevant blacklist record accordingly. Permitted values for: **list\_name** * Restricted * High Risk # Case Source: https://docs.cynopsis.co/athena-api-reference/case After the transactions have been inserted into a bucket, cases **may or may not** be created depending on the configured **\[Rule Settings]** of a given **\[Bucket]**. When cases are generated, you may choose to view it either in the Frontend application or calling the Case's API. The diagram below demonstrates the basic workflow for a case. For more details on each section, please refer to the relevant sub-section. # Configure Case Alert Priority Source: https://docs.cynopsis.co/athena-api-reference/case_alert patch /api/cases/{id}/alert Update the alert risk rating for a specific case. The following API can be used to set the alert priority level for a given case. The alert priority level can be set to **LOW**, **MEDIUM**, **HIGH**, or **Unrated** **Requires Update Alert Priority Status of Case Permission** # Add Approval for a Case Source: https://docs.cynopsis.co/athena-api-reference/case_approval patch /api/cases/{id}/approval Approve a case. Prior to reassigning a case from a maker to checker, the maker must perform the **'case\_action'**. Depending on the type of case action, a reason for escalation must be stated in the request body. **“case\_action” types** * Recommend Changes * Recommend True Hit (requires a reason\_for\_escalation field of value type string) * Recommend False Hit * Conclude False Hit * Conclude True Hit **Requirements** * Requires View and Assess Case permission * The case\_assignee\_id must be different from the current\_user\_id. # Bulk Assign Source: https://docs.cynopsis.co/athena-api-reference/case_bulk_assign patch /api/cases/bulk_assign Assign multiple cases to a specific assignee. **Requires View, Assess, Assign and Request Change Cases permission for both parties** **Requires all case\_status to be NEW** # Assign Case Checker Source: https://docs.cynopsis.co/athena-api-reference/case_checker patch /api/cases/{id}/assign_checker Assign a case to a checker. **Requires Recommend Changes / False Hit / True Hit permissions** # Add Case Finding(s) Source: https://docs.cynopsis.co/athena-api-reference/case_finding patch /api/cases/{id}/findings Add new findings to a case to give other users more context on a particular case. # Assign Case Maker Source: https://docs.cynopsis.co/athena-api-reference/case_maker patch /api/cases/{id}/assign_maker Assign a case to a maker. **Requires View, Assess, Case Assignment and Request Changes Case Permission** # Reopen a Case Source: https://docs.cynopsis.co/athena-api-reference/case_reopen patch /api/cases/{id}/reopen Reopen a case. When a case has been concluded, it will be closed till a user with permission re-open the case with a valid reason. **Requirements** * Requires View, Assess and Reopen Case permission * case\_status must be “True Hit” or “False Hit” # Delete Blacklist Source: https://docs.cynopsis.co/athena-api-reference/delete_blacklist delete /api/blacklist/{id} Deleting a blacklist record # Delete Bucket Source: https://docs.cynopsis.co/athena-api-reference/delete_bucket delete /api/buckets/{id} Delete a bucket by its ID, The bucket will be deactivated. A bucket can be deleted by calling the Delete Bucket API with the specific bucket ID. Do note that once a bucket is deleted it **cannot be recovered**. Please note that by deleting a bucket, the following scenarios will occur: * The Bucket will no longer be visible from Athena’s APIs and Frontend. * The Bucket will no longer be accepting transactions to be loaded into it. * Screening of transactions in the bucket will no longer be conducted. * The Bucket can no longer be restored. * Ordinary bucket (id=0) cannot be deactivated. # Delete Case Document Source: https://docs.cynopsis.co/athena-api-reference/delete_case_document delete /api/cases/{id}/delete_document Delete existing Case Document in a Case **Requires View and Assess Case permission** # Delete Case Finding(s) Source: https://docs.cynopsis.co/athena-api-reference/delete_case_finding delete /api/cases/{id}/delete_findings Delete existing Case Findings in a Case **Requires View and Assess Case permission** # Error Codes Source: https://docs.cynopsis.co/athena-api-reference/error | Status Code | Category | Sample HTTP Response | Description | | ----------- | --------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | 400 | Bad Request | `{ "list_name": "Subject must be registered either under [HIGH RISK] or [RESTRICTED] list" }` | Validation Error. User passed wrong input request parameters.
Transaction not uploaded due to invalid input. | | 401 | Unauthorized | `{ "detail": "Custom bearer token is not valid" }` | Authorization Token is invalid.
Token expired and a new one is required. | | 403 | Forbidden | `{ "detail": "Authentication credentials were not provided." }` | Authorization token missing or invalid. | | 404 | Not Found | `{ "detail": "Not found." }` | Identifier has no matching resource.
Case/transaction/subject not found. | | 405 | Method Not Allowed | `{ "detail": "Method \"DELETE\" not allowed." }` | HTTP method not supported. | | 500 | Internal Server Error | `{ "detail": "Unexpected Error." }` | Uncaught server-side exception. | # Retrieve Blacklists Source: https://docs.cynopsis.co/athena-api-reference/get_blacklist get /api/blacklist Retrieve all Blacklist records **If there are more than 10 records available, the records provided in the response will be paginated by 10 records per page.** # Retrieve existing Blacklist Source: https://docs.cynopsis.co/athena-api-reference/get_blacklist_by_id get /api/blacklist/{id} Retrieve **one** Blacklist records # Retrieve existing Bucket by ID Source: https://docs.cynopsis.co/athena-api-reference/get_bucket_by_id get /api/buckets/{id} Retrieve a specific bucket by its id Users can view data for a specific bucket by specifying the id of the bucket. # Retrieve existing Bucket by Name Source: https://docs.cynopsis.co/athena-api-reference/get_bucket_by_name get /api/buckets?{name} Retrieve a specific bucket by its name Users may also retrieve records for a given bucket by providing the name of the bucket. ```bash theme={null} GET {{base_url}}/api/buckets?name={name} ``` # Retrieve all Buckets Source: https://docs.cynopsis.co/athena-api-reference/get_buckets get /api/buckets Retrieving existing Bucket(s) Select existing buckets for users to load transactions and conduct transaction monitoring. **If there are more than 10 buckets available, the records provided in the response will be paginated by 10 buckets per page.** # Retrieve Case(s) Source: https://docs.cynopsis.co/athena-api-reference/get_case get /api/cases Retrieving existing Case(s) using Query **Note**: You may indicate specific queries by the rule, assignee, subject\_1, client\_subject\_id, caseStatus, bucket, id(case\_id), and/or client\_transaction\_id to filter down to specific cases. ### Filterable Fields * rule * assignee * subject\_1 * client\_subject\_id * caseStatus * bucket * client\_transaction\_id **Multiple fields** can be filtered at the **same time**. Fields can be linked as shown in the same request URL where rule and assignee are both used as the queries. The different queries can be joined by '&' **Default Order By** * case\_status\_order (1st) * ageing (2nd) **Optional Order By** * priority * created\_on * ageing * rule\_rule\_number\_id * bucket\_id * case\_status\_order * assignee\_id # Retrieve existing Case Source: https://docs.cynopsis.co/athena-api-reference/get_case_by_id get /api/cases/{id} Users can view relevant information ranging from its bucket, rule parameters and audit trail of the case actions for a specific case by specifying the **id** of the case on the API. # Retrieve existing Transactions by Case id Source: https://docs.cynopsis.co/athena-api-reference/get_case_by_id_transactions get /api/cases/{id}/transactions Retrieve transactions associated with a specific case, including both direct case transactions and relevant transactions based on rule parameters. **transaction\_id** is where the page\_direction will begin from **Note**: Retrieving Transactions by Case Id API Endpoint uses cursor pagination. The default behaviour returns 10 transactions in a response which can be changed by using argument **page\_limit**, with further transactions stored in offsets. Optional Queries * page\_limit * page\_direction * transaction\_id **page\_direction· must conform to one of the following options** * NEXT * PREV # Export CSV File for Cases Source: https://docs.cynopsis.co/athena-api-reference/get_case_csv get /api/cases/export_csv Sends an email with the csv file attached. # Case Status List Source: https://docs.cynopsis.co/athena-api-reference/get_case_status get /api/cases/case_status Retrieve Case Status List # Retrieve existing Customer Source: https://docs.cynopsis.co/athena-api-reference/get_subject_by_id get /api/subjects/{client_subject_id} Retrieve a specific subject by its client subject ID. **Customer** (used in this doc) and **Subject** (used in the API/backend) mean the same thing: one individual. This is to retrieve one individual customer by their **client\_subject\_id** **If a customer with the given client subject ID is not found, the following response will be provided.** ```bash theme={null} Expected Response Code: 404 Response Body: JSON Object e.g { "detail": "Not found." } ``` # Retrieve all existing Customers Source: https://docs.cynopsis.co/athena-api-reference/get_subjects get /api/subjects **Customer** (used in this doc) and **Subject** (used in the API/backend) mean the same thing: one individual. This is to retrieve a list of all existing customers # Retrieve existing transaction Source: https://docs.cynopsis.co/athena-api-reference/get_transaction_by_id get /api/transactions/{id} Users can retrieve a specific transaction by specifying the **client_transaction_id** on the following API. # Retrieve Transactions Source: https://docs.cynopsis.co/athena-api-reference/get_transactions get /api/transactions Retrieving existing Transaction(s) By calling this API, you will be able to retrieve all the transitions that were uploaded into Athena. **If there are more than 10 transactions available, the records provided in the response will be paginated by 10 transactions per page.** # Athena Introduction Source: https://docs.cynopsis.co/athena-api-reference/introduction ATHENA is an advanced real-time transaction monitoring solution designed to detect and prevent money laundering, fraud, and terrorism financing. Powered by proprietary AML rules, ATHENA analyzes transactions in real time, providing clear, intuitive visual insights to streamline compliance processes. ✅ Real-Time Monitoring – Instantly analyzes transaction data to detect anomalies and potential compliance risks. ✅ Visualized Insights – Converts complex data into easy-to-understand charts, aiding faster decision-making. ✅ Seamless Integration – Easily integrates with existing financial and compliance systems. Ideal for financial institutions, fintech companies, and regulated businesses, ATHENA enhances risk management and ensures regulatory compliance with ease. ## Introduction This documentation serves as a reference and guide for Athena 3.0 client API users to be familiar with the relevant workflow and APIs. The left panel displays the list of workflow phases and within it, there will be a sublist of information displaying the APIs involved and the expected behaviour. Please refer to the following Postman Collection for the use of the Athena APIs. Before using the API, please proceed to the Authentication section to get an idea on how to setup a token. In order to test the collection, you should create an environment for Athena and add **base\_url** and **bearer\_token** as variables or add as global variables. For the **bearer\_token** refer to Authentication while the **base\_url** will be provided by Cynopsis. [Athena Postman Collection Link](https://developer.cynopsis.co/assets/postman-collections/athena3-external.json) ## Requirements **Athena3 API Endpoint(URL)**:This will be provided by Cynopsis **Authentication**: We are using Bearer token, please generate the access\_token base on Authentication section **API Headers**: We are using content-type **application/json** for all of our APIs Copyright © 2025 Cynopsis Solutions Pte. Ltd. All content in this website, including images, api documentation are the property of Cynopsis Solutions Pte Ltd. Any unauthorised disclosure, dissemination, distribution, copying or re-producing any aspect of this document or the creation of derivative of such content is prohibited. It is intended only for reference and use of the intended recipient(s). All rights reserved. # Defining the Master Currency Source: https://docs.cynopsis.co/athena-api-reference/master_currency patch /api/currency/{alphabetic_code} The Master Currency can be described as the currency that Athena will be using to perform screening of transactions. Athena identifies currency code using the alphabetic code in accordance to ISO 4217. For more information on ISO 4217, please refer to the link below. [ISO 4217 Standard](https://iso.org/iso-4217-currency-codes.html) Please also note that only one currency can be set as the Master Currency. Once the Master Currency is set, the main currency **cannot be changed** by any means. If a mistake was made setting the Master Currency, please send an email to [clientservice@cynopsis.co](mailto:clientservice@cynopsis.co) To select the currency code to be used, perform a one-time call to the following API # Rule Alert Settings Source: https://docs.cynopsis.co/athena-api-reference/rule_alert_setting patch /api/rulealert/{id} The following API can be used to set the alert priority level for a given rule number. Cases that are created for a certain rule number will be using the pre-set alert priority level. Do note that the alert priority level can either be set to **Low**, **Medium**, **High** or **Unrated**. # Rule Information Source: https://docs.cynopsis.co/athena-api-reference/rule_information patch /api/rulealert/{id} Rule titles and rule descriptions are customizable to client’s requirements # Rule Settings Source: https://docs.cynopsis.co/athena-api-reference/rule_settings patch /api/buckets/{id} Update a bucket by its ID. In order to change the configurable parameters for a rule in a bucket, two parameters will be required: **rule\_id** as used previously to detail the rule that will be updated, and **rule\_setting**. **rule\_setting** is a JSON object that will be specific to each given rule id. Thus, it should be aligned with the rule id to be updated. ### Example You may also change the **activation** and the **settings** of a rule at the same time by providing the necessary fields that you wish to update. For instance, you can use the following response body to change part of a rule’s parameter and turn on the rule at the same time. ```bash theme={null} { "rule_id": 3, "rule_setting": { "beneficiary_count_exceeds": 5, "lookback_days": 3 }, "activate_rule":"True" } ``` ### List of rule\_setting The list of **rule\_setting** based on each rules are as follows: ```bash theme={null} Rule 1: Parameters { "transaction_count_exceeds": 2, "amount_less_than": 2000, "lookback_days": 3 } ``` ```bash theme={null} Rule 2: Parameters { "transaction_count_exceeds": 2, "lookback_days": 3 } ``` ```bash theme={null} Rule 3: Parameters { "beneficiary_count_exceeds": 2, "lookback_days": 3 } ``` ```bash theme={null} Rule 4: Parameters { "sender_count_exceeds": 2, "lookback_days": 3 } ``` ```bash theme={null} Rule 5: Parameters { "aggregated_amount_exceeds": 3000, "lookback_days": 30 } ``` ```bash theme={null} Rule 6: Parameters { "lookback_days": 3, "lookback_months_to_determine_baseline": 12, "amount_exceed_baseline_by_number_of_times": 10 } ``` ```bash theme={null} Rule 7 & 8 have no rule parameters! ``` ```bash theme={null} Rule 9: Parameters { "aggregated_withdrawal_exceeds": 1000, "lookback_days": 30 } ``` ```bash theme={null} Rule 10: Parameters { "aggregated_deposit_exceeds": 1000, "lookback_days": 30 } ``` ```bash theme={null} Rule 11 has no rule parameters! ``` ```bash theme={null} Rule 12: Parameters { "aggregated_amount_exceeds": 3000 } ``` ```bash theme={null} Rule 13: Parameters { "lookback_days": 3, "lookback_months_to_determine_baseline": 12, "amount_exceed_baseline_by_number_of_times": 10 } ``` ```bash theme={null} Rule 14: Parameters { "aggregated_amount_exceeds": 5000, "minimum_transaction_count": 10, "lookback_days": 5 } ``` ```bash theme={null} Rule 15: Parameters { "aggregated_amount_exceeds": 5000, "minimum_transaction_count": 10, "lookback_days": 5 } ``` ```bash theme={null} Rule 16: Parameters { "lookback_days": 3, "lookback_months_to_determine_baseline": 1, "transaction_count_exceed_baseline_by_number_of_times": 20 } ``` ```bash theme={null} Rule 17 has no rule parameters! ``` **Sample HTTP Request (All Rule 6 Parameters)** ```bash theme={null} HTTP Method: PATCH URL: {{base_url}}/api/buckets/{bucket_id} Request Body: e.g { "rule_id": 6, "rule_setting": { "lookback_days": 3, "lookback_months_to_determine_baseline": 12, "amount_exceed_baseline_by_number_of_times": 10 } } ``` **Note**: The keys used as part of the “rule\_setting” JSON will need to be aligned with those highlighted above in respect to each Rule. Otherwise, the following response will be provided with status code 400. ```bash theme={null} Expected Response Code: 400 Response Body: JSON Object e.g { "Input Key [aggregated_amount_exceedss] used to set variables for Rule 12 is incorrect. Please check again." } ``` You can also update a part of the rule’s parameters by providing the relevant keys that you would like to use to update the rule. For instance, to update only the **aggregated\_amount\_exceeds**. You can provide the following request body. Sample HTTP Request (Partial Rule 12 Parameters) ```bash theme={null} { "rule_id":12, "rule_setting": { "aggregated_amount_exceeds": 10000 } } ``` By doing so, only the **aggregated amount exceeds** parameter for Rule 12 will be updated for the given bucket. The other fields “variance percent” and “lookback days” will remain unchanged. # Approve or Reject Transaction Source: https://docs.cynopsis.co/athena-api-reference/ts_approve_reject patch /api/preapprovedtransactions/{id}/approve-reject Approve or reject a pre-approved transaction after reviewing its screening hits. You will need to mark all hits in the pre-approved transaction before you are able to approve or reject it. Once all screening hits have been reviewed and marked, use this endpoint to approve or reject the pre-approved transaction. **Status Options:** * `approved` — Approve the transaction * `rejected` — Reject the transaction # Retrieve Active Pre-Approved Transactions Source: https://docs.cynopsis.co/athena-api-reference/ts_get_preapproved_active get /api/preapprovedtransactions/active Retrieve pre-approved transactions that are currently active. # Retrieve Pre-Approved Transaction by ID Source: https://docs.cynopsis.co/athena-api-reference/ts_get_preapproved_by_id get /api/preapprovedtransactions/{id} Retrieve a specific pre-approved transaction by its ID. # Retrieve Inactive Pre-Approved Transactions Source: https://docs.cynopsis.co/athena-api-reference/ts_get_preapproved_inactive get /api/preapprovedtransactions/inactive Retrieve pre-approved transactions that are inactive. # Retrieve Pre-Approved Transactions Source: https://docs.cynopsis.co/athena-api-reference/ts_get_preapproved_transactions get /api/preapprovedtransactions Retrieve all pre-approved transactions. By calling this API, you will be able to retrieve all pre-approved transactions. The results are paginated. You may also filter by status using the following endpoints: * **[Active Transactions](/athena-api-reference/ts_get_preapproved_active)** — Retrieve pre-approved transactions that are currently active (e.g., `on_hold`). * **[Inactive Transactions](/athena-api-reference/ts_get_preapproved_inactive)** — Retrieve pre-approved transactions that are inactive (e.g., `approved`, `rejected`). # Get Screening Review Source: https://docs.cynopsis.co/athena-api-reference/ts_get_screening_review get /api/preapprovedtransactions/{id}/screening-review Retrieve detailed screening review information for a pre-approved transaction. This endpoint returns detailed screening review information for a single pre-approved transaction, including: * Transaction details (amount, currency, parties, etc.) * Counterparty A & B information with subject names * NameScreen results for both parties * NameScreenHits grouped by engine with full hit details # Mark Hits Source: https://docs.cynopsis.co/athena-api-reference/ts_mark_hits post /api/namescreenhits/mark-as Selectively assess specific screening hits by their IDs. Use this endpoint to selectively assess specific hits by providing their IDs. **Assessment Decisions:** * `TRUE_HIT` — Confirmed as a true hit * `FALSE_HIT` — Confirmed as a false hit # Cascade Mark Hits Source: https://docs.cynopsis.co/athena-api-reference/ts_mark_hits_cascade post /api/namescreenhits/mark-as-cascade Cascade assessment to all hits matching a specific subject, external ID, and engine. Use this endpoint to cascade the same assessment decision to all NameScreenHits that match the specified `client_subject_id`, `external_id`, and `engine`. This is useful when you want to apply the same assessment across all transactions for a given subject from a specific screening engine. **Assessment Decisions:** * `TRUE_HIT` — Confirmed as a true hit * `FALSE_HIT` — Confirmed as a false hit # Review Hits Source: https://docs.cynopsis.co/athena-api-reference/ts_review_hits After transactions have been screened, you may review the screening hits generated for each pre-approved transaction. This step involves reviewing the hit details and marking each hit with an assessment decision. The following APIs are available for this step: * **[Get Screening Review](/athena-api-reference/ts_get_screening_review)** — Retrieve detailed screening review information for a single pre-approved transaction, including counterparty details and hit information grouped by engine. * **[Mark Hits](/athena-api-reference/ts_mark_hits)** — Selectively assess specific hits by their IDs with an assessment decision (`TRUE_HIT` or `FALSE_HIT`). * **[Cascade Mark Hits](/athena-api-reference/ts_mark_hits_cascade)** — Cascade the same assessment decision (`TRUE_HIT` or `FALSE_HIT`) to all hits matching a specific subject, external ID, and engine across all transactions. # Update Blacklist Source: https://docs.cynopsis.co/athena-api-reference/update_blacklist patch /api/blacklist/{id} Updating existing Blacklist Record Records pertaining to the blacklist can also be updated should there be a change of name or reference ID. # Update an existing Bucket Source: https://docs.cynopsis.co/athena-api-reference/update_bucket patch /api/buckets/{id} Update a bucket by its ID. # Update an existing Customers Source: https://docs.cynopsis.co/athena-api-reference/update_subject patch /api/subjects/{client_subject_id} **Customer** (used in this doc) and **Subject** (used in the API/backend) mean the same thing: one individual. This is to update one individual customer by their **client\_subject\_id** Information for Subjects can be updated by calling the PATCH API and providing only the fields that you wish to update. # General Workflow Source: https://docs.cynopsis.co/athena-api-reference/workflow The diagram below demonstrates the basic workflow for registering the necessary information to perform screening on the dataset. For more details on each section, please refer to the relevant sub-section. ### Important Information **a**. Once a transaction is added to a bucket, you will not be able to detach/delete the transaction from the bucket. **b**. Screening of transaction record is dependent on when the transaction record is provided to Athena. Please ensure that configurations are correct before providing Athena with the Transaction records. **c**. Transactions can be screened in both real time and non-real time. However, the order of transactions uploaded is important as while transactions can be screened non-real time, Athena does not support backdated functionality. An example would be where a user forgets to send a T+3 transaction from a T+0 transaction it would not take reference from the T+3 transaction and retroactively screen for the T+0 transaction. # Transaction Screening Workflow Source: https://docs.cynopsis.co/athena-api-reference/workflow_transaction_screening The diagram below demonstrates the transaction screening workflow. For more details on each section, please refer to the relevant sub-section. ### Important Information **a**. Once a pre-approved transaction has been approved or rejected, it will be immutable. **b**. You will need to mark all hits in the pre-approved transactions before you are able to approve or reject the transactions. **c**. Transaction screening has to be enabled to function . # Version 1.60.0 Source: https://docs.cynopsis.co/changelog ## Version 1.60.0 **What’s new in this release** * **SOF vs SOW clarity** * SOF: Where funds for a transaction or account funding come from (e.g., salary, business revenue, investment gain). * SOW: How a customer accumulated wealth over time (e.g., inheritance, business profits, real estate holdings, savings). * **New static list endpoint** * Added **Get Source Of Wealth**: `GET /api/app-config/bulk/artemis_source_of_wealth` (listed with other Static List Retrieval APIs). * **Simplified SOF/SOW payload shape** * Examples now use `{ id, category, amountDeclared, evidenceCorroborated }`. * `evidenceCorroborated` enum stays explicit (`"YES"` or `"NO"`). **Field meanings for SOF/SOW payloads** * `id`: Autogenerated identifier for the SOF/SOW entry. * `category`: The source category (e.g., salary, business profits, investment returns). * `amountDeclared`: Numeric amount the user reports for this source. * `evidenceCorroborated`: Enum `YES` or `NO` indicating whether supporting evidence has been verified.