Invest

Distribute shares to an investor

Distribute shares from the fund to an investor. Creates or increments a holding and records an INITIAL_DISTRIBUTION transaction. Fails if the total distributed shares would exceed the fund capacity.

post/v1/invest/funds/{fundId}/holdings/distribute

Request

  • Base URL: https://api.prod.keyban.io
  • URL: https://api.prod.keyban.io/v1/invest/funds/{fundId}/holdings/distribute
  • Auth: API key in header X-Api-Key

Path parameters

fundIdstring uuid required

The unique identifier of the investment fund

Request body

identitystring uuid required

The unique identifier of the investor identity

sharesinteger required

Number of shares to distribute

pricenumber required

Total price of the distribution

Response

Shares distributed successfully

idstring uuid required

Entity UUID

createdAtstring date-time required

Creation date (ISO 8601)

updatedAtstring date-time required

Last update date (ISO 8601)

fundstring uuid required

The unique identifier of the investment fund

sellerstring uuid nullable

UUID of the InvestIdentity acting as the seller. Null when type is INITIAL_DISTRIBUTION (primary issuance: the fund itself emits shares, there is no selling counterparty).

buyerstring uuid nullable

UUID of the InvestIdentity acting as the buyer. Null when type is BUY_BACK (the fund redeems shares from an investor; there is no buying counterparty).

sharesinteger required

Number of whole shares exchanged in this transaction (minimum 1).

pricenumber required

Unit price per share in the fund currency at the time of the transaction. Multiply by shares to obtain the total settlement amount.

currency'EUR' | 'USD' required

Currency of the transaction, inherited from the fund (ISO 4217 code, e.g. EUR, USD).

type'INITIAL_DISTRIBUTION' | 'BUY_BACK' | 'SECONDARY_MARKET' required

Transaction type. INITIAL_DISTRIBUTION: primary issuance of shares from the fund to a KYC-verified investor — seller is null. BUY_BACK: fund redemption of shares held by an investor — buyer is null. SECONDARY_MARKET: peer-to-peer transfer of shares between two investors via a secondary-market offer.

status'PENDING' | 'VALIDATED' | 'REJECTED' required

Lifecycle status of the transaction. PENDING: submitted and awaiting validation (KYC check, blockchain settlement). VALIDATED: confirmed on-chain; shares have been transferred. REJECTED: declined due to KYC failure, lockup period violation, or insufficient funds.

Example response

{
  "fund": "550e8400-e29b-41d4-a716-446655440000",
  "seller": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "buyer": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "shares": 100,
  "price": 125.5,
  "currency": "EUR",
  "type": "SECONDARY_MARKET",
  "status": "VALIDATED"
}

Changes

No recorded changes to this operation across all 1 revision of this API.