Create classes

Defines a new class of shares.

POST /v1/captable/classes

Addresshttps://api.hanzo.ai/v1/captable/classes
MethodPOST
Operationpost_captable_classes
AuthAuthorization: Bearer $HANZO_API_KEY

Defines a new class of shares.

Every field but convertsToShareClassId is required — a class is the instrument every later issuance prices against, so a partially-specified one would silently mis-value every share issued into it. seniority orders liquidation preference with LOWER first.

Request

13 fields, body application/json (required).

FieldInTypeRequiredDescription
boardApprovalDatebodyany—BoardApprovalDate is when the board approved the class, YYYY-MM-DD.
classTypebodyany—ClassType is COMMON or PREFERRED.
conversionRightsbodyany—ConversionRights is CONVERTS_TO_FUTURE_ROUND or CONVERTS_TO_SHARE_CLASS_ID.
convertsToShareClassIdbodyany—ConvertsToShareClassID names the class this one converts into.
initialSharesAuthorizedbodyany—InitialSharesAuthorized is how many shares this class may issue.
liquidationPreferenceMultiplebodyany—LiquidationPreferenceMultiple is the multiple of invested capital paid out before junior classes — 1 for a 1x preference.
namebodyany—Name is the share class's name, e.g. "Series A Preferred".
parValuebodyany—ParValue is the nominal per-share value on the certificate, in the company's currency.
participationCapMultiplebodyany—ParticipationCapMultiple caps participation after the preference is paid, as a multiple of invested capital.
pricePerSharebodyany—PricePerShare is the issue price for this class, in the company's currency.
senioritybodyany—Seniority orders liquidation preference: LOWER is more senior, so 1 is paid before 2.
stockholderApprovalDatebodyany—StockholderApprovalDate is when the stockholders approved it, YYYY-MM-DD.
votesPerSharebodyany—VotesPerShare is how many votes one share of this class carries.

Response

StatusBodyMeaning
201captable.captableCreatedcreated
defaultproblem-detailsrefused

201 body — 3 fields.

FieldInTypeAlwaysDescription
idbodystring—ID is the created row's id.
messagebodystring—Message is the human sentence the cap table wrote, e.g. "Share issued".
successbodyboolean—Success is true when the row was written.

Failure carries the platform error shape — see Errors.

Examples

hanzo captable classes create
import { Configuration, CaptableApi } from 'hanzoai';

const api = new CaptableApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postCaptableClasses({ boardApprovalDate: "<boardApprovalDate>", classType: "<classType>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import CaptableApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = CaptableApi(client).post_captable_classes(board_approval_date="<boardApprovalDate>", class_type="<classType>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.CaptableAPI.PostCaptableClasses(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, captable_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = captable_api::post_captable_classes(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CaptableApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new CaptableApi(client).postCaptableClasses();
curl -X POST https://api.hanzo.ai/v1/captable/classes \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "boardApprovalDate": "<boardApprovalDate>",
       "classType": "<classType>"
     }'

MCP reaches captable through the captable tool, which names its 30 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_captable_classes"
         }
       }
     }'

Captable API · All Hanzo APIs · Interactive reference

Was this page useful?