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
| ID | Used by |
|---|---|
issuerId | Every create route. |
stock_class_id | Valuations, plans, stock-class adjustments. |
vesting_terms_id | Later 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
| Value | Use for |
|---|---|
409A | IRS §409A common-stock fair-market valuations (US-only). |
COMMON_STOCK | Generic common-stock valuation outside the 409A framework. |
FUNDING_ROUND | Preferred-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
| Field | Required | Description |
|---|---|---|
id | Yes | Unique within this set of conditions. Used by next_condition_ids to chain. |
description | No | Human-readable explanation. |
quantity | Yes | Shares released when this condition fires. |
trigger.type | Yes | OCF trigger type — e.g. VESTING_START_DATE, VESTING_SCHEDULE_RELATIVE, VESTING_SCHEDULE_ABSOLUTE, VESTING_EVENT. |
next_condition_ids | Yes | IDs of conditions that fire after this one. Empty array marks a leaf. |
Legends and plans
| Route | Saves | Returns |
|---|---|---|
POST /stock-legend/create | Transfer restriction text. | { "stockLegend": ... } |
POST /stock-plan/create | Plan 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:
| Goal | Route |
|---|---|
| Read | GET /stock-class/id/:id with issuerId body |
| Count | GET /stock-class/total-number with issuerId body |
| Change authorized shares | See 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
| Record | Route |
|---|---|
| Valuation | GET /valuation/id/:id |
| Vesting terms | GET /vesting-terms/id/:id |
| Stock legend | GET /stock-legend/id/:id |
| Stock plan | GET /stock-plan/id/:id |