Transfers
Transfers represent secondary market transactions between investor accounts. Once a transfer is processed successfully the ownership of a certain amount of a crypto security changes.
Preconditions for a transfer
The following preconditions must be fulfilled to allow for a transfer:
The source wallet is a managed wallet. If the source wallet is not managed by Cashlink, please refer to the documentation of the wallet software for creating a transfer.
The managed source wallet must not be frozen.
The recipient wallet is added as a wallet to an investor account on Cashlink Connect.
The recipient wallet has incoming transfers enabled.
The product to be transferred is listed on the distribution platform of the recipient investor.
The amount of the transfer must be lower than the available amount for the product on the source wallet. The available amount excludes frozen amounts on the wallet.
The lock-up period of the product has ended.
Transfers on the crypto security are not currently paused.
Creating a transfer
Once the preconditions are fulfilled, you can create a transfer using the /transfers/ endpoint.
Example:
# Create transfer
r = requests.post(
f'{URL}/distributor/v2/transfers/',
json={
'product': product_id,
'source_wallet': wallet_id,
'target_address': target_address,
'amount': 1
},
headers={**headers, 'X-Idempotency-Key': make_key()}
)
assert r.status_code < 300, r.content
print(r.json())
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. Please contact the Cashlink Support Desk.
succeeded: The task was completed successfully
unknown: The task needs manual investigation to determine if the transaction has actually succeeded. Please contact the Cashlink Support Desk.
The processing time is dependent on the DLT network and the current usage.
Transfers and investments
After the transfer has been processed, a new investment will be created for the receiving investor account that represents that purchase transaction.
The remaining amount of the source investment is reduced. The source investment is determined by a First-In-First-Out approach.
Updated information about the source investment as well as the newly created target investment are available via the Distributor API’s investment endpoints.
Two-factor authentication
There is no Two-Factor-Authentication (2FA) enforced directly via the Distributor API. If you need to add a 2FA security mechanism you're free to do so on your end and only sent transfer requests for approved transactions.
Gas fees
If you create a transfer for a managed wallet, the Cashlink gas tank wallet will pay any applicable transaction fees. With the next billing cycle the gas fees will be invoiced to you in EUR.
Retrieving transfer information
You can use the transfer endpoints to retrieve information about all transfers as well as details about individual transfers:
Example:
# Get list of transfers
r = requests.get(
f'{URL}/distributor/v2/transfers/',
headers={**headers}
)
assert r.status_code < 300, r.content
print(f'Transfer status: {r.json()[0]['status']}')
Last updated
Was this helpful?