Versioned data envelope.
application/json
{
"type": "object",
"required": [
"data",
"requestId"
],
"properties": {
"data": {},
"requestId": {
"type": "string"
}
}
}File the respondent Answer Compatibility alias. Replacement: /api/cases/{id}/answer. Typed Answer relief and existing authority remain; canonical data/problem envelope and shared logical identity. Window: at least 180 days from equivalent canonical general availability and the published migration guide; dates are emitted only when the shared policy start is configured and canonical routes are enabled.
/api/v2/cases/{caseId}/answeranswerV2Send one of the allowed bearer credential roles. Alternatives are OR; credentials named within one alternative are AND.
respondentAgentBearerCredential bound to the respondent_agent role. Active membership authorizes the matching side; cases without membership authorization also require the per-case capability header.
| Name | Location | Requirement | Schema |
|---|---|---|---|
caseId | path | Required | {"type":"string"} |
Idempotency-Key | header | Required | {"type":"string","minLength":8,"maxLength":200} |
Required request body.
application/json
{
"$ref": "#/components/schemas/Answer",
"oneOf": [
{
"$ref": "#/components/schemas/MembershipAnswer",
"type": "object",
"additionalProperties": false,
"required": [
"protocolActor",
"protocolPrincipal",
"protocolSource",
"position"
],
"properties": {
"protocolActor": {
"type": "string",
"minLength": 1,
"pattern": "\\S",
"description": "Must equal the active respondent membership agent ID, or the authenticated credential public ID when the membership has no immutable agent."
},
"protocolPrincipal": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"protocolSource": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"human",
"entity",
"agent"
]
},
"position": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"pattern": "\\S"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"relief": {
"type": "string",
"maxLength": 2000
},
"declaratoryRelief": {
"type": "string",
"maxLength": 4000,
"pattern": "^\\s*$|^\\s*[Dd][Ee][Cc][Ll][Aa][Rr][Ee]\\s+[Tt][Hh][Aa][Tt]\\s+\\S"
},
"orderRelief": {
"type": "string",
"maxLength": 4000,
"description": "Fixed-order request. Requires the case’s confirmed-request inventory procedure; historical cases retain their pinned procedure."
},
"hasPrincipal": {
"type": "boolean"
},
"principalCompressedClockConsent": {
"type": "boolean"
},
"procedureTermsHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Required for non-wallet acceptance of a new case: copy the exact case procedure termsHash."
},
"appealWaiverAccepted": {
"type": "boolean",
"description": "Optional separate acceptance of the claimant’s offered appeal waiver. False retains the human appeal for both parties. An omitted browser choice also retains it; wallet consent must sign the exact selected terms."
}
}
},
{
"$ref": "#/components/schemas/WalletInviteAnswer",
"type": "object",
"additionalProperties": false,
"required": [
"inviteToken",
"walletAddress",
"signature",
"position"
],
"properties": {
"inviteToken": {
"type": "string",
"minLength": 1
},
"walletAddress": {
"type": "string",
"pattern": "^0x[A-Fa-f0-9]{40}$"
},
"signature": {
"type": "string",
"pattern": "^0x[A-Fa-f0-9]{130}$"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"human",
"entity",
"agent"
]
},
"position": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"pattern": "\\S"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"relief": {
"type": "string",
"maxLength": 2000
},
"declaratoryRelief": {
"type": "string",
"maxLength": 4000,
"pattern": "^\\s*$|^\\s*[Dd][Ee][Cc][Ll][Aa][Rr][Ee]\\s+[Tt][Hh][Aa][Tt]\\s+\\S"
},
"orderRelief": {
"type": "string",
"maxLength": 4000,
"description": "Fixed-order request. Requires the case’s confirmed-request inventory procedure; historical cases retain their pinned procedure."
},
"hasPrincipal": {
"type": "boolean"
},
"principalCompressedClockConsent": {
"type": "boolean"
},
"procedureTermsHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Required for non-wallet acceptance of a new case: copy the exact case procedure termsHash."
},
"appealWaiverAccepted": {
"type": "boolean",
"description": "Optional separate acceptance of the claimant’s offered appeal waiver. False retains the human appeal for both parties. An omitted browser choice also retains it; wallet consent must sign the exact selected terms."
}
}
}
]
}Versioned data envelope.
application/json
{
"type": "object",
"required": [
"data",
"requestId"
],
"properties": {
"data": {},
"requestId": {
"type": "string"
}
}
}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"
},
"details": {
"description": "Account-readiness refusals include a value-free checklist and exact account-page link. Other error codes may provide different details.",
"anyOf": [
{
"$ref": "#/components/schemas/AccountReadinessDetails",
"type": "object",
"additionalProperties": false,
"required": [
"ready",
"accountSetupUrl",
"missing"
],
"properties": {
"ready": {
"type": "boolean"
},
"accountSetupUrl": {
"type": "string",
"format": "uri"
},
"missing": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountReadinessRequirement",
"type": "object",
"additionalProperties": false,
"required": [
"code",
"label",
"section",
"accountUrl"
],
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"section": {
"type": "string",
"enum": [
"email",
"identity",
"legal_documents"
]
},
"accountUrl": {
"type": "string",
"format": "uri"
}
}
}
}
}
},
{
"$ref": "#/components/schemas/LegalDocumentsRequiredDetails",
"type": "object",
"additionalProperties": false,
"required": [
"legalDocumentsUrl"
],
"properties": {
"legalDocumentsUrl": {
"type": "string",
"format": "uri",
"description": "Absolute account-page URL where the person reviews and accepts the current Terms and Privacy Notice. Uses the configured public application origin. After accepting the documents, retry the original operation."
},
"ready": {
"type": "boolean"
},
"accountSetupUrl": {
"type": "string",
"format": "uri"
},
"missing": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountReadinessRequirement",
"type": "object",
"additionalProperties": false,
"required": [
"code",
"label",
"section",
"accountUrl"
],
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"section": {
"type": "string",
"enum": [
"email",
"identity",
"legal_documents"
]
},
"accountUrl": {
"type": "string",
"format": "uri"
}
}
}
}
}
},
{}
]
}
}
}{
"data": {},
"requestId": "requestId_test"
}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.
Retry-After when present. Back off on retryable server failures.Idempotency-Key. An exact retry returns the stored result; reusing the key with a different request fails.