---
title: "Edit fund Details"
method: POST
path: "/api/v2/funds/update"
tags: ["Fund management"]
---

# Edit fund Details

`POST /api/v2/funds/update`

## Request

- Base URL: `https://capitalcompany.ai`
- URL: `https://capitalcompany.ai/api/v2/funds/update`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

One atomic patch through the web app update mutation. Only supported Details fields are accepted. Omitted fields are not submitted as edits; the shared mutation still normalizes dependent settings. Null semantics are documented for each field. Permissions and effective carry configuration are validated again under the write transaction. Terminated funds are read-only. Required key scope: funds:write.

## Request body

- Update
  - `fundId` string, required: Fund identifier with the fnd_ prefix, returned by creation or the existing /funds endpoint.
  - `changes` object, required: Nonempty patch of supported Details fields. Omitted properties are not submitted as edits. Related settings still follow the shared normalization rules. Null behavior is documented per field.
    - `launchedAt` string, date-time, nullable: Fund launch date as an ISO 8601 date-time; null clears it.
    - `fiscalYearEndMonth` integer: Fiscal year-end month as an integer from 1 through 12. Send with fiscalYearEndDay when changing both.
    - `fiscalYearEndDay` integer: Fiscal year-end day in the selected month. The resulting month/day must form a valid annual date.
    - `type` 'primary' | 'secondary': Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices.
    - `vehicleType` 'blind-pool' | 'spv': Fund vehicle classification. This edit does not move master entities or change series membership; use the web app for structural workflows.
    - `isVentureCapitalFund` boolean: Election to use the venture-capital exemption. Used with a primary strategy; the Details tab displays this election for primary funds.
    - `isRegulationSOffering` boolean: Whether this fund is a Regulation S offering.
    - `requiresCfiusCheck` boolean: Require CFIUS screening. Enabling it also enables beneficial-owner screening; explicitly disabling beneficial-owner screening in the same request is rejected.
    - `requiresBeneficialOwnerCheck` boolean: Require beneficial-owner screening. CFIUS screening requires this to be enabled; disabling it clears the stored ownership threshold.
    - `requiresBeneficialOwnerId` 'non-us-natural-persons' | 'all-natural-persons': Which beneficial owners must supply identification. Uses the same choices as the fund Details tab.
    - `minBeneficialOwnershipPercentage` number, nullable: Beneficial ownership threshold as a fraction (0.25 means 25%). Maximum 0.25. Null retains the current threshold (or the platform threshold when absent) while screening is enabled. Disabling screening clears it.
    - `investorQuestionnaireCustomQuestionAsMarkdown` string, nullable: Custom investor questionnaire question in Markdown. Null or blank clears it. Requires LP-portal edit permission.
    - `distributionStrategy` 'time-weighted-irr' | 'pro-rata': Default strategy used to allocate fund distributions.
    - `carryWaterfallStyle` 'european' | 'american', nullable: Whole-fund (european) or deal-by-deal (american) carry. Null retains the effective current/default style. American requires an LP-level basis plus loss-recovery and clawback choices in the same request.
    - `carryBasisType` 'fund-purchase-only' | 'fund-purchase-plus-fees' | 'lp-net-capital' | 'lp-all-in-capital', nullable: Basis on which carry is computed. Null retains the effective current/default basis. American waterfalls require an LP-level basis.
    - `carryDealLossRecovery` 'none' | 'realized-losses', nullable: Whether a deal-by-deal waterfall recovers realized losses before carry. Cleared for a whole-fund waterfall.
    - `carryClawback` 'fund-end' | 'none', nullable: Whether deal-by-deal carry not earned by the whole fund is clawed back. Required for an american waterfall; cleared for european.
    - `crystallizeCarryOnTransfer` boolean: Whether a sale crystallizes carry. Allowed only for a european waterfall with an LP-level carry basis.
    - `enableCatchupFees` boolean: Enable fee catch-up for later subscriptions using the fund’s configured start date.
    - `catchupFeesStartDate` string, date-time, nullable: Catch-up start date as an ISO 8601 date-time, or null to clear. Enabling catch-up without a date lets the shared mutation choose the operating-agreement signature date or earliest subscription date. Changing it while catch-up is enabled synchronizes applicable accrual dates.
    - `feeAccrualRule` 'subscription-agreement-signed' | 'subscription-closed': Rule selecting the subscription/signature/closing anchor used by fee accrual.
    - `administratorEntityId` string, uuid, nullable: Raw entity UUID of the administrator, chosen from /funds/entities. Its address and role eligibility are checked by the shared mutation.
    - `registeredAgentEntityId` string, uuid, nullable: Raw entity UUID of the registered agent. Required for a series; role and address are validated. Null is accepted only where the shared mutation permits it.

## Response `200`

data is {status:"done",fundId:"fnd_<uuid>"}. Read /funds/details to observe server-normalized settings.

- UpdateResponse
  - `success` true, required
  - `data` object, required
    - `status` 'done', required
    - `fundId` string, required

## Other responses

- `400`: INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.
- `401`: MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.
- `403`: INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.
- `404`: FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.
- `405`: METHOD_NOT_ALLOWED: this endpoint requires POST.
- `409`: CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.
- `429`: RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.
- `500`: Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.

---

[API](https://skmtc.dev/capitalcompany/apis/capital-company-external-api.md) · [All operations](https://skmtc.dev/capitalcompany/apis/capital-company-external-api/llms.txt) · [OpenAPI document](https://skmtc.dev/capitalcompany/apis/capital-company-external-api/revisions/b99bb24f107d?raw)
