API · Exit · Entities
Dissolve the entity.
The marketed one-call dissolution path. Initiates the dissolution cascade for the entity and returns the queued filings, drafted distribution plan, and pending human Authorization. Cascades are never hidden — every filing, document, and resolution the dissolution will produce surfaces on the response. Prerequisites (DGCL §275). A voluntary dissolution requires: 1. A board resolution recommending dissolution. 2. Stockholder consent of a majority of outstanding shares — by meeting (§275(b)) or written consent (§275(c)). 3. A plan of distribution per DGCL §281 that pays or reserves for known and contingent claims before any stockholder distribution, in the order set by §151 preference stack.
Either reference these as inputs (board_resolution_id, stockholder_consent_id, distribution_plan) or set auto_generate_resolutions: true to have Matter draft them. Drafted resolutions are returned as pending — the dissolution does not advance until they are signed via the embedded Authorization. Calls without either path return 422 dissolution_prerequisites_missing. Procedure. procedure is required: - elective_280 — DGCL §280 publication + known-claimant notice, ~60-day claim window, court approval, earlier clean exit. Higher upfront cost; lower long-tail exposure. - default_281 — DGCL §281(b) no-publication default, 3-year contingent-liability exposure. Lower upfront cost; longer tail.
Cascades (introspectable via x-matter-cascade, surfaced on the response): - Form 966 (IRS — within 30 days of resolution per IRC §6043). - Final state franchise tax / annual report. - Certificate of Dissolution (state SOS). - FinCEN BOI closure (31 CFR §1010.380). - Final Form 1120 (marked "final return"), final 941/940/W-2/W-3, final 1099s. - Per-stakeholder distribution share_ledger entries (driven by distribution_plan). - QSBS holding-period attestations (IRC §1202) for any qualifying stock — relevant to stakeholder taxation on the dissolution distribution.
Requires tier-3 + human signature. Response is 202 Accepted with a pending Authorization; the human signs via signature_url, then the cascade executes asynchronously and webhooks deliver terminal state (entity.state_changed with to_state: dissolved, filing.accepted per cascaded filing). Pre-conditions: entity must be in active or suspended state. Entity must have no open compliance obligations or in-flight filings. Returns 409 invalid_state_transition or 409 dissolution_blocked_open_obligations otherwise.
Last updated
Query Parameters
dry_runbooleanOptionalIf true, simulate the mutation and return the would-be resource, any cascaded
resources, and a fee estimate — without side effects. Available on every mutation.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
categorystringRequiredVoluntariness axis. Voluntary dissolution requires §275 prerequisites (board + stockholder consent). Forced dissolution covers court-ordered cancellation and is initiated through different statutory paths — Matter surfaces the same cascade but skips the consent-gathering step.
"voluntary""forced"causestringRequiredCausal classification used in filings and audit trail. Note:
acquisition is not a dissolution cause — that path is
CorporateTransaction.advance to closed, which transitions
Entity.status to acquired/merged/sold. If the seller in an
asset sale needs to dissolve post-closing, set
corporate_transactions/{id}/advance.post_closing_actions.seller_dissolution = true instead of calling /dissolve directly.
"strategic_wind_down""insolvency""failure_to_launch""regulatory_action""court_order""other"procedurestringRequiredDelaware creditor-claim procedure (or jurisdiction-equivalent for non-DE).
elective_280: DGCL §280 publication + known-claimant notice, ~60-day claim window, earlier clean exit but higher upfront cost.default_281: DGCL §281(b) no-publication default, 3-year contingent- liability exposure but lower upfront cost.court_supervised_280: DGCL §280 court-supervised long-form route, Chancery petition + court-approved security amount, used for insolvent or contested wind-downs (seecookbook/dissolve-an-insolvent-entity).post_asset_sale_shortcut: post-acquihire shortcut where the entity is empty (assets already transferred); no creditor window required.post_obligation_windows_closed: post-Exit-Manage variant fired after earnout / indemnity / 280G audit windows close; the legacy entity has no remaining obligations and dissolves on the abbreviated timeline.
"elective_280""default_281""court_supervised_280""post_asset_sale_shortcut""post_obligation_windows_closed"board_resolution_idstringOptionalBoard resolution recommending dissolution per DGCL §275(a). Required
when category=voluntary and auto_generate_resolutions is unset.
The referenced Resolution must be kind: board_consent or kind: board_meeting, status signed or recorded, and reference this entity.
stockholder_consent_idstringOptionalStockholder consent approving dissolution per DGCL §275(b) (meeting) or
§275(c) (written consent). Required when category=voluntary and
auto_generate_resolutions is unset. Must reflect at least a majority
of outstanding voting shares (or unanimous if §275(c)).
authorizing_resolutionobjectOptionalWhether to auto-generate the underlying board resolution
that authorises this action. Defaults to auto: true.
The resolution and the action artifact share an
Idempotency-Key; both land atomically or neither does.
autobooleanOptionalrecitalsarray<string>OptionalOptional plain-English context to embed in the resolution's recitals[]. Useful when the board's consideration warrants a specific narrative.
auto_generate_resolutionsbooleanOptionalWhen true (and board_resolution_id/stockholder_consent_id are not
supplied), Matter drafts the required board resolution and stockholder
consent and queues them as pending Authorization items. The
dissolution does not advance until both are signed. The drafted
resolutions surface on the response under cascaded_resolutions[].
distribution_planobjectOptionalPlan of distribution per DGCL §281. Required for voluntary dissolution:
Matter will not file the certificate of dissolution until the plan is
set. Captures the §151 preference-stack waterfall, contingent-claim
reserves, and known-creditor list. The cascade derives liquidating-
distribution share_ledger entries from this plan.
reserve_for_contingentobjectRequiredCurrency amount in the smallest unit (cents for USD).
amountintegerRequiredInteger in smallest unit. 100 = USD 1.00.
currencystringRequiredISO 4217 alpha-3, lower-cased.
distributionsarray<object>Requiredstakeholder_idstringRequiredamountobjectRequiredCurrency amount in the smallest unit (cents for USD).
amountintegerRequiredInteger in smallest unit. 100 = USD 1.00.
currencystringRequiredISO 4217 alpha-3, lower-cased.
kindstringRequired"liquidation_preference""participation""residual_pro_rata"sequenceintegerRequiredOrder of payment under the §151 preference stack. Lower sequence
numbers paid first. Liquidation preferences typically 1,
participation 2, residual pro-rata 3+.
known_claimsarray<object>OptionalKnown creditor claims. Required for procedure=elective_280.
Triggers the §280 known-claimant notice cascade.
claimantstringRequiredamountobjectRequiredCurrency amount in the smallest unit (cents for USD).
amountintegerRequiredInteger in smallest unit. 100 = USD 1.00.
currencystringRequiredISO 4217 alpha-3, lower-cased.
statusstringRequired"pending""accepted""rejected""paid""reserved"basisstringOptionalclaim_window_daysintegerOptionalOverride the default claim window (only valid under elective_280). Minimum 60 days per statute.
dissolution_datestring<date>OptionalEffective dissolution date. Defaults to today.
handle_all_filingsbooleanOptionalIf true (default), Matter handles Form 966 + final franchise tax +
certificate of dissolution + BOI closure + final tax returns
(1120/941/940/W-2/1099). The cascade surfaces in the response's
pending_filings[]. Set false only to opt out of specific filings —
rare; usually means a tax preparer is handling them externally.
Note that the per-form content of these filings is filed by
the entity's payroll provider — the cascade tracks the obligation
and acknowledges completion via webhook. See
api/conventions/payroll-and-benefits-handoff for the boundary.
closuresobjectOptionalWhich non-home-state surfaces to close as part of the cascade.
Replaces a single coarse boolean: foreign qualifications
(Qualification resources) and state registrations
(StateRegistration resources for employer / sales-tax / DBA /
business-license accounts) close independently because the same
entity often has one without the other — a remote employee in MA
triggers a state employer registration without triggering foreign
qualification, for example. The cascade walks each requested
closure as its own multi-step gate (final returns marked final,
agency clearance request, SoS surrender form) ordered via
Filing.depends_on[].
qualificationsstringOptionalHow to handle foreign qualifications. all withdraws every
active Qualification on the entity. specified withdraws
only the IDs in specified_qualifications[]. none skips
qualification withdrawals entirely (e.g., DE-only entity).
"all""specified""none"state_registrationsstringOptionalHow to handle state registrations. all closes every active
StateRegistration on the entity (employer accounts, sales-tax
accounts, DBAs, business licenses). specified closes only
the IDs in specified_state_registrations[]. none skips
registration closures.
"all""specified""none"specified_qualificationsarray<string>OptionalRequired when qualifications=specified.
specified_state_registrationsarray<string>OptionalRequired when state_registrations=specified.
metadataobjectOptionalFlat string-to-string map. Up to 50 keys. Keys: max 40 chars, charset
[A-Za-z0-9_\\-.]. Values: max 500 chars. Keys prefixed matter_ are reserved
for platform use. Metadata is retrievable but not filterable via query params.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
Request
curl -X POST "https://api.mattermode.com/v1/entities/{id}/dissolve" \ -H "Content-Type: application/json" \ -d '{ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] } }'const body = JSON.stringify({ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] }})fetch("https://api.mattermode.com/v1/entities/{id}/dissolve", { method: "POST", headers: { "Content-Type": "application/json" }, body})package mainimport ( "fmt" "net/http" "io/ioutil" "strings")func main() { url := "https://api.mattermode.com/v1/entities/{id}/dissolve" body := strings.NewReader(`{ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] } }`) req, _ := http.NewRequest("POST", url, body) req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}import requestsheaders = { "Authorization": "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc", "Matter-Version": "2026-06-10", "Idempotency-Key": "ee7c3a9b-3f1a-4d8e-9b2a-7c5e1f0a2d4b",}payload = { "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] }}resp = requests.post( "https://api.mattermode.com/v1/entities/ent_Nq3KcAbc/dissolve", headers=headers, json=payload,)resp.raise_for_status()print(resp.json())import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.http.HttpResponse.BodyHandlers;import java.time.Duration;import java.net.http.HttpRequest.BodyPublishers;var body = BodyPublishers.ofString("""{ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] }}""");HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://api.mattermode.com/v1/entities/{id}/dissolve")) .header("Content-Type", "application/json") .POST(body) .build();try { HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Response body: " + response.body());} catch (Exception e) { e.printStackTrace();}using System;using System.Net.Http;using System.Text;var body = new StringContent("""{ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] }}""", Encoding.UTF8, "application/json");var client = new HttpClient();var response = await client.PostAsync("https://api.mattermode.com/v1/entities/{id}/dissolve", body);var responseBody = await response.Content.ReadAsStringAsync();curl --request POST 'https://api.mattermode.com/v1/entities/ent_Nq3KcAbc/dissolve' \ --header 'Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc' \ --header 'Matter-Version: 2026-06-10' \ --header 'Idempotency-Key: ee7c3a9b-3f1a-4d8e-9b2a-7c5e1f0a2d4b' \ --header 'Content-Type: application/json' \ --data '{ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] }}'const response = await fetch("https://api.mattermode.com/v1/entities/ent_Nq3KcAbc/dissolve", { method: "POST", headers: { "Authorization": "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc", "Matter-Version": "2026-06-10", "Idempotency-Key": "ee7c3a9b-3f1a-4d8e-9b2a-7c5e1f0a2d4b", "Content-Type": "application/json", }, body: JSON.stringify({ "category": "voluntary", "cause": "strategic_wind_down", "procedure": "elective_280", "auto_generate_resolutions": true, "distribution_plan": { "reserve_for_contingent": { "amount": 25000000, "currency": "usd" }, "distributions": [ { "stakeholder_id": "stk_seriesA1", "share_class_id": "cls_seriesA", "amount": { "amount": 1000000000, "currency": "usd" }, "kind": "liquidation_preference", "sequence": 1 }, { "stakeholder_id": "stk_founder1", "share_class_id": "cls_common", "amount": { "amount": 200000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 }, { "stakeholder_id": "stk_founder2", "share_class_id": "cls_common", "amount": { "amount": 50000000, "currency": "usd" }, "kind": "residual_pro_rata", "sequence": 3 } ], "known_claims": [ { "claimant": "Acme Cloud Services", "amount": { "amount": 4500000, "currency": "usd" }, "status": "pending", "basis": "Outstanding invoices Q1 2026" } ] } }),});if (!response.ok) { throw new Error(`Matter API ${response.status}: ${await response.text()}`);}const data = await response.json();console.log(data);Response
application/json{
"resource": {
"id": "ent_Nq3KcAbc",
"object": "entity",
"status": "draft",
"type": "c_corp",
"jurisdiction": "US-DE",
"legal_name": "Waypoint Systems, Inc.",
"created": 1745539200,
"updated": 1745539200,
"livemode": false
},
"intent": {
"id": "string",
"object": "intent",
"goal": "form_startup_ready_corporation",
"parameters": {},
"status": "draft",
"created": 1745539200,
"updated": 1745539200,
"livemode": false
},
"execution_plan": {
"steps": [
{
"operation": "string",
"status": "pending"
}
]
},
"authorization": {
"id": "string",
"object": "authorization",
"token_id": "tok_4Kj2m8pQ",
"action": "string",
"payload_hash": "string",
"status": "pending",
"expires_at": 1745539200,
"created": 1745539200,
"updated": 1745539200,
"livemode": false
},
"pending_filings": [
{
"id": "string",
"object": "filing",
"entity_id": "ent_Nq3KcAbc",
"type": "certificate_of_amendment",
"jurisdiction": "US-DE",
"status": "preparing",
"created": 1745539200,
"updated": 1745539200,
"livemode": false
}
],
"cascaded_documents": [
{
"id": "string",
"object": "document",
"entity_id": "ent_Nq3KcAbc",
"type": "certificate_of_incorporation",
"status": "draft",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"version": 1,
"created": 1745539200,
"updated": 1745539200,
"livemode": false
}
],
"cascaded_resolutions": [
{
"id": "string",
"object": "resolution",
"entity_id": "ent_Nq3KcAbc",
"kind": "board_meeting",
"subject": "Approval of 2026 Equity Plan and initial pool of 2,000,000 shares",
"created": 1745539200,
"updated": 1745539200,
"livemode": false
}
],
"events_emitted": [
"string"
],
"applied_defaults": [
"string"
],
"next_steps": [
{
"endpoint": "POST /v1/entities/ent_Nq3KcAbc/tax_elections",
"reason": "Founder restricted-stock issuances require 83(b) within 30 days."
}
]
}{
"type": "https://mattermode.com/docs/errors/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "Request body could not be parsed as JSON.",
"doc_url": "https://mattermode.com/docs/guides/errors#invalid_request",
"request_id": "req_Qw9xYz8A"
}{
"type": "https://mattermode.com/docs/errors/authentication_required",
"title": "Authentication required",
"status": 401,
"code": "authentication_required",
"detail": "No bearer token was supplied. Pass `Authorization: Bearer sk_live_...` on every request.",
"doc_url": "https://mattermode.com/docs/guides/errors#authentication_required",
"request_id": "req_Qw9xYz8A"
}{
"type": "https://mattermode.com/docs/errors/scope_denied",
"title": "Scope denied",
"status": 403,
"code": "scope_denied",
"detail": "Token tok_8FbWcEoP9 has no grant on entity ent_Nq3KcAbc.",
"doc_url": "https://mattermode.com/docs/guides/errors#scope_denied",
"request_id": "req_Qw9xYz8A"
}{
"type": "https://mattermode.com/docs/errors/invalid_state_transition",
"title": "Invalid state transition",
"status": 409,
"code": "invalid_state_transition",
"detail": "Entity ent_Nq3KcAbc is in state `dissolved`; `dissolve` is not a valid transition.",
"doc_url": "https://mattermode.com/docs/guides/errors#invalid_state_transition",
"request_id": "req_Qw9xYz8A",
"current_state": "dissolved",
"attempted_transition": "dissolve",
"allowed_transitions": []
}{
"type": "https://mattermode.com/docs/errors/dissolution_prerequisites_missing",
"title": "Dissolution prerequisites missing",
"status": 409,
"code": "dissolution_prerequisites_missing",
"detail": "Voluntary dissolution requires `board_resolution_id` and `stockholder_consent_id`, or `auto_generate_resolutions: true`.",
"doc_url": "https://mattermode.com/docs/guides/errors#dissolution_prerequisites_missing",
"request_id": "req_Qw9xYz8A"
}{
"type": "https://mattermode.com/docs/errors/valuation_stale",
"title": "409A valuation stale",
"status": 409,
"code": "valuation_stale",
"detail": "Active 409A val_AbCd1234 is older than 12 months or superseded by a material event. Issuing ISOs at the prior strike risks IRC §409A violation. Refresh via POST /entities/{id}/valuations/{id}/refresh_request.",
"doc_url": "https://mattermode.com/docs/guides/errors#valuation_stale",
"request_id": "req_Qw9xYz8A"
}{
"type": "https://mattermode.com/docs/errors/validation_failed",
"title": "Validation failed",
"status": 422,
"code": "validation_failed",
"detail": "One or more fields failed validation. See `errors[]`.",
"doc_url": "https://mattermode.com/docs/guides/errors#validation_failed",
"request_id": "req_Qw9xYz8A",
"errors": [
{
"field": "founders[0].equity",
"code": "out_of_range",
"message": "Equity must sum to 100% across all founders."
}
]
}{
"type": "https://mattermode.com/docs/errors/rate_limit_exceeded",
"title": "Rate limit exceeded",
"status": 429,
"code": "rate_limit_exceeded",
"detail": "Request rate exceeded for this key. Retry after `retry_after` seconds or honor the `Retry-After` header.",
"doc_url": "https://mattermode.com/docs/guides/errors#rate_limit_exceeded",
"request_id": "req_Qw9xYz8A",
"retry_after": 30
}Cascade
A single call kicks off: {"kind":"filing","type":"form_966","timing":"immediate"} → {"kind":"filing","type":"franchise_tax","timing":"immediate","qualifier":"final"} → {"kind":"filing","type":"certificate_of_dissolution","timing":"on_tax_clearance"} → {"kind":"filing","type":"form_1120","timing":"deferred","qualifier":"final"} → {"kind":"filing","type":"form_941","timing":"deferred","qualifier":"final"} → {"kind":"filing","type":"form_940","timing":"deferred","qualifier":"final"} → {"kind":"filing","type":"form_w2","timing":"deferred","qualifier":"final"} → {"kind":"filing","type":"form_1099_nec","timing":"deferred","qualifier":"final"} → {"kind":"document","type":"notice_of_dissolution","timing":"immediate"} → {"kind":"document","type":"claim_notice_publication","timing":"per_elective_280"} → {"kind":"ledger_entry","type":"liquidating_distribution","timing":"per_distribution_plan"}