Suspend an investor
/investors/{id}/actions/suspendMoves an investor from any other status to suspended, ends their sessions and returns it. notify sends the account-disabled email after commit, and remove_distribution leaves every distribution list. One already suspended returns 200 with no email or event. Emits investor.suspended and the legacy user.updated. POST /investors/{id}/actions/activate undoes it, but not the list removal. Replaces PATCH /investors/{userId}/status with suspended.
Path parameters
The investor's id, a uuid. An unknown investor, or one outside the token's organisation and its client organisations, returns 404.
Query parameters
Validate and run the call without committing it, returning what the real call would return with
meta.dry_runset.
Headers
Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.
Request body
application/json, optional · InvestorSuspend
- One of:
nonesends no email;emailandpasswordboth send the account-disabled email.none,email,passwordDefault:"none" - Default:
True removes the investor from every distribution list.
false
{
"notify": "email",
"remove_distribution": true
}Responses
{
"data": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"first_name": "string",
"last_name": "string",
"title": "string",
"email": "string",
"status": "active",
"external_id": "string",
"sso_id": "string",
"key_contact_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"invite": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"status": "invited",
"expires_at": "2026-06-12T10:00:00+00:00"
},
"two_factor_enabled": true,
"last_login": "2026-06-12T10:00:00+00:00",
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00",
"data_capture": {},
"onboarding": {
"flow_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"flow_name": "string",
"status": "pending",
"completed_at": "2026-06-12T10:00:00+00:00"
},
"invites": [
{
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"type": "string",
"status": "string",
"email": "string",
"expires_at": "2026-06-12T10:00:00+00:00",
"invited_at": "2026-06-12T10:00:00+00:00",
"created_at": "2026-06-12T10:00:00+00:00"
}
],
"roles": [
{
"id": 1,
"name": "string",
"label": "string"
}
]
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request conflicts with existing state (error.code = conflict),
e.g. a compliance flow with the requested name already exists.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl -X POST https://your-org-domain/kong/core/api/v2/investors/{id}/actions/suspend\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"notify": "email",
"remove_distribution": true
}'