curl -X PATCH https://api.open.cx/connect/threads/order_84421 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "order_status": "delivered" }'
{
"id": "th_9f2c4e",
"reference": "order_84421",
"status": "wrap_up",
"order_status": "delivered",
"wrap_up_ends_at": "2026-07-31T15:20:44Z"
}
Connect
Update a Connect thread
Report order status to drive the thread lifecycle, adjust Supervisor modes per lane, or force-lock a thread. The one write you call as the order progresses.
PATCH
/
connect
/
threads
/
{thread_id}
curl -X PATCH https://api.open.cx/connect/threads/order_84421 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "order_status": "delivered" }'
{
"id": "th_9f2c4e",
"reference": "order_84421",
"status": "wrap_up",
"order_status": "delivered",
"wrap_up_ends_at": "2026-07-31T15:20:44Z"
}
Update a thread as the order progresses. Reporting
order_status is the normal use — the lifecycle reacts automatically.
Path
string
required
Thread ID (
th_…) or your reference.Request
string
confirmed, preparing, ready, picked_up, delivered, or cancelled. delivered starts the wrap-up window; cancelled locks immediately. Custom statuses pass through to the Supervisor and the UI status chip.string
Force a lifecycle transition:
locked locks now (skips the wrap-up window). Reopening a locked thread is not supported — escalate to a session instead.array
Enable an optional lane mid-thread, e.g.
["merchant_courier"] when a pickup goes sideways.object
Merged into existing custom data (top-level keys replace).
Response
The updated thread object.curl -X PATCH https://api.open.cx/connect/threads/order_84421 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "order_status": "delivered" }'
{
"id": "th_9f2c4e",
"reference": "order_84421",
"status": "wrap_up",
"order_status": "delivered",
"wrap_up_ends_at": "2026-07-31T15:20:44Z"
}
Was this page helpful?