Set deal status
/deals/{dealId}/statusSets the deal status to any value in the deal status enum. Transitions
are unrestricted. Values: draft = editable, not live;
awaiting_approval = submitted for approval; ready_to_publish =
approved, awaiting go-live; published = live/visible to investors;
retired = archived/hidden; in_progress = actively being worked;
rejected = approval declined.
This alias bypasses the state checks the lifecycle actions apply, and
records the timestamp for the new status (published_at,
retired_at and so on). It can be undone by setting the previous
status again. It emits deal.updated in the legacy envelope
(data.deal), not the lifecycle events.
Deprecated: it will be withdrawn on 2027-06-30. The five actions
POST /deals/{id}/actions/publish, unpublish, archive, restore
and promote replace it; the Link header names publish.
When an entrepreneur-created deal is moved to awaiting_approval, the
platform's deal managers receive an in-app notification that a new deal
is awaiting their approval.
Path parameters
The deal's public uuid.
Request body
application/json, required
- One of:
Target lifecycle status. Values:
draft= editable, not live;awaiting_approval= submitted for approval;ready_to_publish= approved, awaiting go-live;published= live/visible to investors;retired= archived/hidden;in_progress= actively being worked;rejected= approval declined.draft,awaiting_approval,ready_to_publish,published,retired,in_progress,rejected
{
"status": "published"
}Responses
{
"data": {
"id": "f6071829-3a4b-4c5d-9e6f-8091a2b3c4d5",
"name": "Series B — Acme Robotics",
"status": "published",
"external": false,
"external_id": "CRM-2026-0042",
"summary": "Late-stage growth round in autonomous logistics.",
"description": "<p>Acme Robotics is raising a Series B.</p>",
"currency": "USD",
"min_investment": 25000,
"structure": "direct",
"sub_structure": "equity",
"type_details": {
"sector": "information_technology",
"growthStage": "growth"
},
"sponsor": "Acme Capital",
"show_funding_secured": true,
"allow_questions": false,
"request_further_docs": false,
"available_from": "2026-07-01T00:00:00+00:00",
"available_to": "2026-09-30T23:59:59+00:00",
"transaction_workflow_id": "1b2c3d4e-5f60-4a7b-8c9d-0e1f2a3b4c5d",
"investor_engagement_enabled": true,
"active_tranche_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"drafted_at": "2026-06-15T10:30:00+00:00",
"approval_started_at": "2026-06-16T09:00:00+00:00",
"approved_at": "2026-06-17T09:00:00+00:00",
"published_at": "2026-06-18T09:00:00+00:00",
"rejected_at": null,
"retired_at": null,
"tabs": [
"deal",
"documents",
"video"
],
"image_id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
"sponsor_image_id": null,
"video_id": "76979871",
"custom_status_id": null,
"created_at": "2026-06-15T10:30:00+00:00",
"updated_at": "2026-06-18T09:00:00+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/deals/{dealId}/status\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"status": "published"
}'