All pages
Powered by GitBook
1 of 13

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Investor and Account Details

The Integration API includes methods for retrieving details about the investors and accounts associated with transactions. Detail retrieval can be based on any of the following keys:

  • ID

  • correlation ID

  • extra data key

The ID is the unique identifier for the account or investor.

The correlation ID is a unique identifier specific to the organization.

The extra data key is a key/value pair that can be included in the details of accounts and investors for use as a filter.

Related Concepts

Mapping Your IDs to Corastone IDs

Collecting Data Using Questionnaires

Endpoints

Update Investor's Reference Data

Update Account Reference Data

Add Investor Correlation ID

Remove Investor Correlation ID

Add Account Correlation ID

Remove Account Correlation ID

Getters

Get Investor Details

Get Investor History

Get Account Details By ID

Get Account History By ID

Get Investor Correlation IDs History

Get Account Correlation IDs History

AM/FA/Inv - Update Account Reference Data

Details

/external/v1/account/{accountId}

Synopsis

Important Notes

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

AM/FA - Get Account Details

Details

/external/v1/account

Synopsis

AM/FA - Get Investor Correlation IDs History

Details

/external/v1/investor/correlation-id/history

Synopsis

AM/FA - Get Investor History

Details

/external/v1/investor/history

Synopsis

Important Notes

  • Returns a series of updates that make up the history of the identified investor.

AM/FA/Inv - Add Investor Correlation ID

Details

Synopsis

AM/FA/Inv - Remove Investor Correlation ID

Details

Synopsis

/external/v1/investor/{investorId}/correlation-id/add
/external/v1/investor/{investorId/correlation-id/remove

AM/FA - Get Account Correlation IDs History

Details

/external/v1/account/correlation-id/history

Synopsis

AM/FA - Get Account History

Details

/external/v1/account/history

Synopsis

Important Notes

  • Returns a series of account changes recorded on the blockchain.

AM/FA/Inv - Update Investor's Reference Data

Details

/external/v1/investor/{investorId}

Synopsis

Important Notes

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

AM/FA/Inv - Add Account Correlation ID

Details

/external/v1/account/{accountId}/correlation-id/add

Synopsis

AM/FA/Inv - Remove Account Correlation ID

Details

/external/v1/investor/{investorId}/correlation-id/remove

Synopsis

AM/FA - Get Investor Details

Details

/external/v1/investor

Synopsis

Update Account`s reference data

put

This route is used to update account's reference data.

Should be called by the organization that created specified account record.

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 "manageReferenceData".

Authorizations
Path parameters
accountIdstringRequired

The unique identifier of the account on the blockchain

Example: USS3JKS01I00
Body
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"}}
dataall ofRequired

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

Example: {"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 encryptions"}}
Responses
200
Successfully triggered the process to update the account's reference data on the ledger The "processId" and "orchestrationId" properties can be used on the "Transactions API" to monitor the status of this asynchronous process. The "accountId" property can be used on the "Account API" to get the details.
application/json
400
The following error codes can be returned: - GN0002 - AC0006 - AC0007 - AC0017 - AC0049 - AC0021 - AC0022 - AC0031 - AC0032 - AC0033 - AC0034 - AC0035 - AC0043 - CT0019 - CT0020 - QU0001 - QU0002 - QU0003 - QU0004 - QU0005 - QU0006 - QU0007 - QU0008 - QU0009 - QU0010 - CI0001 - CI0002 - 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 - AC0020 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - AC0009 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/account/{accountId} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1338

{
  "transactionData": {
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "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 encryptions"
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Get Account Details

get

This route is used to retrieve the details of accounts, 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 "readAccount".

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).

extraDataKeyFilterstring · max: 100Optional

The key to search within the extraData property. Will be used in combination with "extraDataValueFilter". If "extraDataValueFilter" is not provided then this property is discarded.

extraDataValueFilterstring · max: 100Optional

The value to search within the extraData property. Will be used in combination with "extraDataKeyFilter". If "extraDataKeyFilter" is not provided then this property is discarded.

accountIdsFilterstringOptional

The comma delimited list of account ids to filter the account records. Up to 25 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 account records. Up to 25 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
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.

investorIdsFilterstringOptional

The comma delimited list of investor ids to filter the account 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 account 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.

Responses
200
Successfully retrieved the Account 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/account HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "secureExtraData": {
      "some": "Sensitive Data"
    },
    "name": "text",
    "bankAccount": {
      "accountId": "111111111",
      "accountName": "savings account",
      "bankABA": "555555555",
      "bankName": "Test Bank",
      "bankSwift": "AAAA-BB-CC-123"
    },
    "contactInfo": [
      {
        "email": "[email protected]",
        "phoneNumber": "832-426-4242"
      }
    ],
    "benefitPlanInvestor": true,
    "type": "Individual",
    "subType": "Individual",
    "additionalTypeInfo": "LLCPartnership",
    "relationshipType": "Brokerage",
    "authorizedSigners": [
      {
        "name": "John Doe",
        "primary": true,
        "extraData": {
          "externalId": "12345"
        }
      }
    ],
    "beneficiaries": [
      {
        "name": "John Doe",
        "beneficialOwnership": 40,
        "individualInfo": {
          "name": "John Doe",
          "taxId": "123456789"
        }
      },
      {
        "name": "Jane Doe LLC",
        "beneficialOwnership": 60,
        "legalEntityInfo": {
          "name": "Jane Doe LLC",
          "type": "LLC",
          "taxId": "987654321"
        }
      }
    ],
    "questionnaires": [
      {
        "type": "AccreditedInvestor",
        "title": "US Accredited Investor Questionnaire",
        "questions": [
          {
            "question": {
              "questionId": "q1",
              "questionText": "Are you an accredited investor as defined by the SEC?",
              "answerType": "Boolean"
            },
            "answers": [
              {
                "booleanValue": true
              }
            ]
          },
          {
            "question": {
              "questionId": "q2",
              "questionText": "Please select the criteria under which you qualify as an accredited investor.",
              "answerType": "Choice",
              "allowedAnswerValues": [
                "Income exceeding $200,000 in each of the two most recent years",
                "Net worth exceeding $1 million",
                "Other criteria as defined by the SEC"
              ]
            },
            "answers": [
              {
                "choiceValue": "Net worth exceeding $1 million"
              }
            ]
          },
          {
            "question": {
              "questionId": "q3",
              "questionText": "Please provide any additional information or comments.",
              "answerType": "Text"
            },
            "answers": [
              {
                "textValue": "No additional comments."
              }
            ]
          }
        ]
      }
    ],
    "custodian": {
      "custodianId": "US1W12QDRJ9O"
    },
    "advisors": [
      {
        "advisorId": "US1W1V3RQK3X"
      }
    ],
    "accountId": "TEST1234",
    "associatedInvestors": [
      {
        "investorId": "ORG1X123456",
        "isPrimaryHolder": false
      }
    ],
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "status": "sync",
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies account on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ]
  }
]

Get Investor Correlation Ids History

get

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

The history entries will reflect the state of the investor 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-]*$
investorIdsFilterstringOptional

The comma delimited list of investor ids to filter the investor records. Up to 25 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 investor records. Up to 25 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.

Responses
200
Successfully retrieved the Investor 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/investor/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 Investor History

get

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

The history entries will reflect the state of the investors 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 "readInvestor".

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-]*$
investorIdsFilterstringOptional

The comma delimited list of investor ids to filter the investor records. Up to 25 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 investor records. Up to 25 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.

Responses
200
Successfully retrieved the Investors 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/investor/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "hash": "$argon2id$v=19$m=4096,t=3,p=1$8AVpNOnlBvN/reiv7Rdkpw$lzXOuG0H4SibMa0elrEZ5sq3YAvdu+Y5L+ta0oSSMTg",
    "update": {
      "investorId": "TEST123345",
      "type": "individual",
      "accreditationLevel": "qualifiedClient",
      "isInstitutional": false,
      "hasKYCPassed": false,
      "isComplianceApproved": false,
      "is5131RestrictedPerson": false,
      "name": "John Doe",
      "individualInfo": {
        "name": "John Doe",
        "dateOfBirth": "1984-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"
        },
        "isUsPerson": true,
        "contactInfo": [
          {
            "email": "[email protected]",
            "phoneNumber": "832-426-4242"
          }
        ],
        "extraData": {
          "externalInvestorId": "123456",
          "some": "other property"
        }
      },
      "organization": {
        "orgId": "TEST1234",
        "name": "Test Organization"
      }
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    },
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    }
  }
]

Add Investor Correlation ID

put

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

This correlation ID can't be in use by another investor. This correlation ID can be broadcast to all the counterparties that have access to this investor 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
investorIdstringRequired

The unique identifier of the investor 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 investor.
application/json
400
The following error codes can be returned: - GN0002 - IV0031 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: - IV0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IV0003 - IV0027 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/investor/{investorId}/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"
  }
}

Remove Investor Correlation ID

put

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

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

This action can be broadcast to all the counterparties that have access to this investor 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
investorIdstringRequired

The unique identifier of the investor 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 investor.
application/json
400
The following error codes can be returned: - GN0002 - IV0031 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 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IV0027 - IV0028 - IV0029 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/investor/{investorId}/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 Account Correlation Ids History

get

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

The history entries will reflect the state of the account correlation ids on that particular block.

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-]*$
accountIdsFilterstringOptional

The comma delimited list of account ids to filter the account records. Up to 25 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 account records. Up to 25 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
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.

Responses
200
Successfully retrieved the Account 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/account/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 Account History

get

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

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

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

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-]*$
accountIdsFilterstringOptional

The comma delimited list of account ids to filter the account records. Up to 25 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 account records. Up to 25 records can be provided. Each record should not exceed 100 characters.

Example: 1234,5678,7890
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.

Responses
200
Successfully retrieved the Account 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
404
The following error codes can be returned: - AC0001 Please refer to the error code dictionary for the details of each error code.
application/json
get
GET /external/v1/account/history HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "timestamp": "2024-09-12T00:00:00.000Z",
    "blockNumber": 350,
    "transactionId": "456789OIJHGFCVGHJKLKJHGF67JH",
    "channelName": "OG123",
    "hash": "$argon2id$v=19$m=4096,t=3,p=1$8AVpNOnlBvN/reiv7Rdkpw$lzXOuG0H4SibMa0elrEZ5sq3YAvdu+Y5L+ta0oSSMTg",
    "organization": {
      "name": "Test Organization",
      "orgId": "TEST1234"
    },
    "update": {
      "accountId": "US9QIMAOAS1Q",
      "name": "Individual Account",
      "type": "Individual",
      "subType": "Individual",
      "relationshipType": "Brokerage",
      "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": {
        "custodianId": "US1W12QDRJ9O"
      },
      "advisors": [
        {
          "advisorId": "US1W1V3RQK3X"
        }
      ],
      "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"
          }
        }
      ],
      "authorizedSigners": [
        {
          "name": "Jane Doe",
          "primary": true
        }
      ],
      "bankAccount": {
        "accountNumber": "111111111",
        "accountName": "savings account",
        "bankABA": "555555555",
        "bankName": "Test Bank",
        "bankSwift": "AAAA-BB-CC-123"
      },
      "organization": {
        "name": "Test Organization",
        "orgId": "TEST1234"
      }
    },
    "signerData": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  }
]

Update Investor`s reference data

put

This route is used to update investor's reference data.

Should be called by the organization that created specified investor record.

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 "manageReferenceData".

Authorizations
Path parameters
investorIdstringRequired

The unique identifier of the investor on the blockchain

Example: USS3JKS01I00
Body
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"}}
dataall ofRequired

This property contains the investor reference data information.

Example: {"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"}}}
Responses
200
Successfully triggered the process to update the investor's reference data on the ledger 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 - IV0009 - IV0023 - IV0036 - IV0014 - IV0015 - IV0031 - 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 - IV0013 Please refer to the error code dictionary for the details of each error code.
application/json
404
The following error codes can be returned: - IV0001 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IV0003 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/investor/{investorId} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 903

{
  "transactionData": {
    "signer": {
      "email": "[email protected]",
      "name": "John Doe"
    }
  },
  "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"
      }
    }
  }
}
{
  "processId": "2159457f-0167-4e93-a969-9cf0db05e0bf",
  "orchestrationId": "2159457f-0167-4e93-a969-9cf0db05e0bf"
}

Add Account Correlation ID

put

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

This correlation ID can't be in use by another account. This correlation ID can be broadcast to all the counterparties that have access to this account 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
accountIdstringRequired

The unique identifier of the account 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 account.
application/json
400
The following error codes can be returned: - GN0002 - AC0043 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: - 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: - AC0009 - AC0039 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/account/{accountId}/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"
  }
}

Remove Investor Correlation ID

put

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

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

This action can be broadcast to all the counterparties that have access to this investor 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
investorIdstringRequired

The unique identifier of the investor 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 investor.
application/json
400
The following error codes can be returned: - GN0002 - IV0031 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 Please refer to the error code dictionary for the details of each error code.
application/json
409
The following error codes can be returned: - IV0027 - IV0028 - IV0029 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/investor/{investorId}/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 Investor Details

get

This route is used to retrieve the details of investors, 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 "readInvestor".

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).

extraDataKeyFilterstring · max: 100Optional

The key to search within the extraData property. Will be used in combination with "extraDataValueFilter". If "extraDataValueFilter" is not provided then this property is discarded.

extraDataValueFilterstring · max: 100Optional

The value to search within the extraData property. Will be used in combination with "extraDataKeyFilter". If "extraDataKeyFilter" is not provided then this property is discarded.

investorIdsFilterstringOptional

The comma delimited list of investor ids to filter the investor records. Up to 25 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 investor records. Up to 25 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.

Responses
200
Successfully retrieved investor 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/investor HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "extraData": {
      "externalId": "123456789",
      "some": "Custom Property"
    },
    "secureExtraData": {
      "some": "Sensitive Data"
    },
    "type": "individual",
    "accreditationLevel": "selfAccredited",
    "isInstitutional": false,
    "hasKYCPassed": false,
    "isComplianceApproved": false,
    "is5131RestrictedPerson": false,
    "name": "text",
    "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"
        }
      ]
    },
    "legalEntityInfo": {
      "name": "Test Legal Entity",
      "incorporationDate": "2024-09-12",
      "taxId": "123456789",
      "gIIN": "987654321",
      "isGovernmentEntity": true,
      "isSubjectToERISA": false,
      "address": {
        "addressLineOne": "8 Greenway Plaza",
        "addressLineTwo": "Suite 1515",
        "country": "US",
        "state": "Texas",
        "city": "Houston",
        "zipCode": "77046 USA"
      },
      "contactInfo": [
        {
          "email": "[email protected]",
          "phoneNumber": "832-426-4242"
        }
      ],
      "isUsEntity": true,
      "domicileCountry": "US",
      "jurisdictionCountry": "US",
      "type": "LP"
    },
    "FATCAInfo": {
      "fatcaId": "FATCA-123",
      "classification": "FATCA-CLASSIFICATION",
      "status": "FATCA-STATUS",
      "reportCode": "FATCA-EXEMPT",
      "reportedDate": "2024-09-12"
    },
    "formPFData": [
      {
        "type": "unitedStatesPersons",
        "description": "A description of the investor type"
      }
    ],
    "questionnaires": [
      {
        "type": "AccreditedInvestor",
        "title": "US Accredited Investor Questionnaire",
        "questions": [
          {
            "question": {
              "questionId": "q1",
              "questionText": "Are you an accredited investor as defined by the SEC?",
              "answerType": "Boolean"
            },
            "answers": [
              {
                "booleanValue": true
              }
            ]
          },
          {
            "question": {
              "questionId": "q2",
              "questionText": "Please select the criteria under which you qualify as an accredited investor.",
              "answerType": "Choice",
              "allowedAnswerValues": [
                "Income exceeding $200,000 in each of the two most recent years",
                "Net worth exceeding $1 million",
                "Other criteria as defined by the SEC"
              ]
            },
            "answers": [
              {
                "choiceValue": "Net worth exceeding $1 million"
              }
            ]
          },
          {
            "question": {
              "questionId": "q3",
              "questionText": "Please provide any additional information or comments.",
              "answerType": "Text"
            },
            "answers": [
              {
                "textValue": "No additional comments."
              }
            ]
          }
        ]
      }
    ],
    "politicalExposedPerson": {
      "isPoliticalExposed": true,
      "name": "John Doe",
      "governmentCountry": "US",
      "position": "President",
      "relationship": "Father"
    },
    "taxInfo": {
      "status": "individual",
      "isUsPerson": true,
      "isTaxExempt": false,
      "taxJurisdiction": {
        "country": "US",
        "state": "Texas"
      },
      "taxExemptionCode": "501(c)(3)",
      "taxExemptionCodeDetails": "Some details",
      "entityClassification": {
        "foundationInfo": {
          "isPrivateFoundation": true
        }
      },
      "ultimateOwnershipDetails": {
        "status": "complexTrust",
        "isUsPerson": true,
        "isTaxExempt": false,
        "taxJurisdiction": {
          "country": "US",
          "state": "Texas"
        },
        "taxExemptionCode": "501(c)(3)",
        "taxExemptionCodeDetails": "Some details",
        "entityClassification": {
          "foundationInfo": {
            "isPrivateFoundation": true
          }
        }
      }
    },
    "investorId": "text",
    "organization": {
      "orgId": "TEST1234",
      "name": "Test Organization"
    },
    "status": "sync",
    "fileIds": [
      "US9QIFILE1",
      "US9QIFILE2"
    ],
    "correlationData": [
      {
        "correlationId": "123245573717",
        "origin": "Identifies investor on backoffice",
        "organization": {
          "name": "Test Organization",
          "orgId": "TEST1234"
        },
        "extraData": {
          "some": "Custom Property"
        }
      }
    ]
  }
]