API · Manage · Rounds
Satisfy closing condition.
Advance one entry in Round.closing_conditions[] from pending to satisfied (with evidence) or waived (with a written waiver). Some conditions auto-satisfy from upstream events (legal_opinion_delivered flips when the legal opinion Document is signed; form_d_filed flips when the Form D filing is accepted). Others — regulatory_approval, third_party_consents, equity_plan_pool_increase — require an explicit caller assertion backed by an evidence Document.
The closePackageRound endpoint blocks until every condition reaches satisfied or waived. Use this verb to advance any condition that does not auto-satisfy.
Last updated
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
kindstringRequiredThe closing_conditions[].kind value to mark. Must
match an entry currently in pending.
outcomestringRequired"satisfied""waived"evidence_document_idstringOptionalRequired when outcome = satisfied AND the condition
requires explicit evidence (regulatory approval letter,
third-party consent letter, charter amendment receipt,
etc.). Null for conditions whose evidence is implicit
(auto-satisfied conditions; auditor-driven evidence).
waiver_document_idstringOptionalRequired when outcome = waived. Document of kind: side_letter or custom recording the waiver. Lead
investor counter-signature typically required.
authorizing_resolution_idstringOptionalnotestringOptionalResponse Body
application/json
application/problem+json
Request
curl -X POST "https://api.mattermode.com/v1/rounds/{id}/satisfy_closing_condition" \ -H "Content-Type: application/json" \ -d '{ "kind": "string", "outcome": "satisfied" }'const body = JSON.stringify({ "kind": "string", "outcome": "satisfied"})fetch("https://api.mattermode.com/v1/rounds/{id}/satisfy_closing_condition", { method: "POST", headers: { "Content-Type": "application/json" }, body})package mainimport ( "fmt" "net/http" "io/ioutil" "strings")func main() { url := "https://api.mattermode.com/v1/rounds/{id}/satisfy_closing_condition" body := strings.NewReader(`{ "kind": "string", "outcome": "satisfied" }`) 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 = { "kind": "example", "outcome": "satisfied"}resp = requests.post( "https://api.mattermode.com/v1/rounds/id_placeholder/satisfy_closing_condition", 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("""{ "kind": "string", "outcome": "satisfied"}""");HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://api.mattermode.com/v1/rounds/{id}/satisfy_closing_condition")) .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("""{ "kind": "string", "outcome": "satisfied"}""", Encoding.UTF8, "application/json");var client = new HttpClient();var response = await client.PostAsync("https://api.mattermode.com/v1/rounds/{id}/satisfy_closing_condition", body);var responseBody = await response.Content.ReadAsStringAsync();curl --request POST 'https://api.mattermode.com/v1/rounds/id_placeholder/satisfy_closing_condition' \ --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 '{ "kind": "example", "outcome": "satisfied"}'const response = await fetch("https://api.mattermode.com/v1/rounds/id_placeholder/satisfy_closing_condition", { 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({ "kind": "example", "outcome": "satisfied" }),});if (!response.ok) { throw new Error(`Matter API ${response.status}: ${await response.text()}`);}const data = await response.json();console.log(data);Response
application/json{
"round_id": "string",
"kind": "string",
"outcome": "string",
"remaining_pending_conditions": [
"string"
]
}{
"type": "https://mattermode.com/docs/errors/invalid_state_transition",
"title": "Invalid state transition",
"status": 409,
"detail": "Entity ent_Nq3KcAbc is in state `dissolved` and cannot be dissolved again.",
"instance": "/requests/req_Qw9xYz8A",
"code": "invalid_state_transition",
"param": "founders[0].equity",
"doc_url": "https://mattermode.com/docs/guides/errors#invalid_state_transition",
"request_id": "req_Qw9xYz8A",
"retry_after": 30,
"authorized_by": {
"human_principal_id": "usr_4Kj2m8pQ",
"agent_id": "agt_Nq3KcAbc"
}
}No example available.