Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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.
Initial Fund Setup (see optional steps)
The following list summarizes the primary endpoints required to support service provider management within the fund/offering life cycle:
Assign Service Provider to Offering
Remove Service Provider from Offering
Get Assigned Service Providers
Get Service Provider Assignment History
Asset managers can assign service providers, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.
/external/v1/service-providers/pending-assignments
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.
/external/v1/service-providers/accept
See Blockchain Transaction Tracking for information on using orchestrationId and processId.
\
A service provider, such as a fund administrator, can decline a role for an offering by rejecting the assignment.
/external/v1/service-providers/reject
See Blockchain Transaction Tracking for information on using orchestrationId and processId.
\
Service providers are third-party organizations, such as fund administrators, that take part in tasks associated with the lifecycle of an offering.
Caller must be the security owner.
securityId: uniquely identifies the fund/offering. See .
See for information on using orchestrationId and processId.
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".
This property contains the transactional data information, i.e. which is the security being affected by this action
{"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
The id of the service provider organization. Used to uniquely identify the organization on the ledger
US9QIMA
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"
}
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".
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"
}
]
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".
The number of rows being retrieved. Must be a positive integer.
The offset (i.e. row start index). Must be a positive integer (or 0).
The comma delimited list of organization ids to filter the assignment records. Each record should not exceed 12 characters.
USCCWSF01I00,USCCWSF01I01
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.
USCCWSF01I00,USCCWSF01I01
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.
1234,5678,7890
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.
The comma delimited list of statuses to filter the assignment records. Up to 4 entries can be provided.
Available values: assigned, accepted, rejected, inactive
assigned,accepted
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"
}
]
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".
This property contains the transactional data information, i.e. which is the security being affected by this action
{"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
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"
}
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".
This property contains the transactional data information, i.e. which is the security being affected by this action
{"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
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"
}
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".
The number of rows being retrieved. Must be a positive integer.
The offset (i.e. row start index). Must be a positive integer (or 0).
The block number where the action was recorded on the ledger.
350
The transaction id where the action was recorded on the ledger.
456789OIJHGFCVGHJKLKJHGF67JH
Pattern: ^[a-zA-Z0-9-]*$
The name of the channel where the action was recorded on the ledger.
OG123
Pattern: ^[a-zA-Z0-9-]*$
The comma delimited list of organization ids to filter the assignment history records. Each record should not exceed 12 characters.
USCCWSF01I00,USCCWSF01I01
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.
USCCWSF01I00,USCCWSF01I01
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.
1234,5678,7890
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.
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"
}
}
]
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".
This property contains the transactional data information, i.e. which is the security being affected by this action
{"securityId":"USS3JKS01I00","signer":{"email":"[email protected]","name":"John Doe"}}
The id of the service provider organization. Used to uniquely identify the organization on the ledger
US9QIMA
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"
}