FeaturesCorporate ActionsSave Valuations and Terms

Save Valuations and Terms

Use this page when you need to save pricing, vesting, legend, plan, or stock class support data.

When terms change, create a new record. These routes do not rewrite past transactions.

Save a 409A valuation

Use POST /valuation/create when the fair market value changes.

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "provider": "Example Valuation Firm",
        "board_approval_date": "2026-04-20",
        "stockholder_approval_date": "2026-04-20",
        "price_per_share": {
            "currency": "USD",
            "amount": "4.20"
        },
        "effective_date": "2026-04-20",
        "stock_class_id": "<YOUR_STOCK_CLASS_ID>",
        "valuation_type": "409A",
        "comments": []
    }
}

The response returns { "valuation": ... }.

Read it back with GET /valuation/id/:id or GET /valuation/total-number.

Save vesting terms

Use POST /vesting-terms/create to save a vesting schedule that future issuances can reference.

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "name": "Founder Vesting",
        "description": "Full vesting at the vesting commencement date.",
        "allocation_type": "CUMULATIVE_ROUNDING",
        "vesting_conditions": [
            {
                "id": "founder-start",
                "description": "Fully vested at start date.",
                "quantity": "100000",
                "trigger": {
                    "type": "VESTING_START_DATE"
                },
                "next_condition_ids": []
            }
        ]
    }
}

The response returns { "vestingTerms": ... }.

Read it back with GET /vesting-terms/id/:id or GET /vesting-terms/total-number.

Save stock legends and stock plans

Use POST /stock-legend/create to save reusable legend text.

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "name": "Restricted Stock Legend",
        "text": "The shares represented by this certificate are subject to transfer restrictions.",
        "comments": []
    }
}

The response returns { "stockLegend": ... }.

Read it back with GET /stock-legend/id/:id or GET /stock-legend/total-number.

Use POST /stock-plan/create to save the stock plan details used by future equity compensation issuances.

{
    "issuerId": "<YOUR_ISSUER_ID>",
    "data": {
        "plan_name": "Transfer Agent Protocol 2026 Plan",
        "board_approval_date": "2026-01-15",
        "stockholder_approval_date": "2026-01-20",
        "initial_shares_reserved": "1000000",
        "default_cancellation_behavior": "RETURN_TO_POOL",
        "stock_class_id": "<YOUR_STOCK_CLASS_ID>",
        "comments": []
    }
}

The response returns { "stockPlan": ... }.

Read it back with GET /stock-plan/id/:id or GET /stock-plan/total-number.

Maintain a stock class

Use this part of the page when you need to check the stock class record or change its authorized share count.

  • use GET /stock-class/id/:id to read the stock class summary
  • use GET /stock-class/total-number to count stock classes
  • use POST /transactions/adjust/stock-class/authorized-shares when the authorized share count changes

There is no general metadata update route for stock classes today. If you need a new authorized share count, create a new adjustment event instead of editing history.

Read the stock class back with GET /stock-class/id/:id, and use the adjustment route when the authorized share count changes.

What’s next?

Use Save Equity Compensation and Convertibles when those records need to be tied to equity compensation or convertible transactions.