The Investments endpoint is used to keep track of the investors who commit to and/or invest in SPVs. To associate an investor with an SPV and successfully make an investment, you will need an SPV ID and a valid profile ID with the role investor. The investment endpoints are as follows:

  • GET – /api/investments (investment index)

  • POST – /api/investments (join investment using the invite_code)

  • GET – /api/investments/{id} (fetch specific investment)

  • PUT – /api/investmens/{id} (investments update)

  • GET – /api/investments/{id}/sign (sign subscriptions document for an investment)

In the response, upon creation of an SPV, you will receive a string field, invite_code. The invite_code code is a unique URL tied to a function that allows an investor profile to join the SPV with which the the code is associated. Once you have the invite_code, you can have users initiate a POST API call using the link to the following endpoint to create the investment


When creating a new investment, you will need to specify the /investments.write scope. The request body schema is as follows:

  • invite_code (string) *required

    • Unique URL generated and returned in the response of a successful SPV POST API call

    • Unique URL must be used in this field for the API call

  • user_profile_id (string) *required

    • Profile ID for the investor

    • Profile role must be investor

  • invest_amount (integer) *required

    • Amount, expressed as $USD that the investor would like to commit to invest in the SPV

    • If amount is outside the investor_minimum_value, investor_maximum_value, or exceeds the spv_target_value and invest_no_limit_flag is no, you will receive an error in the response

Sample Request Payload #
“invite_code”: “string”
“user_profile_id”: “0”
“invest_amount”: “0”
Sample Response Payload (200) #
“id”: 0
“user_profile_id”: 0
“spv_id”: 0
“invest_amount”: “string”,
“confirmed_amount”: “string”,
“ownership_percent”: “string”,
“document_uuid”: “string”,
“share_uuid”: “string”,
“status”: “string”,
“created_at”: “string”

The response body schemas are as follows:

  • id

    • ID that identifies this investment

  • confirmed_amount

    • Confirmation of the amount from the manager

    • By default, the confirmed_amount returns the same value as invest_amount unless changed for any reason by the manager

  • ownership_percentage

    • Represented as a % (percent of overall ownership in the SPV that the investment and associated profile ID has)

    • Percentage is dynamic and will automatically change as new investments come in but will only be calculated for each investor once their status is 5 (complete).

  • status

    • values: not started, committed, docs_needed, docs_signed, wire_needed, completed, passed

      • not_started: investor has clicked the invite_code but has not put in a invest_amount yet

      • committed : investor has committed to an invest_amount, but the SPV does not have a tax_id value so it cannot accept subscription documents yet

      • docs_needed: investor has committed to an invest_amount and the SPV has a tax_id and signed operating agreement

      • docs_signed: subscription documents was signed, which enables the ability to make a transfer

      • wire_needed: SPV status set to close_pening, but the investment has not submitted their investment

      • completed: both subscription documents and investment transfer have been made

      • passed: investor decided to ultimately not invest after accepting the invite_code