All pages
Powered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Before You Start Using the API

This document provides important information about preparing to use the Corastone Integration API. It has the following sections:

  • Whitelisting Requirements

  • Client-Specific Connection Information

  • API Clients

  • Supporting Documents

If you need support while preparing to use the API, contact us:

  • via direct contact with the Corastone Onboarding team

  • by email at [email protected]

Whitelisting Requirements

To enable Corastone access, the following actions must occur as described below:

  • Client networking team must whitelist Corastone API URL.

  • Client networking team must whitelist Corastone IP addresses.

  • Client must provide IP address ranges to Corastone for systems and developer access.

Summary

The following table outlines the whitelisting tasks required for API use.

Task
Traffic Direction
Performed By

Client -> Corastone

Client Firewall Team

Corastone -> Client (REST)

Client Firewall Team

Corastone -> Client

Corastone

Client <-> Corastone

Client

The following sections detail each task.

Whitelist Corastone API URL & Domain Outbound

You must allow outbound traffic by whitelisting one of the following:

OR

Whitelist Corastone IPs Inbound

To receive Corastone push REST notifications, you must:

Whitelist Client Source IPs

To enable us to accept API requests from the Client, you must:

Corastone will whitelist them internally and allow the connections.

Test API Access

When all whitelisting tasks have been performed, test access to the Corastone APIs:

https://integration-api.<org_id>.cdev.idevit.us/oauth2/token

where <org_id> is the org id listed in Client-Specific Connection Information.

See Client Specific Connection Information for values needed when executing this endpoint.

Troubleshooting

403 Forbidden

  • Make sure the User-Agent header is set.

  • Work with your firewall team to determine if their configuration is compatible with the baseline AWS rules: Baseline Rule Groups for AWS.

Error: getaddrinfo ENOTFOUND integration-api.<org_id>.cdev.idevit.us

  • Make sure org_id is correct.

If this test is unsuccessful, please contact the Corastone Onboarding team for assistance.


Client-Specific Connection Information

You will need the following information from the Corastone Onboarding Team:

Integration API URL:

Org ID:

Client ID:

Client Secret:

Org Static IP 1:

Org Static IP 2:


API Clients

The Corastone APIs work with several API clients such as Insomnia and Postman. Corastone may be able to provide API collections for API clients upon request.


Supporting Documents

Integration API Guide

This guide fully describes the use of the Corastone APIs and includes links to more technical information in Swagger.

Direct API Approach

wealth manager backoffice systems with the Corastone platform requires:

  • authorizing access for the applications that will interact with the Corastone API

  • implementing endpoints

  • handling errors for those endpoints

This section describes the basic integration tasks required for the primary sales workflow:

  1. Authorize Access

  2. Establish Connectivity

  3. Onboard a Fund

  4. Make Initial Investments

  5. Remediate Investment

  6. Retrieve All Assets

Use this section as a companion to the .

API Onboarding Materials

Corastone provides a Postman collection to help you get up to speed with using the Corastone APIs. Contact your to obtain this collection and supporting instructions.

Estimating Effort

Overall, the effort for the primary sales flow involves:

  • 14 calls

  • ~62 responses

  • up to ~127 error codes shared across responses


Whitelist Corastone API URL & domain (Outbound)
Whitelist Corastone IPs (Inbound)
Whitelist Client Source IPs
Test API Access
Using Corastone APIs to integrate
Integration API Guide
Corastone support representative

Retrieve All Assets

Description

Once investments are settled, you can retrieve the assets associated with the given fund.

Endpoints

Task
How
Error Codes

Get Asset Details

AU0001 AU0002 GN0002 GN0004 GN0005

Error Codes and Messages

Key Validations

None

Business Rule Validations

None

Technical Validations
Type
Code
Message

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: '{scope}'

Generic

GN0002

The payload you have supplied is invalid.

GN0004

Page size must be an integer between 0 and {maxPageSize}

GN0005

Offset must be an integer bigger or equal to 0

Establish Connectivity

Description

Before you can conduct transactions with an organization on the platform, you need to whitelist that organization, and that organization needs to whitelist yours.

Endpoints

Task
How
Error Codes

Enterprise Organization Update Whitelist

AU0001 AU0002 AU0003 GN0002 OG0002 OG0013

Error Codes and Messages

Key Validations

None

Business Rule Validations
Type
Code
Message

Organization

OG0002

Organization '{orgId}' is in an invalid status for the current action. Org status: '{status}'

Technical Validations
Type
Code
Messag

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: {scope}

AU0003

The core access token is invalid for organization {orgId}.

Generic

GN0002

The payload you have supplied is invalid.

Organization

OG0013

Organization '{orgId}' is locked for edit by another process. Please try again later.

../asset
../org/{orgId}/whitelist

Authorize Access

Description

During initial onboarding for the Integration API, Corastone creates your OAuth client for your primary integration with the Corastone platform. If you have multiple back-office apps that need to integrate with the platform, you will need to create secondary OAuth clients. These clients are linked to the same organization and are managed by the primary OAuth client. Secondary clients usually perform a subset of tasks and, therefore, require a smaller access scope.

Endpoints

Task
How
Error Codes

Create OAuth Client

AU0001 AU0002 AU0008 AU0009 GN0002

Update OAuth Client

AU0001 AU0002 AU0005 AU0006 AU0008 GN0002

Reset OAuth Client Password

AU0001 AU0002 AU0005 AU0006 AU0007 AU0008 GN0002

Error Codes and Messages

Key Validations

None

Business Rule Validations

Technical Validations
Type
Code
Message

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: {scope}

AU0005

OAuth client with id '{clientId}' was not found

AU0006

OAuth client with id '{clientId}' was not found on the OAuth server. This means that the client was directly deleted from the OAuth server but a reference to it still exists on this API.

AU0007

This action is reserved for the primary client

AU0008

The OAuth client belongs to a different organization

AU0009

The maximum number of OAuth clients for the current organization has been reached

Generic

GN0002

The payload you have supplied is invalid.

../oauth/client
../oauth/client
../oauth/client/password-reset

Remediate Investment

Description

If the materials submitted to the asset manager are not in good order, the asset manager may submit a request for remediation, including:

  • standard remediation reasons

  • name of document with the issue

  • document page number

  • free text for ad-hoc messages

The following table outlines the standard remediation reasons.

Code
Reason

EC001

tax document deficiencies

EC002

investor information and AML KYC issues

EC003

sub doc issues

EC004

account issues

EC005

transaction data issues

EC006

other issues

The remediation flow requires:

  1. Receive and parse notification with remediation reasons.

  2. Update internal systems.

  3. Update the subscription record.

Endpoints

Task
How
Error Codes

Remediate Digital Asset (Lot)

AC0002 AC0006 AC0007 AC0009 AC0018 AC0019 AC0029 AC0050 AS0001 AS0002 AS0003 AS0004 AS0005 AS0017 AS0023 AU0001 AU0002 AU0003 CI0001 CI0002 CI0003 CT0019 CT0020 FL0001 FL0002 FL0003 FL0004 FL0005 FL0006 FL0010 FL0011 FL0017 FL0019 FL0020 FL0028 GN0002 IS0008 IS0009 IS0012 IS0013 IS0016 IS0099 IS0106 IV0002 IV0003 IV0009 IV0016 IV0017 IV0023 IV0036 IV0037 QU0001 QU0002 QU0003 QU0004 QU0005 QU0006 QU0007 QU0008 QU0009 QU0010

Error Codes and Messages

Key Validations

Type
Code
Message

Account

AC0006

Please provide ABA or SWIFT

Asset

AS0005

Asset '{assetId}' is in invalid state for the current action. Current status: '{currentState}'. Required status: '{allowedStates}'

Files

FL0010

Documents cannot be reused both as investor documents and transaction data documents

Issuance (Security)

IS0012

Security '{securityId}' is in invalid state for the current action. Current status: '{currentState}'. Required status: '{allowedStates}'

Investor

IV0023

Accreditation Other is not available for US investor

Other Business Rule Validations
Type
Code
Message

Account

AC0007

Intermediary bank account must be provided for further credit

AC0029

Updating omnibus account is not allowed for current action.

Asset

AS0017

'{providedProp}' should not be provided. Expected property is '{expectedProp}'

Custodian

CT0019

Correlation data provided for existing custodian: '{custodianId}'

Files

FL0001

The following files could not be found in the correct status: '{fileIds}'

FL0006

The file correlation ids '{correlationIds}' are already in use

FL0011

Investor documents can only be reused by the investor that owns them

FL0028

Concurrent execution. There are '{lockedAmount}' file(s) marked as locked by another process

Issuance (Security)

IS0016

Security '{securityId}' is not compatible with asset '{assetId}'

IS0099

You do not have the role for this action on security '{securityId}'. Required roles: '{requiredRoles}'; current roles: '{currentRoles}'

Investor

IV0009

Investor type cannot be updated for existing accounts

Technical Validations
Type
Code
Message

Account

AC0002

Account with correlation Id '{correlationId}' not found.

AC0009

The account correlation ids '${correlationIds}' are already in use

AC0018

Can't create a new account using this action, please reference an existing account.

AC0019

Account with Account ID '{accountId}' is not linked to asset. Please provide correct Account ID

AC0050

Correlation id '{correlationId}' cannot be provided alongside account id '{accountId}' or booked account id '{bookedAccountId}'

Asset

AS0001

The asset id '{assetId}' is invalid

AS0002

You are trying to access an asset that was never recorded on the ledger due to a failed transaction

AS0003

Asset id was not provided

AS0004

Asset '{assetId}' is locked for edit by another process. Please try again later.

AS0023

Action can only be performed by the owner organization. Ids of the assets with the different owner: '{assetIds}'

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: '{scope}'

AU0003

The core access token is invalid for organization '{orgId}'.

Contact Info

CI0001

Contact preference type 'other' requires 'additionalTypeInfo' to be provided.

CI0002

Duplicate contact preference types found: '{duplicateTypes}' for subject: '{subject}'

CI0003

Duplicate contact preference subject ids found: '{subjectIds}'

Custodian

CT0020

Correlation id '{correlationId}' cannot be provided alongside custodian id '{custodianId}' or booked custodian id '{bookedCustodianId}'

Files

FL0002

Provided data must contain either uploadData or fileId properties

FL0003

Provided data cannot contain both uploadData and fileId

FL0004

Found duplicated fileId '{fileId}' in multiple files

FL0005

Found duplicated correlationId '{correlationId}' in multiple file

FL0017

Two or more duplicated correlation ids '{orgCorrelationId}' were provided for file

FL0019

Correlation id '{correlationId}' cannot be provided alongside file id '{fileId}'.

FL0020

Multiple entries for the same file '{fileId}' detected in the payload.

Generic

GN0002

The payload you have supplied is invalid.

Issuance (Security)

IS0008

Security id was not provided

IS0009

The security id '{securityId}' is invalid

IS0013

Security '{securityId}' is restricted

IS0106

Cannot provide both Security id and correlation data at same time

Investor

IV0002

Investor with correlation Id '{correlationId}' not found.

IV0003

The investor correlation ids '{correlationIds}' are already in use

IV0016

Duplicated investor ids detected

IV0017

Duplicated investor correlation ids detected

IV0036

Duplicated form PF data detected for type {type}"|technicalValidations|EC002|"Investor Information & AML/KYC Issue(s).

IV0037

Correlation id '{correlationId}' cannot be provided alongside investor id '{investorId}' or booked investor id '{bookedInvestorId}'.

Questionnaires

QU0001

You cannot use 'allowedAnswerValues' in a question with the answerType '{currentAnswerType}'.

QU0002

You cannot provide more than 1 answer in a question with the answerType '{currentAnswerType}'

QU0003

The answer for the question with answerType '{currentAnswerType}' is expected to have exactly one '{expectedValue}' property. Provided properties: '{provided}'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'.

QU0004

The choice values '{provided}' is not part of the allowed answer values for question with the questionText: '{questionText}'. Questionnaire type: '{questionnaireType}'.

QU0005

Duplicate answer ids found for question '{questionText}': '{ids}'. Questionnaire type: '{questionnaireType}'.

QU0006

Duplicate values found for question '{questionText}': '{answers}'. Questionnaire type: '{questionnaireType}'.

QU0007

Duplicate questionnaire ids found: '{ids}'.

QU0008

Duplicate questionnaire types found: '{types}'.

QU0009

Duplicate question ids found: '{ids}'. Questionnaire type: '{questionnaireType}'.

QU0010

Duplicate allowed answer values found for question '{questionText}': '{values}'. Questionnaire type: '{questionnaireType}'.

Recall Investment

Description

If the investor needs to stop participating in the offering, they can recall the investment while the offering is still active. Recalling requires the following flow:

  1. Submit request to recall the investment.

  2. Receive acceptance/rejection of that request.

  3. Update internal systems.

Endpoints

Task
How
Error Codes

Recall Asset

AC0001 AC0006 AC0007 AC0009 AC0013 AC0014 AC0016 AC0017 AC0024 AC0029 AC0049 AD0022 AD0023 AS0001 AS0002 AS0003 AS0004 AS0005 AU0001 AU0002 AU0003 CI0001 CI0002 CI0003 CT0017 FL0001 FL0002 FL0003 FL0004 FL0005 FL0006 FL0008 FL0010 FL0011 FL0017 FL0019 FL0020 GN0002 IS0008 IS0009 IS0012 IS0013 IS0016 IS0035 IS0099 IS0106 IV0001 IV0003 IV0006 IV0007 IV0009 IV0013 IV0016 IV0017 IV0018 IV0023 IV0036 QU0001 QU0002 QU0003 QU0004 QU0005 QU0006 QU0007 QU0008 QU0009 QU0010

Get Asset Details

AU0001 AU0002 GN0002 GN0004 GN0005

Error Codes and Messages

Key Validations

Type
Code
Message

Asset

AS0005

Asset '{assetId}' is in invalid state for the current action. Current status: '{currentState}'. Required status: '{allowedStates}'

Issuance (Security)

IS0012

Security '{securityId}' is in invalid state for the current action. Current status: '{currentState}'. Required status: '{allowedStates}'

Other Business Rule Validations
Type
Code
Message

Account

AC0006

An ABA or SWIFT number is required when providing banking information

AC0007

Intermediary bank account must be provided for further credit

AC0013

Account name is mandatory for new accounts

AC0014

Account type is mandatory for new accounts

AC0016

Account relationshipType is mandatory for new accounts

AC0017

Account type cannot be updated for existing accounts

AC0024

Action is not supported for new account creation. Please use existing account

AC0029

Updating omnibus account is not allowed for current action.

AC0049

Cannot set subtype '{subType}' for account type '{type}'. Allowed subtypes are: '{allowed}'

Files

FL0001

The following files could not be found in the correct status: '{fileIds}'

FL0006

The file correlation ids '{correlationIds}' are already in use

FL0010

Documents cannot be reused both as investor documents and transaction data documents

FL0011

Investor documents can only be reused by the investor that owns them

Issuance (Security)

IS0016

Security '{securityId}' is not compatible with asset '{assetId}'

IS0035

This action is reserved for offerings with security type set to '{allowedTypes}'

IS0099

You do not have the role for this action on security '{securityId}'. Required roles: '{requiredRoles}'; current roles: '{currentRoles}'

Investor

IV0006

Investor type is mandatory for new investors

IV0007

Investor name is mandatory for new investors

IV0009

Investor type cannot be updated for existing investors

IV0013

Investor can only be updated by the owner organization

IV0018

Action is not supported for changing the holders list.

IV0023

Accreditation Other is not available for US investor

Technical Validations
Type
Code
Message

Account

AC0001

Account with Account ID '{accountId}' not found.

AC0009

The account correlation ids '{correlationIds}' are already in use

Advisor

AD0022

Advisor name is mandatory for new advisors

AD0023

Advisor type is mandatory for new advisors

Asset

AS0001

The asset id '{assetId}' is invalid

AS0002

You are trying to access an asset that was never recorded on the ledger due to a failed transaction

AS0003

Asset id was not provided

AS0004

Asset '{assetId}' is locked for edit by another process. Please try again later.

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: '{scope}'

AU0003

The core access token is invalid for organization '{orgId}'.

Contact Info

CI0001

Contact preference type 'other' requires 'additionalTypeInfo' to be provided.

CI0002

Duplicate contact preference types found: '{duplicateTypes}' for subject: '{subject}'

CI0003

Duplicate contact preference subject ids found: '{subjectIds}'

Custodian

CT0017

Custodian name is invalid

Files

FL0002

File ID, correlation ID and uploadData are missing from the payload. At least one of them should be provided.

FL0003

Provided data cannot contain fileId or correlationId and uploadData at the same time.

FL0004

Found duplicated fileIds '{fileIds}' in multiple files

FL0005

Found duplicated correlationId '{correlationId}' in multiple files

FL0008

File with Correlation ID '{correlationId}' not found

FL0017

Two or more duplicated correlation ids '{orgCorrelationId}' were provided for file

FL0019

Correlation id '{correlationId}' cannot be provided alongside file id '{fileId}'.

FL0020

Multiple entries for the same file '{fileId}' detected in the payload.

Generic

GN0002

The payload you have supplied is invalid.

GN0004

Page size must be an integer between 1 and {maxPageSize}

GN0005

Offset must be an integer bigger or equal to 0

Issuance (Security)

IS0008

Security id or correlation data was not provided

IS0009

The security id '{securityId}' is invalid

IS0013

Security '{securityId}' is restricted

IS0106

Cannot provide both Security id and correlation data at same time

Investor

IV0001

Investor with Investor ID '{investorId}' not found.

IV0003

The investor correlation ids '{correlationIds}' are already in use

IV0016

Duplicated investor ids detected

IV0017

Duplicated investor correlation ids detected: {duplicateCorrelationIds}

IV0036

Duplicated form PF data detected for type {type}

Questionnaire

QU0001

You cannot use 'allowedAnswerValues' in a question with the answerType '{currentAnswerType}'. It is only to be used when the answerType is 'Choice'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'.

QU0002

You cannot provide more than 1 answer in a question with the answerType '{currentAnswerType}'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'.

QU0003

The answer for the question with answerType '{currentAnswerType}' is expected to have exactly one '{expectedValue}' property. Provided properties: '{provided}'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'.

QU0004

The choice values '{provided}' is not part of the allowed answer values for question with the questionText: '{questionText}'. Questionnaire type: '{questionnaireType}'.

QU0005

Duplicate answer ids found for question '{questionText}': '{ids}'. Questionnaire type: '{questionnaireType}'.

QU0006

Duplicate values found for question '{questionText}': '{answers}'. Questionnaire type: '{questionnaireType}'.

QU0007

Duplicate questionnaire ids found: '{ids}'.

QU0008

Duplicate questionnaire types found: '{types}'.

QU0009

Duplicate question ids found: '{ids}'. Questionnaire type: '{questionnaireType}'.

QU0010

Duplicate allowed answer values found for question '{questionText}': '{values}'. Questionnaire type: '{questionnaireType}'.

../primary/asset/{assetId}/remediate
../asset/{assetId}/recall
../asset

Make Initial Investments

Description

The initial investment flow depends on the type of fund. Some funds require settlement before close. Some funds (drawdown funds) do not. To make an initial investment, your org needs to:

  1. (Optional) Request asset creation dry run to validate subscription data.

See the dryRun option for the Create Asset endpoint.

  1. With subscription validated, request subscription (create asset).

You can specify correlation IDs for new investors and accounts as part of the Create Asset payload.

  1. Receive and parse accept/reject notification.

  2. Update internal systems to reflect the status of the request.

  3. If settlement is required:

    a. Wire payment separately and mark as wired. b. Receive and parse "securities issued" notification. c. Update asset information for internal systems.

Diagrams

Drawdown Funds
Other Funds

Endpoints

Task
How
Error Codes

Create Asset (Lot) - Dry Run

AC0002 AC0006 AC0007 AC0009 AC0010 AC0013 AC0014 AC0016 AC0017 AC0020 AC0028 AC0029 AC0044 AC0048 AC0049 AC0050 AD0015 AD0016 AD0017 AD0018 AD0022 AD0023 AS0009 AS0015 AS0016 AS0017 AS0026 AS0029 AU0001 AU0002 AU0003 CT0015 CT0017 CT0019 CT0020 EX0006 FL0001 FL0002 FL0003 FL0004 FL0005 FL0006 FL0008 FL0010 FL0011 FL0017 FL0019 FL0020 FL00028 GN0002 GN0003 GN0008 IS0001 IS0008 IS0009 IS0012 IS0013 IS0026 IS0027 IS0028 IS0029 IS0030 IS0034 IS0099 IS0106 IV0002 IV0003 IV0004 IV0005 IV0006 IV0007 IV0008 IV0009 IV0010 IV0013 IV0016 IV0017 IV0020 IV0021 IV0022 IV0023 IV0032 IV0035 IV0036 IV0037

Create Asset (Lot)

AC0002 AC0006 AC0007 AC0009 AC0010 AC0013 AC0014 AC0016 AC0017 AC0020 AC0028 AC0029 AC0044 AC0048 AC0049 AC0050

AD0012 AD0015 AD0016 AD0017 AD0018 AD0022 AD0023 AS0009 AS0015 AS0016 AS0017 AS0026 AS0029 AU0001 AU0002 AU0003 CI0001 CI0002 CI0003 CT0011 CT0015 CT0017 CT0019 CT0020 EX0006 FL0001 FL0002 FL0003 FL0004 FL0005 FL0006 FL0008 FL0010 FL0011 FL0017 FL0019 FL0020 FL0028 GN0002 GN0003 GN0008 IS0001 IS0008 IS0009 IS0012 IS0013 IS0026 IS0027 IS0028 IS0029 IS0030 IS0034 IS0099 IS0106 IV0002 IV0003 IV0004 IV0005 IV0006 IV0007 IV0008 IV0009 IV0010 IV0013 IV0016 IV0017 IV0020 IV0021 IV0022 IV0023 IV0032 IV0035 IV0036 IV0037 QU0001 QU0002 QU0003 QU0004 QU0005 QU0006 QU0007 QU0008 QU0009 QU0010

Mark Asset Batch as Wired

AS0004 AS0013 AS0018 AS0023 AS0024 AU0001 AU0002 AU0003 GN0002 IS0008 IS0009 IS0012 IS0013 IS0099 IS0106

Error Codes and Messages

Key Validations

Type
Code
Message

Account

AC0006

Please provide ABA or SWIFT

AC0010

The account relationship type '{provided}' is not compatible with share class required type '{required}'

AC0013

Account name is mandatory for new accounts

AC0014

Account type is mandatory for new accounts

AC0016

Account relationshipType is mandatory for new accounts

Asset

AS0015

Can't create transaction on security '{securityId}' before its start date: '{startDate}'

AS0016

Can't create transaction on security '{securityId}' after the current date

Issuance (Security)

IS0012

Security '{securityId}' is in invalid state for the current action. Current status: '{currentState}'. Required status: '{allowedStates}'

IS0028

The minimum investment amount is '{minInvestment}'

IS0029

The offering's '{issuanceId}' maximum amount '{maxAmount}' has been reached

IS0030

This investment exceeds the amount available on this offering

IS0034

The provided front end fee ({providedFee}) exceeds the maximum defined for this security ({maxFee})

Investor

IV0004

The accreditation level '{accreditationLevel}' of investor '{investorId}' is not compatible with security's regulation '{issuanceRegulation}'

IV0005

Regulation RegS is not available for US investor '{investorId}'

IV0006

Investor type is mandatory for new accounts

IV0007

Investor name is mandatory for new accounts

IV0008

Investor individual info is mandatory for new accounts

IV0009

Investor type cannot be updated for existing accounts

IV0010

The accreditation level '{investorAccreditationLevel}' of the investor '{investorId}' is not compatible with the security's exemption '{issuanceExemption}'. Compatible accreditation levels: '{compatibleAccreditationLevels}'

IV0020

Investor legal entity info is mandatory for new accounts

IV0021

Trust information is mandatory for legal entities of type Trust

IV0022

Trust information can only be provided for legal entities of type Trust

IV0023

Accreditation Other is not available for US investor

Other Business Rule Validations
Type
Code
Message

Account

AC0007

Intermediary bank account must be provided for further credit

AC0017

Account type cannot be updated for existing accounts

AC0020

Account can only be updated by the owner organization

AC0028

The investors list cannot be changed for an account that has assets that have been accepted by the issuer or recalled by the investor

AC0029

Updating omnibus account is not allowed for current action.

AC0044

Two or more duplicated correlation ids {orgCorrelationId} were provided for account

AC0048

Account additional type info can only be set if account type or subtype are set to 'Other'

AC0049

Cannot set subtype '{subType}' for account type '{type}'. Allowed subtypes are: '{allowed}'

Advisor

AD0012

Advisor can only be updated by the owner organization

AD0015

Data provided for advisor {advisorId} is not same as provided in completedByAdvisor property.

AD0016

Correlation ids provided in completedByAdvisor are not linked to same advisor

AD0017

Correlation data provided for existing advisor: '{advisorId}'

AD0018

Two or more duplicated correlation ids {orgCorrelationId} were provided for advisor

Asset

AS0013

The following asset ids can't be found{orInDifferentStatus}: '{invalidAssetIds}'

AS0017

'{providedProp}' should not be provided. Expected property is '{expectedProp}'

AS0018

Multiple entries detected for asset '{uniqueId}'

AS0024

Action cannot be performed for security with '{type}' type and capital call enabled.

AS0029

Two or more duplicated correlation ids {orgCorrelationId} were provided for asset

Exclusivity

EX0006

You need an accepted assignment to the exclusivity list in order to act on this security.

Files

FL0001

The following files could not be found in the correct status: '{fileIds}'

FL0006

The file correlation ids '{correlationIds}' are already in use

FL0010

Documents cannot be reused both as investor documents and transaction data documents

FL0011

Investor documents can only be reused by the investor that owns them

FL0028

Concurrent execution. There are '{lockedAmount}' file(s) marked as locked by another process

Issuance (Security)

IS0026

Active campaign period has not started yet.

IS0027

Campaign active period has already ended.

IS0099

You do not have the role for this action on security '{securityId}'. Required roles: '{requiredRoles}'; current roles: '{currentRoles}'

Investor

IV0013

Investor can only be updated by the owner organization

IV0035

Data provided: {data} is incompatible with investor type: {type}.

Technical Validations

Type
Code
Message

Account

AC0002

Account with correlation Id '{correlationId}' not found.

AC0009

The account correlation ids '{correlationIds}' are already in use

AC0050

Correlation id '{correlationId}' cannot be provided alongside account id '{accountId}' or booked account id '{bookedAccountId}'

Advisor

AD0022

Advisor name is mandatory for new advisors

AD0023

Advisor type is mandatory for new advisors

Asset

AS0004

Asset '{assetId}' is locked for edit by another process. Please try again later.

AS0023

Action can only be performed by the owner organization. Ids of the assets with the different owner: '{assetIds}'

AS0026

This asset correlation {orgCorrelationId} is locked for edit by another process. Please try again later.

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: '{scope}'

AU0003

The core access token is invalid for organization '{orgId}'.

Contact Info

CI0001

Contact preference type 'other' requires 'additionalTypeInfo' to be provided.

CI0002

Duplicate contact preference types found: '{duplicateTypes}' for subject: '{subject}'

CI0003

Duplicate contact preference subject ids found: '{subjectIds}'

Custodian

CT0011

Custodian can only be updated by the owner organization

CT0015

Two or more duplicated correlation ids {orgCorrelationId} were provided for custodian

CT0017

Custodian name is invalid

CT0019

Correlation data provided for existing custodian: '{custodianId}'

CT0020

Correlation id '{correlationId}' cannot be provided alongside custodian id '{custodianId}' or booked custodian id '{bookedCustodianId}'.

Files

FL0002

Provided data must contain either uploadData or fileId properties

FL0003

Provided data cannot contain both uploadData and fileId

FL0004

Found duplicated fileId '{fileId}' in multiple files

FL0005

Found duplicated correlationId '{correlationId}' in multiple files

FL0008

File with Correlation ID '{correlationId}' not found

FL0017

Two or more duplicated correlation ids '{orgCorrelationId}' were provided for file

FL0019

Correlation id '{correlationId}' cannot be provided alongside file id '{fileId}'.

FL0020

Multiple entries for the same file '{fileId}' detected in the payload.GN0002: The payload you have supplied is invalid.

Generic

GN0003

This request is being blocked because it is marked as a resubmission (i.e. you have supplied the same exact payload to this endpoint within a {ttlWindow} seconds window)

GN0008

The booked {type} id {entityId} was not found

Issuance (Security)

IS0001

Security '{securityId}' is a parent offering. Please use one of the share class offerings: '{shareClassIds}'

IS0008

Security id was not provided

IS0009

The security id '{securityId}' is invalid

IS0013

Security '{securityId}' is restricted

IS0106

Cannot provide both Security id and correlation data at same time

Investor

IV0002

Investor with correlation Id '{correlationId}' not found.

IV0003

The investor correlation ids '{correlationIds}' are already in use

IV0016

Duplicated investor ids detected

IV0017

Duplicated investor correlation ids detected

IV0032

Two or more duplicated correlation ids {orgCorrelationId} were provided for investor

IV0036

Duplicated form PF data detected for type {type}"|technicalValidations|EC002|"Investor Information & AML/KYC Issue(s).

IV0037

Correlation id '{correlationId}' cannot be provided alongside investor id '{investorId}' or booked investor id '{bookedInvestorId}'.

Questionnaires

QU0001

You cannot use 'allowedAnswerValues' in a question with the answerType '{currentAnswerType}'. It is only to be used when the answerType is 'Choice'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'

QU0002

You cannot provide more than 1 answer in a question with the answerType '{currentAnswerType}'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'

QU0003

The answer for the question with answerType '{currentAnswerType}' is expected to have exactly one '{expectedValue}' property. Provided properties: '{provided}'. Questionnaire type: '{questionnaireType}', question text: '{questionText}'

QU0004

The choice values '{provided}' is not part of the allowed answer values for question with the questionText: '{questionText}'. Questionnaire type: '{questionnaireType}'

QU0005

Duplicate answer ids found for question '{questionText}': '{ids}'. Questionnaire type: '{questionnaireType}'

QU0006

Duplicate values found for question '{questionText}': '{answers}'. Questionnaire type: '{questionnaireType}'

QU0007

Duplicate questionnaire ids found: '{ids}'

QU0008

Duplicate questionnaire types found: '{types}'

QU0009

Duplicate question ids found: '{ids}'. Questionnaire type: '{questionnaireType}'

QU0010

Duplicate allowed answer values found for question '{questionText}': '{values}'. Questionnaire type: '{questionnaireType}'.

../primary/asset
../primary/asset
../primary/batch-mark-wired

Onboard a Fund

Description

When the Asset Manager adds your organization to the exclusivity list for a fund, a notification is produced to signal that the assignment has been made. Your org needs to:

  1. Receive and parse the notification.

  2. Update internal systems to reflect the assignment.

  3. Accept (or reject) the assignment.

  4. Add security correlation ID (optional).

  5. Retrieve the fund details for use in internal systems.

Diagram

Endpoints

Task
How
Error Codes

Accept Fund Assignment

AC0013 AU0001 AU0002 AU0003 EX0001 GN0002 IS0003 IS0004 IS0009 IS0010 IS0013 IS0019 IS0102 IS0103 OG0028

Reject Fund Assignment

AU0001 AU0002 AU0003 EX0001 GN0002 IS0003 IS0004 IS0009 IS0010 IS0013 IS0019 IS0102 IS0103

Add Security Correlation ID (optional)

.

AU0001 AU0002 GN0002 IS0009 IS0074

Get Security Details

AU0001 AU0002 GN0002 GN0004 GN0005

Error Codes and Messages

Key Validations

Type
Code
Message

Exclusivity

EX0001

You neither have a pending exclusive assignment request nor accepted/rejected an exclusive assignment for security '{securityId}'

Other Business Rule Validations
Type
Code
Message

Account

AC0013

Account name is mandatory for new accounts

Exclusivity

EX0001

You neither have a pending exclusive assignment request nor accepted/rejected an exclusive assignment for security '{securityId}'

Issuance (Security)

IS0019

This action is reserved for securities with exclusivity type set to '{requiredType}'

Technical Validations
Type
Code
Message

Auth (OAuth)

AU0001

The access token is invalid or missing. Please provide a valid access token issued by the OAuth server using the client credentials grant (default location is on the authorization header).

AU0002

You do not have access to this scope: '{scope}'

AU0003

The core access token is invalid for organization '{orgId}'.

Generic

GN0002

The payload you have supplied is invalid.

GN0004

Page size must be an integer between 1 and {maxPageSize}

GN0005

Offset must be an integer bigger or equal to 0

Issuance (Security)

IS0003

{shareClassSecurityId}' is not a share class of the security '{securityId}'

IS0004

Security '{securityId}' does not have share classes

IS0009

The security id '{securityId}' is invalid

IS0010

This action is only allowed for parent securities but '{securityId}' is a share class

IS0013

Security '{securityId}' is restricted

IS0074

The offering correlation ids '{correlationIds}' are already in use

IS0102

There is a background job running to synchronize the security '{securityId}' data. Please try again later

IS0103

The data for security '{securityId}' was not synchronized correctly - job status is '{status}'

Organization

OG0028

Organization '{orgId}' is not in ACL

../exclusivity/accept
../exclusivity/reject
./security-admin/correlation-id/add
../securities