All pages
Powered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

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

AM/FA - Get Assigned Investing Organizations

Details

/external/v1/exclusivity

Synopsis

Important Notes

  • securityId: identifier for the fund/offering. See Managing the SecurityId.

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

Initial Fund/Offering Setup

Mapping Your IDs to Corastone IDs

Endpoints

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

Add Organization to Exclusivity List

Accept Assignment to Exclusive Offering

Reject Assignment to Exclusive Offering

Remove Organization from Exclusive Offering List

Update isRepLetterProvided

Getters

Get Pending Assignment

Get Assigned Investing Organizations

Get Investor Org Assignment History

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 - 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 - Update isRepLetterProvided

Details

/external/v1/exclusivity/update-rep-letter-provided

Synopsis

AM/FA - Get Investor Org Assignment History

Details

/external/v1/exclusivity/history

Synopsis

Inv - Get Pending Assignment

Details

/external/v1/exclusivity/pending-assignments

Synopsis

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"
}

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 Assigned Investing Organizations

get

This route is used to extract all the investing organizations 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 "readExclusivityOptions".

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/exclusivity HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "orgId": "US9QIMA",
    "name": "State Street",
    "status": "assigned",
    "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)"
            }
          ]
        }
      }
    },
    "isRepLetterProvided": true,
    "feesInfo": {
      "feesTemplateId": "US9QIMA",
      "name": "Fees Template Name",
      "status": "created",
      "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"
                }
              ]
            }
          ]
        }
      ],
      "maxFrontendFee": 1,
      "backendFee": 0
    },
    "role": "investor",
    "securityId": "USCCWSF01I01"
  }
]

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"
}

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"
}

Updates isRepLetterProvided for Investor Org on Exclusivity list

put

This route is used to update the value of the isRepLetterProvided field for the organization on the exclusivity list.

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 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
isRepLetterProvidedbooleanRequired

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.

Default: falseExample: true
Responses
200
Successfully triggered the process to update isRepLetterProvided field for the investor org on 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 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 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 - EX0005 Please refer to the error code dictionary for the details of each error code.
application/json
put
PUT /external/v1/exclusivity/update-rep-letter-provided HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 154

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

Get Investor Org Assignment History

get

This route is to get the history of investor 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 "readExclusivityOptions".

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 investor org 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/exclusivity/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",
      "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)"
              }
            ]
          }
        }
      },
      "isRepLetterProvided": false,
      "orgId": "TEST1234",
      "name": "Test Organization"
    }
  }
]

Get Pending Assignment

get

This route is used to get the pending assignment requests for this current organization.

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

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/exclusivity/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",
    "details": [
      {
        "securityId": "USS3JKS01I00",
        "status": "assigned"
      }
    ],
    "syncJobStatus": "success",
    "blockNumber": "text",
    "blockchainTransactionId": "text"
  }
]