Set an onboarding flow's status
/onboarding/flows/{complianceId}/statusPublish an onboarding flow (making it live and collecting investor
responses) or revert it to draft, driving the state machine and its
allowed transitions. Define the flow's steps first with
PUT /onboarding/flows/{complianceId}/definition.
Deprecated: withdrawn on 2027-06-30. POST /onboarding-flows/{id}/actions/publish and unpublish replace it; the Link header names the one that matches the body, and a request for the state the flow already has now answers 200 with no change, where it answered 500.
Path parameters
The compliance flow's public uuid.
Request body
application/json, required
- One of:
Compliance flow state.
DRAFT= editable, not yet live (not served to respondents);PUBLISHED= live and collecting responses. The state machine governs allowed transitions.DRAFT,PUBLISHED
{
"status": "PUBLISHED"
}Responses
{
"data": {
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"name": "Investor Suitability",
"status": "published",
"expiry_type": "TWELVE_MONTH",
"mode_type": "Continuous",
"definition": null,
"forms_count": 1,
"created_at": "2026-06-15T10:30:00+00:00",
"updated_at": "2026-07-06T14:15:02+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
Request validation failed (HTTP 422). The body is either the Laravel
validation envelope (message + field-keyed errors) or the API error
envelope for domain rejections (e.g. form_type_not_supported,
folder_locked, parent_not_found, folder_not_empty).
Examples
curl -X PATCH https://your-org-domain/kong/core/api/v2/onboarding/flows/{complianceId}/status\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"status": "PUBLISHED"
}'