Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 262 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Integration API Guide

concepts and flows

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

libraries

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Getting Started

Rev. 27 June 2025

The Corastone platform is a distributed platform for digital securities lifecycle management, powered by a private and permissioned blockchain. All organizations that are part of this permissioned ecosystem run the same software (which is developed and distributed by Corastone) on their own Amazon Web Services (AWS) account. Each organization has an API integration point into the platform and can optionally have a set of web applications to be used as GUIs to interact with the platform.

Using This Guide

This Integration API Guide provides:

  • basic flows for API calls

  • a synopsis of each endpoint

  • a link to the OpenAPI spec for each endpoint

  • supporting content

Platform Roles and the Integration API

Multiple parties participate in transactions on the Corastone platform. For example, an asset manager and a fund administrator might make sequential calls to approve a posted balance. To clarify which calls are appropriate for which roles, we have added a prefix (using the following abbreviations) to the title of each method page.

Abbreviation
Meaning

AM

Asset Manager - General Partners (GP) align with this role.

FA

Fund Administrator

Inv

Investing Organization - Weath Manaagers (WM) align with this role.

Testing a Subscription Request with dryRun

Testing a Subscription Request

Setting dryRun to TRUE for the Create Asset endpoint causes the platform to run the data validations without creating an asset or storing data in the database and/or blockchain.

The dryRun option is useful for:

  • testing sample payloads during coding of an integration

  • providing advisors with a button that confirms the payload is complete and correct before proceeding with other steps in the subscription process, such as uploading documents

Because the only difference between running Create Asset with dryRun set to TRUE vs FALSE is the step of persisting the resulting objects to the database and blockchain, there is no need to execute a dryRun call before every Create Asset call.

Managing the securityId

About the Fund Identifier

The securityId is a 12-character alphanumeric code that uniquely identifies a security on the ledger. It has the following format

  • unique organization ID (5 characters)

  • random characters (7 characters)

Example: WM1A3ACD234A

The securityId is required for uniquely identifying the security of interest. Note the following when managing your securityIds:

  • Issuers have access to this identifier upon launching the security on the ledger. See .

  • For investing organizations and service providers (e.g., fund administrators), the securityId is returned after they are assigned to the security using .

Parent and Child Securities (Share Classes)

Understanding Parent/Child Securities

An offering that includes multiple fee-structure options can have “child securities.” Each child security has its own securityId. Each securityId rolls up into the parent security.

Operations that involve securities with multiple share classes include applicable share-class securityIds when distinctions need to be made among the child securities. For example, a tender offer might specify different numbers of shares for different share classes.

Obtaining an Access Token

Getting API Access

To enable access to Corastone from the application you are integrating:

  1. Concatenate your Corastone clientId and clientSecret as follows:

clientId:clientSecret

  1. Base64 encode the resulting string.

  2. Call the token endpoint (POST <AuthURL>/oauth2/token) as follows:

    1. Use the header to pass in the base64 encoded string: Authorization: Basic <encoded_string>

    2. Provide the necessary scope. The description of each endpoint specifies the associated scope.

    Here's an example of a scope submission: {“grant_type”: “client_credentials”, “scope”: “createSubscription remediateSubscription cancelSubscription confirmCompleting manageServiceProviders readExclusivityOptions manageExclusivityOptions readNAV readSubscription readIssuance readInvestor readAccount readLedger readTransactionData manageExternalClients manageTrade readTrade manageReferenceData manageOrgs readOrgs readIssuanceClose readIssuanceClose completeOffering createIdBooking manageIdBooking readErrors manageErrors readSequencer readIssuingLegalEntity "}

  3. Use the issued token as the bearer token in the call to functional APIs.

Amendments to This Guide

Date
Description

18 Jun 2025

Added happy path asset status diagram.

5 June 2025

Added History Events Reference.

2 June 2025

Added isAssetCorrelationId parameter example.

30 May 2025

Added isAssetCorrelationId parameter to multiple endpoints and added request body to Upload Document.

29 May 2025

Updated Data Dictionary.

28 May 2025

Added Fees article.

5 May 2025

Added Update Automation Settings endpoint. Updated Data Dictionary.

1 May 2025

Reformatted Error Codes and Messages.

30 Apr 2025

Reformatted Parser Error Codes.

23 Apr 2025

Updated Data Dictionary.

17 Apr 2025

Updated Error Codes and Messages.

16 Apr 2025

Clarified updates from 15 Apr.

15 Apr 2025

Added instructions for obtaining an access token.

14 Apr 2025

Added description of questionnaire support.

8 Apr 2025

Updated Data Dictionary.

4 Apr 2025

Updated Data Dictionary.

1 Apr 2025

Added endpoints for org correlation IDs.

26 Mar 2025

Added article on using correlation IDs

25 Mar 2025

Updated Data Dictionary.

18 Mar 2025

Added details on methods for uploading documents. Updated Data Dictionary.

17 Mar 2025

Added Upload Document endpoint.

Launch New Offering
Get Pending Assignment

Mapping Your IDs to Corastone IDs

How to Use Correlation IDs

To avoid the need to keep track of the unique identifiers for Corastone entities, you can map your internal identifiers to Corastone identifiers on the Corastone platform. Use correlationIDs to perform these mappings. You can use the correlationData structure to map your identifiers when you start the process of creating an entity, like an asset. You can use Add Correlation ID endpoints to map one or more identifiers after creating an entity. Once your identifiers are mapped to Corastone identifiers, you can use your identifiers to refer to entity in other endpoints.

The following entities can have correlation IDs:

  • Accounts

  • Advisors

  • Assets

  • Capital Calls

  • Custodians

  • Distributions

  • Files

  • Funds

  • Investors

  • Issuance Closes

  • Organizations

  • Tender Offers

  • Tender Requests

  • Transfers

Example: Mapping Identifiers When Creating an Asset

The schema for the Create Asset endpoint includes a correlationData structure:

Submitting your Create Asset call with a correlationId specified maps the two identifiers for the subscription for the life of the resulting asset, unless you remove the correlationId (Remove Asset Correlation ID).

The following table details this structure.

Property
Description
Example

correlationId

The identifiers to be mapped to the Corastone identifier (securityId).

MYID89647

broadcastToCounterparty

Flag to indicate whether to share each correlationId with platform counterparties who have access to the details of the subscription.

False

origin

The system that created the identifier listed in the correlationId field.

Backoffice-123

Example: Mapping Identifiers After Creating an Asset

After the initial subscription request is submitted (Create Asset), you can add mapped identifiers using the Add Asset Correlation ID enpoint in the Asset API. This endpoint provides the same elements as the correlationData structure detailed above.

Example: Using Mapped Identifiers

Once your identifier is mapped to the Corastone identifier, you can supply your identifier to work with the entity. For example, to fetch asset details where the correlationId is KFC001, you might use:

{{URL}}/external/v1/asset?correlationIdsFilter=KFC0001

Using an Asset Correlation ID in the assetID Path Parameter

If you want to submit an asset correlation ID in the assetID path parameter, you must include isAssetCorrelationID as a query parameter. For example, to request remediation for an asset using the asset correlation ID "abc123" as the identifier, you would need to use:

{{URL}}/external/v1/primary/asset/abc123/request-remediation?isAssetCorrelationID=TRUE

Using a Shared Correlation ID

When an organization broadcasts a correlation ID, counterparties can use the correlation ID. To include another organization's correlation ID, you must also provide the assetCorrelationOrgId=<org> parameter, where <org> is the identifier for the organization that published the correlation ID.

For example, to use "abc123" as a correlation ID broadcast by org456, you would need to use:

{{URL}}/external/v1/primary/asset/abc123/request-remediation?isAssetCorrelationID=TRUE&assetCorrelationOrgId=org456

Flows: For Segregated Portfolio Companies (spcUnit)

Working with SPC Funds

The following flows apply to segrated portfolio companies:

  • initial fund/offering setup (see Flows: For All Investment Vehicles)

  • transfers (see Flows: For All Investment Vehicles)

  • initial investments

Initial Investments

The initial investments have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of accepted shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

1

Inv - Create Asset (Lot)

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

3

Inv - Mark Assets Batch as Wired

4

AM/FA - Mark Assets Batch as Settled

5

AM/FA - Run Close

Documents and Files

Documents and Files on the Platform

There are two ways to upload a document to the Corastone platform:

  • via upload link as part of a transaction

  • via form-data using a local file

In both cases, the API returns the fileId to use when associating the document with assets or investors.

Via Upload Link

To include a new document with a new subscription request (Create Asset), the uploadData property specifies the type, extension, and a link to the document location.

The document link must be a URL. If you are working with a local document, use the Upload Document endpoint described in the next section.

Via Form-Data

To upload a local document directly to the platform without a link, you can use the Upload Document endpoint. In this case, you select the local file as a form-data parameter and specify the file type as a query parameter.

Flows: For Limited Partnerships (lpUnit)

Working with LP Funds

The following flows apply to limited partnerships:

  • initial fund/offering setup (see Flows: For All Investment Vehicles)

  • transfers (see Flows: For All Investment Vehicles)

Initial Investments

The initial investments have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of accepted shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

1

Inv - Create Asset (Lot)

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

3

Inv - Mark Assets Batch as Wired

4

AM/FA - Mark Assets Batch as Settled

5

AM/FA - Run Close

AM - Reject Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. After an investor requests a subscription for a security, the asset manager can accept or reject it.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

../primary/asset
../primary/{assetId}/reject
../primary/batch-mark-accepted
../primary/match-mark-wired
../primary/batch-mark-settled
../primary/run-close
../primary/asset
../primary/{assetId}/reject
../primary/batch-mark-accepted
../primary/batch-mark-wired
../primary/batch-mark-settled
../primary/run-close
/external/v1/primary/{assetId}/reject
Blockchain Transaction Tracking

Flows: For All Investment Vehicles

Flows That Are Common Across Investment Vehicles

The following flows apply to all investment vehicles:

  • initial fund/offering setup

  • transfers

Initial Fund/Offering Setup

A fund/offering needs to be in place on the platform before transactions can occur. Once a fund/offering is active, initial investments can proceed. By default, only investing organizations that have received and accepted assignment to the exclusivity list for a security are allowed to participate. The optional flow for adding a service provider, such as a fund administrator, is valid at any point before close.

The following table lists the necessary steps to perform the outlined tasks.

Task
How

1

AM - Create and Launch Offering

2

AM/FA - Add Investing Org to Fund

3

Inv - Accept Fund Assignment

4

Inv - Retrieve Fund Information

Optional Workflow

AM - Assign Fund Administrator (optional)

FA - Accept/Reject FA Assignment (optional)

Transfers

Transfers apply when:

  • A life event, such as death or divorce, results in the need to move shares to a different account.

  • An advisor moves to a different firm, requiring transfer of shares for those clients who choose to follow the advisor.

The Integration API refers to shares as assets.

The following table lists the necessary steps to perform the outlined tasks.

Task
How

1

Inv - Request Transfer (Receiving Org)

2

AM/FA - Approve Transfer

3

Inv - Allocate Assets (Sending Org)

4

AM/FA - Complete Transfer (Sending Org)

AM/FA/Inv - Get Asset History

Details

/external/v1/asset/history

Synopsis

AM/FA/Inv - Get Security Details

Details

/external/v1/securities

Synopsis

AM - Add Organization to Exclusivity List

Details

/external/v1/exclusivity/add

Synopsis

Important Notes

  • This should only be triggered either by the organization that owns the security or by a channel admin.

  • securityId: uniquely identifies the fund/offering. See Managing the SecurityId.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

Flows: For Limited Liability Company (llcUnitShare)

Working with LLC Funds

The following flows apply to limited liability companies:

  • initial fund/offering setup (see )

  • transfers (see )

  • initial investments

  • tender offer redemptions

Initial Investments

The initial investments have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of accepted shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

Tender Offer Redemption

For managed funds, either the general partner or the fund admin can initiate the event. Both must approve.

For self-managed funds, the general partner's approval is required.

Task
How

Flows: For Drawdown Funds (lpInterest)

Working with Dropdown Funds

The following flows apply to drawdown funds:

  • initial fund/offering setup (see )

  • transfers (see )

  • initial investments

  • capital calls

  • distributions

Initial Investments

The initial investments for a drawdown fund have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of accepted shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

Capital Calls

If a drawdown fund is configured for capital calls, the event can be started by either the general partner or the fund administrator, and both parties must approve.

If there is no fund admin, then the general partner must still approve.

Task
How

Distributions

If a drawdown fund is configured for distributions, the event can be started by either the general partner or the fund administrator, and both parties must approve.

If there is no fund admin, then the general partner must still approve.

Task
How

Flows: For Registered Funds (equity)

Working with Registered Funds

The following flows apply to registered funds:

  • initial fund/offering setup (see )

  • transfers (see )

  • tender offer redemptions

Initial Investments

The initial investments for a registered fund have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of accepted shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

Tender Offer Redemption

For managed funds, either the general partner or the fund admin can initiate the event. Both must approve.

For self-managed funds, the general partner's approval is required.

Task
How

Flows: Hedge Fund Capital Accounting (lpInterest)

Working with Hedge Funds

The following flows apply to hedge fund capital accounting:

  • initial fund/offering setup (see )

  • transfers (see )

  • initial investments

  • distributions

Initial Investments

The initial investments for a hedge fund have the following flow, with securities issued when the Asset Manager or Fund Admin runs a close for a batch of settled shares. This flow assumes that:

  • The investing org has been assigned to the fund.

  • The investing org has accepted that assignment.

The Integration API refers to the initial step in subscribing as "creating an asset."

Task
How

Distributions

If a hedge fund is configured for distributions, the event can be started by either the general partner or the fund administrator, and both parties must approve.

If there is no fund admin, then the general partner must still approve.

Task
How

AM/FA - Get File Details

A file is a document associated with a subscription.

Details

Synopsis

AM - Assign Service Provider to Offering

Asset managers can assign service providers, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.

Details

Synopsis

Important Notes

  • Used by the organization that owns the security.

  • See for information on using orchestrationId and processId.

\

AM/FA - Mark Assets Batch as Settled

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. Once the funds for multiple transactions have been transferred, you can mark the shares as settled.

Details

Synopsis

AM/FA/Inv - Add File Correlation ID

Use a correlation ID to associate external identifiers with platform IDs.

Details

Synopsis

AM/FA - Decline Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. If funds for a transaction are not received, the asset manager/fund administrator can decline the shares.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

\

AM/FA/Inv - Remove Issuance Close Correlation ID

A correlation ID associates an external identifiers with a platform ID.

Details

Synopsis

AM/FA - Reject Recall Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. If an investor recalls an asset, the asset manager or fund administrator can accept or reject the request.

Detail

Synopsis

AM/FA - Update Capital Event

Before a capital event has been approved, the asset manager and fund administrator can make updates.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

FA - Reject Assignment to Offering

A service provider, such as a fund administrator, can decline a role for an offering by rejecting the assignment.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

\

AM/FA - Mark Assets Batch as Accepted

Details

Synopsis

AM/FA -Settle Asset Capital Event

Once the funds are sent or received, the capital event can be settled. Here, an asset represents multiple shares, or a lot, of the corresponding security.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

AM/FA/Inv - Get Security Correlation IDs History

Details

Synopsis

AM/FA/Inv - Get Security History Details

Details

Synopsis

AM/FA/Inv - Get Capital Event Correlation ID History

Details

Synopsis

AM/FA/Inv - Get Asset Details

Details

Synopsis

AM/FA - Get Fees Template History

Details

Synopsis

NAV Reporting

Net asset value (NAV) records provide the per-share market values by date for fund share classes.

Endpoints

The following list summarizes the primary endpoints required to support the NAV reporting life cycle:

Getters

AM/FA/Inv - Add Issuance Close Correlation ID

Use a correlation ID to associate external identifiers with platform IDs.

Details

Synopsis

AM/FA/Inv - Get Issuance Close Correlation IDs History

Details

Synopsis

AM/FA/Inv - Get File Correlation IDs History

Details

Synopsis

AM/FA - Get NAV Time Series

Details

Synopsis

AM/FA/Inv - Get Asset Correlation IDs History

Details

Synopsis

AM/FA - Delete NAV Unitized

Details

Synopsis

Inv - Create Asset (Lot)

The Integration API refers to the initial step in subscribing as "creating an asset." Throughout the API flows, an asset represents multiple shares, or a lot, of a given security.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

  • Use the dryRun option to check the submission for completeness and correctness without persisting the information.

AM/FA - Request Changes for Capital Event

A fund administrator or asset manager can request a change for a capital event before approving.

Details

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See .

  • See for information on using orchestrationId and processId.

\

AM/FA - Get Capital Event History

Details

Synopsis

Create Batch NAV Unitized
Update NAV Unitized
Delete NAV Unitized
Get NAV Time Series
Get NAV Time Series History

Service Provider Management

Managed funds may require fund administrators or other organizations to take part in tasks associated with offerings, capital events, and tender offers (redemptions). For the purposes of the Corastone platform, these organizations are considered service providers. Service providers have an official organization defined for them on the Corastone platform.

Related Concepts

Initial Fund Setup (see optional steps)

Endpoints

The following list summarizes the primary endpoints required to support service provider management within the fund/offering life cycle:

Assign Service Provider to Offering

Accept Assignment to Offering

Reject Assignment to Offering

Remove Service Provider from Offering

Getters

Get Pending Assignments

Get Assigned Service Providers

Get Service Provider Assignment History

General Concepts

About Flows

The flows presented in the first part of this guide summarize the order of operations for key tasks and the roles that perform each task. Because the steps and roles can depend on the investment vehicle being used, there is a separate section for each supported vehicle type.

See also Data Dictionary for details on required fields and validations.

API Topics

The following articles discuss topics common across the Integration API

  • Managing the securityId

  • Mapping Your IDs to Corastone IDs

  • Parent and Child Securities (Share Classes)

  • Documents and Files

1

Inv - Create Asset (Lot)

../primary/asset

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

../primary/{assetId}/reject ../primary/batch-mark-accepted

3

Inv - Mark Assets Batch as Wired

../primary/batch-mark-wired

4

AM/FA - Mark Assets Batch as Settled

../primary/batch-mark-settled

5

AM/FA - Run Close

../primary/run-close

1

AM - Initiate Tender Offer Redemption

../tender-offers

2

FA - Approve / Reject Tender Offer Redemption

../tender-offers/{tenderOfferId}/approve

../tender-offers/{tenderOfferId}/reject

3

Inv - Submit Tender Redemption Request

../tender-offers/{tenderOfferId}/request

4

AM/FA - Close Tender Offer Redemption

../tender-offers/{tenderOfferId}/close

5

AM/FA - Set Price

../tender-offers/{tenderOfferId/price/set

6

AM/FA - Approve/Reject Price

../tender-offers/{tenderOfferId}/price/approve

../tender-offers/{tenderOfferId}/price/reject

7

AM/FA - Apply Price

../tender-offers/{tenderOfferId}/price/apply

8

AM/FA - Complete Price

../tender-offers/{tenderOfferId}/price/complete

9

AM/FA - Settle Tender Offer Redemption

../tender-offers/{tenderOfferId}/settle

Flows: For All Investment Vehicles
Flows: For All Investment Vehicles

1

Inv - Create Asset (Lot)

../primary/asset

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

../primary/{assetId}/reject ../primary/batch-mark-accepted

3

AM/FA - Run Close

../primary/run-close

1

AM/FA - Initiate Capital Call

../capital-events

2

AM/FA - Approve/Reject Capital Call

../capital-events/{capitalEventId}/approve

../capital-events/{capitalEventId}/reject

3

Inv - Fund Capital Call (Mark as Funded)

../capital-events/{capitalEventId}/assets/fund

4

AM/FA - Settle Capital Call

../capital-events/{capitalEventId}/assets/settle

5

AM/FA - Close Capital Call

../capital-events/{capitalEventId}/close

1

AM/FA - Initiate Distribution

../capital-events

2

AM/FA - Approve/Reject Distribution

../capital-events/{capitalEventId}/approve

./capital-events/{capitalEventId}/reject

3

AM/FA - Settle Distribution

../capital-events/{capitalEventId}/assets/settle

4

AM/FA - Close Distribution

../capital-events/{capitalEventId}/close

Flows: For All Investment Vehicles
Flows: For All Investment Vehicles

1

Inv - Create Asset (Lot)

../primary/asset

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

../primary/{assetId}/reject ../primary/batch-mark-accepted

3

Inv - Mark Assets Batch as Wired

../primary/batch-mark-wired

4

AM/FA - Mark Assets Batch as Settled

../primary/batch-mark-settled

5

AM/FA - Run Close

../primary/run-close

1

AM - Initiate Tender Offer Redemption

../tender-offers

2

FA - Approve / Reject Tender Offer Redemption

../tender-offers/{tenderOfferId}/approve

../tender-offers/{tenderOfferId}/reject

3

Inv - Submit Tender Redemption Request

../tender-offers/{tenderOfferId}/request

4

AM/FA - Close Tender Offer Redemption

../tender-offers/{tenderOfferId}/close

5

AM/FA - Set Price

../tender-offers/{tenderOfferId/price/set

6

AM/FA - Approve/Reject Price

../tender-offers/{tenderOfferId}/price/approve

../tender-offers/{tenderOfferId}/price/reject

7

AM/FA - Apply Price

../tender-offers/{tenderOfferId}/price/apply

8

AM/FA - Complete Price

../tender-offers/{tenderOfferId}/price/complete

9

AM/FA - Settle Tender Offer Redemption

../tender-offers/{tenderOfferId}/settle

Flows: For All Investment Vehicles
Flows: For All Investment Vehicles

1

Inv - Create Asset (Lot)

../primary/asset

2

AM - Reject Asset (Investment) AM - Mark Assets Batch as Accepted

../primary/{assetId}/reject ../primary/batch-mark-accepted

3

Inv - Mark Assets Batch as Wired

../primary/batch-mark-wired

4

AM/FA - Mark Assets Batch as Settled

../primary/batch-mark-settled

5

AM/FA - Run Close

../primary/run-close

1

AM/FA - Initiate Distribution

../capital-events

2

AM/FA - Approve/Reject Distribution

../capital-events/{capitalEventId}/approve

../capital-events/{capitalEventId}/reject

3

AM/FA - Settle Distribution

../capital-events/{capitalEventId}/assets/settle

4

AM/FA - Close Distribution

../capital-events/{capitalEventId}/close

Flows: For All Investment Vehicles
Flows: For All Investment Vehicles
/external/v1/file
/external/v1/service-providers/assign
Blockchain Transaction Tracking
/external/v1/primary/batch-mark-settled
/external/v1/file/{fileId}/correlation-id/add
/external/v1/primary/asset/{assetId}/decline
Blockchain Transaction Tracking
/external/v1/issuance-close/{closeId}/correlation-id/remove
/external/v1/primary/asset/{assetId}/recall/reject
/external/v1/capital-events/{capitalEventId}
Blockchain Transaction Tracking
/external/v1/service-providers/reject
Blockchain Transaction Tracking
/external/v1/primary/batch-mark-accepted
/external/v1/capital-events/{capitalEventId}/assets/settle
Blockchain Transaction Tracking
/external/v1/securities/correlation-id/history
/external/v1/securities/history
/external/v1/capital-events/correlation-id/history
/external/v1/asset
/external/v1/fees-template/history
/external/v1/issuance-close/{closeId}/correlation-id/add
/external/v1/issuance-close/correlation-id/history
/external/v1/file/correlation-id/history
/external/v1/nav-reporting
/external/v1/asset/correlation-id/history
/external/v1/nav-reporting/batch-delete
/external/v1/primary/asset
Blockchain Transaction Tracking
/external/v1/capital-events/{capitalEventId}/reject
Managing the SecurityId
Blockchain Transaction Tracking
/external/v1/capital-events/history
../security-admin/create-and-launch
../exclusivity/add
../exclusivity/accept
../securities
../service-providers/assign
../service-providers/accept
../service-providers/reject
../transfer
../transfer/{transferId}/approve
../transfer/{transferId}/allocate-assets
../transfer/{transferId}/complete

AM/FA - Request Digital Asset Remediation

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security.

Details

/external/v1/primary/asset/{assetId}/request-remediation

Synopsis

Important Notes

  • The asset goes back to the investor organization to be updated using the remediation endpoint.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

AM - Dispose Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. The asset manager can dispose shares after cancelation or if the issuance has been busted.

Details

/external/v1/primary/asset/{assetId}/dispose

Synopsis

Important Notes

  • Use only after the asset has been canceled or the issuance (offering) has not met its minimum investment.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

\

Inv - Remediate Digital Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security.

Details

/external/v1/primary/asset/{assetId}/remediate

Synopsis

Important Notes

  • Issuer requested remediation first.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

\

AM/FA/Inv - Add Capital Event Correlation ID

Use a correlation ID to associate external identifiers with platform IDs.

Details

/external/v1.capital-events/{capitalEventId}/correlation-id/add

Synopsis

AM/FA/Inv - Remove File Correlation ID

A correlation ID associates an external identifiers with a platform ID.

Details

/external/v1/file/{fileId}/correlation-id/remove

Synopsis

AM/FA - Get Service Provider Assignment History

Details

/external/v1/service-providers/history

Synopsis

AM/FA/Inv - Get Issuance Close Details

Details

/external/v1/issuance-close

Synopsis

AM/FA/Inv - Add Asset Correlation ID

Use a correlation ID to associate external identifiers with platform IDs. An asset represents multiple shares, or a lot, of a given security.

Details

/external/v1/asset/{assetId}/correlation-id/add

Synopsis

AM/FA/Inv - Get Issuance Close History

Details

/external/v1/issuance-close/history

Synopsis

AM/FA/Inv - Remove Capital Event Correlation ID

Details

/external/v1/capital-events/{capitalEventId}/correlation-id/remove

Synopsis

AM/FA - Get NAV Time Series History

Details

/external/v1/nav-reporting/history

Synopsis

AM/FA - Get Breakdown Categories History

Details

/external/v1/capital-events/categories/history

Synopsis

AM/FA/Inv - Get Asset Capital Event History

Details

/external/v1/capital-events/assets/history

Synopsis

AM/FA - Recover Asset Capital Event

After failure, the asset can be recovered if the amount is eventually received. Here, an asset represents multiple shares, or a lot, of a given security.

Details

/external/v1/capital-events/{capitalEventId}/assets/recover

Synopsis

Important Notes

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

AM/FA - Apply Asset Capital Event

Details

/external/v1/capital-events/{capitalEventId}/assets/apply

Synopsis

AM - Get Assigned Service Providers

Service providers are third-party organizations, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.

Details

/external/v1/service-providers

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See Managing the SecurityId.

AM/FA/Inv - Upload Document

Details

/external/v1/file/upload

Synopsis

AM/FA/Inv - Get Security Totals History

Details

/external/v1/securities/totals/history

Synopsis

AM - Reject Assignment to Exclusive Offering

Details

/external/v1/exclusivity/reject

Synopsis

Important Notes

  • Revert using the /accept endpoint.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

AM/FA - Run Close

When the asset manager/fund administrator is ready to issue securities on the subscriptions received so far, they can run a close for the issuance.

Details

/external/v1/primary/run-close

Synopsis

AM/FA/Inv - Get Asset Capital Event Details

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security.

Details

/external/v1/capital-events/assets

Synopsis

Inv - Fund Capital Event Assets

Once an investor funds a capital call, that fact needs to be recorded in the Corastone portal. Here, an asset represents multiple shares, or a lot, of the corresponding security.

Details

/external/v1/capital-events/{capitalEventId}/assets/fund

Synopsis

Important Notes

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

AM/FA - Update NAV Unitized

Details

/external/v1/nav-reporting/batch-update

Synopsis

AM/FA - Accept Recall Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. If an investor recalls an asset, the asset manager or fund administrator can accept or reject the request.

Details

/external/v1/primary/asset/{assetId}/recall/accept

Synopsis

Inv - Recall Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. An investor can recall the asset to undo the subscription.

Details

/external/v1/primary/asset/{assetId}/recall

Synopsis

Important Notes

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

\

AM - Remove Organization from Exclusive Offering List

Details

/external/v1/exclusivity/remove

Synopsis

Important Notes

  • Should only be triggered either by the organization that owns the security or by a channel admin.

  • securityId: uniquely identifies the fund/offering. See Managing the SecurityId.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

AM/FA/Inv - Get Issuing Legal Entity History

Details

/external/v1/issuing-legal-entity/history

Synopsis

FA - Accept Assignment to Offering

Once a service provider, such as a fund administrator, accepts assignment to an offering, they can take part in certain tasks associated with the lifecycle of that offering.

Details

/external/v1/service-providers/accept

Synopsis

Important Notes

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

\

Inv - Accept Assignment to Exclusive Offering

Details

/external/v1/exclusivity/accept

Synopsis

Important Notes

  • The current organization must be assigned as an investing org for this security.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

AM/FA - Close Capital Event

After all shares are settled or failed, the capital event can be closed.

Details

/external/v1/capital-events/{capitalEventId}/close

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See Managing the SecurityId.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

\

AM/FA - Approve Capital Event

A capital event must be approved before it can proceed.

Details

/external/v1/capital-events/{capitalEventId}/approve

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See Managing the SecurityId.

  • See Blockchain Transaction Tracking for information on using orchestrationId and processId.

\

AM/FA - Get Fees Template Details

Details

Synopsis

AM/FA - Create Batch NAV Unitized

Details

Synopsis

AM/FA/Inv - Get Issuing Legal Entity Details

Details

Synopsis

AM/FA - Fail Asset Capital Event

If an investor does not meet their commitment for a capital call, their shares are marked as failed. Here, an asset represents multiple shares, or a lot, of a given security.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

\

Exclusivity Management

An active fund is visible only to those investing organizations that have accepted assignment to the exclusivity list for that fund. These steps are included as part of the standard setup flow for a new offering, but can be performed after the initial setup.

Related Concepts

Endpoints

The following list summarizes the primary endpoints required to support the exclusivity life cycle:

Getters

AM/FA/Inv - Get Capital Event Details By ID

Details

Synopsis

AM - Cancel Asset (Lot)

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. The asset manager can cancel the asset after receiving funds if the investor needs to back out.

Details

Synopsis

Important Notes

  • See for information on using orchestrationId and processId.

  • The dryRun option is included in the response, but is not yet used for this method.

Collecting Data Using Questionnaires

Incorporating Questionnaire Data into the Platform

Questionnaires are a standard way to assess investors for participation in a fund. You can incorporate the data from a questionnaire as part of the investor details stored on the platform.

The following diagram illustrates how the questionnaires completed by an investor can be captured via the Integration API.

You can add questionnaire data using any of the following endpoints:

  • Create Asset

  • Remediate Asset

  • Update Investor's Reference Data

Example

The following JSON excerpt captures a brief questionnaire:

A custom ID is optional for both questions and answers. Custom IDs can make it easier to programmatically identify and parse out the data in a questionnaire. If you don't provide a custom ID, Corastone generates a unique ID for each, which can be retrieves via Get Investor Details.

Initial Fund/Offering Setup
Mapping Your IDs to Corastone IDs
Add Organization to Exclusivity List
Accept Assignment to Exclusive Offering
Reject Assignment to Exclusive Offering
Remove Organization from Exclusive Offering List
Update isRepLetterProvided
Get Pending Assignment
Get Assigned Investing Organizations
Get Investor Org Assignment History
"questionnaires": [ {
    "type": "Suitability",
    "questions": [
    {
       "question": {
       "questionText": "Are you an accredited investor as defined by the SEC?",
            "answerType": "Boolean"
        },
        "answers": [ {
        "booleanValue": true
        }]
        },
    {
        "question": {
           "questionText": "Which choice describes your investing style?",
           "answerType": "Choice",
              "allowedAnswerValues": [
                "Conservative", "Moderate", "Aggressive"
           ]
        },
        "answers": [ {
            "choiceValue": "Aggressive"
            }]
         }] 
    }]

Capital Event Management

Capital events refer to capital calls and distributions.

Related Concepts

Capital Calls

Distributions

Mapping Your IDs to Corastone IDs

Endpoints

The following list summarizes the primary endpoints required to support the capital event life cycle:

Create Capital Event

Approve Capital Event

Request Change for Capital Event

Apply Asset Capital Event

Update Capital Event

Fund Capital Event Assets

Settle Asset Capital Event

Fail Asset Capital Event

Recover Asset Capital Event

Cancel Capital Event

Close Capital Event

Add Capital Event Correlation ID

Remove Capital Event Correlation ID

Getters

Get Capital Event Details By ID

Get Asset Capital Event Details

Get Capital Event History

Get Capital Event Correlation IDs History

Get Asset Capital Event History

Get Breakdown Categories Details

Get Breakdown Categories History

/external/v1/fees-template
/external/v1/nav-reporting/batch-create
/external/v1/issuing-legal-entity
/external/v1/capital-events/{capitalEventId}/assets/fail
Blockchain Transaction Tracking
/external/v1/capital-events
/external/v1/primary/asset/{assetId}/cancel
Blockchain Transaction Tracking

FA - Get Pending Assignments

Asset managers can assign service providers, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.

Details

/external/v1/service-providers/pending-assignments

Synopsis

AM/FA - Get Breakdown Categories Details

Details

/external/v1/capital-events/categories

Synopsis

Document Types

Supported Documents

The Integration API supplies numerous document types. However, only the following types impact platform behavior:

  • w8

  • w8bene

  • w9

These document types impact validation of investor documents.

The following table lists the descriptions of all document types listed in docType enumeration:

Type
Description

AM - Remove Service Provider from Offering

Service providers are third-party organizations, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.

Details

Synopsis

Important Notes

  • Caller must be the security owner.

  • securityId: uniquely identifies the fund/offering. See .

  • See for information on using orchestrationId and processId.

Inv - Mark Assets Batch as Wired

Throughout the API flows, an asset represents multiple shares, or a lot, of a given security. The investing organization can mark a batch of securities to indicate funds have been wired.

Details

Synopsis

AM/FA - Cancel Capital Event

You can cancel a capital event before launch.

Details

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See .

  • See for information on using orchestrationId and processId.

\

AM/FA/Inv - Remove Asset Correlation ID

A correlation ID associates an external identifier with a platform ID. An asset represents multiple shares, or a lot, of a given security.

Details

Synopsis

AM/FA - Create Capital Event

The first step in the flow for a capital call or distribution is to create a capital event.

Details

Synopsis

Important Notes

  • securityId: uniquely identifies the fund/offering. See .

  • See for information on using orchestrationId and processId.

AdditionalDocuments

Supplementary documents of any type.

AdditionalSubscriptionDocument

Supplementary subscription documents.

AdditionalSubscriptionTerms

Supplementary subscription rules.

CertificateOfGoodStanding

An official document issued by a state agency confirming that a business entity is legally registered and authorized to operate in that state, demonstrating compliance with all requirements.

CommentAttachment

Not currently in use.

DownloadableMaterials

Documents that are intended for distribution.

Formation

Formal written rules on how the entity operates, including articles of incorporation, bylaws, and so on.

Governance

Formal written rules on how the entity operates, including articles of incorporation, bylaws, and so on.

HedgeFundDocument

Documents associated with a hedge fund, including operating agreements and offering offering memoranda.

IdentityVerification

A document that verifies identity, such as a passport.

InvestmentReturn

Not currently in use.

InvestmentTransferDocument

A form used to initiate the transfer of assets from one brokerage account or financial institution to another. Also called a Transfer Instruction Form (TIF).

InvestorAccreditation

Certificate confirming that the investor meets the criteria for becoming an accredited investor.

IssuanceConfidentialDocument

Not currently in use.

IssuanceDisclosures

Documents that explain factual information about the issuance and the risks of investment.

NewSharesAuthorizedUpdatedBylaws

Document amending the entity's articles of incorporation to accommodate a change in the number of shares it can issue.

Other

A document that does not fit into any other listed type.

PrivatePersonID

A document providing proof of identify for a private individual.

Prospectus

A document used to inform the public about an offering of securities, including the risks and financial outlook.

Tax

Tax-related document that is not a W9, W8-BEN, or W8-BEN-E.

TrustAgreement

Legal document outlining the terms and conditions of a trust, specifying who the grantor, trustee, and beneficiaries are, what assets are held in trust, and how the trust will be managed and distributed.

w8ben

IRS form used to collect correct Nonresident Alien (NRA) taxpayer information for individuals for reporting purposes and to document their status for tax reporting purposes.

w8bene

IRS form used to provide status of beneficial owner for US tax withholding and reporting.

W9

IRS form W-9 used to provide the correct Taxpayer Identification Number (TIN) to the person who is required to file an information return with the IRS to report.

Fund/Offering Management

Once a fund/offering has been launched, the offering life cycle can begin. If the fund has not been created/launched yet, see Create and Launch New Offering. The Corastone object that corresponds to a subscription is called an asset or digital asset.

Related Concepts

Initial Investments (Drawdown Vehicles)

Initial Investments (All Other Vehicles)

Documents and Files

Mapping Your IDs to Corastone IDs

Testing a Subscription Request

W8/W9 Parser

Investor data submitted via the Integration API must match the information included in uploaded W8/W9 documents. Therefore, submission of investor data triggers parsing of the W8/W9 PDF, if provided, and a comparison of that data with the data submitted via API. (An override option is available to skip the comparison.) If a mismatch is detected, the platform aborts the transaction and produces an error code that prompts the investor to re-examine submitted data and correct errors detected by the comparison.

Endpoints

The following list summarizes the endpoints required to support the fund/offering life cycle:

Create Digital Asset

Request Digital Asset Remediation

Remediate Digital Asset

Reject Digital Asset

Recall Asset

Accept Recall Asset

Reject Recall Asset

Mark Assets Batch as Wired

Mark Assets Batch as Accepted

Mark Assets Batch as Settled

Decline Digital Asset

Cancel Digital Asset

Dispose Digital Asset

Upload Document

Run Close

Add Asset Correlation ID

Remove Asset Correlation ID

Add Issuance Close Correlation ID

Remove Issuance Close Correlation ID

Add File Correlation ID

Remove File Correlation ID

Getters

Get Security Details

Get Security History Details

Get Security Totals History

Get Security Correlation IDs History

Get Asset Details

Get Asset History

Get Asset Correlation IDs History

Get File Details By ID

Get File Correlation IDs History

Get Issuance Close Details

Get Issuance Close History

Get Issuance Close Correlation IDs History

Get Fees Template Details

Get Fees Template History

Get Issuing Legal Entity Details

Get Issuing Legal Entity History

/external/v1/service-providers/remove
Managing the SecurityId
Blockchain Transaction Tracking
/external/v1/primary/batch-mark-wired
/external/v1/capital-events/{capitalEventId}/cancel
Managing the SecurityId
Blockchain Transaction Tracking
/external/v1/asset/{assetId}/correlation-id/remove
/external/v1/capital-events
Managing the SecurityId
Blockchain Transaction Tracking

File Data Validation

Which Documents Get Validated

Corastone provides the option of validating the content of the following investor documents against the data for the corresponding investor:

  • W-9

  • W-8 BEN

  • W-8-BEN-E

This validation helps ensure that subscription requests proceed "in good order", with required for fields completed and matching corresponding fields in the request or an existing investor record. For example, Corastone can parse the investor's W9 to ensure that the investor's name matches the name provided in the subscription request.

To enable investor file validation for a subscription request:

  • include the file information in the investor section of the request

  • set bypassFileDataValidation to false

  • set dryRun to false

Example Payload

The following payload from a Create Asset request provides the fileId for a W9 that has already been uploaded to the platform.

When Validation Fails

File data validation is an asynchronous process initiated by the Create Asset request. Therefore, you need to check the error log for validation errors. For example, you can use the Sequencer API to retrieve the events that occurred within the relevant timeframe.

Here's a typical error associated with file data validation:

Get the details for the errorId to retrieve the validation errors:

Parser errors like the following describe the validation errors:

{
  "transactionData": {
    "securityId": "CDGP1D3LESYA",
    "amount": 500000,
    "signer": {
      "email": "[email protected]",
      "name": "someone"
  }},
  "investors": [{
    "documents": [
        {
          "fileId": "CDWM1BT94KD1"
        }
      ],
    "data":{
        "type":"individual",
        "accreditationLevel": "qualifiedEligibleParticipant",
        "hasKYCPassed": true,
        "isComplianceApproved": true,
        "name": "Ken Smith",
        "individualInfo": {
            "name": "Ken Smith",
            "dateOfBirth": "1957-06-10",
            "taxId": "987654523",
            "isUsPerson": true
        } }}],

    "account": {
      "data": {
        "name": "Individual Account",
        "type": "Individual",
        "relationshipType": "Advisory",
        "bankAccount": {
          "accountName": "savings account",
          "bankABA": "555525555",
          "bankName": "Test Bank"
        },
        "authorizedSigners": [
          {
          "name": "Jane Doe",
          "primary": true
        }
      ]}},
  "bypassFileDataValidation": false,
  "dryRun": false
}
{{URL}}/external/v1/sequencer?fromDate="2025-04-10"
{
            "error": {
                "errorId": "08ce57ef-7249-4304-b623-1e44e7fd5ce3",
                "action": {
                    "id": "CEPM001",
                    "name": "Create Digital Asset",
                    "httpData": {
                        "url": "/external/v1/primary/asset",
                        "method": "POST"
                    }
                },
                "timestamp": "2025-04-10T23:04:25.338Z"
            }
        },
{{URL}}/external/v1/error-log?errorIdsFilter=08ce57ef-7249-4304-b623-1e44e7fd5ce3
 {
                "message": "TIN on tax document (ID: 'CDWM172F441T') does not match any investor provided as input",
                "type": "businessRuleValidations",
                "code": "PE0031",
                "context": {
                    "entities": {
                        "processIds": [
                            "45cda088-b1be-4f90-b3e0-021da14c587b"
                        ],
                        "orchestrationIds": [
                            "bd6ac60e-f0ab-482b-b987-aa28790105cf"
                        ]
                    }
                },

Fees

How to Implement a Fund's Fee Structure

The issuer can specify the fee types and tiers to apply to a fund using a fee template.

A fee template defines tiers based on investment amount.

Fee templates also define the following flat fees:

  • Max Frontend

  • Backend

Performance fees, however, do not have tiers and are organized under common fees.

Example

The following table outlines the performance fees common for all investing orgs.

Description
Fee
Frequency

IP period

1%

Annually

Post IP period

0.5 basis points

Semi-Annually

The following JSON excerpt illustrates how this fee would be defined in the payload for creating and launching the fund.

         "commonFees": {
          "performanceFees": {
            "hurdleRate": 1,
            "highWatermark": {
              "enabled": true,
              "frequency": "Quarterly"
            },
            "grossOrNet": "Net",
            "fees": [
              {
                "description": "IP period",
                "value": 1,
                "unit": "percentage",
                "frequency": "Annually"
              },
              {
                "description": "Post-IP period",
                "value": 0.5,
                "unit": "basisPoints",
                "frequency": "Semi-Annually"
              }
            ]
          }
        }       

The following table outlines the tiered and flat fees that need to be defined for Issuance A.

Fee Type
Tier
Fee Info

Management

NA

IP: 2% Annually Post IP: 1.5% Annually

Investor Servicing

0-4999999.99

75 basis points (one-off)

5000000-9999999.99

50 basis points (one-off)

10000000+

25 basis points (one-off)

Other (Bank Fees)

0-4999.99

1% Annually

5000-999999.99

0.5% Annually

Other (Placement Fees)

250000-999999.99

Client Pays 1.25% (one-off) GP Pays 0.75% (one-off)

1000000+

Client Pays 0.25% (one-off) GP Pays 0.75% (one-off)

Max Frontend

(flat)

1%

Backend

(flat)

1%

The following JSON excerpt illustrates how these fees would be defined in the payload for creating and launching the fund.

        "feesTemplateData": {
          "data": {
            "name": "Fee Template 1",
            "maxFrontend": 1,
            "backend": 2,
             "managementFees": [
              {
                "feesInfo": [
                  {
                    "description": "IP: annually of capital commitments",
                    "value": 2,
                    "unit": "percentage",
                    "frequency": "Annually"
                  },
                  {
                    "description": "Post-IP: annually on invested capital",
                    "value": 1.5,
                    "unit": "percentage",
                    "frequency": "Annually"
                  }
                ]
              }
            ],
            "investorServicingFees": [
              {
                "maxAmount": 4999999.99,
                "feesInfo": [
                  {
                    "value": 75,
                    "unit": "basisPoints",
                    "frequency": "One-Off"
                  }
                ]
              },
              {
                "minAmount": 5000000,
                "maxAmount": 9999999.99,
                "feesInfo": [
                  {
                    "value": 50,
                    "unit": "basisPoints",
                    "frequency": "One-Off"
                  }
                ]
              },
              {
                "minAmount": 10000000,
                "feesInfo": [
                  {
                    "value": 25,
                    "unit": "basisPoints",
                    "frequency": "One-Off"
                  }
                ]
              }
            ],
            "otherFees": [
              {
                "groupName": "Bank fees",
                "groupDetails": [
                  {
                    "maxAmount": 4999.99,
                    "feesInfo": [
                      {
                        "description": "Bank fees - tier 1 - up to $4999.99",
                        "value": 1,
                        "unit": "percentage",
                        "frequency": "Annually"
                      }
                    ]
                  },
                  {
                    "minAmount": 5000,
                    "maxAmount": 999999.99,
                    "feesInfo": [
                      {
                        "description": "Bank fees - tier 2 - $5000 - $999999.99",
                        "value": 0.5,
                        "unit": "percentage",
                        "frequency": "Annually"
                      }
                    ]
                  }
                ]
              },
              {
                "groupName": "Placement Fees",
                "groupDetails": [
                  {
                    "minAmount": 250000,
                    "maxAmount": 999999.99,
                    "feesInfo": [
                      {
                        "description": "Client Pays",
                        "value": 1.25,
                        "unit": "percentage",
                        "frequency": "One-Off"
                      },
                      {
                        "description": "GP Pays",
                        "value": 0.75,
                        "unit": "percentage",
                        "frequency": "One-Off"
                      },
                      {
                        "description": "Total FA Comp",
                        "value": 2,
                        "unit": "percentage",
                        "frequency": "One-Off"
                      }
                    ]
                  },
                  {
                    "minAmount": 1000000,
                    "feesInfo": [
                      {
                        "description": "Client Pays",
                        "value": 0.25,
                        "unit": "percentage",
                        "frequency": "One-Off"
                      },
                      {
                        "description": "GP Pays",
                        "value": 0.75,
                        "unit": "percentage",
                        "frequency": "One-Off"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },

Expanded Data Model

Reject Digital Asset

put

This route is used to trigger the rejection of a digital asset on the blockchain for a particular security.

This means the issuer has not accepted the investment and the asset will be disposed.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["created","remediation_pending","remediated","modified"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "rejectSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
rejectReasonall ofOptional

This property contains the reason for the rejection.

Example: {"reason":[{"message":"reject reason","category":"EC006","documentWithIssues":[{"document":{"fileId":"FILE3JUS03I04"},"pages":[{"pageNumber":1,"description":"The first page has an invalid signature"}]}]}],"extraData":{"externalId":"123456789","some":"Custom Property"}}
Responses
200
Successfully triggered the process to reject the asset on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 - AS0032 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/reject HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 394

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "rejectReason": {
    "reason": [
      {
        "message": "reject reason",
        "category": "EC006",
        "documentWithIssues": [
          {
            "document": {
              "fileId": "FILE3JUS03I04"
            },
            "pages": [
              {
                "pageNumber": 1,
                "description": "The first page has an invalid signature"
              }
            ]
          }
        ]
      }
    ],
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Get Asset History

get

This route is used to retrieve the history data entries of assets given a set of filters such as blockchain details or asset identifiers.

The history entries will reflect the state of the assets on a particular block on the ledger.

This endpoint returns paginated data. Up to 500 can be extracted per call.

This endpoint can be called by applications with access to scope "readSubscription".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
assetEventFilterstringOptional

The comma delimited list of events to filter the asset history records. Up to 47 entries can be provided. Available values: Remediated, Modified, RemediationRequested, Confirmed, CommitmentAccepted, Rejected, Created, Disposed, Declined, Canceled, Issued, Settled, Refunded, OfflineAssetCreated, Recalled, RecallRejected, RecallAccepted, Wired, Busted, CapitalCallCured, CapitalCallFailed, CapitalCallSettled, CapitalCallOverSettled, CapitalCallPartialSettled, NewNAV, CanceledNAV, UpdatedNAV, TenderOfferOutputAssetCreated, TenderTradeProposed, TenderAllAssetParentLock, TenderCanceledDisposed, TenderCanceledIssued, TenderPriceApplied, TenderTradeSettled, TradeProposed, TradeMatched, TransferParentInTransfer, TransferCanceled, TransferCompleted, RemovedFromTransfer, LockedForRedemption, RedemptionCanceled, Redeemed, AssetManualUpdate, ModelAssetMoneyMarketAssetConfirmed, RebalanceRequestInitiated, RebalanceRequestSettled

Example: Created,Modified
assetIdsFilterstringOptional

The comma delimited list of asset ids to filter the asset records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetCorrelationIdsFilterstringOptional

The comma delimited list of asset correlation ids to filter the asset records. Up to 50 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
assetCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "assetCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Asset history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/asset/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "event": "Created",
    "update": {
      "assetId": "US9QIMAOAS1Q",
      "securityId": "USCCWSF01I00",
      "accountId": "US9QIMAOAS1Q",
      "acquiredDate": "2023-02-27T22:42:06.620Z",
      "acquiredPrice": 100,
      "issuedDate": "2023-02-27T22:42:06.620Z",
      "amount": 1000,
      "currentValue": 1200,
      "capitalCallDetails": {
        "calledAmount": 300000,
        "calledAmountOutsideCommitment": 5000,
        "distributedAmount": 10000,
        "enabled": true
      },
      "status": "issued",
      "shouldReinvest": false,
      "customCostBasis": false,
      "subDocSignDate": "2023-02-27T22:42:06.621Z",
      "extraData": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "fileIds": [
        "US9QIFILE1",
        "US9QIFILE2"
      ],
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      },
      "bookingModel": "fullyDisclosedFBO",
      "type": "standard"
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    },
    "extraData": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Get Security Details

get

This route is used to retrieve the details of securities given a set of search filters.

This endpoint is paginated, up to 10 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readIssuance".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

securityStatusFilterstringOptional

The comma delimited list of statuses to filter the security records. Up to 14 entries can be provided. Available values: deleted, preSync, active, closed, completed, bust_in_progress, busted, cancel_in_progress, canceled, refund_in_progress, retired, approved_revert_to_active, paused, archived

Example: active,closed
securityTypeFilterstringOptional

The comma delimited list of security types to filter the security records. Up to 7 entries can be provided. Available values: equity, lpUnits, llcUnits, spcUnits, convertible, lpInterest, llcUnitShares

Example: equity,llcUnitShares
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the security records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the security records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Issuance details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/securities HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "name": "Test U.S. Real Estate Fund II Access Fund, L.P.",
    "shortName": "Test Real Estate Fund II",
    "externalIdentifiers": {
      "isin": "US0004026250",
      "cusip": "056833100",
      "ticker": "NYSE"
    },
    "settings": {
      "bankAccount": {
        "bankABA": "979384247",
        "bankName": "Test Bank",
        "accountName": "Test U.S. Real Estate Fund II Access Fund, L.P.",
        "accountNumber": "457349587349587"
      }
    },
    "securityId": "USCCWSF01I01",
    "isMoneyMarket": true,
    "termSheetInfo": {
      "securityType": "lpUnits",
      "campaignType": "NonContingent",
      "allowBelowMinimum": true,
      "mannerOfSaleInfo": {
        "endDate": "2024-09-12T00:00:00.000Z",
        "maxAmount": 750000000,
        "minAmount": 0,
        "startDate": "2024-09-12T00:00:00.000Z"
      },
      "regulation": "RegS",
      "priceOptions": {
        "unitized": false,
        "unitPrice": 12,
        "minimumInvestment": 120,
        "allowsReinvestment": true,
        "type": "static",
        "currency": "USD",
        "totalSold": 0
      },
      "navOptions": {
        "navCurrency": "USD",
        "navFrequency": "Monthly"
      },
      "dividendOptions": {
        "dividendOption": "Mandatory Dividend",
        "dividendPercentage": 3,
        "dividendPaymentSchedule": "Annually",
        "dividendType": "cumulative"
      },
      "redemptionOptions": {
        "redemptionTenderOfferOptionEnabled": true,
        "redemptionPercentage": 2,
        "redemptionFrequency": "Monthly",
        "redemptionLockupPeriodMonth": 30,
        "redemptionNoticePeriod": 10
      },
      "shareClassInfo": [
        {
          "securityId": "USCCWSF01I01",
          "correlationData": [
            {
              "correlationId": "123245573717",
              "origin": "Identifies share class on backoffice",
              "organization": {
                "name": "Test Organization",
                "orgId": "TEST1234"
              },
              "extraData": {
                "some": "Custom Property"
              }
            }
          ]
        }
      ],
      "feesInfo": {
        "feesTemplateInfo": {
          "feesTemplateId": "FT123456",
          "name": "Charles Schwab Fees Template",
          "status": "created",
          "backendFee": 0,
          "managementFees": [
            {
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 2,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 1.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            }
          ],
          "investorServicingFees": [
            {
              "maxAmount": 9999.99,
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 3,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 2.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            },
            {
              "minAmount": 10000,
              "maxAmount": 49999.99,
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 2,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 1.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            }
          ],
          "otherFees": [
            {
              "groupName": "Global fees",
              "groupDetails": [
                {
                  "feesInfo": [
                    {
                      "description": "Some global fee",
                      "value": 75,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                }
              ]
            },
            {
              "groupName": "Bank fees",
              "groupDetails": [
                {
                  "maxAmount": 4999.99,
                  "feesInfo": [
                    {
                      "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                      "value": 50,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                },
                {
                  "minAmount": 5000,
                  "maxAmount": 999999.99,
                  "feesInfo": [
                    {
                      "description": "Bank fees - tier 2 - $10,000,000+",
                      "value": 25,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                }
              ]
            }
          ]
        },
        "commonFees": {
          "performanceFees": {
            "hurdleRate": 1,
            "highWatermark": {
              "enabled": true,
              "frequency": "Quarterly"
            },
            "grossOrNet": "Net",
            "fees": [
              {
                "description": "The performance fee details during the IP period",
                "value": 1,
                "unit": "percentage",
                "frequency": "Annually"
              },
              {
                "description": "Some other description about the fee structure in the Post-IP period",
                "value": 0.5,
                "unit": "basisPoints",
                "frequency": "Semi-Annually"
              }
            ]
          }
        }
      }
    },
    "campaignCompletedDate": "2024-09-12T00:00:00.000Z",
    "restricted": false,
    "exemption": "REIT",
    "parentSecurityId": "USCCWSF01I01",
    "exclusivityType": "private",
    "status": "active",
    "shareClassOptions": {
      "description": "This share class is offered to brokerage accounts",
      "accountEligibility": "Brokerage"
    },
    "accountId": "US9QIMAOAS1Q",
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "deploymentStatus": "success",
    "locked": false,
    "legalEntityInfo": {
      "legalEntityId": "US1G14EGN",
      "status": "preSync",
      "locked": false,
      "name": "Test Legal Entity",
      "type": "LP",
      "taxId": "987654321",
      "address": {
        "addressLineOne": "8 Greenway Plaza",
        "city": "New York",
        "state": "NY",
        "country": "US",
        "zipCode": "10165"
      },
      "isUsEntity": true,
      "contactInfo": [
        {
          "email": "[email protected]",
          "phoneNumber": "+1234950987"
        }
      ],
      "incorporationDate": "2024-09-12",
      "incorporationState": "DE",
      "incorporationCountry": "US",
      "fundInfo": {
        "name": "Test Fund",
        "description": "This data is for test purposes",
        "taxReporting": "K-1",
        "exemption": "3(C)(1)",
        "type": "Hedge Fund",
        "strategy": "Long/Short",
        "is1031Eligible": false
      }
    },
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies security on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ]
  }
]

Add Organization to Exclusivity Offering List

post

This route is used to add an organization to the exclusivity list. This will enable that organization to invest in this security.

This should only be triggered by the organization that owns the security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageExclusivityOptions".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
orgIdstring · max: 50Required

The id of the organization. Used to uniquely identify the organization on the ledger

Example: US9QIMA
isRepLetterProvidedbooleanOptional

Set this value to true if the issuer of the security has a rep letter from the distribution partner being assigned to the exclusivity list. It is an optional field with default value set to false

Default: falseExample: true
feesTemplateDataall ofOptional

The exclusive offering's fees template details. If not provided, then new empty fees template will be created.

Example: {"data":{"managementFees":[{"feesInfo":[{"description":"IP: annually of capital commitments | 6 years from the date of initial investment","value":2,"unit":"percentage","frequency":"Annually"},{"description":"Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options","value":1.5,"unit":"percentage","frequency":"Annually"}]}],"investorServicingFees":[{"maxAmount":9999.99,"feesInfo":[{"description":"IP: annually of capital commitments | 6 years from the date of initial investment","value":3,"unit":"percentage","frequency":"Annually"},{"description":"Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options","value":2.5,"unit":"percentage","frequency":"Annually"}]},{"minAmount":10000,"maxAmount":49999.99,"feesInfo":[{"description":"IP: annually of capital commitments | 6 years from the date of initial investment","value":2,"unit":"percentage","frequency":"Annually"},{"description":"Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options","value":1.5,"unit":"percentage","frequency":"Annually"}]}],"otherFees":[{"groupName":"Global fees","groupDetails":[{"feesInfo":[{"description":"Some global fee","value":75,"unit":"basisPoints","frequency":"One-Off"}]}]},{"groupName":"Bank fees","groupDetails":[{"maxAmount":4999.99,"feesInfo":[{"description":"Bank fees - tier 1 - $5,000,000 - $9,999,999","value":50,"unit":"basisPoints","frequency":"One-Off"}]},{"minAmount":5000,"maxAmount":999999.99,"feesInfo":[{"description":"Bank fees - tier 2 - $10,000,000+","value":25,"unit":"basisPoints","frequency":"One-Off"}]}]}]}}
Responses
201
Successfully triggered the process to add the new organization to the exclusive list of investing organizations. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0004 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0025 - OG0028 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0019 - IS0003 - IS0062 - IS0012 - EX0002 - EX0003 - EX0004 - EX0010 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/exclusivity/add HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 3763

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "orgId": "US9QIMA",
  "isRepLetterProvided": true,
  "feesTemplateData": {
    "data": {
      "managementFees": [
        {
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "investorServicingFees": [
        {
          "maxAmount": 9999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 3,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 2.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        },
        {
          "minAmount": 10000,
          "maxAmount": 49999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "otherFees": [
        {
          "groupName": "Global fees",
          "groupDetails": [
            {
              "feesInfo": [
                {
                  "description": "Some global fee",
                  "value": 75,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        },
        {
          "groupName": "Bank fees",
          "groupDetails": [
            {
              "maxAmount": 4999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                  "value": 50,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            },
            {
              "minAmount": 5000,
              "maxAmount": 999999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 2 - $10,000,000+",
                  "value": 25,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  "shareClassSecurityInfo": [
    {
      "shareClassId": "USS3JKS01I00",
      "feesTemplateData": {
        "data": {
          "maxFrontendFee": 1,
          "backendFee": 0,
          "managementFees": [
            {
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 2,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 1.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            }
          ],
          "investorServicingFees": [
            {
              "maxAmount": 9999.99,
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 3,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 2.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            },
            {
              "minAmount": 10000,
              "maxAmount": 49999.99,
              "feesInfo": [
                {
                  "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                  "value": 2,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                  "value": 1.5,
                  "unit": "percentage",
                  "frequency": "Annually"
                }
              ]
            }
          ],
          "otherFees": [
            {
              "groupName": "Global fees",
              "groupDetails": [
                {
                  "feesInfo": [
                    {
                      "description": "Some global fee",
                      "value": 75,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                }
              ]
            },
            {
              "groupName": "Bank fees",
              "groupDetails": [
                {
                  "maxAmount": 4999.99,
                  "feesInfo": [
                    {
                      "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                      "value": 50,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                },
                {
                  "minAmount": 5000,
                  "maxAmount": 999999.99,
                  "feesInfo": [
                    {
                      "description": "Bank fees - tier 2 - $10,000,000+",
                      "value": 25,
                      "unit": "basisPoints",
                      "frequency": "One-Off"
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get File Details

get

This route is used to retrieve the details of a file, given a set of search filters.

This endpoint is paginated, up to 25 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readSubscription".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
fileIdsFilterstringOptional

The comma delimited list of file ids to filter the file history records. Up to 25 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
fileCorrelationIdsFilterstringOptional

The comma delimited list of file correlation ids to filter the file history records. Up to 25 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
fileCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "fileCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

generateDownloadLinkbooleanOptional

True if a file download Link is meant to be generated. It is optional

Example: true
Responses
200
Successfully retrieved the file details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/file HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "fileId": "US9QIFILE1",
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies file on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ],
    "extension": "pdf",
    "name": "File name",
    "size": 3856,
    "status": "created",
    "type": "text",
    "typeLabel": "text",
    "infectedState": "clean",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "456789OIJHGFCVGHJKLKJHGF67JH",
    "link": "https://some-download-link.com",
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "associatedInvestorIds": [
      "INV1234"
    ]
  }
]

Assign Service Provider

post

This route is used to assign a service provider to an existing offering (e.g. assigning a fund admin).

This will allow the assigned organization to get basic information regarding the security.

This should only be triggered by the organization that owns the security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageServiceProviders".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
orgIdstringRequired

The id of the service provider organization. Used to uniquely identify the organization on the ledger

Example: US9QIMA
Responses
201
Successfully triggered the assignment. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - SP0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0004 - OG0005 - OG0028 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0062 - IS0012 - SP0003 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/service-providers/assign HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "orgId": "US9QIMA"
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Mark Assets batch as Settled

put

This route is used to trigger the process to mark a list of assets of a given security as settled.

This should be called by the issuer or assigned service provider (e.g. fund admin) to aknowledge the receipt of the funds covering the investments that have been wired.

This can be called for all security types except non-unitized security types with capital calls enabled.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the assets in the payload are in the following statuses: confirmed,settlement_confirmation_pending.

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "settleSubscription".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the asset ids in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
assetIdsstring[] · min: 1 · max: 500Required

The list of the unique identifiers of the digital assets to apply action to.

The entries on this list need to be consistent with the security id in the transaction data

Example: ["USS3JKS01I00","US9QIMAOAS1Q"]
issueDateone ofOptional

The date in which the assets are to be issued.

If not provided, then the assets that will be issued as a result of this action (e.g. money market funds, static price offerings etc...) will have the "issuedDate" set to the current timestamp of this action

Example: 2024-09-12T00:00:00.000Z
string · date-timeOptional

Date-time string

Example: 2024-09-12T00:00:00.000Z
or
string · dateOptional

Date string

Example: 1980-01-01
or
number · numberOptional

Epoch timestamp (milliseconds)

Example: 1185106460000
Responses
200
Successfully triggered the process to mark a list of assets as settled. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - AS0004 - AS0024 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/batch-mark-settled HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 191

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetIds": [
    "USS3JKS01I00",
    "US9QIMAOAS1Q"
  ],
  "issueDate": "2024-09-12T00:00:00.000Z"
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Add File Correlation ID

put

This route is used to add a correlation ID to an existing file. This correlation ID is an externally provided id that uniquely identifies the file within the organization making this call.

This correlation ID can't be in use by another file. This correlation ID can be broadcast to all the counterparties that have access to this file and that have a relationship with the organization making this call.

If the ID is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
fileIdstringRequired

The unique identifier of the file on the blockchain

Example: USS3JKS01I00
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
broadcastToCounterpartybooleanOptional

This property defines if correlation information will be sent to all counterparties.

Default: falseExample: true
originstringOptional

The organization origin system that created this entity correlation id

Example: Backoffice-system-123
transactionDataall ofRequired

This property contains the information regarding who is signing the transaction on the blockchain as well as how it will be signed

Example: {"signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully added (or, if the action is being broadcast, triggered the addition of) the correlation id to the file.
application/json
400
The following error codes can be returned: - GN0002 - FL0016 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - FL0007 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - FL0006 - FL0012 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/file/{fileId}/correlation-id/add HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 240

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "broadcastToCounterparty": true,
  "origin": "Backoffice-system-123",
  "transactionData": {
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Decline Digital Asset

put

This route is used to trigger the decline (cancel + dispose) of a digital asset on the blockchain for a particular security.

This should be called after the asset has already been accepted by the issuer but the payment was not received.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will be disposed.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["confirmed","settlement_confirmation_pending"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "disposeSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to decline the asset on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/decline HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Remove Issuance Close Correlation ID

put

This route is used to remove a correlation ID from an existing issuance close. This correlation ID is an externally provided id that uniquely identifies the issuance close within the organization making this call.

This correlation ID should be in use by the issuance close involved in this call.

This action can be broadcast to all the counterparties that have access to this issuance close.

If the action is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
closeIdstringRequired

The unique identifier of the issuance close on the ledger

Example: US9QIMAOAS1Q
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully removed (or, if the action is being broadcast, triggered the removal of) the correlation id from the issuance close.
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - IC0001 - IC0011 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0107 - IC0005 - IC0004 - IC0006 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/issuance-close/{closeId}/correlation-id/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 204

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Reject Recall Asset

put

This route is used to trigger the reject of the asset recall on the blockchain for a particular security.

Can be invoked by issuer or assigned service provider (e.g. fund admin) to reject the asset recall requested by investor.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will move back to the same status that it was prior to the "recall" action.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["recalled"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "cancelSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to reject the asset recall on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - IS0035 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/recall/reject HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Update Capital Event

put

This route is used to trigger the update of a capital event (capital call or distribution) on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This will trigger either 1 or 2 transactions depending on the input (if assetDetails property is passed then it will be 2 transactions)

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["draft","pending"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is being created

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
eventDataall ofRequired

This property contains the details of the capital event that is to be updated

Example: {"endDate":"2024-09-12T00:00:00.000Z","amountCalled":100000,"expenses":2000,"breakdown":[{"category":{"bookedCategoryId":"USS3JKS01I00","data":{"type":"investments","flowType":"againstCommitment","extraData":{"some":"Custom Data"}}},"amount":90000,"extraData":{"some":"Global data"}},{"category":{"data":{"type":"managementFeeInsideCommitment","flowType":"againstCommitment"}},"amount":10000},{"category":{"data":{"type":"managementFeeOutsideCommitment","flowType":"expenses","extraData":{"other":"Specific Data field"}}},"amount":2000},{"category":{"categoryId":"USS3JKS01I00"},"amount":4000}]}
Responses
200
Successfully triggered the update of the capital event The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 - CE0020 - CE0021 - CE0022 - CE0023 - CE0057 - CE0065 - CE0037 - CE0016 - CE0017 - CE0018 - CE0019 - CE0066 - CE0067 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - CE0014 - CE0015 - CE0039 - CE0005 - CE0035 - CE0057 - CE0065 - CE0058 - CE0059 - CE0063 - CE0060 - CE0064 - IS0015 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 717

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "eventData": {
    "endDate": "2024-09-12T00:00:00.000Z",
    "amountCalled": 100000,
    "expenses": 2000,
    "breakdown": [
      {
        "category": {
          "bookedCategoryId": "USS3JKS01I00",
          "data": {
            "type": "investments",
            "flowType": "againstCommitment",
            "extraData": {
              "some": "Custom Data"
            }
          }
        },
        "amount": 90000,
        "extraData": {
          "some": "Global data"
        }
      },
      {
        "category": {
          "data": {
            "type": "managementFeeInsideCommitment",
            "flowType": "againstCommitment"
          }
        },
        "amount": 10000
      },
      {
        "category": {
          "data": {
            "type": "managementFeeOutsideCommitment",
            "flowType": "expenses",
            "extraData": {
              "other": "Specific Data field"
            }
          }
        },
        "amount": 2000
      },
      {
        "category": {
          "categoryId": "USS3JKS01I00"
        },
        "amount": 4000
      }
    ]
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Reject Assignment to Offering

put

This route is used by a service provider (e.g. Fund Admin) to reject the assignment to an existing offering.

This can be invoked if the current organization has been assigned to a particular security.

It can also be invoked at any time after the "accept" endpoint has been called. In this case, this will prevent further actions from being executed on this security and this organization will no longer be entitled to receiving new transactions' data.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageServiceProviders".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the rejection
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0102 - IS0103 - SP0001 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/service-providers/reject HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Mark Assets batch as Accepted

put

This route is used to trigger the process to mark a list of assets of a given security as accepted.

This means the issuer has accepted the investments and the assets will move on to the next stage of the lifecycle.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the assets are in one of the following statuses: ["created","remediation_pending","remediated","modified"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "acceptSubscription".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the asset ids in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
assetIdsstring[] · min: 1 · max: 500Required

The list of the unique identifiers of the digital assets to apply action to.

The entries on this list need to be consistent with the security id in the transaction data

Example: ["USS3JKS01I00","US9QIMAOAS1Q"]
Responses
200
Successfully triggered the process to mark a list of assets as accepted. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - AS0004 - AS0024 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/batch-mark-accepted HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 152

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetIds": [
    "USS3JKS01I00",
    "US9QIMAOAS1Q"
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Settle Asset Capital Event

put

This route is used to trigger the settlement of the capital event (capital call or distribution) on a batch of assets on the blockchain for a particular security.

e.g., after the amount of the call has been received and the information that the investors have met their obligations needs to be reflected on the ledger.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["active"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is happening

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the settlement of the capital event on the assets The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0027 - CE0028 - CE0044 - CE0056 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/assets/settle HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 290

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetsData": [
    {
      "assetId": "US9QIMAOAS1Q",
      "settlementData": {
        "status": "settled",
        "amount": 1000,
        "date": "2024-09-12T00:00:00.000Z"
      },
      "extraData": {
        "whatever": "Extra Data that is needed"
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Security Correlation Ids History

get

This route is used to retrieve the history data entries of security correlation ids given a set of filters such as blockchain details.

The history entries will reflect the state of the security correlation ids on a particular block on the ledger.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
Responses
200
Successfully retrieved the Security Correlation Ids history entries
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/securities/correlation-id/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "correlationId": "123245573717",
      "entityType": "account",
      "entityId": "OG1234567890",
      "status": "broadcast",
      "origin": "Backoffice-system-123",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    }
  }
]

Get Security History Details

get

This route is used to retrieve the history data entries of securities given a set of filters such as blockchain details or security identifiers.

The history entries will reflect the state of the securities on a particular block on the ledger.

This endpoint returns paginated data. Up to 10 can be extracted per call.

This endpoint can be called by applications with access to scope "readIssuance".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the security history records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the security history records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Security history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/securities/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "event": "Created",
    "update": {
      "legalEntityInfo": {
        "legalEntityId": "US1G14EGN"
      },
      "securityId": "USCCWSF01I01",
      "termSheetInfo": {
        "securityType": "lpUnits",
        "campaignType": "NonContingent",
        "allowBelowMinimum": true,
        "mannerOfSaleInfo": {
          "endDate": "2024-09-12T00:00:00.000Z",
          "maxAmount": 750000000,
          "minAmount": 0,
          "startDate": "2024-09-12T00:00:00.000Z"
        },
        "regulation": "RegS",
        "priceOptions": {
          "unitized": false,
          "unitPrice": 12,
          "minimumInvestment": 120,
          "allowsReinvestment": true,
          "type": "static",
          "currency": "USD",
          "totalSold": 0
        },
        "navOptions": {
          "navCurrency": "USD",
          "navFrequency": "Monthly"
        },
        "dividendOptions": {
          "dividendOption": "Mandatory Dividend",
          "dividendPercentage": 3,
          "dividendPaymentSchedule": "Annually",
          "dividendType": "cumulative"
        },
        "redemptionOptions": {
          "redemptionTenderOfferOptionEnabled": true,
          "redemptionPercentage": 2,
          "redemptionFrequency": "Monthly",
          "redemptionLockupPeriodMonth": 30,
          "redemptionNoticePeriod": 10
        },
        "shareClassInfo": [
          {
            "securityId": "USCCWSF01I01",
            "correlationData": [
              {
                "correlationId": "123245573717",
                "origin": "Identifies share class on backoffice",
                "organization": {
                  "name": "Test Organization",
                  "orgId": "TEST1234"
                },
                "extraData": {
                  "some": "Custom Property"
                }
              }
            ]
          }
        ],
        "feesInfo": {
          "feesTemplateInfo": {
            "feesTemplateId": "FT123456",
            "name": "Charles Schwab Fees Template",
            "status": "created",
            "backendFee": 0,
            "managementFees": [
              {
                "feesInfo": [
                  {
                    "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                    "value": 2,
                    "unit": "percentage",
                    "frequency": "Annually"
                  },
                  {
                    "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                    "value": 1.5,
                    "unit": "percentage",
                    "frequency": "Annually"
                  }
                ]
              }
            ],
            "investorServicingFees": [
              {
                "maxAmount": 9999.99,
                "feesInfo": [
                  {
                    "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                    "value": 3,
                    "unit": "percentage",
                    "frequency": "Annually"
                  },
                  {
                    "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                    "value": 2.5,
                    "unit": "percentage",
                    "frequency": "Annually"
                  }
                ]
              },
              {
                "minAmount": 10000,
                "maxAmount": 49999.99,
                "feesInfo": [
                  {
                    "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
                    "value": 2,
                    "unit": "percentage",
                    "frequency": "Annually"
                  },
                  {
                    "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
                    "value": 1.5,
                    "unit": "percentage",
                    "frequency": "Annually"
                  }
                ]
              }
            ],
            "otherFees": [
              {
                "groupName": "Global fees",
                "groupDetails": [
                  {
                    "feesInfo": [
                      {
                        "description": "Some global fee",
                        "value": 75,
                        "unit": "basisPoints",
                        "frequency": "One-Off"
                      }
                    ]
                  }
                ]
              },
              {
                "groupName": "Bank fees",
                "groupDetails": [
                  {
                    "maxAmount": 4999.99,
                    "feesInfo": [
                      {
                        "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                        "value": 50,
                        "unit": "basisPoints",
                        "frequency": "One-Off"
                      }
                    ]
                  },
                  {
                    "minAmount": 5000,
                    "maxAmount": 999999.99,
                    "feesInfo": [
                      {
                        "description": "Bank fees - tier 2 - $10,000,000+",
                        "value": 25,
                        "unit": "basisPoints",
                        "frequency": "One-Off"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "commonFees": {
            "performanceFees": {
              "hurdleRate": 1,
              "highWatermark": {
                "enabled": true,
                "frequency": "Quarterly"
              },
              "grossOrNet": "Net",
              "fees": [
                {
                  "description": "The performance fee details during the IP period",
                  "value": 1,
                  "unit": "percentage",
                  "frequency": "Annually"
                },
                {
                  "description": "Some other description about the fee structure in the Post-IP period",
                  "value": 0.5,
                  "unit": "basisPoints",
                  "frequency": "Semi-Annually"
                }
              ]
            }
          }
        }
      },
      "campaignCompletedDate": "2024-09-12T00:00:00.000Z",
      "restricted": false,
      "parentSecurityId": "USCCWSF01I01",
      "exclusivityType": "private",
      "status": "active",
      "shareClassOptions": {
        "description": "This share class is offered to brokerage accounts",
        "accountEligibility": "Brokerage"
      },
      "accountId": "US9QIMAOAS1Q",
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      },
      "deploymentStatus": "success",
      "name": "Test Security",
      "shortName": "Test Sec",
      "externalIdentifiers": {
        "isin": "US1234567890",
        "cusip": "US1234567890",
        "ticker": "US1234567890"
      },
      "settings": {
        "bankAccount": {
          "bankABA": "979384247",
          "bankName": "Test Bank",
          "accountName": "Test U.S. Real Estate Fund II Access Fund, L.P.",
          "accountNumber": "457349587349587"
        }
      }
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    },
    "extraData": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Get Capital Event Correlation Ids History

get

This route is used to retrieve the history of a correlation IDs of a particular capital event, given a set of search filters.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
capitalEventCorrelationIdsFilterstringOptional

The comma delimited list of capital event correlation ids to filter the capital event records. Up to 100 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "capitalEventCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

capitalEventIdsFilterstringOptional

The comma delimited list of capital event ids to filter the capital event records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
Responses
200
Successfully retrieved the Capital Event Correlation data history
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/correlation-id/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "correlationId": "123245573717",
      "entityType": "account",
      "entityId": "OG1234567890",
      "status": "broadcast",
      "origin": "Backoffice-system-123",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    }
  }
]

Get Asset Details

get

This route is used to retrieve the details of assets, given a set of search filters.

This endpoint is paginated, up to 500 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readSubscription".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

assetStatusFilterstringOptional

The comma delimited list of statuses to filter the asset records. Up to 27 entries can be provided. Available values: deleted, preSynced, created, modified, confirmed, settlement_confirmation_pending, settled, issued, busted, canceled, disposed, recalled, remediated, remediation_pending, locked, trade_proposed, in_trade, in_trade_pending, in_transfer, in_transfer_pending, restricted, retired, refunded, in_tender, in_tender_pending, template, locked_for_redemption

Example: created,settled
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
assetIdsFilterstringOptional

The comma delimited list of asset ids to filter the asset records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetCorrelationIdsFilterstringOptional

The comma delimited list of asset correlation ids to filter the asset records. Up to 50 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
accountIdsFilterstringOptional

The comma delimited list of account ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
accountCorrelationIdsFilterstringOptional

The comma delimited list of account correlation ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

accountCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "accountCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

assetCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "assetCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

modelAssetIdsFilterstringOptional

The comma delimited list of model asset ids to filter the asset records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
investorIdsFilterstringOptional

The comma delimited list of investor ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
investorCorrelationIdsFilterstringOptional

The comma delimited list of investor correlation ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
investorCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "investorCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

closeIdsFilterstringOptional

The comma delimited list of close ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
closeCorrelationIdsFilterstringOptional

The comma delimited list of close correlation ids to filter the asset records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
closeCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "closeCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved asset details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/asset HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "assetId": "US9QIMAOAS1Q",
    "modelAssetId": "USS3JKS01I00",
    "securityId": "USCCWSF01I00",
    "closeId": "USCCWSF01I00",
    "accountId": "US9QIMAOAS1Q",
    "acquiredDate": "2024-09-12T00:00:00.000Z",
    "disposedDate": "2024-09-12T00:00:00.000Z",
    "acquiredPrice": 100,
    "disposedPrice": 200,
    "issuedDate": "2024-09-12T00:00:00.000Z",
    "amount": 1000,
    "sharesNumber": 1000,
    "commission": 1000,
    "currentValue": 1200,
    "redemptionAmount": 500,
    "remediationProposal": {
      "amount": 500
    },
    "tenderProposal": {
      "sharesNumberSubmitted": 500,
      "sharesNumberAccepted": 500,
      "tradeId": "TEST1234"
    },
    "capitalCallDetails": {
      "calledAmount": 300000,
      "calledAmountOutsideCommitment": 5000,
      "distributedAmount": 10000,
      "enabled": true
    },
    "status": "issued",
    "shouldReinvest": false,
    "customCostBasis": false,
    "customCostBasisValue": 100,
    "completedByAdvisorId": "text",
    "subDocSignDate": "2024-09-12T00:00:00.000Z",
    "originatingTradeId": 345023,
    "fileIds": [
      "US9QIFILE1",
      "US9QIFILE2"
    ],
    "rejectReason": {
      "reason": [
        {
          "message": "reject reason",
          "category": "EC006",
          "documentWithIssues": [
            {
              "document": {
                "fileId": "FILE3JUS03I04"
              },
              "pages": [
                {
                  "pageNumber": 1,
                  "description": "The first page has an invalid signature"
                }
              ]
            }
          ]
        }
      ],
      "extraData": {
        "externalId": "123456789",
        "some": "Custom Property"
      }
    },
    "bookingModel": "fullyDisclosedFBO",
    "underlyingInvestorAccountId": "US9QIMAOAC3F",
    "fees": {
      "frontendFee": 1,
      "backendFee": 0,
      "managementFees": [
        {
          "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
          "value": 2,
          "unit": "percentage",
          "frequency": "Annually"
        },
        {
          "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
          "value": 1.5,
          "unit": "percentage",
          "frequency": "Annually"
        }
      ],
      "investorServicingFees": [
        {
          "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
          "value": 3,
          "unit": "percentage",
          "frequency": "Annually"
        },
        {
          "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
          "value": 2.5,
          "unit": "percentage",
          "frequency": "Annually"
        }
      ],
      "otherFees": [
        {
          "groupName": "Global fees",
          "groupDetails": [
            {
              "description": "Some global fee",
              "value": 75,
              "unit": "basisPoints",
              "frequency": "One-Off"
            }
          ]
        },
        {
          "groupName": "Bank fees",
          "groupDetails": [
            {
              "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
              "value": 50,
              "unit": "basisPoints",
              "frequency": "One-Off"
            }
          ]
        }
      ]
    },
    "type": "standard",
    "inputIds": [
      "US9QIMAOAS1Q"
    ],
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies security on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ],
    "ownerName": "<WeInvest Inc.> fbo \"John Doe, Jane Doe\"",
    "locked": false,
    "latestUpdateTimestamp": "2024-09-12T00:00:00.000Z"
  }
]

Get Fees Template History

get

This route is used to retrieve the history data entries of fees templates given a set of filters such as blockchain details or fees template identifiers.

The history entries will reflect the state of the fees templates on a particular block on the ledger.

This endpoint returns paginated data. Up to 25 can be extracted per call.

This endpoint can be called by applications with access to scope "readFeesTemplate".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
feesTemplateIdsFilterstringOptional

The comma delimited list of fees template ids to filter the fees template records. Up to 25 ids can be provided. Each id should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
Responses
200
Successfully retrieved the Fees Template history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/fees-template/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "event": "Created",
    "update": {
      "feesTemplateId": "FT123456",
      "name": "Charles Schwab Fees Template",
      "status": "created",
      "backendFee": 0.75,
      "managementFees": [
        {
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "investorServicingFees": [
        {
          "maxAmount": 9999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 3,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 2.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        },
        {
          "minAmount": 10000,
          "maxAmount": 49999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "otherFees": [
        {
          "groupName": "Global fees",
          "groupDetails": [
            {
              "feesInfo": [
                {
                  "description": "Some global fee",
                  "value": 75,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        },
        {
          "groupName": "Bank fees",
          "groupDetails": [
            {
              "maxAmount": 4999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                  "value": 50,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            },
            {
              "minAmount": 5000,
              "maxAmount": 999999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 2 - $10,000,000+",
                  "value": 25,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        }
      ]
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    },
    "extraData": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Add Issuance Close Correlation ID

put

This route is used to add a correlation ID to an existing issuance close. This correlation ID is an externally provided id that uniquely identifies the issuance close within the organization making this call.

This correlation ID can't be in use by another issuance close. This correlation ID can be broadcast to all the counterparties that have access to this issuance close.

If the ID is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
closeIdstringRequired

The unique identifier of the issuance close on the ledger

Example: US9QIMAOAS1Q
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
broadcastToCounterpartybooleanOptional

This property defines if correlation information will be sent to all counterparties.

Default: falseExample: true
originstringOptional

The organization origin system that created this entity correlation id

Example: Backoffice-system-123
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully added (or, if the action is being broadcast, triggered the addition of) the correlation id to the security.
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - IC0001 - IC0011 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IC0007 - IC0004 - IS0107 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/issuance-close/{closeId}/correlation-id/add HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 268

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "broadcastToCounterparty": true,
  "origin": "Backoffice-system-123",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Get Issuance Close Correlation Ids History

get

This route is used to retrieve the history data entries of issuance close correlation ids given a set of filters such as blockchain details.

The history entries will reflect the state of the issuance close correlation ids on a particular block on the ledger.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
Responses
200
Successfully retrieved the Issuance Close Correlation Ids History entries
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/issuance-close/correlation-id/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "correlationId": "123245573717",
      "entityType": "account",
      "entityId": "OG1234567890",
      "status": "broadcast",
      "origin": "Backoffice-system-123",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    }
  }
]

Get File Correlation Ids History

get

This route is used to retrieve the history data entries of file correlation ids given a set of filters such as blockchain details or file identifiers.

The history entries will reflect the state of the file correlation ids on a particular block on the ledger.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
fileIdsFilterstringOptional

The comma delimited list of file ids to filter the file history records. Up to 25 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
fileCorrelationIdsFilterstringOptional

The comma delimited list of file correlation ids to filter the file history records. Up to 25 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
fileCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "fileCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the File Correlation Ids history entries
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/file/correlation-id/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "hash": "$argon2id$v=19$m=4096,t=3,p=1$8AVpNOnlBvN/reiv7Rdkpw$lzXOuG0H4SibMa0elrEZ5sq3YAvdu+Y5L+ta0oSSMTg",
    "update": [
      {
        "correlationId": "123245573717",
        "entityType": "investor",
        "entityId": "123245573717",
        "status": "broadcast",
        "origin": "Backoffice-system-123",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        }
      }
    ]
  }
]

Get Nav Time Series

get

This route is used to retrieve active nav(s) given a set of filters such as security identifiers or date range.

This endpoint returns paginated data. Up to 500 can be extracted per call.

This endpoint can be called by applications with access to scope "readNAV".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

fromDatestring · date-timeOptional

The start date from which the nav records are to be retrieved.

toDatestring · date-timeOptional

The end date until which the nav records are to be retrieved.

securityIdsFilterstringOptional

The comma delimited list of security ids to filter the nav records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the nav records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the NAV details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/nav-reporting HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "price": 100,
    "timestamp": "2024-09-12",
    "status": "published",
    "securityId": "USS3JKS01I00"
  }
]

Get Asset Correlation Ids History

get

This route is used to retrieve the history data entries of asset correlation ids given a set of filters such as blockchain details.

The history entries will reflect the state of the asset correlation ids on a particular block on the ledger.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
Responses
200
Successfully retrieved the Asset Correlation Ids History entries
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/asset/correlation-id/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "correlationId": "123245573717",
      "entityType": "account",
      "entityId": "OG1234567890",
      "status": "broadcast",
      "origin": "Backoffice-system-123",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    }
  }
]

Delete NAV Unitized

put

This route is used to trigger delete a list of NAV records for unitized instruments on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This can be called either by the issuer organization that owns the security or by an assigned fund administrator to update the new price per share.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageNAV".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the NAVs in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to update a list of NAV records. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0003 - NV0014 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - NV0004 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - NV0006 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/nav-reporting/batch-delete HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 192

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "navData": [
    {
      "securityId": "USS3JKS01I00",
      "timestamps": [
        "2024-09-13",
        "2024-09-15"
      ]
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Create Digital Asset

post

This route is used to trigger the recording of a digital asset on the blockchain for a particular security. It is the first action that should be triggered to start the subscription flow.

This triggers an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This asynchronous process will either be composed of 2 transactions - if the intention is bringing a new investor/account to the ledger, or updating an existing one - or just 1 transaction if this is a subsequent investment done from an existing investor/account without any change.

This endpoint can be invoked if the security is in one of the following statuses: ["active"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["investor"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "createSubscription".

Authorizations
Body
accountall ofRequired

This property contains the reference data of the account that holds the digital security.

Example: {"correlationData":[{"correlationId":"INV001"}],"data":{"name":"Individual Account","type":"Individual","relationshipType":"Brokerage","bankAccount":{"accountNumber":"111111111","accountName":"savings account","bankABA":"555555555","bankName":"Test Bank","bankSwift":"AAAA-BB-CC-123","extraData":{"settlementInstructions":"Please wire the amount within 72 hours","some":"Other Property"}},"contactInfo":[{"email":"[email protected]","phoneNumber":"832-426-4242","type":"primary"},{"email":"[email protected]","phoneNumber":"987-564-1234","type":"tax","name":"John Doe","description":"Use this contact for Tax Related Information (K-1, 1099 or other tax related information)"}],"custodian":{"data":{"name":"Charles Schwab"}},"advisors":[{"data":{"type":"FA","name":"Chris Smith","crdCode":"546321","repCode":"AB98765"}}],"authorizedSigners":[{"name":"Jane Doe","primary":true,"extraData":{"externalId":"123456","some":"Other Property"}}],"beneficiaries":[{"name":"John Doe","beneficialOwnership":40,"individualInfo":{"name":"John Doe","taxId":"123456789"}},{"name":"Jane Doe LLC","beneficialOwnership":60,"legalEntityInfo":{"name":"Jane Doe Private Investments and Capital Management, LLC","type":"LLC","taxId":"987654321"}}],"secureExtraData":{"sensitive":"Data to be protected by application encryption"}}}
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","amount":50000,"signer":{"email":"[email protected]","name":"John Doe"}}
bypassFileDataValidationbooleanOptional

Set this to true if you want to bypass file data consistency (e.g. W9 data matching the investor/account information being provided)

Example: true
dryRunbooleanOptional

Set this to true if you want the request to go through the typical request validation stages up until persisting objects to database. If this is set to true then no data will actually be persisted neither on the database nor the blockchain, and no data will be sent out to the issuer, but all the request validations will be executed.

A typical use case for this would be for an advisor to check that a subscription being created for a particular client is valid prior to actually sending it out.

Default: falseExample: true
Responses
201
Successfully triggered the process to record the digital asset on the ledger (and publish a new or an updated investor/account to the ledger depending on the input payload) The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - IS0001 - AS0009 - IV0006 - IV0007 - IV0009 - IV0008 - IV0020 - IV0021 - IV0022 - IV0017 - IV0016 - IV0023 - IV0035 - IV0032 - IV0036 - IV0037 - IV0017 - AC0006 - AC0007 - AC0013 - AC0014 - AC0016 - AC0017 - AC0049 - AC0044 - AC0050 - AD0017 - AD0016 - AD0018 - AD0022 - AD0023 - CT0015 - CT0017 - CT0019 - CT0020 - AS0016 - AS0029 - FL0002 - FL0003 - FL0019 - FL0004 - FL0005 - FL0017 - FL0020 - QU0001 - QU0002 - QU0003 - QU0004 - QU0005 - QU0006 - QU0007 - QU0008 - QU0009 - QU0010 - CI0001 - CI0002 - CI0003 - CI0004 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - EX0006 - AC0020 - IV0013 - AD0012 - CT0011 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - GN0008 - IV0002 - AC0002 - FL0008 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0012 - IS0013 - IS0026 - IS0027 - IS0028 - IS0029 - IS0030 - IS0034 - AS0017 - IV0003 - IV0004 - IV0005 - IV0010 - AC0009 - AC0010 - AC0028 - AC0029 - FL0001 - FL0006 - FL0010 - FL0011 - FL0028 - AS0015 - AS0026 - AD0015 Please refer to the error code dictionary for the details of each error code.
application/json
425
The following error codes can be returned: - GN0003 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/primary/asset HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2904

{
  "investors": [
    {
      "data": {
        "type": "individual",
        "accreditationLevel": "qualifiedClient",
        "isInstitutional": false,
        "hasKYCPassed": false,
        "isComplianceApproved": false,
        "is5131RestrictedPerson": false,
        "name": "John Doe",
        "individualInfo": {
          "name": "John Doe",
          "dateOfBirth": "2024-09-12",
          "taxId": "123456789",
          "occupation": {
            "role": "Software Engineer",
            "companyName": "Sample Company"
          },
          "residentialAddress": {
            "addressLineOne": "8 Greenway Plaza",
            "addressLineTwo": "Suite 1515",
            "country": "US",
            "state": "Texas",
            "city": "Houston",
            "zipCode": "77046 USA"
          },
          "mailingAddress": {
            "addressLineOne": "8 Greenway Plaza",
            "addressLineTwo": "Suite 1515",
            "country": "US",
            "state": "Texas",
            "city": "Houston",
            "zipCode": "77046 USA"
          },
          "isUsPerson": true,
          "contactInfo": [
            {
              "email": "[email protected]",
              "phoneNumber": "832-426-4242"
            }
          ],
          "extraData": {
            "externalInvestorId": "123456",
            "some": "other property"
          }
        }
      },
      "documents": [
        {
          "uploadData": {
            "type": "IdentityVerification",
            "extension": "pdf",
            "name": "John Doe ID",
            "link": "https://test-storage.s3.amazonaws.com/some-id.pdf"
          },
          "extraData": {
            "someCustom": "property to be shared"
          }
        },
        {
          "fileId": "FILE3JUS03I04"
        }
      ],
      "correlationData": [
        {
          "correlationId": "INV001"
        }
      ],
      "accountAssociationData": {
        "isPrimary": true
      }
    }
  ],
  "account": {
    "correlationData": [
      {
        "correlationId": "INV001"
      }
    ],
    "data": {
      "name": "Individual Account",
      "type": "Individual",
      "relationshipType": "Brokerage",
      "bankAccount": {
        "accountNumber": "111111111",
        "accountName": "savings account",
        "bankABA": "555555555",
        "bankName": "Test Bank",
        "bankSwift": "AAAA-BB-CC-123",
        "extraData": {
          "settlementInstructions": "Please wire the amount within 72 hours",
          "some": "Other Property"
        }
      },
      "contactInfo": [
        {
          "email": "[email protected]",
          "phoneNumber": "832-426-4242",
          "type": "primary"
        },
        {
          "email": "[email protected]",
          "phoneNumber": "987-564-1234",
          "type": "tax",
          "name": "John Doe",
          "description": "Use this contact for Tax Related Information (K-1, 1099 or other tax related information)"
        }
      ],
      "custodian": {
        "data": {
          "name": "Charles Schwab"
        }
      },
      "advisors": [
        {
          "data": {
            "type": "FA",
            "name": "Chris Smith",
            "crdCode": "546321",
            "repCode": "AB98765"
          }
        }
      ],
      "authorizedSigners": [
        {
          "name": "Jane Doe",
          "primary": true,
          "extraData": {
            "externalId": "123456",
            "some": "Other Property"
          }
        }
      ],
      "beneficiaries": [
        {
          "name": "John Doe",
          "beneficialOwnership": 40,
          "individualInfo": {
            "name": "John Doe",
            "taxId": "123456789"
          }
        },
        {
          "name": "Jane Doe LLC",
          "beneficialOwnership": 60,
          "legalEntityInfo": {
            "name": "Jane Doe Private Investments and Capital Management, LLC",
            "type": "LLC",
            "taxId": "987654321"
          }
        }
      ],
      "secureExtraData": {
        "sensitive": "Data to be protected by application encryption"
      }
    }
  },
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "amount": 50000,
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "documents": [
    {
      "uploadData": {
        "type": "AdditionalSubscriptionTerms",
        "extension": "pdf",
        "name": "Subscription Terms",
        "link": "https://test-storage.s3.amazonaws.com/sub-terms.pdf"
      },
      "extraData": {
        "someCustom": "property to be shared"
      }
    },
    {
      "fileId": "FILE3JUS03I04"
    }
  ],
  "bypassFileDataValidation": true,
  "dryRun": true
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q",
  "fileIds": [
    "US9QIFILE1",
    "US9QIFILE2"
  ],
  "referenceData": {
    "account": {
      "accountId": "US9QIMAOAS1Q",
      "custodian": {
        "custodianId": "US9ZIMAOAS1Q"
      }
    },
    "investors": [
      {
        "investorId": "US9QIM123S1Q"
      }
    ]
  },
  "completedByAdvisor": {
    "advisorId": "OG12JUS03I04"
  },
  "dryRun": true
}

Request Changes for Capital Event

put

This route is used to trigger process to request changes of the capital event (capital call or distribution).

This is to be used when an asset manager that owns this security has a fund admin assigned to this security and one of them has already approved the capital event on the ledger.

This will move the capital event back to draft and its details can be updated.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["pending"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
signerall ofRequired

This property contains basic information regarding the person that is executing this action. It is used for audit trail of who made which request.

This information will be hashed on the block and will not be shared with other organizations that are part of the blockchain network, unless with the the ones that are concerned with this transaction.

Example: {"email":"[email protected]","name":"John Doe"}
processIdstringOptional

This is an externally provided id that can be used to identify the asynchronous process that will be triggered by this action. It is optional. If not provided the system will generate a unique id for this.

If provided, it must have a v4 UUID format.

Example: 2159457f-0167-4e93-a969-9cf0db05e0bf
securityIdstringOptional

This is the security unique identifier on the ledger. It uniquely identifies a particular security on the blockchain. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both.

Example: USS3JKS01I00
securityCorrelationDataall ofOptional

This property contains the correlation data that is used to identify a particular security within an organization. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both. Security Correlation IDs can be managed using the "Security Admin API".

Responses
200
Successfully triggered the rejection of the capital event. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0035 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/reject HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "signer": {
    "email": "[email protected]",
    "name": "John Doe"
  },
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "securityId": "USS3JKS01I00",
  "securityCorrelationData": {
    "correlationId": "USS3JKS01I00",
    "orgId": "US9QIMA"
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Capital Event History by Id

get

This route is used to get the history of a capital event (Capital Call / Distribution), given a set of search filters.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
capitalEventCorrelationIdsFilterstringOptional

The comma delimited list of capital event correlation ids to filter the capital event history records. Up to 100 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "capitalEventCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

capitalEventIdsFilterstringOptional

The comma delimited list of capital event ids to filter the capital event history records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
Responses
200
Successfully extracted the capital event history
application/json
400
The following error codes can be returned: - CE0003 - GN0002 - TX0006 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "type": "capitalCall",
      "endDate": "2024-09-12T00:00:00.000Z",
      "amountCalled": 100000,
      "expenses": 2000,
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      },
      "breakdown": [
        {
          "categoryId": "USS3JKS01I00",
          "amount": 9000
        },
        {
          "categoryId": "USS3JKS01I01",
          "amount": 10000
        },
        {
          "categoryId": "USS3JKS01I02",
          "amount": 2000,
          "extraData": {
            "other": "Fund Level Information"
          }
        }
      ],
      "status": "draft",
      "capitalEventId": "US9QIMAOAS1Q",
      "securityId": "USS3JKS01I00"
    }
  }
]

Request Digital Asset Remediation

put

This route is used to trigger the request of a digital asset remediation on the blockchain for a particular security.

This means the issuer has not accepted the investment yet, so they are requesting the investment remediation.

This is typically called when the subscription is not in good order (NIGO) and this action triggers the asset to go back to the investor organization to be updated using the remediate endpoint.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["created","remediation_pending","remediated","modified"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "requestSubscriptionRemediation".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
rejectReasonall ofOptional

This property contains the reason for the rejection.

Example: {"reason":[{"message":"reject reason","category":"EC006","documentWithIssues":[{"document":{"fileId":"FILE3JUS03I04"},"pages":[{"pageNumber":1,"description":"The first page has an invalid signature"}]}]}],"extraData":{"externalId":"123456789","some":"Custom Property"}}
Responses
200
Successfully triggered the process to request the asset remediation on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 - AS0032 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/request-remediation HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 394

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "rejectReason": {
    "reason": [
      {
        "message": "reject reason",
        "category": "EC006",
        "documentWithIssues": [
          {
            "document": {
              "fileId": "FILE3JUS03I04"
            },
            "pages": [
              {
                "pageNumber": 1,
                "description": "The first page has an invalid signature"
              }
            ]
          }
        ]
      }
    ],
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Dispose Digital Asset

put

This method is used to refund an asset and consequently mark it as disposed. It should only be executed after the asset has been canceled or the issuance has been busted.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will be disposed.

This endpoint can be invoked if the asset is in one of the following statuses: ["canceled","busted"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "disposeSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to dispose the asset on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 - IV0016 - IV0018 - AC0024 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IV0013 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 - IV0001 - AC0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 - RD0001 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/dispose HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Request Digital Asset Remediation

put

This route is used to trigger the request of a digital asset remediation on the blockchain for a particular security.

This means the issuer has not accepted the investment yet, so they are requesting the investment remediation.

This is typically called when the subscription is not in good order (NIGO) and this action triggers the asset to go back to the investor organization to be updated using the remediate endpoint.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["created","remediation_pending","remediated","modified"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "requestSubscriptionRemediation".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
rejectReasonall ofOptional

This property contains the reason for the rejection.

Example: {"reason":[{"message":"reject reason","category":"EC006","documentWithIssues":[{"document":{"fileId":"FILE3JUS03I04"},"pages":[{"pageNumber":1,"description":"The first page has an invalid signature"}]}]}],"extraData":{"externalId":"123456789","some":"Custom Property"}}
Responses
200
Successfully triggered the process to request the asset remediation on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 - AS0032 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/request-remediation HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 394

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "rejectReason": {
    "reason": [
      {
        "message": "reject reason",
        "category": "EC006",
        "documentWithIssues": [
          {
            "document": {
              "fileId": "FILE3JUS03I04"
            },
            "pages": [
              {
                "pageNumber": 1,
                "description": "The first page has an invalid signature"
              }
            ]
          }
        ]
      }
    ],
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Add Capital Event Correlation ID

put

This route is used to add a correlation ID to an existing capital event. This correlation ID is an externally provided id that uniquely identifies the capital event within the organization making this call.

This correlation ID can't be in use by another capital event. This correlation ID can be broadcast to all the counterparties that have access to this capital event.

If the ID is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
capitalEventIdanyRequired

The unique identifier of the capital event on the blockchain

Example: US9QIMAOAS1Q
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
broadcastToCounterpartybooleanOptional

This property defines if correlation information will be sent to all counterparties.

Default: falseExample: true
originstringOptional

The organization origin system that created this entity correlation id

Example: Backoffice-system-123
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully added (or, if the action is being broadcast, triggered the addition of) the correlation id to the capital event.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - CE0032 - CE0040 - IS0015 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/correlation-id/add HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 268

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "broadcastToCounterparty": true,
  "origin": "Backoffice-system-123",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Remove File Correlation ID

put

This route is used to remove a correlation ID from an existing file. This correlation ID is an externally provided id that uniquely identifies the file within the organization making this call.

This correlation ID should be in use by the file involved in this call.

This action can be broadcast to all the counterparties that have access to this file and that have a relationship with the organization making this call.

If the action is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
fileIdstringRequired

The unique identifier of the file on the blockchain

Example: USS3JKS01I00
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
transactionDataall ofRequired

This property contains the information regarding who is signing the transaction on the blockchain as well as how it will be signed

Example: {"signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully removed (or, if the action is being broadcast, triggered the removal of) the correlation id from the file.
application/json
400
The following error codes can be returned: - GN0002 - FL0016 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - false - false Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - FL0012 - FL0013 - FL0014 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/file/{fileId}/correlation-id/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 176

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "transactionData": {
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Get Service Provider Assignment History

get

This route is used to retrieve the history of a service provider assignments, given a set of filters such as blockchain details or organization or security identifiers.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readServiceProviders".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
orgIdsFilterstringOptional

The comma delimited list of organization ids to filter the assignment history records. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the assignment history records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the assignment history records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the service provider assignment history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/service-providers/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "securityId": "USCCWSF01I00",
    "event": "Added",
    "update": {
      "status": "assigned",
      "orgId": "TEST1234",
      "name": "Test Organization"
    }
  }
]

Get Issuance Close Details

get

This route is used to retrieve the details of issuance closes given a set of search filters.

This endpoint is paginated, up to 500 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readIssuanceClose".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

closeStatusFilterstringOptional

The comma delimited list of statuses to filter the close records. Up to 3 entries can be provided. Available values: preSync, deleted, created

Example: created,deleted
fromDatestring · date-timeOptional

The start date from which the closes are to be retrieved.

toDatestring · date-timeOptional

The end date until which the closes are to be retrieved.

securityIdsFilterstringOptional

The comma delimited list of security ids to filter the close records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the close records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
closeIdsFilterstringOptional

The comma delimited list of security ids to filter the close records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
closeCorrelationIdsFilterstringOptional

The comma delimited list of close correlation ids to filter the close records. Up to 50 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

closeCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "closeCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Issuance Close details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/issuance-close HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "closeId": "US9QIMAOAS1Q",
  "correlationData": [
    {
      "correlationId": "123245573717",
      "origin": "Identifies a \"close\" on backoffice",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      },
      "extraData": {
        "some": "Custom Property"
      }
    }
  ],
  "securityId": "US9QIMAOAS1Q",
  "status": "created",
  "issueDate": "2024-09-12T00:00:00.000Z",
  "priceData": [
    {
      "price": 10.23,
      "asOfDate": "2024-09-12T00:00:00.000Z",
      "bypassNAVCheck": true
    }
  ],
  "organization": {
    "orgId": "TEST1234",
    "name": "Test Organization"
  }
}

Add Asset Correlation ID

put

This route is used to add a correlation ID to an existing asset. This correlation ID is an externally provided id that uniquely identifies the asset within the organization making this call.

This correlation ID can't be in use by another asset. This correlation ID can be broadcast to all the counterparties that have access to this asset.

If the ID is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
broadcastToCounterpartybooleanOptional

This property defines if correlation information will be sent to all counterparties.

Default: falseExample: true
originstringOptional

The organization origin system that created this entity correlation id

Example: Backoffice-system-123
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully added (or, if the action is being broadcast, triggered the addition of) the correlation id to the asset.
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - AS0025 - AS0026 - IS0016 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/asset/{assetId}/correlation-id/add HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 268

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "broadcastToCounterparty": true,
  "origin": "Backoffice-system-123",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Get Issuance Close History

get

This route is used to retrieve the history data entries of issuance close(s) given a set of filters such as blockchain details or close identifiers.

The history entries will reflect the state of the issuance close(s) on a particular block on the ledger.

This endpoint returns paginated data. Up to 500 can be extracted per call.

This endpoint can be called by applications with access to scope "readIssuanceClose".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
closeIdsFilterstringOptional

The comma delimited list of security ids to filter the close records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
closeCorrelationIdsFilterstringOptional

The comma delimited list of close correlation ids to filter the close records. Each record should not exceed 100 characters.

Example: 1234,5678,7890
closeCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "closeCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the issuance close(s) history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/issuance-close/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Created",
    "update": {
      "securityId": "US9QIMAOAS1Q",
      "closeId": "US9QIMAOAS1Q",
      "status": "created",
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      }
    }
  }
]

Remove Capital Event Correlation ID

put

This route is used to remove a correlation ID from an existing capital event. This correlation ID is an externally provided id that uniquely identifies the capital event within the organization making this call.

This correlation ID should be in use by the capital event involved in this call.

This action can be broadcast to all the counterparties that have access to this capital event.

If the action is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
capitalEventIdanyRequired

The unique identifier of the capital event on the blockchain

Example: US9QIMAOAS1Q
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully removed (or, if the action is being broadcast, triggered the removal of) the correlation id from the capital event.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0098 - IS0015 - CE0041 - CE0040 - CE0042 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/correlation-id/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 204

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Get Nav Time Series History

get

This route is used to retrieve the history data entries of nav(s) given a set of filters such as blockchain details or security identifiers.

The history entries will reflect the state of the nav(s) on a particular block on the ledger.

This endpoint returns paginated data. Up to 500 can be extracted per call.

This endpoint can be called by applications with access to scope "readNAV".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the nav records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the nav records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the NAV history details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/nav-reporting/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "securityId": "USS3JKS01I00",
    "timestamp": "2024-09-12",
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "update": {
      "status": "published",
      "price": 100,
      "timestamp": "2023-02-27"
    },
    "event": "Created",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe",
      "id": "[email protected]_TEST1234"
    }
  }
]

Get Breakdown categories History

get

This route is used to retrieve the history data entries of breakdown categories given a set of filters such as blockchain details or categories identifiers.

The history entries will reflect the state of the breakdown categories on a particular block on the ledger.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
breakdownCategoryIdsFilterstringOptional

The comma delimited list of breakdown category ids to filter the category records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
Responses
200
Successfully retrieved the breakdown categories history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/categories/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "Published",
    "update": {
      "securityId": "USS3AAS34CKH",
      "categoryId": "USS3JKS01I00",
      "status": "published",
      "type": "investments",
      "flowType": "againstCommitment",
      "description": "Call from LPs, on behalf of GP share of a capital call",
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      }
    }
  }
]

Get Asset Capital Event History

get

This route is used to retrieve the history data entries of all assets capital events on the ledger, given a set of search filters.

The history entries will reflect the state of the assets capital events on that particular block.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
capitalEventCorrelationIdsFilterstringOptional

The comma delimited list of capital event correlation ids to filter the asset capital event history records. Up to 100 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "capitalEventCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

capitalEventIdsFilterstringOptional

The comma delimited list of capital event ids to filter the asset capital event history records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetIdsFilterstringOptional

The comma delimited list of asset ids to filter the asset capital event history records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetCorrelationIdsFilterstringOptional

The comma delimited list of asset correlation ids to filter the asset capital event history records. Up to 50 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
assetCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "assetCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Asset Capital Event history
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/assets/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "event": "CapitalCallApplied",
    "update": {
      "assetId": "USS3JKS01",
      "capitalEventId": "US9QIMAOAS1Q",
      "amountCalled": 100000,
      "expenses": 2000,
      "breakdown": [
        {
          "categoryId": "USS3JKS01I00",
          "amount": 90000,
          "extraData": {
            "some": "Custom Data"
          }
        },
        {
          "categoryId": "USS3JKS01I01",
          "amount": 10000
        }
      ],
      "status": "draft",
      "extraData": {
        "some": "Extra Data"
      }
    }
  }
]

Recover Asset Capital Event

put

This route is used to trigger the recovery of the capital event (specific to capital calls) on a batch of assets that had previously been marked as failed on the blockchain for a particular security.

This can be used by either the asset manager that owns the security or by a fund admin that is assigned to the security, e.g. if the amount of the call has been received after the investors have failed their obligations and that information needs to be reflected.

If this is triggered then the asset will exit 'default' state and can be used on further actions.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["active","closed"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is happening

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the recover of the capital event on the assets. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0006 - CE0003 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0027 - CE0028 - CE0044 - CE0056 - AS0030 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/assets/recover HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 290

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetsData": [
    {
      "assetId": "US9QIMAOAS1Q",
      "settlementData": {
        "status": "settled",
        "amount": 1000,
        "date": "2024-09-12T00:00:00.000Z"
      },
      "extraData": {
        "whatever": "Extra Data that is needed"
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Apply Asset Capital Event

put

This route is used to apply the capital event (capital call or distribution) on a batch of assets on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["draft"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is being applied to assets

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the application of the capital event on the assets The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 - CE0057 - CE0065 - CE0037 - CE0016 - CE0017 - CE0018 - CE0019 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0026 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/assets/apply HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 321

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetDetails": [
    {
      "assetId": "USS3JKS01I00",
      "amountCalled": 1000,
      "expenses": 9000,
      "breakdown": [
        {
          "categoryId": "USS3JKS01I00",
          "amount": 9000,
          "extraData": {
            "some": "Global data"
          }
        }
      ],
      "extraData": {
        "some": "Custom Property"
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Service Providers

get

This route is used to extract all the service providers that have been assigned to an offering specified by a set of search filters.

This endpoint is paginated, up to 50 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readServiceProviders".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

orgIdsFilterstringOptional

The comma delimited list of organization ids to filter the assignment records. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the assignment records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the assignment records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

assignmentStatusFilterstringOptional

The comma delimited list of statuses to filter the assignment records. Up to 4 entries can be provided.

Available values: assigned, accepted, rejected, inactive

Example: assigned,accepted
Responses
200
Successfully extracted data
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/service-providers HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "orgId": "US9QIMA",
    "name": "State Street",
    "status": "assigned",
    "role": "service_provider",
    "securityId": "USCCWSF01I01"
  }
]

Upload Document

post

This route is used to upload a document.

The maximum file size is 100 Megabytes.

The minimum file size is 100 bytes.

The following file extensions are supported: doc,docx,odt,rtf,txt,pdf,xps,html,epub,djvu,xlsx,xlxm,xls,xml,csv,pptx,pptm,ppt,png,jpeg,jpg bytes.

A file can be uploaded via multipart/form-data with the file key "file".

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Query parameters
fileTypestring · enumRequired

The type of file

Example: TaxPossible values:
Body
filestring · binaryOptional

Represents the uploaded file via multipart/form-data. This endpoint supports chunked transfer encoding.

Responses
201
Successfully uploaded file
application/json
400
The following error codes can be returned: - GN0002 - FL0021 - FL0022 - FL0023 - FL0024 - FL0016 Please refer to the error code dictionary for the details of each error code.
application/json
401
Invalid session or expired
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/file/upload?fileType=PrivatePersonID HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17

{
  "file": "binary"
}
{
  "fileId": "US9QIFILE1"
}

Get Security Totals History

get

This route is used to retrieve the history of security totals given a set of filters such as blockchain details or security identifiers.

The history entries will reflect the state of the totals on a particular block on the ledger.

This endpoint returns paginated data. Up to 10 can be extracted per call.

This endpoint can be called by applications with access to scope "readIssuance".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
securityIdsFilterstringOptional

The comma delimited list of security ids to filter the security history records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the security history records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully retrieved the Security Totals history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/securities/totals/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "event": "Created",
    "update": {
      "securityId": "USCCWSF01I01",
      "totalAmount": 1000000,
      "totalCalledAmount": 50000,
      "totalCalledAmountOutsideCommitment": 20000,
      "totalDistributedAmount": 750000,
      "totalSharesAmount": 0,
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    },
    "extraData": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Reject Assignment to Exclusive Offering

put

This route is used for an investing organization to reject the assignment to an exclusive offering (i.e. when the exclusivity type of the offering is set to "private").

This can be invoked if the current organization has been assigned as an investing org to this particular security.

Use this endpoint to express that you will not be performing investments in this security. This can be reverted by using the "accept" endpoint.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageExclusivityOptions".

Authorizations
Body
shareClassSecurityIdsstring[]Optional

For registered products with multiple share classes, use this as a filter to specify to which share classes the action applies to.

If not provided, then all will be affected the same way.

This should only be provided if the security has multiple share classes (e.g. security with multiple share classes and accepting/rejecting the assignment to just a subset of them).

Example: ["USS3JKS01I00"]
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to reject the assignment to the exclusive list of this security. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0004 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0019 - IS0003 - IS0102 - IS0103 - EX0001 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/exclusivity/reject HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 150

{
  "shareClassSecurityIds": [
    "USS3JKS01I00"
  ],
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Run Close

post

This route is used to trigger the process to run the close.

This should be called by the issuer or fund admin when the assets are ready to be issued. All the assets that have been accepted (and settled when there is up-front payment) will be issued.

For contingent offerings, only after the minimum amount is reached can this action be invoked.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "closeOffering".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the close is being run

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
closeDataall ofRequired

This property contains the close data (e.g. issue price, date)

Example: {"priceData":[{"price":10.23,"asOfDate":"2024-09-12T00:00:00.000Z","bypassNAVCheck":true}],"issueDate":"2024-09-12T00:00:00.000Z"}
bookedCloseIdstring · max: 12Optional

This is the booked unique identifier of the close. It is optional. If not provided, a new unique identifier will be generated.

Example: USS3JKS01I00
Responses
201
Successfully triggered the process to run the close. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0082 - IS0083 - IS0084 - IS0085 - IS0086 - IS0092 - IS0093 - IC0010 - IC0012 - IC0009 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - IS0088 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0002 - IS0010 - IS0025 - IS0081 - IS0087 - IS0089 - IS0091 - IS0094 - IS0090 - IS0114 - AS0030 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/primary/run-close HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 283

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "closeData": {
    "priceData": [
      {
        "price": 10.23,
        "asOfDate": "2024-09-12T00:00:00.000Z",
        "bypassNAVCheck": true
      }
    ],
    "issueDate": "2024-09-12T00:00:00.000Z"
  },
  "bookedCloseId": "USS3JKS01I00"
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "closeId": "US9QIMAOAS1Q"
}

Get Asset Capital Event Details

get

This route is used to get the details regarding a capital event (Capital Call / Distribution) at the asset level, given a set of search filters.

i.e., the details of how much is being called/distributed from/to each asset.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

capitalEventCorrelationIdsFilterstringOptional

The comma delimited list of capital event correlation ids to filter the asset capital event records. Up to 100 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "capitalEventCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

capitalEventIdsFilterstringOptional

The comma delimited list of capital event ids to filter the asset capital event records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetIdsFilterstringOptional

The comma delimited list of asset ids to filter the asset capital events records. Up to 500 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
assetCorrelationIdsFilterstringOptional

The comma delimited list of asset correlation ids to filter the asset capital events records. Up to 50 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
assetCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "assetCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

assetCapitalEventStatusFilterstringOptional

The comma delimited list of statuses to filter the asset capital event records. Up to 8 entries can be provided. Available values: preSync, draft, active, settled, failed, funded, fundedAfterFailure, canceled

Example: draft,active
Responses
200
Successfully extracted the capital event data
application/json
400
The following error codes can be returned: - CE0003 - GN0002 - TX0006 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/assets HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "assetId": "USS3JKS01I00",
    "amountCalled": 100000,
    "expenses": 2000,
    "temporaryDistributionAmount": 100000,
    "permanentDistributionAmount": 2000,
    "breakdown": [
      {
        "categoryId": "USS3JKS01I00",
        "amount": 90000,
        "extraData": {
          "some": "Custom Data"
        }
      },
      {
        "categoryId": "USS3JKS01I01",
        "amount": 10000
      }
    ],
    "settlementData": [
      {
        "date": "2024-09-12T00:00:00.000Z",
        "status": "settled",
        "amount": 1000
      }
    ],
    "status": "active"
  }
]

Fund Capital Event Assets

put

This route is used to trigger the funding of the capital event by investors (specific to capital calls) on a batch of assets.

This should be called to let the issuer know when the investors meet their capital obligations

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["active","closed"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["investor"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is happening

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to mark the capital call as funded on a batch of assets. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0006 - CE0003 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 - AS0023 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0027 - CE0028 - CE0044 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/assets/fund HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 271

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetsData": [
    {
      "assetId": "US9QIMAOAS1Q",
      "settlementData": {
        "amount": 1000,
        "date": "2024-09-12T00:00:00.000Z"
      },
      "extraData": {
        "whatever": "Extra Data that is needed"
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Update NAV Unitized

put

This route is used to trigger the update a list of NAV records for unitized instruments on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This can be called either by the issuer organization that owns the security or by an assigned fund administrator to update the new price per share.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageNAV".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the NAVs in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to update a list of NAV records. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0003 - NV0014 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - NV0004 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - NV0006 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/nav-reporting/batch-update HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 246

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "navData": [
    {
      "securityId": "USS3JKS01I00",
      "navRecords": [
        {
          "date": "2024-09-12",
          "price": 10.123456
        },
        {
          "date": "2024-09-13",
          "price": 10.123459
        }
      ]
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Accept Recall Asset

put

This route is used to trigger the accept of the asset recall on the blockchain for a particular security.

Can be invoked by issuer or assigned service provider (e.g. fund admin) to accept the asset recall requested by investor.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will be disposed. This action is not reversible

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["recalled"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "cancelSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to accept the asset recall on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - IS0035 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/recall/accept HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Recall Asset

put

This route is used to trigger the recall of an asset on the blockchain for a particular security.

Can be invoked at any time while the offering is still active.

This should be called by investor to stop participating in the offering.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will move to next stage of the lifecycle

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["created","remediation_pending","remediated","confirmed","modified"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["investor"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "cancelSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to recall the asset on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 - IV0006 - IV0007 - IV0009 - IV0017 - IV0016 - IV0018 - IV0023 - IV0036 - AC0006 - AC0007 - AC0013 - AC0014 - AC0016 - AC0017 - AC0049 - AC0024 - AD0022 - AD0023 - CT0017 - FL0002 - FL0003 - FL0019 - FL0004 - FL0005 - FL0017 - FL0020 - QU0001 - QU0002 - QU0003 - QU0004 - QU0005 - QU0006 - QU0007 - QU0008 - QU0009 - QU0010 - CI0001 - CI0002 - CI0003 - CI0004 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - AS0023 - IV0013 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 - IV0001 - AC0001 - FL0008 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - IS0035 - AS0005 - AS0004 - IV0003 - AC0009 - AC0029 - FL0001 - FL0006 - FL0010 - FL0011 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/recall HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Removes Organization from Exclusivity Offering list

put

This route is used to remove an organization from the exclusivity list. This will prevent that organization from executing further investments in this security.

This should only be triggered by the organization that owns the security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageExclusivityOptions".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
orgIdstring · max: 50Required

The id of the organization. Used to uniquely identify the organization on the ledger

Example: US9QIMA
shareClassSecurityIdsstring[]Optional

For registered products with multiple share classes, use this as a filter to specify to which share classes the action applies to.

If not provided, then all will be affected the same way.

This should only be provided if the security has multiple share classes (e.g. security with multiple share classes and adding/removing an organizations to just a subset of them).

Example: ["USS3JKS01I00"]
Responses
200
Successfully triggered the process to remove an existing organization from the exclusive list of investing organizations. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0004 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0025 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0019 - IS0003 - IS0062 - EX0005 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/exclusivity/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 168

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "orgId": "US9QIMA",
  "shareClassSecurityIds": [
    "USS3JKS01I00"
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Issuing Legal Entity History

get

This route is used to get the history data entries of issuing legal entity given a set of filters such as blockchain details or legal entity identifiers.

The history entries will reflect the state of the legal entities on a particular block on the ledger.

This endpoint returns paginated data. Up to 20 can be extracted per call.

This endpoint can be called by applications with access to scope "readIssuingLegalEntity".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

blockNumbernumber · max: 2147483647Optional

The block number where the action was recorded on the ledger.

Example: 350
transactionIdstring · max: 500Optional

The transaction id where the action was recorded on the ledger.

Example: 456789OIJHGFCVGHJKLKJHGF67JHPattern: ^[a-zA-Z0-9-]*$
channelNamestring · max: 20Optional

The name of the channel where the action was recorded on the ledger.

Example: OG123Pattern: ^[a-zA-Z0-9-]*$
legalEntityIdsFilterstringOptional

The comma delimited list of legal entity ids to filter the legal entity history records. Up to 20 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
legalEntityCorrelationIdsFilterstringOptional

The comma delimited list of legal entity correlation ids to filter the legal entity history records. Up to 20 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
legalEntityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "legalEntityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully extracted the issuing legal entity history
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - LE0011 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/issuing-legal-entity/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "signerData": {
      "name": "John Doe",
      "email": "[email protected]"
    },
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "update": {
      "extraData": {
        "externalId": "123456789",
        "some": "Custom Property"
      },
      "secureExtraData": {
        "some": "Sensitive Data"
      },
      "description": "A custom legal entity type",
      "taxId": "text",
      "address": {
        "addressLineOne": "8 Greenway Plaza",
        "addressLineTwo": "Suite 1515",
        "country": "US",
        "state": "Texas",
        "city": "Houston",
        "zipCode": "77046 USA"
      },
      "mailingAddress": {
        "addressLineOne": "8 Greenway Plaza",
        "addressLineTwo": "Suite 1515",
        "country": "US",
        "state": "Texas",
        "city": "Houston",
        "zipCode": "77046 USA"
      },
      "placeOfBusinessAddress": [
        {
          "addressLineOne": "8 Greenway Plaza",
          "addressLineTwo": "Suite 1515",
          "country": "US",
          "state": "Texas",
          "city": "Houston",
          "zipCode": "77046 USA"
        }
      ],
      "incorporationDate": "2024-09-12",
      "incorporationCountry": "US",
      "incorporationState": "FL",
      "isUsEntity": true,
      "domicileCountry": "US",
      "jurisdictionCountry": "US",
      "jurisdictionState": "TX",
      "contactInfo": [
        {
          "email": "[email protected]",
          "phoneNumber": "832-426-4242"
        }
      ],
      "countryIssuingTaxId": "US",
      "taxYearEnd": "09-12",
      "natureOfBusiness": "Semiconductor device fabrication",
      "name": "Test Legal Entity",
      "type": "LP",
      "fundInfo": {
        "name": "New fund name",
        "description": "Fund description",
        "type": "Hedge Fund",
        "strategy": "Early Stage",
        "taxReporting": "K-1",
        "is1031Eligible": true,
        "exemption": "REIT",
        "commoditiesInfo": {
          "CFTCRegisteredCommodityPoolOperator": true
        }
      },
      "legalEntityId": "US1G14EGN",
      "status": "sync",
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    },
    "hash": "$argon2id$v=19$m=4096,t=3,p=1$8AVpNOnlBvN/reiv7Rdkpw$lzXOuG0H4SibMa0elrEZ5sq3YAvdu+Y5L+ta0oSSMTg"
  }
]

Accept Assignment to Offering

put

This route is used by a service provider (e.g. Fund Admin) to accept the assignment to an existing offering.

This can be invoked if the current organization has been assigned to a particular security.

It can also be invoked at any time after the "reject" endpoint has been called.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints, after which a background job will be triggered so that this organization can catch up to all the data related to this security (investors, accounts, assets, tender offers, capital events, ...).

This endpoint can be called by applications with access to scope "manageServiceProviders".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the acceptance
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0028 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0102 - IS0103 - SP0001 - SP0006 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/service-providers/accept HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Accept Assignment to Exclusive Offering

put

This route is used for an investing organization to accept the assignment to an exclusive offering (i.e. when the exclusivity type of the offering is set to "private").

This can be invoked if the current organization has been assigned as an investing org to this particular security.

After acceptance it will be possible to perform investments in this security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageExclusivityOptions".

Authorizations
Body
shareClassSecurityIdsstring[]Optional

For registered products with multiple share classes, use this as a filter to specify to which share classes the action applies to.

If not provided, then all will be affected the same way.

This should only be provided if the security has multiple share classes (e.g. security with multiple share classes and accepting/rejecting the assignment to just a subset of them).

Example: ["USS3JKS01I00"]
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
bookingModelall ofOptional

This property contains the booking model for each account.

If not provided, the booking model for all accounts will be defaulted to 'directlyHeld' which means that the securities will be held directly by the investors.

If this is provided, it is possible to define which accounts are qualified for 'fullyDisclosedFBO' structure, where the assets are held for the benefit of the investor, or 'omnibus' structure.

If not provided on accepting after a reject it will clear previous set model.

Example: {"fbo":{"qualifiedTypes":["Retirement"]},"omnibus":{"qualifiedTypes":["Individual","Joint"],"account":{"name":"Omnibus Account","bankAccount":{"accountNumber":"111111111","accountName":"savings account","bankABA":"555555555","bankName":"Test Bank","bankSwift":"AAAA-BB-CC-123","extraData":{"settlementInstructions":"Please wire the amount within 72 hours","some":"Other Property"}},"contactInfo":[{"email":"[email protected]","phoneNumber":"832-426-4242","type":"primary"},{"email":"[email protected]","phoneNumber":"987-564-1234","type":"tax","name":"John Doe","description":"Use this contact for Tax Related Information (K-1, 1099 or other tax related information)"}]}}}
Responses
200
Successfully triggered the process to accept the assignment to the exclusive list of this security. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0004 - AC0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0028 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0019 - IS0003 - IS0102 - IS0103 - EX0001 - EX0009 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/exclusivity/accept HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 835

{
  "shareClassSecurityIds": [
    "USS3JKS01I00"
  ],
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "bookingModel": {
    "fbo": {
      "qualifiedTypes": [
        "Retirement"
      ]
    },
    "omnibus": {
      "qualifiedTypes": [
        "Individual",
        "Joint"
      ],
      "account": {
        "name": "Omnibus Account",
        "bankAccount": {
          "accountNumber": "111111111",
          "accountName": "savings account",
          "bankABA": "555555555",
          "bankName": "Test Bank",
          "bankSwift": "AAAA-BB-CC-123",
          "extraData": {
            "settlementInstructions": "Please wire the amount within 72 hours",
            "some": "Other Property"
          }
        },
        "contactInfo": [
          {
            "email": "[email protected]",
            "phoneNumber": "832-426-4242",
            "type": "primary"
          },
          {
            "email": "[email protected]",
            "phoneNumber": "987-564-1234",
            "type": "tax",
            "name": "John Doe",
            "description": "Use this contact for Tax Related Information (K-1, 1099 or other tax related information)"
          }
        ]
      }
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "omnibusAccountId": "USS3JKS01I00"
}

Close Capital Event

put

This route is used to trigger the closure of the capital event (capital call or distribution).

This can either be called if the event has either been settled or failed on all assets.

This is the final step in the capital event lifecycle.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["active"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
signerall ofRequired

This property contains basic information regarding the person that is executing this action. It is used for audit trail of who made which request.

This information will be hashed on the block and will not be shared with other organizations that are part of the blockchain network, unless with the the ones that are concerned with this transaction.

Example: {"email":"[email protected]","name":"John Doe"}
processIdstringOptional

This is an externally provided id that can be used to identify the asynchronous process that will be triggered by this action. It is optional. If not provided the system will generate a unique id for this.

If provided, it must have a v4 UUID format.

Example: 2159457f-0167-4e93-a969-9cf0db05e0bf
securityIdstringOptional

This is the security unique identifier on the ledger. It uniquely identifies a particular security on the blockchain. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both.

Example: USS3JKS01I00
securityCorrelationDataall ofOptional

This property contains the correlation data that is used to identify a particular security within an organization. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both. Security Correlation IDs can be managed using the "Security Admin API".

Responses
200
Successfully triggered the closure of the capital event. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0029 - CE0035 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/close HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "signer": {
    "email": "[email protected]",
    "name": "John Doe"
  },
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "securityId": "USS3JKS01I00",
  "securityCorrelationData": {
    "correlationId": "USS3JKS01I00",
    "orgId": "US9QIMA"
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Approve Capital Event

put

This route is used to trigger approval of the capital event (capital call or distribution).

If the asset manager that owns this security does not have any fund admins assigned to this offering, then once this call is completed the capital event will be marked as active on the ledger.

If the asset manager that owns this security has a fund admin then both organizations need to call this endpoint one after the other to mark this capital event as active on the ledger.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["draft","pending"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
signerall ofRequired

This property contains basic information regarding the person that is executing this action. It is used for audit trail of who made which request.

This information will be hashed on the block and will not be shared with other organizations that are part of the blockchain network, unless with the the ones that are concerned with this transaction.

Example: {"email":"[email protected]","name":"John Doe"}
processIdstringOptional

This is an externally provided id that can be used to identify the asynchronous process that will be triggered by this action. It is optional. If not provided the system will generate a unique id for this.

If provided, it must have a v4 UUID format.

Example: 2159457f-0167-4e93-a969-9cf0db05e0bf
securityIdstringOptional

This is the security unique identifier on the ledger. It uniquely identifies a particular security on the blockchain. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both.

Example: USS3JKS01I00
securityCorrelationDataall ofOptional

This property contains the correlation data that is used to identify a particular security within an organization. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both. Security Correlation IDs can be managed using the "Security Admin API".

Responses
200
Successfully triggered the approval of the capital event. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0012 - CE0007 - CE0008 - CE0009 - CE0010 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/approve HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "signer": {
    "email": "[email protected]",
    "name": "John Doe"
  },
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "securityId": "USS3JKS01I00",
  "securityCorrelationData": {
    "correlationId": "USS3JKS01I00",
    "orgId": "US9QIMA"
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Fees Template Details

get

This route is used to retrieve the details of fees template, given a set of search filters.

This endpoint is paginated, up to 25 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readFeesTemplate".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

feesTemplateIdsFilterstringOptional

The comma delimited list of fees template ids to filter the fees template records. Up to 25 ids can be provided. Each id should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
feesTemplateStatusFilterstringOptional

The comma delimited list of statuses to filter the fees template records. Up to 4 entries can be provided. Available values: preSync, deleted, created, updated

Example: created,created
Responses
200
Successfully retrieved fees template details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/fees-template HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "commonFees": {
      "performanceFees": {
        "hurdleRate": 1,
        "highWatermark": {
          "enabled": true,
          "frequency": "Quarterly"
        },
        "grossOrNet": "Net",
        "fees": [
          {
            "description": "The performance fee details during the IP period",
            "value": 1,
            "unit": "percentage",
            "frequency": "Annually"
          },
          {
            "description": "Some other description about the fee structure in the Post-IP period",
            "value": 0.5,
            "unit": "basisPoints",
            "frequency": "Semi-Annually"
          }
        ]
      }
    },
    "feesTemplateInfo": {
      "feesTemplateId": "FT123456",
      "name": "Charles Schwab Fees Template",
      "status": "created",
      "backendFee": 0.75,
      "managementFees": [
        {
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "investorServicingFees": [
        {
          "maxAmount": 9999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 3,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 2.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        },
        {
          "minAmount": 10000,
          "maxAmount": 49999.99,
          "feesInfo": [
            {
              "description": "IP: annually of capital commitments | 6 years from the date of initial investment",
              "value": 2,
              "unit": "percentage",
              "frequency": "Annually"
            },
            {
              "description": "Post-IP: annually on invested capital (remaining cost) | 11 years from the initial investment with 2 one-year extension options",
              "value": 1.5,
              "unit": "percentage",
              "frequency": "Annually"
            }
          ]
        }
      ],
      "otherFees": [
        {
          "groupName": "Global fees",
          "groupDetails": [
            {
              "feesInfo": [
                {
                  "description": "Some global fee",
                  "value": 75,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        },
        {
          "groupName": "Bank fees",
          "groupDetails": [
            {
              "maxAmount": 4999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 1 - $5,000,000 - $9,999,999",
                  "value": 50,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            },
            {
              "minAmount": 5000,
              "maxAmount": 999999.99,
              "feesInfo": [
                {
                  "description": "Bank fees - tier 2 - $10,000,000+",
                  "value": 25,
                  "unit": "basisPoints",
                  "frequency": "One-Off"
                }
              ]
            }
          ]
        }
      ]
    }
  }
]

Create batch NAV Unitized

post

This route is used to trigger the creation of a list of NAV records for unitized instruments on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This can be called either by the issuer organization that owns the security or by an assigned fund administrator to update the new price per share.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can't be invoked if the security is share class.

This endpoint can be called by applications with access to scope "manageNAV".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the NAVs in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
201
Successfully triggered the process to create a list of NAV records. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0003 - NV0005 - NV0007 - NV0014 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - NV0007 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0003 - IS0012 - NV0002 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/nav-reporting/batch-create HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 246

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "navData": [
    {
      "securityId": "USS3JKS01I00",
      "navRecords": [
        {
          "date": "2024-09-12",
          "price": 10.123456
        },
        {
          "date": "2024-09-13",
          "price": 10.123459
        }
      ]
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Issuing Legal Entity Details

get

This route is used to get the details of an issuing legal entity given a set of search filters.

This endpoint is paginated, up to 20 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readIssuingLegalEntity".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

legalEntityIdsFilterstringOptional

The comma delimited list of legal entity ids to filter the legal entity records. Up to 20 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
legalEntityCorrelationIdsFilterstringOptional

The comma delimited list of legal entity correlation ids to filter the legal entity records. Up to 20 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
legalEntityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "legalEntityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

Responses
200
Successfully extracted the issuing legal entity details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/issuing-legal-entity HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "secureExtraData": {
      "some": "Sensitive Data"
    },
    "description": "A custom legal entity type",
    "taxId": "text",
    "address": {
      "addressLineOne": "8 Greenway Plaza",
      "addressLineTwo": "Suite 1515",
      "country": "US",
      "state": "Texas",
      "city": "Houston",
      "zipCode": "77046 USA"
    },
    "mailingAddress": {
      "addressLineOne": "8 Greenway Plaza",
      "addressLineTwo": "Suite 1515",
      "country": "US",
      "state": "Texas",
      "city": "Houston",
      "zipCode": "77046 USA"
    },
    "placeOfBusinessAddress": [
      {
        "addressLineOne": "8 Greenway Plaza",
        "addressLineTwo": "Suite 1515",
        "country": "US",
        "state": "Texas",
        "city": "Houston",
        "zipCode": "77046 USA"
      }
    ],
    "incorporationDate": "2024-09-12",
    "incorporationCountry": "US",
    "incorporationState": "FL",
    "isUsEntity": true,
    "domicileCountry": "US",
    "jurisdictionCountry": "US",
    "jurisdictionState": "TX",
    "contactInfo": [
      {
        "email": "[email protected]",
        "phoneNumber": "832-426-4242"
      }
    ],
    "countryIssuingTaxId": "US",
    "taxYearEnd": "09-12",
    "natureOfBusiness": "Semiconductor device fabrication",
    "name": "Test Legal Entity",
    "type": "LP",
    "fundInfo": {
      "name": "New fund name",
      "description": "Fund description",
      "type": "Hedge Fund",
      "strategy": "Early Stage",
      "taxReporting": "K-1",
      "is1031Eligible": true,
      "exemption": "REIT",
      "commoditiesInfo": {
        "CFTCRegisteredCommodityPoolOperator": true
      }
    },
    "legalEntityId": "US1G14EGN",
    "status": "sync",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Fail Asset Capital Event

put

This route is used to trigger the failure of the capital event (specific to capital calls) on a batch of assets on the blockchain for a particular security.

This can be used by either the asset manager that owns the security or by a fund admin that is assigned to the security, e.g. if the amount of the call has not been received and the information that the investors have failed their obligations needs to be reflected on the ledger.

If this is triggered then the asset will enter 'default' state and will be restricted for further actions.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["active","closed"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is happening

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the failure of the capital event on the assets. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0006 - CE0003 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0027 - CE0028 - CE0044 - AS0030 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/assets/fail HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 204

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetsData": [
    {
      "assetId": "US9QIMAOAS1Q",
      "extraData": {
        "whatever": "Extra Data that is needed"
      }
    }
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Capital Event Details

get

This route is used to get the details regarding a capital event (Capital Call / Distribution), given a set of search filters.

This endpoint returns paginated data. Up to 100 can be extracted per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

securityIdsFilterstringOptional

The comma delimited list of security ids to filter the capital events records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the capital events records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationIdsFilterstringOptional

The comma delimited list of capital event correlation ids to filter the capital event records. Up to 100 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "capitalEventCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

capitalEventIdsFilterstringOptional

The comma delimited list of capital event ids to filter the capital event records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
capitalEventStatusFilterstringOptional

The comma delimited list of statuses to filter the capital event records. Up to 9 entries can be provided. Available values: preSync, deleted, draft, pending, approval_in_progress, active, closed, canceled, cancel_in_progress

Example: draft,active
Responses
200
Successfully extracted the capital event data
application/json
400
The following error codes can be returned: - CE0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "type": "capitalCall",
    "endDate": "2024-09-12T00:00:00.000Z",
    "amountCalled": 100000,
    "expenses": 2000,
    "temporaryDistributionAmount": 100000,
    "permanentDistributionAmount": 2000,
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies capital event on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ],
    "status": "draft",
    "capitalEventId": "US9QIMAOAS1Q",
    "securityId": "USS3JKS01I00",
    "breakdown": [
      {
        "categoryId": "USS3JKS01I00",
        "amount": 90000,
        "extraData": {
          "some": "Custom Data"
        }
      },
      {
        "categoryId": "USS3JKS01I01",
        "amount": 10000
      }
    ],
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    }
  }
]

Cancel Digital Asset

put

This route is used to trigger the cancellation of a digital asset on the blockchain for a particular security.

This should be called when for some reason the investor needs to stop participating in the security, after the asset has been accepted and the payment is already processed. This means that the money will need to be refunded after this action using the "dispose" action endpoint.

This triggers an asynchronous process (the id of which is returned on the success response) to persist this information on the blockchain which can be monitored using the "Transactions API" endpoints.

Once processed, the asset will move to next stage of the lifecycle

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the asset is in one of the following statuses: ["confirmed","settled"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "cancelSubscription".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being bought and the investment details

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully triggered the process to cancel the asset on the ledger. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "assetId" property can be used on the "Assets API" to get the details of the digital asset.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - IS0012 - IS0013 - AS0005 - AS0004 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/asset/{assetId}/cancel HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "assetId": "US9QIMAOAS1Q"
}

Get Pending Assignments

get

This route is used to get the pending assignment requests for this current org.

This endpoint can be called by applications with access to scope "readServiceProviders".

Authorizations
Responses
200
Successfully extracted data
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/service-providers/pending-assignments HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "securityId": "USS3JKS01I00",
    "assignerOrg": {
      "name": "Test Issuer",
      "orgId": "US9QIMA"
    },
    "createdDate": "2024-09-12T00:00:00.000Z",
    "syncJobStatus": "success",
    "blockNumber": 350,
    "blockchainTransactionId": "text"
  }
]

Get Breakdown Categories Details

get

This route is used to retrieve the details of breakdown categories, given a set of search filters.

This endpoint is paginated, up to 100 records can be retrieved per call.

This endpoint can be called by applications with access to scope "readCapitalEvent".

Authorizations
Query parameters
pageSizenumberOptional

The number of rows being retrieved. Must be a positive integer.

offsetnumberOptional

The offset (i.e. row start index). Must be a positive integer (or 0).

securityIdsFilterstringOptional

The comma delimited list of security ids to filter the breakdown category records. Up to 10 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationIdsFilterstringOptional

The comma delimited list of security correlation ids to filter the breakdown category records. Up to 10 records can be provided. Each record should not exceed 100 characters.

Example: USCCWSF01I00,USCCWSF01I01
securityCorrelationOrgIdstring · max: 12Optional

The organization identifier linked to the correlation ids provided in the "securityCorrelationIdsFilter" property. If not provided the organization id will be inferred from the access token.

breakdownCategoryIdsFilterstringOptional

The comma delimited list of breakdown category ids to filter the category records. Up to 100 records can be provided. Each record should not exceed 12 characters.

Example: USCCWSF01I00,USCCWSF01I01
Responses
200
Successfully retrieved breakdown categories details
application/json
400
The following error codes can be returned: - GN0002 - GN0004 - GN0005 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/capital-events/categories HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "type": "deemedGPContribution",
    "typeName": "Other Expenses",
    "flowType": "againstCommitment",
    "description": "Call from LPs, on behalf of GP's share of a capital call (typically serves as an offset to future management fees)",
    "securityId": "USS3JKS01I00",
    "categoryId": "USS3JKS01I00",
    "status": "published",
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    }
  }
]

Remove Service Provider from Offering

put

This route is used to remove a service provider from an existing offering (e.g. unassigning a fund admin).

This will prevent further actions from being executed by the removed organization on this security and it will no longer be entitled to receiving new transactions' data.

This should only be triggered by the organization that owns the security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageServiceProviders".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security being affected by this action

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
orgIdstringRequired

The id of the service provider organization. Used to uniquely identify the organization on the ledger

Example: US9QIMA
Responses
200
Successfully triggered the removal
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - OG0004 - OG0005 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - OG0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0010 - IS0062 - SP0004 - SP0005 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/service-providers/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "orgId": "US9QIMA"
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Mark Assets batch as wired

put

This route is used to trigger the process to mark a list of confirmed assets of a given security as wired.

This should be called by the asset owner as the notification of the funds covering the investment being wired.

If the security is a money market fund, this should be called by the asset account owner.

This can be called for all security types except non-unitized security types with capital calls enabled.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","paused"].

This endpoint can be invoked if the assets in the payload are the following statuses: confirmed.

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","investor"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "markSubscriptionWired".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. the security id to which all the asset ids in the list belong to

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
assetIdsstring[] · min: 1 · max: 500Required

The list of the unique identifiers of the digital assets to apply action to.

The entries on this list need to be consistent with the security id in the transaction data

Example: ["USS3JKS01I00","US9QIMAOAS1Q"]
Responses
200
Successfully triggered the process to mark a list of assets as wired. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - IS0008 - IS0106 - AS0018 - AS0013 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - AS0023 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - AS0004 - AS0024 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/primary/batch-mark-wired HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 152

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "assetIds": [
    "USS3JKS01I00",
    "US9QIMAOAS1Q"
  ]
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Cancel Capital Event

put

This route is used to trigger the cancellation of the capital event (capital call or distribution).

This is an irreversible action that can be called if the event is in draft state. The typical use case for this endpoint is to cancel an event that was created by mistake.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked if the capital event is in one of the following statuses: ["draft"]

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Path parameters
capitalEventIdanyRequired

The id that uniquely identifies the capital event on the ledger.

Example: TEST5678
Body
signerall ofRequired

This property contains basic information regarding the person that is executing this action. It is used for audit trail of who made which request.

This information will be hashed on the block and will not be shared with other organizations that are part of the blockchain network, unless with the the ones that are concerned with this transaction.

Example: {"email":"[email protected]","name":"John Doe"}
processIdstringOptional

This is an externally provided id that can be used to identify the asynchronous process that will be triggered by this action. It is optional. If not provided the system will generate a unique id for this.

If provided, it must have a v4 UUID format.

Example: 2159457f-0167-4e93-a969-9cf0db05e0bf
securityIdstringOptional

This is the security unique identifier on the ledger. It uniquely identifies a particular security on the blockchain. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both.

Example: USS3JKS01I00
securityCorrelationDataall ofOptional

This property contains the correlation data that is used to identify a particular security within an organization. It is optional.

Either "securityId" or "securityCorrelationData" must be provided, but not both. Security Correlation IDs can be managed using the "Security Admin API".

Responses
200
Successfully triggered the cancellation of the capital event. The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - CE0003 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - CE0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - CE0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - IS0015 - CE0005 - CE0035 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/capital-events/{capitalEventId}/cancel HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "signer": {
    "email": "[email protected]",
    "name": "John Doe"
  },
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "securityId": "USS3JKS01I00",
  "securityCorrelationData": {
    "correlationId": "USS3JKS01I00",
    "orgId": "US9QIMA"
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Remove Asset Correlation ID

put

This route is used to remove a correlation ID from an existing asset. This correlation ID is an externally provided id that uniquely identifies the asset within the organization making this call.

This correlation ID should be in use by the asset involved in this call.

This action can be broadcast to all the counterparties that have access to this asset.

If the action is to be broadcast, then it will trigger an asynchronous process (the id of which is returned on the success response) which can be monitored using the "Transactions API" endpoints.

This endpoint can be called by applications with access to scope "manageReferenceData".

Authorizations
Path parameters
assetIdanyRequired

The unique identifier of the asset on the blockchain.

This can be a 12 characters platform generated identifier or a correlation id provided by the client. If its length is different from 12 it will be treatead as a correlation id.

Particularly relevant for correlation ids, it is recommended that the ID is url encoded if it contains any special characters.

Example: US9QIMAOAS1Q
Query parameters
isAssetCorrelationIdanyOptional

This property is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

If set to "true" then the platform will try to obtain the asset data using the path parameter as a correlation id instead of a platform generated id.

Example: true
assetCorrelationOrgIdanyOptional

This is to be used if the value passed in the "assetId" path parameter is a correlation id instead of a platform generated id.

This is the organization identifier linked to that path param. If not provided the organization id will be inferred from the access token.

This will be ignored if the value in the path parameter is 12 characters long and the isAssetCorrelationId is either absent or not "true".

Example: US9QI
Body
correlationIdstring · max: 100Required

Externally provided id that uniquely identifies an entity within an organization.

Example: 123245573717
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where we are adding a correlation id to a entity

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
Responses
200
Successfully removed (or, if the action is being broadcast, triggered the removal of) the correlation id from the asset.
application/json
400
The following error codes can be returned: - GN0002 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 - AS0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0016 - AS0027 - AS0026 - AS0028 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/asset/{assetId}/correlation-id/remove HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 204

{
  "extraData": {
    "externalId": "123456789",
    "some": "Custom Property"
  },
  "correlationId": "123245573717",
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
}
{
  "processData": {
    "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
    "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
  }
}

Create Capital Event

post

This route is used to trigger the creation of a capital event (capital call or distribution) on the blockchain for a particular security.

It triggers an asynchronous process that will persist this information on the blockchain, which can be monitored using the "Transactions API" endpoints.

This will trigger either 1 or 2 transactions depending on the input (if assetDetails property is passed then it will be 2 transactions)

This endpoint can be invoked if the security is in one of the following statuses: ["active","completed","approved_revert_to_active","closed"].

This endpoint can be invoked by organizations that have at least one of the following roles on this security: ["issuer","service_provider"].

This endpoint can't be invoked if the security is restricted.

This endpoint can be called by applications with access to scope "manageCapitalEvent".

Authorizations
Body
transactionDataall ofRequired

This property contains the transactional data information, i.e. which is the security where the capital event is being created

Example: {"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
eventDataall ofRequired

This property contains the details of the capital event that is to be created

Example: {"type":"capitalCall","endDate":"2024-09-12T00:00:00.000Z","amountCalled":100000,"expenses":2000,"breakdown":[{"category":{"bookedCategoryId":"USS3JKS01I00","data":{"type":"investments","flowType":"againstCommitment","extraData":{"some":"Custom Data"}}},"amount":90000,"extraData":{"some":"Global data"}},{"category":{"data":{"type":"managementFeeInsideCommitment","flowType":"againstCommitment"}},"amount":10000},{"category":{"data":{"type":"managementFeeOutsideCommitment","flowType":"expenses","extraData":{"other":"Specific Data field"}}},"amount":2000},{"category":{"categoryId":"USS3JKS01I00"},"amount":4000}]}
bookedCapitalEventIdstring · max: 12Optional

This is the booked unique identifier of the capital event. It is optional. If not provided, a new unique identifier will be generated.

Example: USS3JKS01I00
Responses
201
Successfully triggered the creation of the capital event The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process.
application/json
400
The following error codes can be returned: - GN0002 - TX0006 - IS0008 - IS0106 - CE0030 - CE0020 - CE0021 - CE0022 - CE0023 - CE0057 - CE0065 - CE0037 - CE0016 - CE0017 - CE0018 - CE0019 - CE0043 - CE0066 - CE0067 Please refer to the error code dictionary for the details of each error code.
application/json
401
The following error codes can be returned: - AU0001 - AU0003 Please refer to the error code dictionary for the details of each error code.
application/json
403
The following error codes can be returned: - AU0002 - IS0099 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IS0009 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IS0013 - IS0012 - CE0031 - CE0032 - CE0013 - CE0014 - CE0015 - CE0039 - CE0038 - CE0057 - CE0065 - CE0058 - CE0059 - CE0063 - CE0060 - CE0064 - TR0005 Please refer to the error code dictionary for the details of each error code.
application/json
425
The following error codes can be returned: - GN0003 Please refer to the error code dictionary for the details of each error code.
application/json
post
POST /external/v1/capital-events HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 776

{
  "transactionData": {
    "securityId": "USS3JKS01I00",
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "eventData": {
    "type": "capitalCall",
    "endDate": "2024-09-12T00:00:00.000Z",
    "amountCalled": 100000,
    "expenses": 2000,
    "breakdown": [
      {
        "category": {
          "bookedCategoryId": "USS3JKS01I00",
          "data": {
            "type": "investments",
            "flowType": "againstCommitment",
            "extraData": {
              "some": "Custom Data"
            }
          }
        },
        "amount": 90000,
        "extraData": {
          "some": "Global data"
        }
      },
      {
        "category": {
          "data": {
            "type": "managementFeeInsideCommitment",
            "flowType": "againstCommitment"
          }
        },
        "amount": 10000
      },
      {
        "category": {
          "data": {
            "type": "managementFeeOutsideCommitment",
            "flowType": "expenses",
            "extraData": {
              "other": "Specific Data field"
            }
          }
        },
        "amount": 2000
      },
      {
        "category": {
          "categoryId": "USS3JKS01I00"
        },
        "amount": 4000
      }
    ]
  },
  "bookedCapitalEventId": "USS3JKS01I00"
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "capitalEventId": "US9QIMAOAS1Q",
  "breakdownCategoriesIds": [
    "USS3JKS01I00"
  ]
}