Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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
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.
The following table outlines the whitelisting tasks required for API use.
Client -> Corastone
Client Firewall Team
Corastone -> Client (REST)
Client Firewall Team
Corastone -> Client
Corastone
Client <-> Corastone
Client
The following sections detail each task.
You must allow outbound traffic by whitelisting one of the following:
OR
To receive Corastone push REST notifications, you must:
To enable us to accept API requests from the Client, you must:
Corastone will whitelist them internally and allow the connections.
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.
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.
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:
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.
This guide fully describes the use of the Corastone APIs and includes links to more technical information in Swagger.
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:
Authorize Access
Establish Connectivity
Onboard a Fund
Make Initial Investments
Remediate Investment
Retrieve All Assets
Use this section as a companion to the .
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.
Overall, the effort for the primary sales flow involves:
14 calls
~62 responses
up to ~127 error codes shared across responses
Before you can conduct transactions with an organization on the platform, you need to whitelist that organization, and that organization needs to whitelist yours.
Enterprise Organization Update Whitelist
AU0001 AU0002 AU0003 GN0002 OG0002 OG0013
None
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.
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
None
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.
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:
Receive and parse notification with remediation reasons.
Update internal systems.
Update the subscription record.
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
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
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:
Submit request to recall the investment.
Receive acceptance/rejection of that request.
Update internal systems.
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
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}'
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:
(Optional) Request asset creation dry run to validate subscription data.
With subscription validated, request subscription (create asset).
Receive and parse accept/reject notification.
Update internal systems to reflect the status of the request.
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.
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
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
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:
Receive and parse the notification.
Update internal systems to reflect the assignment.
Accept (or reject) the assignment.
Add security correlation ID (optional).
Retrieve the fund details for use in internal systems.
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
Exclusivity
EX0001
You neither have a pending exclusive assignment request nor accepted/rejected an exclusive assignment for security '{securityId}'