---
title: "Submit or revise a commitment amount"
method: POST
path: "/api/v2/lp/commit"
tags: ["LPs"]
---

# Submit or revise a commitment amount

`POST /api/v2/lp/commit`

## Request

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

Uses the investor portal mutation. Requires a verified LP account and eligible invitation. The LP may revise while editing is enabled and the agreement is not fully signed. Repeating the same amount is unchanged. Changing the amount may void the previous agreement and send a replacement. Check subscriptionAgreement delivery fields even after HTTP 200; a saved commitment can outlive a delivery failure. Required key scope: lp:write.

## Request body

- LpCommit
  - `email` string, required: Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.
  - `fund_legal_name` string, required: Fund legal name, matched case-insensitively within the key’s team. The fund with the lowest ID is selected if names collide.
  - `amount` number, required: Positive subscription amount in the fund’s currency, in major units (not cents). The same minimum/maximum and editing rules as the investor portal apply.

## Response `200`

Raw commitment/fund UUIDs, saved amount, created/updated/unchanged outcome, agreement delivery and next steps.

- LpCommitResponse
  - `success` true, required
  - `data` object, required
    - `commitmentId` string, uuid, required: Raw UUID, unlike the cmt_ IDs on read endpoints.
    - `fundId` string, uuid, required: Raw UUID, unlike the fnd_ IDs on read endpoints.
    - `fundLegalName` string, required
    - `entityLegalName` string, nullable, required
    - `subscriptionAmount` number, nullable, required
    - `isNew` boolean, required
    - `nextSteps` object, required
      - `kycRequired` boolean, required
      - `imApprovalRequired` boolean, required
    - `outcome` 'created' | 'updated' | 'unchanged', required
    - `subscriptionAgreement` object, required
      - `sent` boolean, required
      - `pending` boolean, required
      - `error` string, nullable, required
      - `previousAgreementVoided` boolean, required

## Other responses

- `400`: INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: correct the body or the subscription amount.
- `401`: MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.
- `403`: INSUFFICIENT_SCOPE: the key lacks the required scope.
- `404`: LP_NOT_FOUND, FUND_NOT_FOUND or PENDING_COMMITMENT_NOT_FOUND: a verified account, team fund and eligible invitation are required.
- `405`: METHOD_NOT_ALLOWED: this endpoint requires POST.
- `409`: COMMITMENT_NOT_PENDING: investor editing is disabled or the subscription agreement is fully signed.
- `429`: RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.
- `500`: INTERNAL_ERROR: unexpected server error.

---

[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)
