Investments

Each investment represents a contract between the issuer of a product and the investor.

Creating investments

Investments are created and processed via the investment endpoints. To create an investment you need at least the following data:

  • The ID of the investor the investment is created for (investor_id)

  • The ID of the campaign the investor wants to invest in (campaign_id)

  • The amount of units of the investment (units)

  • The date and time when the investor gave a binding confirmation to invest (signed_at)

  • A set of signed documents the investor has signed during the investment process (see Signed documents).

Optionally, you can also already set the date and time, when the issuer has accepted the investment (accepted_at field).

All investments need to be marked as accepted by the issuer before they can be processed further. This can either be done via the Cashlink Studio or programmatically via the API.

If you provide the accepted_at field in the request to create an investment, the investment doesn't need to be marked as accepted via the Cashlink Studio.

Optionally, you can already set the following data while creating an investment:

  • Payment date and time (paid_at)

  • Wallet ID (wallet)

See Payments and Wallet associationif you want to update the investment in a separate step with this data.

Status field codes

The status field of an investment may have one of the following values:

Status

Description

KYC_PENDING

The investment is signed but the identification process for the investor is still pending.

REVIEW_PENDING

The external review process is still pending.

WAITING_FOR_ACCEPTANCE

The investment is ready to be accepted by the issuer.

ACCEPTED

The investment has been accepted by the issuer.

PAID

The investment amount has been marked as paid.

DELIVERED

The digital securities have been credited to the recipient's wallet. This is the final state of the process.

KYC_INSUFFICIENT

The KYC/AML check could not be completed successfully due to missing or inconsistent data.

ABORTION

The order has been canceled by the investor.

REJECTION

Order execution has been rejected by the issuer.

CANCELLATION

The contract has been canceled by the investor during the cancellation period.

PAYMENT_MISSING

The order has been canceled because the payment has not yet arrived on time.

Signed documents

Investments involve signed documents that legally describe the investment contract with the issuer (such as a subscription form). You can access the signed documents via the API's signed documents endpoint at any time.

You can upload documents and add them to the investment via the signed documents endpoint. We require the following documents:

Document
Subject
Category

Signed Cashlink terms of service and data protection terms

effecta_cryptoregistry_tos

effecta_cryptoregistry_tos

Signed issuance document (e.g. bond conditions)

effecta_document

effecta_document

Payments

You can mark investments as paid via the API by adding a payment date to the investment via the investments endpoint after the investment has been marked as accepted by the issuer. That means that the accepted_at field is set.

The payment amount is calculated based on the investment amount, agio, disagio and accrued interest. The investment amount is calculated based on the units value set on the investment multiplied by the price of the campaign. The disagio amount can be set for an investment via the disagio field. The agio is a fixed setting set for a specific campaign. The accrued interest is calculated based on the product configuration like interest rate and interest periods.

Please note that the accrued interest and therefore the total payable amount can change until the investment has been marked as accepted by the issuer. Show the total payment amount to investors only after the investment has been accepted.

Wallet association

For an investment to settle on-ledger, the investor's wallet used for this particular investment is required. Wallets can be associated with an investment directly during creation or they can be added afterwards by updating the investment.

The wallet association can be updated as long as the investment's issuance transaction has not been triggered yet.

Crediting crypto securities or digital securities

You are able to trigger the crediting of crypto securities or digital securities by providing the ID of the investment. The crediting can only be triggered if a wallet has been created for the investor and assigned to the investment. Also, the payment amount must be marked as received.

The crediting triggers an issuance transaction on-ledger increasing the balance of the wallet associated with the investment by the purchased number of units.

The response contains a status field with the following codes:

  • processing: The task is created and is currently being executed

  • failed: The task could not be completed

  • succeeded: The task was completed successfully

  • unknown: The task needs manual investigation to determine if the transaction has actually succeeded

If the task failed because the issuance transaction on-ledger could not be executed, the error message indicates that. If the task succeeded, the status of the investment is updated to DELIVERED.

Cancellations

Using the cancellation endpoint, you can submit the request of an investor for an investment to be aborted. The investment will receive the status ABORTED. The investment can be canceled by the investor if the investment is in one of the following states:

  • PENDING

  • KYC_PENDING

  • REVIEW_PENDING

  • WAITING_FOR_ACCEPTANCE

If the investment cannot be aborted via API, an error will be returned to the client.

Using the Cashlink Studio, there are additional ways to cancel an investment as an issuer. This includes the following cases:

  • The KYC/AML process could not be completed in time

  • The payment has not been received in full and in time

  • The issuer has rejected the investment

Registry statements

If the investment was made into a crypto security, you can retrieve all registry statements for an investment via the registry-statements endpoint (GET /investments/:id/registry-statements/). If you use our webhooks, you will get informed about new registry statements that are available.

New registry statements are created for every change to the remaining amount of the investment (e.g. because of an outgoing transfer) and also on a yearly basis.

Last updated

Was this helpful?