Skip to Content
FeaturesCorporate ActionsSave Valuations and Terms

Save Valuations and Terms

Save pricing, vesting, legends, plans, and stock-class support data. Each create route writes a MongoDB record only — history rows come from the Transfer, Cancel, and Reissue Stock routes.

Records are immutable in TAP. When terms change, create a new record and reference it by ID from the next issuance.

Inputs

IDUsed by
issuerIdEvery create route.
stock_class_idValuations, plans, stock-class adjustments.
vesting_terms_idLater issuance workflows.

Valuation

POST /valuation/create

Show valuation request
{ "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": [] } }

Returns: { "valuation": ... }.

valuation_type values

ValueUse for
409AIRS §409A common-stock fair-market valuations (US-only).
COMMON_STOCKGeneric common-stock valuation outside the 409A framework.
FUNDING_ROUNDPreferred-stock pricing for a specific financing round.

Vesting terms

POST /vesting-terms/create

Show vesting-terms request
{ "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": [] } ] } }

Returns: { "vestingTerms": ... }.

vesting_conditions[] fields

FieldRequiredDescription
idYesUnique within this set of conditions. Used by next_condition_ids to chain.
descriptionNoHuman-readable explanation.
quantityYesShares released when this condition fires.
trigger.typeYesOCF trigger type — e.g. VESTING_START_DATE, VESTING_SCHEDULE_RELATIVE, VESTING_SCHEDULE_ABSOLUTE, VESTING_EVENT.
next_condition_idsYesIDs of conditions that fire after this one. Empty array marks a leaf.

Legends and plans

RouteSavesReturns
POST /stock-legend/createTransfer restriction text.{ "stockLegend": ... }
POST /stock-plan/createPlan terms for future equity comp.{ "stockPlan": ... }

Stock plan body:

Show stock-plan request
{ "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": [] } }

Stock class

There is no general stock-class metadata update route. To change a stock class, use:

GoalRoute
ReadGET /stock-class/id/:id with issuerId body
CountGET /stock-class/total-number with issuerId body
Change authorized sharesSee Adjust authorized shares on the Transfer, Cancel, and Reissue Stock page — those are history-producing routes that live with the rest of the corporate-action flows.

Read back

RecordRoute
ValuationGET /valuation/id/:id
Vesting termsGET /vesting-terms/id/:id
Stock legendGET /stock-legend/id/:id
Stock planGET /stock-plan/id/:id

Next: Save Equity Compensation and Convertibles.

Last updated on