HYBRID-CHAINDEVELOPERS
DOCUMENTATIONv2
POST

User intelligence and risk

Apply identity intervention

/api/v2/admin/users/{profile_uuid}/interventions
AUTHENTICATIONBearer token · admin:identity:writeAUTHORITATIVE OWNERidentity-serviceCONTRACT AUTHORITYGenerated Rust OpenAPISTATUSSource ready · production listed

PURPOSE + BUSINESS CONTEXT

Apply a version-bound lifecycle, capability, reviewer-rating, or alert decision with an attributed reason.

WHEN THIS CALL IS USEFUL

Use only after re-reading the exact tenant-bound detail record and obtaining a fresh USER_RISK_INTERVENTION step-up to record one reasoned lifecycle, non-trading capability, reviewer-rating, or alert workflow transition.

OUTCOME · Create or advance

What changes

May change the managed identity's lifecycle, one non-trading capability control, reviewer rating, or alert workflow state and appends attributed hash-chained evidence. It never changes tenant, trading authority, matching, market status, ingress, publisher, allowlist, settlement, payment, or traffic.

WHY IT MATTERS

  • Gives people and agents a contract-backed way to advance apply identity intervention.
  • Combines minimized identity lookup with explainable operational risk posture without turning a score or alert into an automatic identity or enforcement decision.

ISOLATION + AUTHORITY

Tenant scope, identity, profile, lifecycle, deterministic signal, risk tier, reviewer rating, alert, evidence, investigation, policy decision, and enforcement authority remain distinct. Search results do not reveal secrets and cannot suspend, activate, close, transact for, or otherwise mutate an identity.

BEFORE YOU CALL

  • Authenticate at the documented boundary: bearer+scope.
  • Supply the required profile_uuid (path), action (body), reason (body), step_up_token (body) exactly as defined by the live contract.
  • Use one Idempotency-Key only for retries of the same byte-equivalent logical mutation.
  • Use an exact tenant-scoped identity query where possible and resolve the policy purpose, reviewer authority, evidence freshness, and minimum necessary disclosure.

WHAT TO DO NEXT

  • Select an exact tenant-scoped identity and inspect the supporting alerts, evidence, rating, and lifecycle data before forming a conclusion.
  • Apply any restriction, remediation, or lifecycle change only through its separately authorized policy workflow; search is read-only.

AGENT GUIDANCE

  • Use apply identity intervention only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
  • Supply the required profile_uuid (path), action (body), reason (body), step_up_token (body) exactly as defined by the live contract.
  • Distinguish a matching identifier, observed signal, computed tier, human rating, open alert, investigation finding, policy decision, and separately authorized lifecycle action.
  • After a timeout or conflict, read authoritative state before deciding whether an equivalent retry is safe.
MACHINE CONTRACT

The exact deployed parameters, schemas, responses, security requirements, and Hybrid-Chain agent metadata are authoritative at this operation's production OpenAPI JSON Pointer. The readable tables below add integration guidance; the deployed OpenAPI controls if guidance and the machine contract ever differ.

Open the authoritative production contract

EXTENDED INTEGRATION GUIDANCE

Readable request and response reference

Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.

PARAMETERS

Headers, path, query, and body

NAMELOCATIONPRESENCETYPE / RULES / PURPOSE
AuthorizationheaderRequired

Bearer tokenCredential containing the admin:identity:write scope.EXAMPLEBearer hc_live_…

Idempotency-KeyheaderRequired

printable ASCII string · 1–96Stable key reused only for an equivalent retry of this logical intervention.EXAMPLErisk-review-case-8472-lifecycle-v4

Content-TypeheaderRequired

application/jsonSigned mutations accept canonical JSON only.EXAMPLEapplication/json

Content-DigestheaderRequired

RFC 9530 SHA-256 digestDigest of the exact transmitted body bytes.EXAMPLEsha-256=:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=:

Signature-InputheaderRequired

RFC 9421 signature parametersCovers @method, @path, content-digest, content-type, and idempotency-key; includes keyid, nonce, created, and expires.EXAMPLEsig1=("@method" "@path" "content-digest" "content-type" "idempotency-key");created=1786582800;expires=1786583100;nonce="01J…";keyid="machine-prod"

SignatureheaderRequired

Ed25519 HTTP Message SignatureSignature made by an active public key registered to the authenticated client.EXAMPLEsig1=:base64-signature:

profile_uuidpathRequired

canonical profile identifierExact tenant-visible managed identity.EXAMPLEprofile-01J…

actionbodyRequired

lifecycle | capability | rating | alertSelects the exact conditional field set.EXAMPLElifecycle

reasonbodyRequired

string · 8–1200Substantive operator rationale retained in hash-chained evidence.EXAMPLECorrelated security evidence requires manual review.

expected_versionbodyOptional

integer · ≥0Required for lifecycle, capability, and rating actions; use the latest applicable version.EXAMPLE4

statusbodyOptional

conditional lifecycle, capability, or alert stateRequired for lifecycle, capability, and alert actions.EXAMPLEREVIEW_REQUIRED

capabilitybodyOptional

safe capability identifierRequired for capability actions. TRADING is always rejected while frozen.EXAMPLELOGIN

ratingbodyOptional

UNRATED | TRUSTED | STANDARD | WATCH | RESTRICTEDRequired for a reviewer-rating action.EXAMPLEWATCH

alert_uuidbodyOptional

canonical alert identifierRequired for an alert workflow action.EXAMPLEalert-01J…

assigned_tobodyOptional

safe operator referenceOptional alert assignee; grants no authority.EXAMPLErisk-team-west

step_up_tokenbodyRequired

single-use hcsu_ tokenFresh USER_RISK_INTERVENTION authorization bound to this administrator session.EXAMPLEhcsu_…

REQUEST

JSON body example

{
  "action": "lifecycle",
  "reason": "Correlated security evidence requires manual review.",
  "expected_version": 4,
  "status": "REVIEW_REQUIRED",
  "step_up_token": "hcsu_…"
}

RESPONSES

Status and payload examples

200Complete canonical post-intervention detail record with retained attributed evidence.Mutation completed · JSON RESPONSE+
{
  "identity": {
    "identity_uuid": "identity-01J…",
    "profile_uuid": "profile-01J…",
    "tenant_uuid": "tenant-01J…",
    "email": "[email protected]",
    "username": "person",
    "display_name": "Example Person",
    "identity_active": true
  },
  "control": {
    "lifecycle_status": "REVIEW_REQUIRED",
    "risk_score": 72,
    "risk_tier": "HIGH",
    "reviewer_rating": "WATCH",
    "review_reason": "Manual review pending.",
    "version": 5,
    "updated_by": "admin-01J…",
    "updated_at": "2026-09-01T18:00:00Z"
  },
  "capabilities": [
    {
      "capability": "LOGIN",
      "status": "ACTIVE",
      "reason": "",
      "version": 0
    },
    {
      "capability": "TRADING",
      "status": "ACTIVE",
      "reason": "",
      "version": 0
    }
  ],
  "alerts": [
    {
      "uuid": "alert-01J…",
      "rule_code": "AUTH_FAILURE_BURST",
      "severity": "HIGH",
      "status": "OPEN",
      "title": "Repeated authentication failures",
      "summary": "Retained security evidence requires review.",
      "occurrence_count": 6,
      "assigned_to": null,
      "acknowledged_by": null,
      "acknowledged_at": null,
      "resolved_by": null,
      "resolved_at": null,
      "resolution": null,
      "created_at": "2026-09-01T17:45:00Z",
      "updated_at": "2026-09-01T17:45:00Z"
    }
  ],
  "signals": [
    {
      "uuid": "signal-01J…",
      "signal_type": "AUTH_FAILURE_BURST",
      "source_service": "identity-security",
      "severity": "HIGH",
      "score_delta": 25,
      "summary": "Repeated authentication failures",
      "evidence_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "observed_at": "2026-09-01T17:45:00Z"
    }
  ],
  "events": [
    {
      "uuid": "event-01J…",
      "event_type": "RATING_CHANGED",
      "target_ref": "RISK_REVIEW",
      "actor_ref": "admin-01J…",
      "reason": "Manual review required.",
      "before": {
        "reviewer_rating": "UNRATED"
      },
      "after": {
        "reviewer_rating": "WATCH"
      },
      "previous_event_hash": null,
      "event_hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      "created_at": "2026-09-01T18:00:00Z"
    }
  ],
  "session_posture": {
    "active_mobile_sessions": 1,
    "last_mobile_activity": "2026-09-01T18:01:00Z"
  }
}
INTEGRATION DECISION
CALLER ACTION
Accept the returned representation or receipt, then select an exact tenant-scoped identity and inspect the supporting alerts, evidence, rating, and lifecycle data before forming a conclusion.
RETRY SAFETY
Do not repeat a successful mutation merely to confirm it. For one logical mutation, retain the same Idempotency-Key and byte-equivalent request. Never reuse that key for changed instructions.
STATE RECONCILIATION
Persist returned identifiers, versions, commitments, and receipts. Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
401The bearer or HTTP Message Signature is missing, invalid, expired, or replayed.Authentication required · JSON RESPONSE+
{
  "code": "invalid_credentials",
  "message": "The bearer or HTTP Message Signature is missing, invalid, expired, or replayed."
}
INTEGRATION DECISIONinvalid_credentials
CALLER ACTION
Discard the rejected credential, complete the documented authentication or reassertion flow, and rebuild any request signature with fresh timestamps and nonces.
RETRY SAFETY
Retry only with a newly valid credential and fresh replay-protection values. For one logical mutation, retain the same Idempotency-Key and byte-equivalent request. Never reuse that key for changed instructions.
STATE RECONCILIATION
Assume the outcome is unknown only when the connection failed after transmission; otherwise authentication failed before domain work. Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.
403Write scope, eligible role, tenant binding, purpose-bound step-up, or frozen-policy authorization failed.Authority or policy denied · JSON RESPONSE+
{
  "code": "risk_intervention_forbidden",
  "message": "Write scope, eligible role, tenant binding, purpose-bound step-up, or frozen-policy authorization failed."
}
INTEGRATION DECISIONrisk_intervention_forbidden
CALLER ACTION
Verify the exact scope, tenant or workspace membership, owner boundary, step-up purpose, feature policy, and resource eligibility. Never broaden authority automatically.
RETRY SAFETY
Do not retry until the missing authority or policy condition has been deliberately resolved with least privilege.
STATE RECONCILIATION
Confirm the caller and resource resolve to the same authority boundary for subject-scoped trust claims, evidence, credentials, reviews, decisions, presentations, and revocations.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.
404The tenant-bound profile or selected alert does not exist.Resource not visible · JSON RESPONSE+
{
  "code": "managed_identity_not_found",
  "message": "The tenant-bound profile or selected alert does not exist."
}
INTEGRATION DECISIONmanaged_identity_not_found
CALLER ACTION
Verify the canonical identifier and authenticated owner boundary. A 404 may intentionally conceal a resource outside the caller's authority.
RETRY SAFETY
Do not retry the unchanged identifier repeatedly. Refresh the relevant collection or lookup before choosing another identifier.
STATE RECONCILIATION
Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.
409The optimistic version is stale or the Idempotency-Key is bound to another or incomplete request.State reconciliation required · JSON RESPONSE+
{
  "code": "risk_intervention_conflict",
  "message": "The optimistic version is stale or the Idempotency-Key is bound to another or incomplete request."
}
INTEGRATION DECISIONrisk_intervention_conflict
CALLER ACTION
Stop the mutation sequence and fetch the latest authoritative resource, lifecycle state, version, ETag, reservation, or existing idempotency result.
RETRY SAFETY
Retry only after reconciling the conflict. For one logical mutation, retain the same Idempotency-Key and byte-equivalent request. Never reuse that key for changed instructions.
STATE RECONCILIATION
Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.
422The action, conditional fields, reason, identifier, or Idempotency-Key is invalid.Request must change · JSON RESPONSE+
{
  "code": "invalid_risk_intervention",
  "message": "The action, conditional fields, reason, identifier, or Idempotency-Key is invalid."
}
INTEGRATION DECISIONinvalid_risk_intervention
CALLER ACTION
Rebuild the request from the live OpenAPI operation and correct the rejected method, media type, header, parameter, or body field.
RETRY SAFETY
Do not retry the same invalid request. For one logical mutation, retain the same Idempotency-Key and byte-equivalent request. Never reuse that key for changed instructions.
STATE RECONCILIATION
Compare the submitted values with the documented constraints before another call. Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.
503The authoritative Identity intervention service is unavailable.Dependency unavailable or outcome uncertain · JSON RESPONSE+
{
  "code": "identity_risk_unavailable",
  "message": "The authoritative Identity intervention service is unavailable."
}
INTEGRATION DECISIONidentity_risk_unavailable
CALLER ACTION
Preserve the exact request and treat the outcome as uncertain until authoritative state proves whether it committed.
RETRY SAFETY
Reconcile before retrying. For one logical mutation, retain the same Idempotency-Key and byte-equivalent request. Never reuse that key for changed instructions. Use bounded backoff with jitter.
STATE RECONCILIATION
Refresh the subject, claim or credential version, issuer and reviewer authority, evidence commitment, decision, expiry, and revocation status.
ESCALATE WHEN
Escalate when subject binding, evidence minimization, issuer or reviewer authority, decision lineage, expiry, or revocation cannot be established.

OPERATIONAL NOTES

Security and lifecycle guarantees

  • Identity derives tenant and actor from the authenticated session. tenant_uuid and actor_ref are not accepted request fields.
  • Conditional fields are exclusive by action: lifecycle requires expected_version+status; capability requires expected_version+capability+status; rating requires expected_version+rating; alert requires alert_uuid+status and may include assigned_to.
  • The request requires an RFC 9421 Ed25519 HTTP Message Signature, RFC 9530 Content-Digest, a stable Idempotency-Key, and fresh single-use USER_RISK_INTERVENTION step-up. None replaces bearer, scope, role, or tenant authorization.
  • On 409, re-read and reconcile. Reuse the same idempotency key and equivalent body only for the same logical retry. The operation cannot change TRADING, tenant, matching, market status, settlement, payment, publisher, ingress, allowlist, or traffic authority.
DOCUMENTATION STATUS

This route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-09-11T06:35:11.572Z. Authentication, tenant, feature, venue, and market policy still apply.

Verify the exact production OpenAPI operation Return to the V2 directory