---
title: "Create an investment fund"
method: POST
path: "/v1/invest/funds"
tags: ["Invest"]
---

# Create an investment fund

`POST /v1/invest/funds`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/invest/funds`
- Auth: API key in header `X-Api-Key`

Create a new investment fund for the application.

## Request body

- CreateInvestFundDto
  - `application` string, uuid, required: The unique identifier of the application
  - `name` string, required: The name of the investment fund
  - `description` string, nullable: Description of the investment fund
  - `currency` 'EUR' | 'USD': Currency of the fund (EUR, USD)
  - `shares` integer, required: Total number of shares in the fund
  - `minimumInvestment` number, nullable: Minimum investment amount
  - `lockupPeriod` string, date, nullable: Lock-up period end date
  - `secondaryMarketOfferDuration` integer, required: Duration of secondary market offers in days
  - `p2pTransfer` boolean: Enable peer-to-peer transfers between investors
  - `secondaryMarket` boolean: Enable secondary market trading
  - `status` 'ACTIVE' | 'DRAFT' | 'CLOSED', required: Current status of the fund (Draft, Active, Closed)
  - `initialNav` number, required: Initial Net Asset Value of the fund (required at creation)

## Response `201`

Investment fund created successfully

- InvestFundDto
  - `application` string, uuid, required: The unique identifier of the application
  - `name` string, required: The name of the investment fund
  - `description` string, nullable: Description of the investment fund
  - `currency` 'EUR' | 'USD': Currency of the fund (EUR, USD)
  - `shares` integer, required: Total number of shares in the fund
  - `minimumInvestment` number, nullable: Minimum investment amount
  - `lockupPeriod` string, date, nullable: Lock-up period end date
  - `secondaryMarketOfferDuration` integer, required: Duration of secondary market offers in days
  - `p2pTransfer` boolean, required: Enable peer-to-peer transfers between investors
  - `secondaryMarket` boolean, required: Enable secondary market trading
  - `status` 'ACTIVE' | 'DRAFT' | 'CLOSED', required: Current status of the fund (Draft, Active, Closed)
  - `id` string, uuid, required: Entity UUID
  - `createdAt` string, date-time, required: Creation date (ISO 8601)
  - `updatedAt` string, date-time, required: Last update date (ISO 8601)
  - `nav` number, required: Current Net Asset Value (computed)
  - `investors` number, required: Number of investors in the fund
  - `distributedShares` integer, required: Total number of shares currently held by investors (computed)
  - `lockedShares` integer, required: Number of distributed shares currently under an active lockup (computed)

## Other responses

- `400`: Invalid input data

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
