Cookbook
Adopt an equity plan
Authorize a stock-incentive plan with a board resolution, and a stockholder consent within 12 months for ISO eligibility per IRC §422.
Last updated
Authorize an option pool, request board and stockholder approval, generate the plan document, and register the underlying shares for issuance.
Trigger
The board has agreed (in principle) to set aside an option pool. You're ready to make it real.
Call sequence
1. Author the plan
POST /v1/equity_plans { entity, pool: 1500000, type: 'incentive_stock_option' }2. Request board consent
POST /v1/board_consents { entity, actions: [{ kind: 'approve_equity_plan', plan }] }3. Request stockholder consent
POST /v1/approvals { entity, kind: 'majority_written_consent', actions: [{ kind: 'approve_equity_plan', plan }] }4. Reserve the pool against authorized shares
PATCH /v1/equity_plans/{plan} { reserve: true }Idempotency
Plan creation is idempotent on `(entity, name, type)`. Re-issuing consents on a signed plan returns the existing consent.
Webhooks
| Event | Description |
|---|---|
equity_plan.created | Plan exists in pending status. |
board_consent.signed | Board has approved. |
equity_plan.adopted | Plan is live; you can issue grants. |
Errors
| Status | Code | Description |
|---|---|---|
422 | insufficient_authorized_shares | The pool exceeds remaining authorized shares. Increase authorized shares first. |
Related
When to reach for it
Once at formation. Once after every priced round (the round close package runs the pool top-up automatically — see issue-a-priced-round). Once whenever the board votes to expand the pool independently of a financing.
The formation-time EquityPlan shipped by
form-a-company is a stub — it sets a default
authorized-share ceiling but is not an IRC §422-compliant plan. ISO
grants against it return 422 plan_unauthorized_for_iso. Run this recipe
to adopt a real plan before you issue your first option grant.
Adoption sequencing
The plan returns in drafted until both adopting resolutions sign. Once
the board signs, equity_plan.adopted fires and grants can issue as
nso / rsu / rsa. ISO grants stay blocked
(422 plan_unauthorized_for_iso) until the stockholder envelope completes
— at which point equity_plan.iso_eligible fires and ISO grants unblock.
The stockholder consent can be deferred up to 12 months from board adoption per IRC §422(b)(1) — backwards or forwards. NSO grants are not gated on stockholder approval; ISO grants are.
Error recovery
| Failure | Cause | Remediation |
|---|---|---|
409 plan_already_active | An EquityPlan is already active on this entity. | Either grant against the existing plan, or run a pool top-up via the Pool top-up variation instead of adopting a second plan. |
412 no_directors_on_entity | Entity.directors[] is empty. | Add directors via POST /v1/entities/{id}/officers; reuse the same Idempotency-Key. |
412 no_stockholders_for_iso | iso_eligible: true but no holders representing voting power exist yet. | Either flip iso_eligible: false (board-only adoption; ISOs blocked until later) or backfill stockholders via /restate-cap-table before retrying. |
408 stockholder_deadline_lapsed | Stockholder envelope timed out beyond deadline_days. | The plan stays active but ISOs remain blocked. Open a fresh stockholder envelope via POST /v1/workflows/generate_board_consent with kind: option_plan_stockholder_approval referencing this equity_plan_id. |
400 authorized_shares_exceeds_pool | authorized_shares exceeds the entity's unallocated common pool. | Either lower the request or amend the charter to authorize more common; see issue-a-priced-round for the charter-amendment shape. |
Full taxonomy at errors.
Variations
Expand the authorized-share count of an already-active plan after a priced round (or whenever the board independently votes a top-up). Uses the amendment endpoint, not the create endpoint.
curl -X POST https://api.mattermode.com/v1/equity_plans/plan_4Vt6yJzH/amendments \
-H "Authorization: Bearer $MATTER_KEY" \
-H "Matter-Version: 2026-05-01" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"subject": "increase_authorized_shares",
"authorized_shares_delta": 1500000,
"effective_date": "2026-05-01",
"approvals": {
"board": {"signature_threshold": "majority"},
"stockholders": {"signature_threshold": "majority_voting_power", "deadline_days": 365}
}
}'ISO-eligibility on the additional shares requires fresh stockholder
approval per IRC §422 — even if the existing pool is ISO-eligible. Matter
routes both consents in parallel and surfaces the deadline on
equity_plan.iso_eligible_pending until the stockholder envelope clears.
An evergreen plan auto-tops up annually based on a percentage of fully-diluted outstanding (typically 4–5%), with the increase pre-approved by stockholders at adoption so each annual top-up needs only a board ratification. Common at scale-stage and post-IPO.
{
"name": "2026 Equity Incentive Plan (Evergreen)",
"type": "stock_plan",
"authorized_shares": 5000000,
"effective_date": "2026-04-25",
"iso_eligible": true,
"expiry_years": 10,
"evergreen": {
"annual_top_up_percent": 4.0,
"top_up_anniversary_month": 1,
"stockholder_pre_approval_years": 10
}
}The first stockholder consent at adoption pre-approves up to 10 years of
auto-top-ups; subsequent annual increases need only a board ratification
(via run-a-board-consent kind: evergreen_top_up_ratification).
For post-Series-B teams where the FMV is high enough that option strikes are unaffordable, adopt a stock_plan that issues RSUs (and NSOs as a fallback) but skips ISO eligibility. No stockholder approval required — board-only adoption is sufficient.
{
"name": "2026 RSU Plan",
"type": "stock_plan",
"authorized_shares": 3000000,
"effective_date": "2026-04-25",
"iso_eligible": false,
"expiry_years": 10,
"permitted_grant_kinds": ["rsu", "nso"]
}Lighter-weight — type: option_pool instead of stock_plan. Same shape,
no agreement document attached. Use when you want to reserve shares for
future option grants without a fully-papered plan, e.g. a
pre-priced-round set-aside.
{
"name": "Series Seed Option Pool",
"type": "option_pool",
"authorized_shares": 1000000,
"effective_date": "2026-04-25"
}A pure option pool is not ISO-eligible — promote it to a
stock_plan via amendment before issuing ISOs.
FAQ
Related
- Grant employee equity — issue grants against the adopted plan
- Run a board consent —
kind: option_plan_adoptionis one of the typed consents - Issue a priced round — pool top-up runs as part of the round close package
- Equity plan endpoint — primitive reference
- Amend equity plan — pool top-ups, term extensions