Approvals are governance records that capture the decision chain required before a cap table action is finalized. Every approval moves through a defined lifecycle: it starts as a Draft, is submitted for review (Submitted), advances as each step is decided (Approved once all steps pass), and is finally locked (Locked) to make it immutable. An approval must be in the Locked state before it can gate token minting through the Securities table. You can attach multiple sequential steps to an approval — for example, a legal review step followed by a board vote step. Each step carries its ownDocumentation Index
Fetch the complete documentation index at: https://docs.launchboard.xyz/llms.txt
Use this file to discover all available pages before exploring further.
PENDING → APPROVED / REJECTED status. The parent approval transitions to Approved only when every step resolves to APPROVED.
List approvals
Returns a cursor-paginated list of approval requests for your organization. Filter bystatus or entityType to narrow results.
GET /api/v1/approvals
| Query param | Type | Description |
|---|---|---|
status | string | Filter by status: Draft, Submitted, Approved, Rejected, or Locked. |
entityType | string | Filter by entity type (e.g. Stock Issuance, Option Grant). |
limit | integer | Page size. Defaults to 25, maximum 100. |
cursor | string | Opaque cursor from the previous page’s nextCursor. |
Create an approval
Creates a new approval request in Draft state. You can optionally provide initial steps in the same request.POST /api/v1/approvals
Requires role: EDITOR. Idempotent with an Idempotency-Key header.
Human-readable title for the approval (e.g.
"Q1 option grants — engineering cohort"). Maximum 200 characters.The type of equity event this approval covers. One of:
Stock Issuance, Option Grant, RSU Grant, Warrant Issuance, Convertible Issuance, Stock Transfer, Exercise, Conversion, Cancellation, Repurchase, Valuation, Equity Plan, Stock Split, Other.Deadline for completing this approval (
YYYY-MM-DD).Free-text context or instructions. Maximum 2000 characters.
Initial steps to create alongside the approval. Each element requires a
name (string, max 100 chars). Steps can also be added later via POST /approvals/{id}/steps.201 Created
Get an approval
Retrieves a single approval by ID.GET /api/v1/approvals/{id}
Requires role: VIEWER.
Update an approval
Updates a Draft approval’s metadata. You cannot update an approval that has been submitted or locked.PATCH /api/v1/approvals/{id}
Requires role: EDITOR. Returns 409 Conflict if the approval is not in Draft state.
Updated title. Maximum 200 characters.
Updated entity type.
Updated deadline (
YYYY-MM-DD).Updated notes. Maximum 2000 characters.
Delete an approval
Permanently deletes a Draft approval and all its steps. Returns409 Conflict if the approval has been submitted.
DELETE /api/v1/approvals/{id}
Requires role: EDITOR.
204 No Content
Submit for review
Moves a Draft approval to Submitted, signalling that it is ready for step decisions. Returns409 Conflict if the approval is already past Draft state.
POST /api/v1/approvals/{id}/submit
Requires role: EDITOR. No request body.
200 OK
Returns the updated approval object with state: "Submitted".
Add a step
Appends a new approval step to an existing approval. Steps can only be added while the approval is in Draft or Submitted state.POST /api/v1/approvals/{id}/steps
Requires role: EDITOR. Returns 409 Conflict if the approval is locked.
Display name for the step (e.g.
"CFO sign-off"). Maximum 100 characters.201 Created
Unique step ID. Reference this as
{stepId} when updating or deleting the step.PENDING, APPROVED, or REJECTED.1-based position of this step in the approval sequence.
Lock an approval
Locks an Approved approval, making it immutable and eligible to gate token minting. Returns409 Conflict if the approval is not in Approved state (i.e. all steps must be approved first).
POST /api/v1/approvals/{id}/lock
Requires role: EDITOR. No request body.
200 OK
Returns the updated approval object with state: "Locked" and lockedAt set to the current timestamp.
Approval lifecycle
The diagram below shows the valid state transitions:| From state | Transition | To state |
|---|---|---|
Draft | POST /{id}/submit | Submitted |
Submitted | All steps approved | Approved |
Submitted | Any step rejected | Rejected |
Approved | POST /{id}/lock | Locked |
An approval must reach
Locked status before it can authorize token minting in the Securities table. Approvals in Draft, Submitted, or Approved state are not yet eligible.Error codes
| Status | When it occurs |
|---|---|
401 | Missing or invalid API key. |
403 | Key role is below the required level. |
404 | Approval or step not found, or does not belong to your organization. |
409 | State transition is not permitted (e.g. trying to submit a Locked approval, or delete a non-Draft approval). |
422 | Request body failed validation. |