POSTpartial

Request or cancel termination

Controlled by PEOPLES_COURT_API_CANONICAL_ROUTES. The shared operation rechecks current authority and pinned Rules. Partner calls require case:terminate, expectedRevision and Idempotency-Key; existing termination journal and adoption rules are preserved.

/api/cases/{id}/termination-requestsrequestTerminationPreview

Authentication and authority

Use one listed account-session, scoped OAuth, or partner credential alternative. Account tokens retain the approving account’s authority. Cookie-authenticated writes require same-origin authorization. Alternatives are OR; schemes in one alternative are AND.

CanonicalSession

CanonicalPartnerBearer

AccountOAuth

Account tokens authorize only their approving account and case scope. S256 PKCE is mandatory on the code flow. Explicit reacceptance is required after Rules/disclosure changes.

Parameters

NameLocationRequirementSchema
idpathRequired{"type":"string"}
Idempotency-Key

Reuse across compatibility and canonical aliases to recover the same committed act. Changed typed input conflicts.

headerOptional{"type":"string"}

Request body

Required request body.

application/json

{
  "$ref": "#/components/schemas/TerminationRequestInput",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "action",
    "expectedRevision"
  ],
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "request",
        "cancel_request"
      ]
    },
    "expectedRevision": {
      "type": "integer",
      "minimum": 0
    },
    "requestId": {
      "type": "string",
      "description": "Required when action is cancel_request."
    },
    "adoption": {
      "$ref": "#/components/schemas/RulesAdoptionAssent",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "version",
        "hash",
        "statementVersion"
      ],
      "properties": {
        "version": {
          "type": "string"
        },
        "hash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "statementVersion": {
          "type": "string",
          "const": "rule_1_3_adoption_v1"
        }
      }
    },
    "externalProtocolReference": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,200}$",
      "description": "Required when action is request; identifies the agent protocol act without exposing settlement terms."
    }
  }
}

Responses

201

Authorized operation result.

application/json

{
  "$ref": "#/components/schemas/CanonicalRequestTerminationPreviewResponse",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "caseId",
        "caseStatus",
        "revision",
        "termination"
      ],
      "properties": {
        "caseId": {
          "type": "string"
        },
        "caseStatus": {
          "type": "string"
        },
        "revision": {
          "type": "integer",
          "minimum": 0
        },
        "termination": {
          "$ref": "#/components/schemas/CanonicalTermination",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "kind",
            "status",
            "initiatedBySide",
            "initiatedAt",
            "confirmations",
            "fundsEffect"
          ],
          "properties": {
            "schemaVersion": {
              "type": "string",
              "const": "pre-award-termination-v1"
            },
            "id": {
              "type": "string"
            },
            "kind": {
              "type": "string",
              "enum": [
                "claimant_withdrawal",
                "party_agreement"
              ]
            },
            "status": {
              "type": "string",
              "enum": [
                "pending",
                "completed",
                "cancelled",
                "superseded"
              ]
            },
            "initiatedBySide": {
              "type": "string",
              "enum": [
                "claimant",
                "respondent"
              ]
            },
            "initiatedAt": {
              "type": "string",
              "format": "date-time"
            },
            "confirmations": {
              "type": "array",
              "maxItems": 2,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "side",
                  "confirmedAt"
                ],
                "properties": {
                  "side": {
                    "type": "string",
                    "enum": [
                      "claimant",
                      "respondent"
                    ]
                  },
                  "confirmedAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            },
            "completedAt": {
              "type": "string",
              "format": "date-time"
            },
            "cancelledAt": {
              "type": "string",
              "format": "date-time"
            },
            "fundsEffect": {
              "type": "string",
              "const": "none"
            },
            "adoptsRulesVersion": {
              "type": "string"
            },
            "adoptsRulesHash": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            }
          },
          "x-code-source": "lib/proceeding/termination-case.ts"
        },
        "deadlinesContinue": {
          "type": "boolean"
        }
      }
    },
    "requestId": {
      "type": "string"
    }
  },
  "required": [
    "data",
    "requestId"
  ],
  "x-code-source": "lib/proceeding/termination-case.ts"
}
404

Preview disabled or authorized resource unavailable.

default

RFC 9457 style problem response.

application/problem+json

{
  "$ref": "#/components/schemas/Problem",
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "requestId"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "requestId": {
      "type": "string"
    }
  }
}

Example response

Successful response

{
  "data": {
    "caseId": "pcase_test_123",
    "caseStatus": "caseStatus_test",
    "revision": 1,
    "termination": {
      "id": "id_test",
      "kind": "claimant_withdrawal",
      "status": "pending",
      "initiatedBySide": "claimant",
      "initiatedAt": "2026-08-09T12:00:00.000Z",
      "confirmations": [
        {
          "side": "claimant",
          "confirmedAt": "2026-08-09T12:00:00.000Z"
        }
      ],
      "fundsEffect": "none"
    }
  },
  "requestId": "requestId_test"
}

Errors

Read the response status and stable error code. See errors and rate limits for recovery. Refresh the resource before resolving a state or digest conflict.

Idempotency and retries

  • For throttling, honor Retry-After when present. Back off on retryable server failures.
  • Send a unique Idempotency-Key. An exact retry returns the stored result; reusing the key with a different request fails.
  • The request is accepted only when its credential, authority, case state, and resource preconditions are satisfied.