Skip to content

Update a handoff ticket

PATCH
/projects/{id}/tickets/{ticketId}
curl --request PATCH \
--url https://example.com/api/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/tickets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "status": "open", "stage": "backlog", "work_started_note": "example", "priority": "low", "title": "example", "description": "example", "request_type": "bug", "resolution_note": "example", "role_status": { "role": "frontend", "status": "pending", "work_started_note": "example", "criteria_confirmed": true, "acceptance_criteria": [ "example" ] }, "updated_at": "2026-04-15T12:00:00Z", "skip_human_test_gate": true }'

Kanban stages: backlog, up_next, in_progress, validation, live. work_started_note required when moving to in_progress (server readiness). resolution_note optional when closing; recommended. skip_human_test_gate when completing from validation with pending cases (owner/super-admin only).

id
required
string format: uuid

Project UUID

ticketId
required
string format: uuid

Ticket UUID

Media type application/json
object
status
string
Allowed values: open closed
stage

Planboard Kanban stage.

string
Allowed values: backlog up_next in_progress validation live
work_started_note

Required when setting stage to in_progress; also use role_status.work_started_note for per-role in_progress.

string
<= 5000 characters
priority
string
Allowed values: low medium high
title
string
>= 5 characters <= 140 characters
description
string
>= 10 characters <= 5000 characters
request_type
string
Allowed values: bug clarification_needed decision_needed feature_request
resolution_note

Optional closure summary when moving to live/closed; recommended.

string
<= 5000 characters
role_status
object
role
required
string
Allowed values: frontend backend test design devops qa other
status
required
string
Allowed values: pending in_progress done skipped
work_started_note

When status is in_progress, include a short start note.

string
<= 5000 characters
criteria_confirmed

When marking role done, set true if the role has acceptance_criteria (HO-1132).

boolean
acceptance_criteria

Per-role checklist; omit to leave unchanged, empty array to clear (HO-1132).

Array<string>
<= 20 items
updated_at
string format: date-time
skip_human_test_gate

When moving to complete/closed from stage test while human test cases exist but are not all approved, set true only after explicit human approval. Project owner or super-admin only; other members receive 403. Not persisted. Omit when all cases are approved or there are no cases.

boolean

Updated ticket

Media type application/json
object
ticket
required
object
id
required
string format: uuid
status
required
string
priority
required
string
resolution_note
string | null
resolved_at
string | null format: date-time
updated_at
required
string format: date-time

Invalid request

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number

Not authenticated

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number
reconnect

True if re-linking GitHub may fix the issue

boolean

Forbidden

Media type application/json
object
error
required

Human-readable error message

string
code

Stable machine-readable error code for client branching

string
fieldErrors

First validation message per field path

object
key
additional properties
string
issues

Structured validation issues (Zod)

Array<object>
object
path
required
string
message
required
string
retryAfter

Seconds until rate limit resets (429 responses)

number