---
title: "OCTA Schema"
description: "Open Cap Table Alliance v2.0 data model — entities, JSON examples, and interoperability"
canonical: "https://docs.ainative.studio/docs/opencapstack/octa-schema"
last-updated: "2026-10-03T21:47:10.764Z"
---

# OCTA Schema

Source: https://docs.ainative.studio/docs/opencapstack/octa-schema

> Open Cap Table Alliance v2.0 data model — entities, JSON examples, and interoperability

# OCTA Schema

OpenCap Stack is fully aligned with the **Open Cap Table Alliance (OCTA) v2.0** schema — the industry standard for interoperable equity data. This means cap table data can be exported, imported, and shared with any OCTA-compatible tool (Carta, Pulley, AngelList, law firm platforms).

---

## Core Entities

### Stakeholder

```json
{
  "id": "stakeholder_abc123",
  "name": "Jane Doe",
  "email": "jane@startup.com",
  "type": "FOUNDER",
  "title": "CEO",
  "companyId": "co_xyz789",
  "address": {
    "line1": "123 Main St",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "postalCode": "94105"
  },
  "taxId": "***-**-1234",
  "createdAt": "2024-01-01T00:00:00Z"
}
```

**Types:** `FOUNDER` `INVESTOR` `EMPLOYEE` `ADVISOR` `BOARD_MEMBER` `CONSULTANT`

---

### ShareClass

```json
{
  "id": "sc_series_a",
  "name": "Series A Preferred",
  "type": "PREFERRED",
  "totalShares": 10000000,
  "authorizedShares": 12000000,
  "pricePerShare": 1.00,
  "liquidationPreference": 1.0,
  "participationRights": "NON_PARTICIPATING",
  "conversionRatio": 1.0,
  "dividendRate": 0.08,
  "isConvertible": true,
  "votesPerShare": 1,
  "companyId": "co_xyz789"
}
```

**Types:** `COMMON` `PREFERRED` `OPTIONS_POOL` `WARRANT` `CONVERTIBLE_NOTE`

---

### EquityGrant

```json
{
  "id": "grant_def456",
  "grantNumber": "GRANT-MP34648T-FF2DB6F9",
  "stakeholderId": "stakeholder_abc123",
  "shareClassId": "sc_options_pool",
  "quantity": 100000,
  "grantType": "OPTION",
  "strikePrice": 0.10,
  "fairMarketValue": 0.50,
  "vestingSchedule": "4_YEAR_1_YEAR_CLIFF",
  "grantDate": "2026-01-01",
  "vestingStartDate": "2026-01-01",
  "cliffDate": "2027-01-01",
  "fullyVestedDate": "2030-01-01",
  "status": "APPROVED",
  "companyId": "co_xyz789"
}
```

**Grant types:** `OPTION` `RSU` `WARRANT` `RESTRICTED_STOCK` `PHANTOM_STOCK`

**Vesting schedules:** `4_YEAR_1_YEAR_CLIFF` `3_YEAR_MONTHLY` `2_YEAR_6_MONTH_CLIFF` `IMMEDIATE` `CUSTOM`

---

### SAFENote

```json
{
  "id": "safe_ghi789",
  "investorId": "stakeholder_investor1",
  "investmentAmount": 500000,
  "valuationCap": 10000000,
  "discountRate": 0.20,
  "safeType": "POST_MONEY",
  "status": "ACTIVE",
  "issueDate": "2026-01-15",
  "convertedDate": null,
  "convertedShareClassId": null,
  "proRataRights": true,
  "mfnProvision": false,
  "companyId": "co_xyz789"
}
```

**SAFE types:** `PRE_MONEY` `POST_MONEY` `MFN` (Most Favored Nation)

---

### Valuation409A

```json
{
  "id": "val_jkl012",
  "valuationDate": "2026-03-01",
  "commonStockFMV": 0.50,
  "preferredStockFMV": 1.00,
  "company409AValue": 15000000,
  "methodology": "INCOME_APPROACH",
  "provider": "Internal",
  "status": "APPROVED",
  "expiresAt": "2027-03-01",
  "notes": "Pre-Series B 409A",
  "companyId": "co_xyz789"
}
```

---

## OCTA Export Format

Export a full cap table as OCTA-compliant JSON:

```bash
curl https://api.opencapstack.com/api/v1/cap-table/export?format=octa \
  -H "Authorization: Bearer $TOKEN"
```

**OCTA v2.0 export envelope:**

```json
{
  "schema_version": "2.0",
  "generated_at": "2026-05-13T00:00:00Z",
  "company": {
    "id": "co_xyz789",
    "name": "Startup Inc.",
    "formation_date": "2023-01-01",
    "jurisdiction": "DE",
    "tax_id": "XX-XXXXXXX"
  },
  "stakeholders": [...],
  "share_classes": [...],
  "equity_grants": [...],
  "safe_notes": [...],
  "valuations": [...],
  "cap_table_snapshot": {
    "as_of_date": "2026-05-13",
    "total_authorized": 20000000,
    "total_issued": 12500000,
    "fully_diluted": 14000000
  }
}
```

---

## Import from Other Platforms

Import OCTA-compliant exports from Carta, Pulley, or other platforms:

```bash
curl -X POST https://api.opencapstack.com/api/v1/cap-table/import \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @octa_export.json
```

The importer validates the OCTA schema, deduplicates stakeholders by email, and maps share class types automatically.

---

## Interoperability

OpenCap Stack's OCTA alignment means data flows freely between:

| Platform | Direction | Format |
|----------|-----------|--------|
| Carta | Export from Carta → Import to OpenCap Stack | OCTA v2.0 JSON |
| Pulley | Bidirectional | OCTA v2.0 JSON |
| AngelList | Import from AL → OpenCap Stack | OCTA v2.0 JSON |
| Law firm platforms | Export for legal review | OCTA v2.0 JSON |
| Custom tools | REST API or MCP | Native JSON or OCTA |

For the full OCTA specification: [opencaptablecoalition.com](https://www.opencaptablecoalition.com)
